Числовые типы RenderScript,Числовые типы RenderScript,Числовые типы RenderScript,Числовые типы RenderScript

Обзор

Скаляры:

RenderScript поддерживает следующие скалярные числовые типы:

8 бит 16 бит 32 бита 64 бита
Целое число: символ, int8_t короче, int16_t int32_t длинный, длинный, int64_t
Беззнаковое целое число: Учар, uint8_t короче, uint16_t uint, uint32_t улонг, uint64_t
Плавающая точка: половина плавать двойной

Векторы:

RenderScript поддерживает векторы фиксированного размера длиной 2, 3 и 4. Векторы объявляются с использованием общего имени типа, за которым следует 2, 3 или 4. Например, float4 , int3 , double2 , ulong4 .

Чтобы создать векторные литералы, используйте векторный тип, за которым следуют значения, заключенные в фигурные скобки, например (float3){1.0f, 2.0f, 3.0f} .

Доступ к записям вектора можно получить, используя разные стили именования.

Доступ к отдельным записям можно получить, поставив после имени переменной точку и:

  • Буквы x, y, z и w,
  • Буквы р, г, б и а,
  • Буква s или S, за которой следует индекс, начинающийся с нуля.

Например, с int4 myVar; следующие эквивалентны:
myVar.x == myVar.r == myVar.s0 == myVar.S0
myVar.y == myVar.g == myVar.s1 == myVar.S1
myVar.z == myVar.b == myVar.s2 == myVar.S2
myVar.w == myVar.a == myVar.s3 == myVar.S3

Доступ к нескольким записям вектора можно получить одновременно, используя идентификатор, который представляет собой объединение нескольких букв или индексов. Результирующий вектор имеет размер, равный количеству названных записей.

В приведенном выше примере доступ к двум средним записям можно получить с помощью myVar.yz , myVar.gb , myVar.s12 и myVar.S12 .

Записи не обязательно должны быть последовательными или в возрастающем порядке. Записи могут даже повторяться, если мы не пытаемся их присвоить. Вы также не можете смешивать стили именования.

Вот примеры того, что можно или нельзя делать:
float4 v4;
float3 v3;
float2 v2;
v2 = v4.xx; // Valid
v3 = v4.zxw; // Valid
v3 = v4.bba; // Valid
v3 = v4.s032; // Valid
v3.s120 = v4.S233; // Valid
v4.yz = v3.rg; // Valid
v4.yzx = v3.rg; // Invalid: mismatched sizes
v4.yzz = v3; // Invalid: z appears twice in an assignment
v3 = v3.xas0; // Invalid: can't mix xyzw with rgba nor s0...
v3 = v4.s034; // Invalid: the digit can only be 0, 1, 2, or 3

Матрицы и кватернионы:

RenderScript поддерживает квадратные матрицы фиксированного размера с плавающей запятой размером 2x2, 3x3 и 4x4. Типы называются rs_matrix2x2 , rs_matrix3x3 и rs_matrix4x4 . Список операций см. в разделе «Матричные функции» .

Кватернионы также поддерживаются через rs_quaternion . Список операций см. в разделе «Функции кватерионов» .

Краткое содержание

Типы
char2 Два 8-битных целых числа со знаком
char3 Три 8-битных целых числа со знаком
char4 Четыре 8-битных целых числа со знаком
двойной2 Два 64-битных числа с плавающей запятой
двойной3 Три 64-битных числа с плавающей запятой
двойной4 Четыре 64-битных числа с плавающей запятой
поплавок2 Два 32-битных числа с плавающей точкой
поплавок3 Три 32-битных числа с плавающей запятой
поплавок4 Четыре 32-битных числа с плавающей точкой
половина 16-битное значение с плавающей запятой
половина2 Два 16-битных числа с плавающей запятой
половина3 Три 16-битных числа с плавающей точкой
половина4 Четыре 16-битных числа с плавающей запятой
int16_t 16-битное целое число со знаком
int2 Два 32-битных целых числа со знаком
int3 Три 32-битных целых числа со знаком
int32_t 32-битное целое число со знаком
int4 Четыре 32-битных целых числа со знаком
int64_t 64-битное целое число со знаком
int8_t 8-битное целое число со знаком
длинный2 Два 64-битных целых числа со знаком
длинный3 Три 64-битных целых числа со знаком
длинный4 Четыре 64-битных целых числа со знаком
rs_matrix2x2 Матрица 2x2 из 32-битных чисел с плавающей запятой
rs_matrix3x3 Матрица 3x3 из 32-битных чисел с плавающей запятой
rs_matrix4x4 Матрица 4x4 из 32-битных чисел с плавающей запятой
rs_quaternion Кватернион
короткий2 Два 16-битных целых числа со знаком
короткий3 Три 16-битных целых числа со знаком
короткий4 Четыре 16-битных целых числа со знаком
size_t Беззнаковый тип размера
ssize_t Тип размера со знаком
Учар 8-битное целое число без знака
uchar2 Два 8-битных целых числа без знака
uchar3 Три 8-битных целых числа без знака
uchar4 Четыре 8-битных целых числа без знака
uint 32-битное целое число без знака
uint16_t 16-битное целое число без знака
uint2 Два 32-битных целых числа без знака
uint3 Три 32-битных целых числа без знака
uint32_t 32-битное целое число без знака
uint4 Четыре 32-битных целых числа без знака
uint64_t 64-битное целое число без знака
uint8_t 8-битное целое число без знака
улонг 64-битное целое число без знака
улонг2 Два 64-битных целых числа без знака
улонг3 Три 64-битных целых числа без знака
улонг4 Четыре 64-битных целых числа без знака
сокращать 16-битное целое число без знака
ushort2 Два 16-битных целых числа без знака
ushort3 Три 16-битных целых числа без знака
ushort4 Четыре 16-битных целых числа без знака

Типы

char2 : два 8-битных целых числа со знаком.

Определение типа: char __attribute__((ext_vector_type(2)))

Вектор из двух символов. Эти два символа упакованы в одно 16-битное поле с 16-битным выравниванием.

char3 : три 8-битных целых числа со знаком.

Определение типа: char __attribute__((ext_vector_type(3)))

Вектор из трех символов. Эти три символа упакованы в одно 32-битное поле с 32-битным выравниванием.

char4 : четыре 8-битных целых числа со знаком.

Определение типа: char __attribute__((ext_vector_type(4)))

Вектор из четырех символов. Эти четыре символа упакованы в одно 32-битное поле с 32-битным выравниванием.

double2 : два 64-битных числа с плавающей запятой.

Определение типа: double __attribute__((ext_vector_type(2)))

Вектор из двух двойников. Эти два двойных поля упакованы в одно 128-битное поле со 128-битным выравниванием.

double3 : три 64-битных числа с плавающей запятой.

Определение типа: double __attribute__((ext_vector_type(3)))

Вектор из трех двойников. Эти три двойных поля упакованы в одно 256-битное поле с 256-битным выравниванием.

double4 : четыре 64-битных числа с плавающей запятой.

Определение типа: double __attribute__((ext_vector_type(4)))

Вектор из четырех двойников. Эти четыре двойных поля упакованы в одно 256-битное поле с 256-битным выравниванием.

float2 : два 32-битных числа с плавающей запятой.

Определение типа: float __attribute__((ext_vector_type(2)))

Вектор из двух чисел с плавающей запятой. Эти два числа с плавающей запятой упакованы в одно 64-битное поле с 64-битным выравниванием.

Вектор из двух чисел с плавающей запятой. Эти два числа с плавающей запятой упакованы в одно 64-битное поле с 64-битным выравниванием.

float3 : три 32-битных числа с плавающей запятой.

Определение типа: float __attribute__((ext_vector_type(3)))

Вектор из трех чисел с плавающей запятой. Эти три числа с плавающей запятой упакованы в одно 128-битное поле со 128-битным выравниванием.

float4 : четыре 32-битных числа с плавающей запятой.

Определение типа: float __attribute__((ext_vector_type(4)))

Вектор из четырех типов float. Эти четыре числа с плавающей запятой упакованы в одно 128-битное поле со 128-битным выравниванием.

половина : 16-битное значение с плавающей запятой

Определение типа: __fp16 Добавлено на уровне API 23.

16-битное значение с плавающей запятой.

half2 : два 16-битных числа с плавающей запятой.

Определение типа: half __attribute__((ext_vector_type(2))) Добавлено на уровне API 23.

Векторная версия полупоплавкового типа. Предоставляет два полуполя, упакованные в одно 32-битное поле с 32-битным выравниванием.

