Обзор
Скаляры:
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-битным выравниванием.