half3 : три 16-битных числа с плавающей запятой.

Определение типа: half __attribute__((ext_vector_type(3))) Добавлено на уровне API 23.

Векторная версия полупоплавкового типа. Предоставляет три полуполя, упакованные в одно 64-битное поле с 64-битным выравниванием.

half4 : четыре 16-битных числа с плавающей запятой.

Определение типа: half __attribute__((ext_vector_type(4))) Добавлено на уровне API 23.

Векторная версия полупоплавкового типа. Предоставляет четыре полуполя, упакованные в одно 64-битное поле с 64-битным выравниванием.

int16_t : 16-битное целое число со знаком

Типовое определение: short

16-битный целочисленный тип со знаком.

int2 : два 32-битных целых числа со знаком.

Определение типа: int __attribute__((ext_vector_type(2)))

Вектор из двух целых чисел. Эти два целых числа упакованы в одно 64-битное поле с 64-битным выравниванием.

int3 : три 32-битных целых числа со знаком.

Определение типа: int __attribute__((ext_vector_type(3)))

Вектор из трех целых чисел. Эти три целых числа упакованы в одно 128-битное поле со 128-битным выравниванием.

int32_t : 32-битное целое число со знаком

Определение типа: int

32-битный целочисленный тип со знаком.

int4 : четыре 32-битных целых числа со знаком.

Определение типа: int __attribute__((ext_vector_type(4)))

Вектор из четырех целых чисел. Эти две четверки упакованы в одно 128-битное поле со 128-битным выравниванием.

int64_t : 64-битное целое число со знаком

Определение типа: long long Удалено из уровня API 21 и выше.

Определение типа: long Добавлено на уровне API 21.

64-битный целочисленный тип со знаком.

int8_t : 8-битное целое число со знаком

Определение типа: char

8-битный целочисленный тип со знаком.

long2 : два 64-битных целых числа со знаком.

Определение типа: long __attribute__((ext_vector_type(2)))

Вектор из двух длинных значений. Эти два длинных значения упакованы в одно 128-битное поле со 128-битным выравниванием.

long3 : три 64-битных целых числа со знаком.

Определение типа: long __attribute__((ext_vector_type(3)))

Вектор из трех длинных значений. Эти три длинных значения упакованы в одно 256-битное поле с 256-битным выравниванием.

long4 : четыре 64-битных целых числа со знаком.

Определение типа: long __attribute__((ext_vector_type(4)))

Вектор из четырех длинных значений. Эти четыре длинных значения упакованы в одно 256-битное поле с 256-битным выравниванием.

rs_matrix2x2 : матрица 2x2 из 32-битных чисел с плавающей запятой.

Структура со следующими полями:

плавающее м[4]

Квадратная матрица чисел с плавающей точкой 2x2. Записи сохраняются в массиве по адресу [строка*2 + столбец].

См. Матричные функции .

rs_matrix3x3 : матрица 3x3 из 32-битных чисел с плавающей запятой.

Структура со следующими полями:

плавающее м[9]

Квадратная матрица чисел с плавающей точкой 3x3. Записи сохраняются в массиве по адресу [строка*3 + столбец].

См. Матричные функции .

rs_matrix4x4 : матрица 4x4 с 32-битными числами с плавающей запятой.

Структура со следующими полями:

плавающий м[16]

Квадратная матрица чисел с плавающей точкой 4х4. Записи сохраняются в массиве по адресу [строка*4 + столбец].

См. Матричные функции .

rs_quaternion : Кватернион

Определение типа: float4

Квадратная матрица чисел с плавающей точкой 4x4, представляющая кватернион.

См. Функции кватерниона .

short2 : два 16-битных целых числа со знаком.

Определение типа: short __attribute__((ext_vector_type(2)))

Вектор из двух шорт. Эти два фрагмента упакованы в одно 32-битное поле с 32-битным выравниванием.

short3 : три 16-битных целых числа со знаком.

Определение типа: short __attribute__((ext_vector_type(3)))

Вектор из трех шорт. Эти три коротких поля упакованы в одно 64-битное поле с 64-битным выравниванием.

short4 : четыре 16-битных целых числа со знаком.

Определение типа: short __attribute__((ext_vector_type(4)))

Вектор из четырех шорт. Эти четыре коротких поля упакованы в одно 64-битное поле с 64-битным выравниванием.

size_t : тип размера без знака

Определение типа: uint64_t При компиляции для 64-разрядной версии.

Определение типа: uint32_t При компиляции для 32-разрядной версии.

Беззнаковый тип размера. Количество бит зависит от флагов компиляции.

ssize_t : Тип размера со знаком

Определение типа: int64_t При компиляции для 64-разрядной версии.

Определение типа: int32_t При компиляции для 32-разрядной версии.

Тип размера со знаком. Количество бит зависит от флагов компиляции.

uchar : 8-битное целое число без знака

Определение типа: uint8_t

8-битный беззнаковый целочисленный тип.

uchar2 : два 8-битных целых числа без знака.

Определение типа: uchar __attribute__((ext_vector_type(2)))

Вектор из двух учаров. Эти два поля uchar упакованы в одно 16-битное поле с 16-битным выравниванием.

uchar3 : три 8-битных целых числа без знака.

Определение типа: uchar __attribute__((ext_vector_type(3)))

Вектор из трёх учаров. Эти три поля uchar упакованы в одно 32-битное поле с 32-битным выравниванием.

uchar4 : четыре 8-битных целых числа без знака.

Определение типа: uchar __attribute__((ext_vector_type(4)))

Вектор из четырех учаров. Эти четыре поля uchar упакованы в одно 32-битное поле с 32-битным выравниванием.

uint : 32-битное целое число без знака

Определение типа: uint32_t

32-битный целочисленный тип без знака.

uint16_t : 16-битное целое число без знака

Определение типа: unsigned short

16-битный целочисленный тип без знака.

uint2 : два 32-битных целых числа без знака.

Определение типа: uint __attribute__((ext_vector_type(2)))

Вектор из двух единиц. Эти два uint упакованы в одно 64-битное поле с 64-битным выравниванием.

uint3 : три 32-битных целых числа без знака.

Определение типа: uint __attribute__((ext_vector_type(3)))

Вектор из трех единиц. Эти три uint упакованы в одно 128-битное поле со 128-битным выравниванием.

uint32_t : 32-битное целое число без знака

Определение типа: unsigned int

32-битный целочисленный тип без знака.

uint4 : четыре 32-битных целых числа без знака.

Определение типа: uint __attribute__((ext_vector_type(4)))

Вектор из четырех единиц. Эти четыре uint упакованы в одно 128-битное поле со 128-битным выравниванием.

uint64_t : 64-битное целое число без знака

Определение типа: unsigned long long Удалено из уровня API 21 и выше.

Определение типа: unsigned long Добавлено на уровне API 21.

64-битный целочисленный тип без знака.

uint8_t : 8-битное целое число без знака

Определение типа: unsigned char

8-битный беззнаковый целочисленный тип.

ulong : 64-битное целое число без знака

Определение типа: uint64_t

64-битный целочисленный тип без знака.

ulong2 : два 64-битных целых числа без знака.

Определение типа: ulong __attribute__((ext_vector_type(2)))

Вектор из двух улонгов. Эти два улонга упакованы в одно 128-битное поле со 128-битным выравниванием.

ulong3 : три 64-битных целых числа без знака.

Определение типа: ulong __attribute__((ext_vector_type(3)))

Вектор из трёх улонгов. Эти три поля ulong упакованы в одно 256-битное поле с 256-битным выравниванием.

ulong4 : четыре 64-битных целых числа без знака.

Определение типа: ulong __attribute__((ext_vector_type(4)))

Вектор из четырех улонгов. Эти четыре поля ulong упакованы в одно 256-битное поле с 256-битным выравниванием.

ushort : 16-битное целое число без знака

Определение типа: uint16_t

16-битный целочисленный тип без знака.

ushort2 : два 16-битных целых числа без знака.

Определение типа: ushort __attribute__((ext_vector_type(2)))

Вектор из двух ushorts. Эти два поля ushort упакованы в одно 32-битное поле с 32-битным выравниванием.

ushort3 : три 16-битных целых числа без знака.

Определение типа: ushort __attribute__((ext_vector_type(3)))

Вектор из трех ushorts. Эти три поля ushort упакованы в одно 64-битное поле с 64-битным выравниванием.

ushort4 : четыре 16-битных целых числа без знака.

Определение типа: ushort __attribute__((ext_vector_type(4)))

Вектор из четырех ushorts. Эти четыре поля ushort упакованы в одно 64-битное поле с 64-битным выравниванием.

,

Обзор

Скаляры:

RenderScript поддерживает следующие скалярные числовые типы:

8 бит 16 бит 32 бита 64 бита
Целое число: символ, int8_t короче, int16_t int32_t длинный, длинный, int64_t
Беззнаковое целое число: Учар, uint8_t короче, uint16_t uint, uint32_t улонг, uint64_t
Плавающая точка: половина плавать двойной

Векторы:

RenderScript поддерживает векторы фиксированного размера длиной 2, 3 и 4. Векторы объявляются с использованием общего имени типа, за которым следует 2, 3 или 4. Например, float4 , int3 , double2 , ulong4 .

Чтобы создать векторные литералы, используйте векторный тип, за которым следуют значения, заключенные в фигурные скобки, например (float3){1.0f, 2.0f, 3.0f} .

Доступ к записям вектора можно получить, используя разные стили именования.

Доступ к отдельным записям можно получить, поставив после имени переменной точку и:

  • Буквы x, y, z и w,
  • Буквы р, г, б и а,
  • Буква s или S, за которой следует индекс, начинающийся с нуля.

Например, с int4 myVar; следующие эквивалентны:
myVar.x == myVar.r == myVar.s0 == myVar.S0
myVar.y == myVar.g == myVar.s1 == myVar.S1
myVar.z == myVar.b == myVar.s2 == myVar.S2
myVar.w == myVar.a == myVar.s3 == myVar.S3

Доступ к нескольким записям вектора можно получить одновременно, используя идентификатор, который представляет собой объединение нескольких букв или индексов. Результирующий вектор имеет размер, равный количеству названных записей.

В приведенном выше примере доступ к двум средним записям можно получить с помощью myVar.yz , myVar.gb , myVar.s12 и myVar.S12 .

Записи не обязательно должны быть последовательными или в возрастающем порядке. Записи могут даже повторяться, если мы не пытаемся их присвоить. Вы также не можете смешивать стили именования.

Вот примеры того, что можно или нельзя делать:
float4 v4;
float3 v3;
float2 v2;
v2 = v4.xx; // Valid
v3 = v4.zxw; // Valid
v3 = v4.bba; // Valid
v3 = v4.s032; // Valid
v3.s120 = v4.S233; // Valid
v4.yz = v3.rg; // Valid
v4.yzx = v3.rg; // Invalid: mismatched sizes
v4.yzz = v3; // Invalid: z appears twice in an assignment
v3 = v3.xas0; // Invalid: can't mix xyzw with rgba nor s0...
v3 = v4.s034; // Invalid: the digit can only be 0, 1, 2, or 3

Матрицы и кватернионы:

RenderScript поддерживает квадратные матрицы фиксированного размера с плавающей запятой размером 2x2, 3x3 и 4x4. Типы называются rs_matrix2x2 , rs_matrix3x3 и rs_matrix4x4 . Список операций см. в разделе «Матричные функции» .

Кватернионы также поддерживаются через rs_quaternion . Список операций см. в разделе «Функции кватерионов» .

Краткое содержание

Типы
char2 Два 8-битных целых числа со знаком
char3 Три 8-битных целых числа со знаком
char4 Четыре 8-битных целых числа со знаком
двойной2 Два 64-битных числа с плавающей запятой
двойной3 Три 64-битных числа с плавающей запятой
двойной4 Четыре 64-битных числа с плавающей запятой
поплавок2 Два 32-битных числа с плавающей точкой
поплавок3 Три 32-битных числа с плавающей запятой
поплавок4 Четыре 32-битных числа с плавающей точкой
половина 16-битное значение с плавающей запятой
половина2 Два 16-битных числа с плавающей запятой
половина3 Три 16-битных числа с плавающей точкой
половина4 Четыре 16-битных числа с плавающей запятой
int16_t 16-битное целое число со знаком
int2 Два 32-битных целых числа со знаком
int3 Три 32-битных целых числа со знаком
int32_t 32-битное целое число со знаком
int4 Четыре 32-битных целых числа со знаком
int64_t 64-битное целое число со знаком
int8_t 8-битное целое число со знаком
длинный2 Два 64-битных целых числа со знаком
длинный3 Три 64-битных целых числа со знаком
длинный4 Четыре 64-битных целых числа со знаком
rs_matrix2x2 Матрица 2x2 из 32-битных чисел с плавающей запятой
rs_matrix3x3 Матрица 3x3 из 32-битных чисел с плавающей запятой
rs_matrix4x4 Матрица 4x4 из 32-битных чисел с плавающей запятой
rs_quaternion Кватернион
короткий2 Два 16-битных целых числа со знаком
короткий3 Три 16-битных целых числа со знаком
короткий4 Четыре 16-битных целых числа со знаком
size_t Беззнаковый тип размера
ssize_t Тип размера со знаком
Учар 8-битное целое число без знака
uchar2 Два 8-битных целых числа без знака
uchar3 Три 8-битных целых числа без знака
uchar4 Четыре 8-битных целых числа без знака
uint 32-битное целое число без знака
uint16_t 16-битное целое число без знака
uint2 Два 32-битных целых числа без знака
uint3 Три 32-битных целых числа без знака
uint32_t 32-битное целое число без знака
uint4 Четыре 32-битных целых числа без знака
uint64_t 64-битное целое число без знака
uint8_t 8-битное целое число без знака
улонг 64-битное целое число без знака
улонг2 Два 64-битных целых числа без знака
улонг3 Три 64-битных целых числа без знака
улонг4 Четыре 64-битных целых числа без знака
сокращать 16-битное целое число без знака
ushort2 Два 16-битных целых числа без знака
ushort3 Три 16-битных целых числа без знака
ushort4 Четыре 16-битных целых числа без знака

Типы

char2 : два 8-битных целых числа со знаком.

Определение типа: char __attribute__((ext_vector_type(2)))

Вектор из двух символов. Эти два символа упакованы в одно 16-битное поле с 16-битным выравниванием.

char3 : три 8-битных целых числа со знаком.

Определение типа: char __attribute__((ext_vector_type(3)))

Вектор из трех символов. Эти три символа упакованы в одно 32-битное поле с 32-битным выравниванием.

char4 : четыре 8-битных целых числа со знаком.

Определение типа: char __attribute__((ext_vector_type(4)))

Вектор из четырех символов. Эти четыре символа упакованы в одно 32-битное поле с 32-битным выравниванием.

double2 : два 64-битных числа с плавающей запятой.

Определение типа: double __attribute__((ext_vector_type(2)))

Вектор из двух двойников. Эти два двойных поля упакованы в одно 128-битное поле со 128-битным выравниванием.

double3 : три 64-битных числа с плавающей запятой.

Определение типа: double __attribute__((ext_vector_type(3)))

Вектор из трех двойников. Эти три двойных поля упакованы в одно 256-битное поле с 256-битным выравниванием.

double4 : четыре 64-битных числа с плавающей запятой.

Определение типа: double __attribute__((ext_vector_type(4)))

Вектор из четырех двойников. Эти четыре двойных поля упакованы в одно 256-битное поле с 256-битным выравниванием.

float2 : два 32-битных числа с плавающей запятой.

Определение типа: float __attribute__((ext_vector_type(2)))

Вектор из двух чисел с плавающей запятой. Эти два числа с плавающей запятой упакованы в одно 64-битное поле с 64-битным выравниванием.

Вектор из двух чисел с плавающей запятой. Эти два числа с плавающей запятой упакованы в одно 64-битное поле с 64-битным выравниванием.

float3 : три 32-битных числа с плавающей запятой.

Определение типа: float __attribute__((ext_vector_type(3)))

Вектор из трех чисел с плавающей запятой. Эти три числа с плавающей запятой упакованы в одно 128-битное поле со 128-битным выравниванием.

float4 : четыре 32-битных числа с плавающей запятой.

Определение типа: float __attribute__((ext_vector_type(4)))

Вектор из четырех типов float. Эти четыре числа с плавающей запятой упакованы в одно 128-битное поле со 128-битным выравниванием.

половина : 16-битное значение с плавающей запятой

Определение типа: __fp16 Добавлено на уровне API 23.

16-битное значение с плавающей запятой.

half2 : два 16-битных числа с плавающей запятой.

Определение типа: half __attribute__((ext_vector_type(2))) Добавлено на уровне API 23.

Векторная версия полупоплавкового типа. Предоставляет два полуполя, упакованные в одно 32-битное поле с 32-битным выравниванием.

half3 : три 16-битных числа с плавающей запятой.

Определение типа: half __attribute__((ext_vector_type(3))) Добавлено на уровне API 23.

Векторная версия полупоплавкового типа. Предоставляет три полуполя, упакованные в одно 64-битное поле с 64-битным выравниванием.

half4 : четыре 16-битных числа с плавающей запятой.

Определение типа: half __attribute__((ext_vector_type(4))) Добавлено на уровне API 23.

Векторная версия полупоплавкового типа. Предоставляет четыре полуполя, упакованные в одно 64-битное поле с 64-битным выравниванием.

int16_t : 16-битное целое число со знаком

Типовое определение: short

16-битный целочисленный тип со знаком.

int2 : два 32-битных целых числа со знаком.

Определение типа: int __attribute__((ext_vector_type(2)))

Вектор из двух целых чисел. Эти два целых числа упакованы в одно 64-битное поле с 64-битным выравниванием.

int3 : три 32-битных целых числа со знаком.

Определение типа: int __attribute__((ext_vector_type(3)))

Вектор из трех целых чисел. Эти три целых числа упакованы в одно 128-битное поле со 128-битным выравниванием.

int32_t : 32-битное целое число со знаком

Определение типа: int

32-битный целочисленный тип со знаком.

int4 : четыре 32-битных целых числа со знаком.

Определение типа: int __attribute__((ext_vector_type(4)))

Вектор из четырех целых чисел. Эти две четверки упакованы в одно 128-битное поле со 128-битным выравниванием.

int64_t : 64-битное целое число со знаком

Определение типа: long long Удалено из уровня API 21 и выше.

Определение типа: long Добавлено на уровне API 21.

64-битный целочисленный тип со знаком.

int8_t : 8-битное целое число со знаком

Определение типа: char

8-битный целочисленный тип со знаком.

long2 : два 64-битных целых числа со знаком.

Определение типа: long __attribute__((ext_vector_type(2)))

Вектор из двух длинных значений. Эти два длинных значения упакованы в одно 128-битное поле со 128-битным выравниванием.

long3 : три 64-битных целых числа со знаком.

Определение типа: long __attribute__((ext_vector_type(3)))

Вектор из трех длинных значений. Эти три длинных значения упакованы в одно 256-битное поле с 256-битным выравниванием.

long4 : четыре 64-битных целых числа со знаком.

Определение типа: long __attribute__((ext_vector_type(4)))

Вектор из четырех длинных значений. Эти четыре длинных значения упакованы в одно 256-битное поле с 256-битным выравниванием.

rs_matrix2x2 : матрица 2x2 из 32-битных чисел с плавающей запятой.

Структура со следующими полями:

плавающее м[4]

Квадратная матрица чисел с плавающей точкой 2x2. Записи сохраняются в массиве по адресу [строка*2 + столбец].

См. Матричные функции .

rs_matrix3x3 : матрица 3x3 из 32-битных чисел с плавающей запятой.

Структура со следующими полями:

плавающее м[9]

Квадратная матрица чисел с плавающей точкой 3x3. Записи сохраняются в массиве по адресу [строка*3 + столбец].

См. Матричные функции .

rs_matrix4x4 : матрица 4x4 с 32-битными числами с плавающей запятой.

Структура со следующими полями:

плавающий м[16]

Квадратная матрица чисел с плавающей точкой 4х4. Записи сохраняются в массиве по адресу [строка*4 + столбец].

См. Матричные функции .

rs_quaternion : Кватернион

Определение типа: float4

Квадратная матрица чисел с плавающей точкой 4x4, представляющая кватернион.

См. Функции кватерниона .

short2 : два 16-битных целых числа со знаком.

Определение типа: short __attribute__((ext_vector_type(2)))

Вектор из двух шорт. Эти два фрагмента упакованы в одно 32-битное поле с 32-битным выравниванием.

short3 : три 16-битных целых числа со знаком.

Определение типа: short __attribute__((ext_vector_type(3)))

Вектор из трех шорт. Эти три коротких поля упакованы в одно 64-битное поле с 64-битным выравниванием.

short4 : четыре 16-битных целых числа со знаком.

Определение типа: short __attribute__((ext_vector_type(4)))

Вектор из четырех шорт. Эти четыре коротких поля упакованы в одно 64-битное поле с 64-битным выравниванием.

size_t : тип размера без знака

Определение типа: uint64_t При компиляции для 64-разрядной версии.

Определение типа: uint32_t При компиляции для 32-разрядной версии.

Беззнаковый тип размера. Количество бит зависит от флагов компиляции.

ssize_t : Тип размера со знаком

Определение типа: int64_t При компиляции для 64-разрядной версии.

Определение типа: int32_t При компиляции для 32-разрядной версии.

Тип размера со знаком. Количество бит зависит от флагов компиляции.

uchar : 8-битное целое число без знака

Определение типа: uint8_t

8-битный беззнаковый целочисленный тип.

uchar2 : два 8-битных целых числа без знака.

Определение типа: uchar __attribute__((ext_vector_type(2)))

Вектор из двух учаров. Эти два поля uchar упакованы в одно 16-битное поле с 16-битным выравниванием.

uchar3 : три 8-битных целых числа без знака.

Определение типа: uchar __attribute__((ext_vector_type(3)))

Вектор из трёх учаров. Эти три поля uchar упакованы в одно 32-битное поле с 32-битным выравниванием.

uchar4 : четыре 8-битных целых числа без знака.

Определение типа: uchar __attribute__((ext_vector_type(4)))

Вектор из четырех учаров. Эти четыре поля uchar упакованы в одно 32-битное поле с 32-битным выравниванием.

uint : 32-битное целое число без знака

Определение типа: uint32_t

32-битный целочисленный тип без знака.

uint16_t : 16-битное целое число без знака

Определение типа: unsigned short

16-битный целочисленный тип без знака.

uint2 : два 32-битных целых числа без знака.

Определение типа: uint __attribute__((ext_vector_type(2)))

Вектор из двух единиц. Эти два uint упакованы в одно 64-битное поле с 64-битным выравниванием.

uint3 : три 32-битных целых числа без знака.

Определение типа: uint __attribute__((ext_vector_type(3)))

Вектор из трех единиц. Эти три uint упакованы в одно 128-битное поле со 128-битным выравниванием.

uint32_t : 32-битное целое число без знака

Определение типа: unsigned int

32-битный целочисленный тип без знака.

uint4 : четыре 32-битных целых числа без знака.

Определение типа: uint __attribute__((ext_vector_type(4)))

Вектор из четырех единиц. Эти четыре uint упакованы в одно 128-битное поле со 128-битным выравниванием.

uint64_t : 64-битное целое число без знака

Определение типа: unsigned long long Удалено из уровня API 21 и выше.

Определение типа: unsigned long Добавлено на уровне API 21.

64-битный целочисленный тип без знака.

uint8_t : 8-битное целое число без знака

Определение типа: unsigned char

8-битный беззнаковый целочисленный тип.

ulong : 64-битное целое число без знака

Определение типа: uint64_t

64-битный целочисленный тип без знака.

ulong2 : два 64-битных целых числа без знака.

Определение типа: ulong __attribute__((ext_vector_type(2)))

Вектор из двух улонгов. Эти два улонга упакованы в одно 128-битное поле со 128-битным выравниванием.

ulong3 : три 64-битных целых числа без знака.

Определение типа: ulong __attribute__((ext_vector_type(3)))

Вектор из трёх улонгов. Эти три поля ulong упакованы в одно 256-битное поле с 256-битным выравниванием.

ulong4 : четыре 64-битных целых числа без знака.

Определение типа: ulong __attribute__((ext_vector_type(4)))

Вектор из четырех улонгов. Эти четыре поля ulong упакованы в одно 256-битное поле с 256-битным выравниванием.

ushort : 16-битное целое число без знака

Определение типа: uint16_t

16-битный целочисленный тип без знака.

ushort2 : два 16-битных целых числа без знака.

Определение типа: ushort __attribute__((ext_vector_type(2)))

Вектор из двух ushorts. Эти два поля ushort упакованы в одно 32-битное поле с 32-битным выравниванием.

ushort3 : три 16-битных целых числа без знака.

Определение типа: ushort __attribute__((ext_vector_type(3)))

Вектор из трех ushorts. Эти три поля ushort упакованы в одно 64-битное поле с 64-битным выравниванием.

ushort4 : четыре 16-битных целых числа без знака.

Определение типа: ushort __attribute__((ext_vector_type(4)))

Вектор из четырех ushorts. Эти четыре поля ushort упакованы в одно 64-битное поле с 64-битным выравниванием.

,

Обзор

Скаляры:

RenderScript поддерживает следующие скалярные числовые типы:

8 бит 16 бит 32 бита 64 бита
Целое число: символ, int8_t короче, int16_t int32_t длинный, длинный, int64_t
Беззнаковое целое число: Учар, uint8_t короче, uint16_t uint, uint32_t улонг, uint64_t
Плавающая точка: половина плавать двойной

Векторы:

RenderScript поддерживает векторы фиксированного размера длиной 2, 3 и 4. Векторы объявляются с использованием общего имени типа, за которым следует 2, 3 или 4. Например, float4 , int3 , double2 , ulong4 .

Чтобы создать векторные литералы, используйте векторный тип, за которым следуют значения, заключенные в фигурные скобки, например (float3){1.0f, 2.0f, 3.0f} .

Доступ к записям вектора можно получить, используя разные стили именования.

Доступ к отдельным записям можно получить, поставив после имени переменной точку и:

  • Буквы x, y, z и w,
  • Буквы р, г, б и а,
  • Буква s или S, за которой следует индекс, начинающийся с нуля.

Например, с int4 myVar; следующие эквивалентны:
myVar.x == myVar.r == myVar.s0 == myVar.S0
myVar.y == myVar.g == myVar.s1 == myVar.S1
myVar.z == myVar.b == myVar.s2 == myVar.S2
myVar.w == myVar.a == myVar.s3 == myVar.S3

Доступ к нескольким записям вектора можно получить одновременно, используя идентификатор, который представляет собой объединение нескольких букв или индексов. Результирующий вектор имеет размер, равный количеству названных записей.

В приведенном выше примере доступ к двум средним записям можно получить с помощью myVar.yz , myVar.gb , myVar.s12 и myVar.S12 .

Записи не обязательно должны быть последовательными или в возрастающем порядке. Записи могут даже повторяться, если мы не пытаемся их присвоить. Вы также не можете смешивать стили именования.

Вот примеры того, что можно или нельзя делать:
float4 v4;
float3 v3;
float2 v2;
v2 = v4.xx; // Valid
v3 = v4.zxw; // Valid
v3 = v4.bba; // Valid
v3 = v4.s032; // Valid
v3.s120 = v4.S233; // Valid
v4.yz = v3.rg; // Valid
v4.yzx = v3.rg; // Invalid: mismatched sizes
v4.yzz = v3; // Invalid: z appears twice in an assignment
v3 = v3.xas0; // Invalid: can't mix xyzw with rgba nor s0...
v3 = v4.s034; // Invalid: the digit can only be 0, 1, 2, or 3

Матрицы и кватернионы:

RenderScript поддерживает квадратные матрицы фиксированного размера с плавающей запятой размером 2x2, 3x3 и 4x4. Типы называются rs_matrix2x2 , rs_matrix3x3 и rs_matrix4x4 . Список операций см. в разделе «Матричные функции» .

Кватернионы также поддерживаются через rs_quaternion . Список операций см. в разделе «Функции кватерионов» .

Краткое содержание

Типы
char2 Два 8-битных целых числа со знаком
char3 Три 8-битных целых числа со знаком
char4 Четыре 8-битных целых числа со знаком
двойной2 Два 64-битных числа с плавающей запятой
двойной3 Три 64-битных числа с плавающей запятой
двойной4 Четыре 64-битных числа с плавающей запятой
поплавок2 Два 32-битных числа с плавающей точкой
поплавок3 Три 32-битных числа с плавающей запятой
поплавок4 Четыре 32-битных числа с плавающей точкой
половина 16-битное значение с плавающей запятой
половина2 Два 16-битных числа с плавающей запятой
половина3 Три 16-битных числа с плавающей точкой
половина4 Четыре 16-битных числа с плавающей запятой
int16_t 16-битное целое число со знаком
int2 Два 32-битных целых числа со знаком
int3 Три 32-битных целых числа со знаком
int32_t 32-битное целое число со знаком
int4 Четыре 32-битных целых числа со знаком
int64_t 64-битное целое число со знаком
int8_t 8-битное целое число со знаком
длинный2 Два 64-битных целых числа со знаком
длинный3 Три 64-битных целых числа со знаком
длинный4 Четыре 64-битных целых числа со знаком
rs_matrix2x2 Матрица 2x2 из 32-битных чисел с плавающей запятой
rs_matrix3x3 Матрица 3x3 из 32-битных чисел с плавающей запятой
rs_matrix4x4 Матрица 4x4 из 32-битных чисел с плавающей запятой
rs_quaternion Кватернион
короткий2 Два 16-битных целых числа со знаком
короткий3 Три 16-битных целых числа со знаком
короткий4 Четыре 16-битных целых числа со знаком
size_t Беззнаковый тип размера
ssize_t Тип размера со знаком
Учар 8-битное целое число без знака
uchar2 Два 8-битных целых числа без знака
uchar3 Три 8-битных целых числа без знака
uchar4 Четыре 8-битных целых числа без знака
uint 32-битное целое число без знака
uint16_t 16-битное целое число без знака
uint2 Два 32-битных целых числа без знака
uint3 Три 32-битных целых числа без знака
uint32_t 32-битное целое число без знака
uint4 Четыре 32-битных целых числа без знака
uint64_t 64-битное целое число без знака
uint8_t 8-битное целое число без знака
улонг 64-битное целое число без знака
улонг2 Два 64-битных целых числа без знака
улонг3 Три 64-битных целых числа без знака
улонг4 Четыре 64-битных целых числа без знака
сокращать 16-битное целое число без знака
ushort2 Два 16-битных целых числа без знака
ushort3 Три 16-битных целых числа без знака
ushort4 Четыре 16-битных целых числа без знака

Типы

char2 : два 8-битных целых числа со знаком.

Определение типа: char __attribute__((ext_vector_type(2)))

Вектор из двух символов. Эти два символа упакованы в одно 16-битное поле с 16-битным выравниванием.

char3 : три 8-битных целых числа со знаком.

Определение типа: char __attribute__((ext_vector_type(3)))

Вектор из трех символов. Эти три символа упакованы в одно 32-битное поле с 32-битным выравниванием.

char4 : четыре 8-битных целых числа со знаком.

Определение типа: char __attribute__((ext_vector_type(4)))

Вектор из четырех символов. Эти четыре символа упакованы в одно 32-битное поле с 32-битным выравниванием.

double2 : два 64-битных числа с плавающей запятой.

Определение типа: double __attribute__((ext_vector_type(2)))

Вектор из двух двойников. Эти два двойных поля упакованы в одно 128-битное поле со 128-битным выравниванием.

double3 : три 64-битных числа с плавающей запятой.

Определение типа: double __attribute__((ext_vector_type(3)))

Вектор из трех двойников. Эти три двойных поля упакованы в одно 256-битное поле с 256-битным выравниванием.

double4 : четыре 64-битных числа с плавающей запятой.

Определение типа: double __attribute__((ext_vector_type(4)))

Вектор из четырех двойников. Эти четыре двойных поля упакованы в одно 256-битное поле с 256-битным выравниванием.

float2 : два 32-битных числа с плавающей запятой.

Определение типа: float __attribute__((ext_vector_type(2)))

Вектор из двух чисел с плавающей запятой. Эти два числа с плавающей запятой упакованы в одно 64-битное поле с 64-битным выравниванием.

Вектор из двух чисел с плавающей запятой. Эти два числа с плавающей запятой упакованы в одно 64-битное поле с 64-битным выравниванием.

float3 : три 32-битных числа с плавающей запятой.

Определение типа: float __attribute__((ext_vector_type(3)))

Вектор из трех чисел с плавающей запятой. Эти три числа с плавающей запятой упакованы в одно 128-битное поле со 128-битным выравниванием.

float4 : четыре 32-битных числа с плавающей запятой.

Определение типа: float __attribute__((ext_vector_type(4)))

Вектор из четырех типов float. Эти четыре числа с плавающей запятой упакованы в одно 128-битное поле со 128-битным выравниванием.

половина : 16-битное значение с плавающей запятой

Определение типа: __fp16 Добавлено на уровне API 23.

16-битное значение с плавающей запятой.

half2 : два 16-битных числа с плавающей запятой.

Определение типа: half __attribute__((ext_vector_type(2))) Добавлено на уровне API 23.

Векторная версия полупоплавкового типа. Предоставляет два полуполя, упакованные в одно 32-битное поле с 32-битным выравниванием.

half3 : три 16-битных числа с плавающей запятой.

Определение типа: half __attribute__((ext_vector_type(3))) Добавлено на уровне API 23.

Векторная версия полупоплавкового типа. Предоставляет три полуполя, упакованные в одно 64-битное поле с 64-битным выравниванием.

half4 : четыре 16-битных числа с плавающей запятой.

Определение типа: half __attribute__((ext_vector_type(4))) Добавлено на уровне API 23.

Векторная версия полупоплавкового типа. Предоставляет четыре полуполя, упакованные в одно 64-битное поле с 64-битным выравниванием.

int16_t : 16-битное целое число со знаком

Типовое определение: short

16-битный целочисленный тип со знаком.

int2 : два 32-битных целых числа со знаком.

Определение типа: int __attribute__((ext_vector_type(2)))

Вектор из двух целых чисел. Эти два целых числа упакованы в одно 64-битное поле с 64-битным выравниванием.

int3 : три 32-битных целых числа со знаком.

Определение типа: int __attribute__((ext_vector_type(3)))

Вектор из трех целых чисел. Эти три целых числа упакованы в одно 128-битное поле со 128-битным выравниванием.

int32_t : 32-битное целое число со знаком

Определение типа: int

32-битный целочисленный тип со знаком.

int4 : четыре 32-битных целых числа со знаком.

Определение типа: int __attribute__((ext_vector_type(4)))

Вектор из четырех целых чисел. Эти две четверки упакованы в одно 128-битное поле со 128-битным выравниванием.

int64_t : 64-битное целое число со знаком

Определение типа: long long Удалено из уровня API 21 и выше.

Определение типа: long Добавлено на уровне API 21.

64-битный целочисленный тип со знаком.

int8_t : 8-битное целое число со знаком

Определение типа: char

8-битный целочисленный тип со знаком.

long2 : два 64-битных целых числа со знаком.

Определение типа: long __attribute__((ext_vector_type(2)))

Вектор из двух длинных значений. Эти два длинных значения упакованы в одно 128-битное поле со 128-битным выравниванием.

long3 : три 64-битных целых числа со знаком.

Определение типа: long __attribute__((ext_vector_type(3)))

Вектор из трех длинных значений. Эти три длинных значения упакованы в одно 256-битное поле с 256-битным выравниванием.

long4 : четыре 64-битных целых числа со знаком.

Определение типа: long __attribute__((ext_vector_type(4)))

Вектор из четырех длинных значений. Эти четыре длинных значения упакованы в одно 256-битное поле с 256-битным выравниванием.

rs_matrix2x2 : матрица 2x2 из 32-битных чисел с плавающей запятой.

Структура со следующими полями:

плавающее м[4]

Квадратная матрица чисел с плавающей точкой 2x2. Записи сохраняются в массиве по адресу [строка*2 + столбец].

См. Матричные функции .

rs_matrix3x3 : матрица 3x3 из 32-битных чисел с плавающей запятой.

Структура со следующими полями:

плавающее м[9]

Квадратная матрица чисел с плавающей точкой 3x3. Записи сохраняются в массиве по адресу [строка*3 + столбец].

См. Матричные функции .

rs_matrix4x4 : матрица 4x4 с 32-битными числами с плавающей запятой.

Структура со следующими полями:

плавающий м[16]

Квадратная матрица чисел с плавающей точкой 4х4. Записи сохраняются в массиве по адресу [строка*4 + столбец].

См. Матричные функции .

rs_quaternion : Кватернион

Определение типа: float4

Квадратная матрица чисел с плавающей точкой 4x4, представляющая кватернион.

См. Функции кватерниона .

short2 : два 16-битных целых числа со знаком.

Определение типа: short __attribute__((ext_vector_type(2)))

Вектор из двух шорт. Эти два фрагмента упакованы в одно 32-битное поле с 32-битным выравниванием.

short3 : три 16-битных целых числа со знаком.

Определение типа: short __attribute__((ext_vector_type(3)))

Вектор из трех шорт. Эти три коротких поля упакованы в одно 64-битное поле с 64-битным выравниванием.

short4 : четыре 16-битных целых числа со знаком.

Определение типа: short __attribute__((ext_vector_type(4)))

Вектор из четырех шорт. Эти четыре коротких поля упакованы в одно 64-битное поле с 64-битным выравниванием.

size_t : тип размера без знака

Определение типа: uint64_t При компиляции для 64-разрядной версии.

Определение типа: uint32_t При компиляции для 32-разрядной версии.

Беззнаковый тип размера. Количество бит зависит от флагов компиляции.

ssize_t : Тип размера со знаком

Определение типа: int64_t При компиляции для 64-разрядной версии.

Определение типа: int32_t При компиляции для 32-разрядной версии.

Тип размера со знаком. Количество бит зависит от флагов компиляции.

uchar : 8-битное целое число без знака

Определение типа: uint8_t

8-битный беззнаковый целочисленный тип.

uchar2 : два 8-битных целых числа без знака.

Определение типа: uchar __attribute__((ext_vector_type(2)))

Вектор из двух учаров. Эти два поля uchar упакованы в одно 16-битное поле с 16-битным выравниванием.

uchar3 : три 8-битных целых числа без знака.

Определение типа: uchar __attribute__((ext_vector_type(3)))

Вектор из трёх учаров. Эти три поля uchar упакованы в одно 32-битное поле с 32-битным выравниванием.

uchar4 : четыре 8-битных целых числа без знака.

Определение типа: uchar __attribute__((ext_vector_type(4)))

Вектор из четырех учаров. Эти четыре поля uchar упакованы в одно 32-битное поле с 32-битным выравниванием.

uint : 32-битное целое число без знака

Определение типа: uint32_t

32-битный целочисленный тип без знака.

uint16_t : 16-битное целое число без знака

Определение типа: unsigned short

16-битный целочисленный тип без знака.

uint2 : два 32-битных целых числа без знака.

Определение типа: uint __attribute__((ext_vector_type(2)))

Вектор из двух единиц. Эти два uint упакованы в одно 64-битное поле с 64-битным выравниванием.

uint3 : три 32-битных целых числа без знака.

Определение типа: uint __attribute__((ext_vector_type(3)))

Вектор из трех единиц. Эти три uint упакованы в одно 128-битное поле со 128-битным выравниванием.

uint32_t : 32-битное целое число без знака

Определение типа: unsigned int

32-битный целочисленный тип без знака.

uint4 : четыре 32-битных целых числа без знака.

Определение типа: uint __attribute__((ext_vector_type(4)))

Вектор из четырех единиц. Эти четыре uint упакованы в одно 128-битное поле со 128-битным выравниванием.

uint64_t : 64-битное целое число без знака

Определение типа: unsigned long long Удалено из уровня API 21 и выше.

Определение типа: unsigned long Добавлено на уровне API 21.

64-битный целочисленный тип без знака.

uint8_t : 8-битное целое число без знака

Определение типа: unsigned char

8-битный беззнаковый целочисленный тип.

ulong : 64-битное целое число без знака

Определение типа: uint64_t

64-битный целочисленный тип без знака.

ulong2 : два 64-битных целых числа без знака.

Определение типа: ulong __attribute__((ext_vector_type(2)))

Вектор из двух улонгов. Эти два улонга упакованы в одно 128-битное поле со 128-битным выравниванием.

ulong3 : три 64-битных целых числа без знака.

Определение типа: ulong __attribute__((ext_vector_type(3)))

Вектор из трёх улонгов. Эти три поля ulong упакованы в одно 256-битное поле с 256-битным выравниванием.

ulong4 : четыре 64-битных целых числа без знака.

Определение типа: ulong __attribute__((ext_vector_type(4)))

Вектор из четырех улонгов. Эти четыре поля ulong упакованы в одно 256-битное поле с 256-битным выравниванием.

ushort : 16-битное целое число без знака

Определение типа: uint16_t

16-битный целочисленный тип без знака.

ushort2 : два 16-битных целых числа без знака.

Определение типа: ushort __attribute__((ext_vector_type(2)))

Вектор из двух ushorts. Эти два поля ushort упакованы в одно 32-битное поле с 32-битным выравниванием.

ushort3 : три 16-битных целых числа без знака.

Определение типа: ushort __attribute__((ext_vector_type(3)))

Вектор из трех ushorts. Эти три поля ushort упакованы в одно 64-битное поле с 64-битным выравниванием.

ushort4 : четыре 16-битных целых числа без знака.

Определение типа: ushort __attribute__((ext_vector_type(4)))

Вектор из четырех ushorts. Эти четыре поля ushort упакованы в одно 64-битное поле с 64-битным выравниванием.

,

Обзор

Скаляры:

RenderScript поддерживает следующие скалярные числовые типы:

8 бит 16 бит 32 бита 64 бита
Целое число: символ, int8_t короче, int16_t int32_t длинный, длинный, int64_t
Беззнаковое целое число: Учар, uint8_t короче, uint16_t uint, uint32_t улонг, uint64_t
Плавающая точка: половина плавать двойной

Векторы:

RenderScript поддерживает векторы фиксированного размера длиной 2, 3 и 4. Векторы объявляются с использованием общего имени типа, за которым следует 2, 3 или 4. Например, float4 , int3 , double2 , ulong4 .

Чтобы создать векторные литералы, используйте векторный тип, за которым следуют значения, заключенные в фигурные скобки, например (float3){1.0f, 2.0f, 3.0f} .

Доступ к записям вектора можно получить, используя разные стили именования.

Доступ к отдельным записям можно получить, поставив после имени переменной точку и:

  • Буквы x, y, z и w,
  • Буквы р, г, б и а,
  • Буква s или S, за которой следует индекс, начинающийся с нуля.

Например, с int4 myVar; следующие эквивалентны:
myVar.x == myVar.r == myVar.s0 == myVar.S0
myVar.y == myVar.g == myVar.s1 == myVar.S1
myVar.z == myVar.b == myVar.s2 == myVar.S2
myVar.w == myVar.a == myVar.s3 == myVar.S3

Доступ к нескольким записям вектора можно получить одновременно, используя идентификатор, который представляет собой объединение нескольких букв или индексов. Результирующий вектор имеет размер, равный количеству названных записей.

В приведенном выше примере доступ к двум средним записям можно получить с помощью myVar.yz , myVar.gb , myVar.s12 и myVar.S12 .

Записи не обязательно должны быть последовательными или в возрастающем порядке. Записи могут даже повторяться, если мы не пытаемся их присвоить. Вы также не можете смешивать стили именования.

Вот примеры того, что можно или нельзя делать:
float4 v4;
float3 v3;
float2 v2;
v2 = v4.xx; // Valid
v3 = v4.zxw; // Valid
v3 = v4.bba; // Valid
v3 = v4.s032; // Valid
v3.s120 = v4.S233; // Valid
v4.yz = v3.rg; // Valid
v4.yzx = v3.rg; // Invalid: mismatched sizes
v4.yzz = v3; // Invalid: z appears twice in an assignment
v3 = v3.xas0; // Invalid: can't mix xyzw with rgba nor s0...
v3 = v4.s034; // Invalid: the digit can only be 0, 1, 2, or 3

Матрицы и кватернионы:

RenderScript поддерживает квадратные матрицы фиксированного размера с плавающей запятой размером 2x2, 3x3 и 4x4. Типы называются rs_matrix2x2 , rs_matrix3x3 и rs_matrix4x4 . Список операций см. в разделе «Матричные функции» .

Кватернионы также поддерживаются через rs_quaternion . Список операций см. в разделе «Функции кватерионов» .

Краткое содержание

Типы
char2 Два 8-битных целых числа со знаком
char3 Три 8-битных целых числа со знаком
char4 Четыре 8-битных целых числа со знаком
двойной2 Два 64-битных числа с плавающей запятой
двойной3 Три 64-битных числа с плавающей запятой
двойной4 Четыре 64-битных числа с плавающей запятой
поплавок2 Два 32-битных числа с плавающей точкой
поплавок3 Три 32-битных числа с плавающей запятой
поплавок4 Четыре 32-битных числа с плавающей точкой
половина 16-битное значение с плавающей запятой
половина2 Два 16-битных числа с плавающей запятой
половина3 Три 16-битных числа с плавающей точкой
половина4 Четыре 16-битных числа с плавающей запятой
int16_t 16-битное целое число со знаком
int2 Два 32-битных целых числа со знаком
int3 Три 32-битных целых числа со знаком
int32_t 32-битное целое число со знаком
int4 Четыре 32-битных целых числа со знаком
int64_t 64-битное целое число со знаком
int8_t 8-битное целое число со знаком
длинный2 Два 64-битных целых числа со знаком
длинный3 Три 64-битных целых числа со знаком
длинный4 Четыре 64-битных целых числа со знаком
rs_matrix2x2 Матрица 2x2 из 32-битных чисел с плавающей запятой
rs_matrix3x3 Матрица 3x3 из 32-битных чисел с плавающей запятой
rs_matrix4x4 Матрица 4x4 из 32-битных чисел с плавающей запятой
rs_quaternion Кватернион
короткий2 Два 16-битных целых числа со знаком
короткий3 Три 16-битных целых числа со знаком
короткий4 Четыре 16-битных целых числа со знаком
size_t Беззнаковый тип размера
ssize_t Тип размера со знаком
Учар 8-битное целое число без знака
uchar2 Два 8-битных целых числа без знака
uchar3 Три 8-битных целых числа без знака
uchar4 Четыре 8-битных целых числа без знака
uint 32-битное целое число без знака
uint16_t 16-битное целое число без знака
uint2 Два 32-битных целых числа без знака
uint3 Три 32-битных целых числа без знака
uint32_t 32-битное целое число без знака
uint4 Четыре 32-битных целых числа без знака
uint64_t 64-битное целое число без знака
uint8_t 8-битное целое число без знака
улонг 64-битное целое число без знака
улонг2 Два 64-битных целых числа без знака
улонг3 Три 64-битных целых числа без знака
улонг4 Четыре 64-битных целых числа без знака
сокращать 16-битное целое число без знака
ushort2 Два 16-битных целых числа без знака
ushort3 Три 16-битных целых числа без знака
ushort4 Четыре 16-битных целых числа без знака

Типы

char2 : два 8-битных целых числа со знаком.

Определение типа: char __attribute__((ext_vector_type(2)))

Вектор из двух символов. Эти два символа упакованы в одно 16-битное поле с 16-битным выравниванием.

char3 : три 8-битных целых числа со знаком.

Определение типа: char __attribute__((ext_vector_type(3)))

Вектор из трех символов. Эти три символа упакованы в одно 32-битное поле с 32-битным выравниванием.

char4 : четыре 8-битных целых числа со знаком.

Определение типа: char __attribute__((ext_vector_type(4)))

Вектор из четырех символов. Эти четыре символа упакованы в одно 32-битное поле с 32-битным выравниванием.

double2 : два 64-битных числа с плавающей запятой.

Определение типа: double __attribute__((ext_vector_type(2)))

Вектор из двух двойников. Эти два двойных поля упакованы в одно 128-битное поле со 128-битным выравниванием.

double3 : три 64-битных числа с плавающей запятой.

Определение типа: double __attribute__((ext_vector_type(3)))

Вектор из трех двойников. Эти три двойных поля упакованы в одно 256-битное поле с 256-битным выравниванием.

double4 : четыре 64-битных числа с плавающей запятой.

Определение типа: double __attribute__((ext_vector_type(4)))

Вектор из четырех двойников. Эти четыре двойных поля упакованы в одно 256-битное поле с 256-битным выравниванием.

float2 : два 32-битных числа с плавающей запятой.

Определение типа: float __attribute__((ext_vector_type(2)))

Вектор из двух чисел с плавающей запятой. Эти два числа с плавающей запятой упакованы в одно 64-битное поле с 64-битным выравниванием.

Вектор из двух чисел с плавающей запятой. Эти два числа с плавающей запятой упакованы в одно 64-битное поле с 64-битным выравниванием.

float3 : три 32-битных числа с плавающей запятой.

Определение типа: float __attribute__((ext_vector_type(3)))

Вектор из трех чисел с плавающей запятой. Эти три числа с плавающей запятой упакованы в одно 128-битное поле со 128-битным выравниванием.

float4 : четыре 32-битных числа с плавающей запятой.

Определение типа: float __attribute__((ext_vector_type(4)))

Вектор из четырех типов float. Эти четыре числа с плавающей запятой упакованы в одно 128-битное поле со 128-битным выравниванием.

половина : 16-битное значение с плавающей запятой

Определение типа: __fp16 Добавлено на уровне API 23.

16-битное значение с плавающей запятой.

half2 : два 16-битных числа с плавающей запятой.

Определение типа: half __attribute__((ext_vector_type(2))) Добавлено на уровне API 23.

Векторная версия полупоплавкового типа. Предоставляет два полуполя, упакованные в одно 32-битное поле с 32-битным выравниванием.

half3 : три 16-битных числа с плавающей запятой.

Определение типа: half __attribute__((ext_vector_type(3))) Добавлено на уровне API 23.

Векторная версия полупоплавкового типа. Предоставляет три полуполя, упакованные в одно 64-битное поле с 64-битным выравниванием.

half4 : четыре 16-битных числа с плавающей запятой.

Определение типа: half __attribute__((ext_vector_type(4))) Добавлено на уровне API 23.

Векторная версия полупоплавкового типа. Предоставляет четыре полуполя, упакованные в одно 64-битное поле с 64-битным выравниванием.

int16_t : 16-битное целое число со знаком

Типовое определение: short

16-битный целочисленный тип со знаком.

int2 : два 32-битных целых числа со знаком.

Определение типа: int __attribute__((ext_vector_type(2)))

Вектор из двух целых чисел. Эти два целых числа упакованы в одно 64-битное поле с 64-битным выравниванием.

int3 : три 32-битных целых числа со знаком.

Определение типа: int __attribute__((ext_vector_type(3)))

Вектор из трех целых чисел. Эти три целых числа упакованы в одно 128-битное поле со 128-битным выравниванием.

int32_t : 32-битное целое число со знаком

Определение типа: int

32-битный целочисленный тип со знаком.

int4 : четыре 32-битных целых числа со знаком.

Определение типа: int __attribute__((ext_vector_type(4)))

Вектор из четырех целых чисел. Эти две четверки упакованы в одно 128-битное поле со 128-битным выравниванием.

int64_t : 64-битное целое число со знаком

Определение типа: long long Удалено из уровня API 21 и выше.

Определение типа: long Добавлено на уровне API 21.

64-битный целочисленный тип со знаком.

int8_t : 8-битное целое число со знаком

Определение типа: char

8-битный целочисленный тип со знаком.

long2 : два 64-битных целых числа со знаком.

Определение типа: long __attribute__((ext_vector_type(2)))

Вектор из двух длинных значений. Эти два длинных значения упакованы в одно 128-битное поле со 128-битным выравниванием.

long3 : три 64-битных целых числа со знаком.

Определение типа: long __attribute__((ext_vector_type(3)))

Вектор из трех длинных значений. Эти три длинных значения упакованы в одно 256-битное поле с 256-битным выравниванием.

long4 : четыре 64-битных целых числа со знаком.

Определение типа: long __attribute__((ext_vector_type(4)))

Вектор из четырех длинных значений. Эти четыре длинных значения упакованы в одно 256-битное поле с 256-битным выравниванием.

rs_matrix2x2 : матрица 2x2 из 32-битных чисел с плавающей запятой.

Структура со следующими полями:

плавающее м[4]

Квадратная матрица чисел с плавающей точкой 2x2. Записи сохраняются в массиве по адресу [строка*2 + столбец].

См. Матричные функции .

rs_matrix3x3 : матрица 3x3 из 32-битных чисел с плавающей запятой.

Структура со следующими полями:

плавающее м[9]

Квадратная матрица чисел с плавающей точкой 3x3. Записи сохраняются в массиве по адресу [строка*3 + столбец].

См. Матричные функции .

rs_matrix4x4 : матрица 4x4 с 32-битными числами с плавающей запятой.

Структура со следующими полями:

плавающий м[16]

Квадратная матрица чисел с плавающей точкой 4х4. Записи сохраняются в массиве по адресу [строка*4 + столбец].

См. Матричные функции .

rs_quaternion : Кватернион

Определение типа: float4

Квадратная матрица чисел с плавающей точкой 4x4, представляющая кватернион.

См. Функции кватерниона .

short2 : два 16-битных целых числа со знаком.

Определение типа: short __attribute__((ext_vector_type(2)))

Вектор из двух шорт. Эти два фрагмента упакованы в одно 32-битное поле с 32-битным выравниванием.

short3 : три 16-битных целых числа со знаком.

Определение типа: short __attribute__((ext_vector_type(3)))

Вектор из трех шорт. Эти три коротких поля упакованы в одно 64-битное поле с 64-битным выравниванием.

short4 : четыре 16-битных целых числа со знаком.

Определение типа: short __attribute__((ext_vector_type(4)))

Вектор из четырех шорт. Эти четыре коротких поля упакованы в одно 64-битное поле с 64-битным выравниванием.

size_t : тип размера без знака

Определение типа: uint64_t При компиляции для 64-разрядной версии.

Определение типа: uint32_t При компиляции для 32-разрядной версии.

Беззнаковый тип размера. Количество бит зависит от флагов компиляции.

ssize_t : Тип размера со знаком

Определение типа: int64_t При компиляции для 64-разрядной версии.

Определение типа: int32_t При компиляции для 32-разрядной версии.

Тип размера со знаком. Количество бит зависит от флагов компиляции.

uchar : 8-битное целое число без знака

Определение типа: uint8_t

8-битный беззнаковый целочисленный тип.

uchar2 : два 8-битных целых числа без знака.

Определение типа: uchar __attribute__((ext_vector_type(2)))

Вектор из двух учаров. Эти два поля uchar упакованы в одно 16-битное поле с 16-битным выравниванием.

uchar3 : три 8-битных целых числа без знака.

Определение типа: uchar __attribute__((ext_vector_type(3)))

Вектор из трёх учаров. Эти три поля uchar упакованы в одно 32-битное поле с 32-битным выравниванием.

uchar4 : четыре 8-битных целых числа без знака.

Определение типа: uchar __attribute__((ext_vector_type(4)))

Вектор из четырех учаров. Эти четыре поля uchar упакованы в одно 32-битное поле с 32-битным выравниванием.

uint : 32-битное целое число без знака

Определение типа: uint32_t

32-битный целочисленный тип без знака.

uint16_t : 16-битное целое число без знака

Определение типа: unsigned short

16-битный целочисленный тип без знака.

uint2 : два 32-битных целых числа без знака.

Определение типа: uint __attribute__((ext_vector_type(2)))

Вектор из двух единиц. Эти два uint упакованы в одно 64-битное поле с 64-битным выравниванием.

uint3 : три 32-битных целых числа без знака.

Определение типа: uint __attribute__((ext_vector_type(3)))

Вектор из трех единиц. Эти три uint упакованы в одно 128-битное поле со 128-битным выравниванием.

uint32_t : 32-битное целое число без знака

Определение типа: unsigned int

32-битный целочисленный тип без знака.

uint4 : четыре 32-битных целых числа без знака.

Определение типа: uint __attribute__((ext_vector_type(4)))

Вектор из четырех единиц. Эти четыре uint упакованы в одно 128-битное поле со 128-битным выравниванием.

uint64_t : 64-битное целое число без знака

Определение типа: unsigned long long Удалено из уровня API 21 и выше.

Определение типа: unsigned long Добавлено на уровне API 21.

64-битный целочисленный тип без знака.

uint8_t : 8-битное целое число без знака

Определение типа: unsigned char

8-битный беззнаковый целочисленный тип.

ulong : 64-битное целое число без знака

Определение типа: uint64_t

64-битный целочисленный тип без знака.

ulong2 : два 64-битных целых числа без знака.

Определение типа: ulong __attribute__((ext_vector_type(2)))

Вектор из двух улонгов. Эти два улонга упакованы в одно 128-битное поле со 128-битным выравниванием.

ulong3 : три 64-битных целых числа без знака.

Определение типа: ulong __attribute__((ext_vector_type(3)))

Вектор из трёх улонгов. Эти три поля ulong упакованы в одно 256-битное поле с 256-битным выравниванием.

ulong4 : четыре 64-битных целых числа без знака.

Определение типа: ulong __attribute__((ext_vector_type(4)))

Вектор из четырех улонгов. Эти четыре поля ulong упакованы в одно 256-битное поле с 256-битным выравниванием.

ushort : 16-битное целое число без знака

Определение типа: uint16_t

16-битный целочисленный тип без знака.

ushort2 : два 16-битных целых числа без знака.

Определение типа: ushort __attribute__((ext_vector_type(2)))

Вектор из двух ushorts. Эти два поля ushort упакованы в одно 32-битное поле с 32-битным выравниванием.

ushort3 : три 16-битных целых числа без знака.

Определение типа: ushort __attribute__((ext_vector_type(3)))

Вектор из трех ushorts. Эти три поля ushort упакованы в одно 64-битное поле с 64-битным выравниванием.

ushort4 : четыре 16-битных целых числа без знака.

Определение типа: ushort __attribute__((ext_vector_type(4)))

Вектор из четырех ushorts. Эти четыре поля ushort упакованы в одно 64-битное поле с 64-битным выравниванием.