RenderScript Sayısal Türleri

Genel bakış

Skalerler:

RenderScript aşağıdaki skaler sayısal türleri destekler:

8 bit 16 bit 32 bit 64 bit
Tam sayı: karakter, int8_t kısa, int16_t int32_t uzun, uzun, int64_t
İmzasız tam sayı: Uchar, uint8_t ushort, uint16_t uint, uint32_t ulong, uint64_t
Kayan nokta: yarı kayan çift

Vektörler:

RenderScript, 2, 3 ve 4 uzunluğunda sabit boyutlu vektörleri destekler. Vektörler, genel tür adı ve ardından 2, 3 veya 4 kullanılarak tanımlanır. Ör. float4, int3, double2, ulong4.

Vektör sabit değerleri oluşturmak için vektör türünü ve ardından küme parantezleri arasındaki değerleri kullanın (ör. (float3){1.0f, 2.0f, 3.0f}).

Bir vektörün girişlerine farklı adlandırma stilleri kullanılarak erişilebilir.

Tek girişlere, değişken adı bir noktayla ve aşağıdaki durumlar girilerek erişilebilir:

  • x, y, z ve w harfleri,
  • R, g, b ve a harfleri
  • S veya S harfi ve ardından sıfır tabanlı bir dizin.

Örneğin, int4 myVar; için aşağıdaki değerler eş değerdir:
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

Bir vektörün birden çok girişine, birden çok harf veya dizinin birleşimi olan bir tanımlayıcı kullanılarak aynı anda erişilebilir. Ortaya çıkan vektörün boyutu, adlandırılan giriş sayısına eşittir.

Yukarıdaki örnekte, ortadaki iki girişe myVar.yz, myVar.gb, myVar.s12 ve myVar.S12 kullanılarak erişilebilir.

Girişlerin bitişik veya artan sırada olması gerekmez. Girişler, atamaya çalışmadığımız sürece tekrarlanabilir. Adlandırma stillerini de karıştıramazsınız.

Yapılabilecek ve yapılamayacak şeylere dair örnekler:
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

Matrisler ve Kuternyonlar:

RenderScript, 2x2, 3x3 ve 4x4 boyutlu kayan öğelerin sabit boyutlu kare matrislerini destekler. Türler rs_matrix2x2, rs_matrix3x3 ve rs_matrix4x4 olarak adlandırılır. İşlemlerin listesi için Matrix Functions sayfasını inceleyin.

Kuaternasyonlar rs_quaternion aracılığıyla da desteklenir. İşlemler listesi için Quaterion İşlevleri bölümüne bakın.

Özet

Türler
karakter2 İki 8 bit işaretli tam sayı
karakter3 8 bitlik üç işaretli tam sayı
karakter4 Dört 8 bit işaretli tam sayı
double2 İki 64 bit kayan
double3 Üç adet 64 bitlik kayan
çift4 Dört 64 bit kayan
float2 İki adet 32 bit kayan nokta
float3 Üç adet 32 bitlik kayan
kayan4 Dört adet 32 bit kayan nokta
yarım 16 bit kayan nokta değeri
2. yarı İki 16 bit kayan
3. Half Üç adet 16 bit kayan nokta
4. yarı Dört 16 bit kayan
int16_t 16 bit işaretli tam sayı
int2 32 bitlik iki işaretli tam sayı
int3 32 bitlik üç işaretli tam sayı
int32_t 32 bit imzalı tam sayı
int4 Dört 32 bit işaretli tam sayı
int64_t 64 bit imzalı tam sayı
int8_t 8 bit işaretli tam sayı
long2 İki adet 64 bit işaretli tam sayı
long3 64 bitlik üç işaretli tam sayı
long4 Dört adet 64 bit işaretli tam sayı
rs_matrix2x2 32 bit kayan noktalı 2x2 matris
rs_matrix3x3 32 bit kayan öğelerin 3x3 matrisi
rs_matrix4x4 32 bit kayan noktalı 4x4 matrisi
rs_quaternion Kuaterniyon
short2 16 bitlik iki işaretli tam sayı
short3 16 bitlik üç işaretli tam sayı
short4 Dört 16 bit işaretli tam sayı
beden_t İmzasız beden türü
boyut_t İmzalanmış beden türü
Uchar 8 bit imzasız tam sayı
uchar2 İki 8 bit işaretsiz tam sayı
uchar3 8 bitlik üç imzasız tam sayı
uchar4 Dört 8 bit imzasız tam sayı
uint 32 bit imzasız tam sayı
uint16_t 16 bit imzasız tam sayı
uint2 İki 32 bit imzasız tam sayı
uint3 32 bitlik üç imzasız tam sayı
uint32_t 32 bit imzasız tam sayı
uint4 Dört 32 bit imzasız tam sayı
uint64_t 64 bit imzasız tam sayı
uint8_t 8 bit imzasız tam sayı
uzun 64 bit imzasız tam sayı
ulong2 İki 64 bit imzasız tam sayı
ulong3 64 bitlik üç imzasız tam sayı
ulong4 Dört 64 bit imzasız tam sayı
kısa 16 bit imzasız tam sayı
ushort2 İki 16 bit işaretsiz tam sayı
ushort3 16 bitlik üç imzasız tam sayı
ushort4 Dört 16 bit imzasız tam sayı

Türler

char2 : 8 bitlik iki işaretli tam sayı

Şu tür değer: char __attribute__((ext_Vektör_type(2)))

İki karakterli vektör. Bu iki karakter 16 bit hizalamayla 16 bitlik tek bir alanda toplanır.

char3 : 8 bitlik üç işaretli tam sayı

Türdef: char __attribute__((ext_Vektör_type(3)))

Üç karakterden oluşan bir vektör. Bu üç karakter, 32 bit hizalamayla 32 bitlik tek bir alanda toplanır.

char4 : Dört 8 bit işaretli tam sayı

Şu tür değer: char __attribute__((ext_Vektör_type(4)))

Dört karakterden oluşan bir vektör. Bu dört karakter, 32 bit hizalamayla 32 bitlik tek bir alanda toplanır.

double2 : İki 64 bit kayan nokta

typedef: double __attribute__((ext_Vektör_type(2)))

İki çift vektör. Bu iki çift alan, 128 bit hizalamayla tek bir 128 bitlik alanda toplanır.

double3 : Üç adet 64 bit kayan nokta

Türdef: çift __özellik__((ext_Vektör_type(3))))

Üç çift vektör. Bu üç çift alan, 256 bit hizalamayla 256 bitlik tek bir alanda toplanır.

double4 : Dört 64 bit kayan nokta

typedef: çift __attribute__((ext_Vektör_type(4)))

Dört çift vektör. Bu dört çift alan, 256 bit hizalamayla 256 bitlik tek bir alanda toplanır.

float2 : İki 32 bit kayan nokta

Şu tür değer: float __attribute__((ext_Vektör_type(2)))

İki kayan noktalı vektör. Bu iki kayan öğe, 64 bit hizalamayla 64 bitlik tek bir alanda paketlenir.

İki kayan noktalı vektör. Bu iki kayan öğe, 64 bit hizalamayla 64 bitlik tek bir alanda paketlenir.

float3 : Üç adet 32 bit kayan nokta

Şu tür değer: float __attribute__((ext_Vektör_type(3)))

Üç kayan noktalı vektör. Bu üç kayan öğe, 128 bit hizalamayla 128 bitlik tek bir alanda toplanır.

float4 : Dört 32 bit kayan nokta

Şu tür değer: float __attribute__((ext_Vektör_type(4)))

Dört kayan noktalı vektör türü. Bu dört kayma öğesi, 128 bit hizalamayla 128 bitlik tek bir alanda paketlenir.

yarım : 16 bit kayan nokta değeri

Şunun typedef'i: __fp16 API düzeyi 23'te eklendi

16 bitlik kayan nokta değeri.

half2 : İki adet 16 bit kayan nokta

Şu tür değer: yarım __attribute__((ext_Vektör_type(2))) API düzeyi 23'e eklendi

Yarım kayan nokta türünün vektör sürümü. 32 bit hizalamayla 32 bitlik tek bir alana yerleştirilmiş iki yarım alan sağlar.

half3 : Üç adet 16 bit kayan nokta

Şu tür değer: yarım __attribute__((ext_Vektör_type(3))) API düzeyi 23'e eklendi

Yarım kayan nokta türünün vektör sürümü. 64 bit hizalamaya sahip tek bir 64 bitlik alana yerleştirilmiş üç yarım alan sağlar.

half4 : Dört adet 16 bit kayan nokta

Şu tür değer: yarım __attribute__((ext_Vektör_type(4))) API düzeyi 23'e eklendi

Yarım kayan nokta türünün vektör sürümü. 64 bit hizalamaya sahip tek bir 64 bitlik alana yerleştirilmiş dört yarım alan sağlar.

int16_t : 16 bit işaretli tam sayı

typedef of: kısa

16 bit işaretli tam sayı türü.

int2 : İki 32 bit işaretli tam sayı

Şu tür bir tür: int __attribute__((ext_Vektör_type(2)))

İki int vektörü. Bu iki int, 64 bit hizalamayla 64 bitlik tek bir alanda bulunur.

int3 : 32 bitlik üç işaretli tam sayı

Şu tür değer: int __attribute__((ext_Vektör_type(3)))

Üç int vektörü. Bu üç int, 128 bit hizalamayla 128 bitlik tek bir alanda bulunur.

int32_t : 32 bit işaretli tam sayı

Bir typedef: int

32 bit işaretli tam sayı türü.

int4 : Dört 32 bit işaretli tam sayı

Şu tür değer: int __attribute__((ext_Vektör_type(4)))

Dört int vektörü. Bu dört dörtlü, 128 bit hizalamayla 128 bitlik tek bir alanda toplanır.

int64_t : 64 bit işaretli tam sayı

typedef: long long API düzeyi 21 ve sonraki sürümlerden kaldırıldı

typedef: long API düzeyi 21'e eklendi

64 bit işaretli tam sayı türü.

int8_t : 8 bit işaretli tam sayı

Bir typedef: char

8 bit imzalı tam sayı türü.

long2 : İki 64 bit işaretli tam sayı

typedef: long __attribute__((ext_Vektör_type(2)))

İki uzun vektör. Bu iki uzun dosya, 128 bit hizalamayla 128 bitlik tek bir alanda toplanır.

long3 : 64 bitlik üç işaretli tam sayı

typedef: long __attribute__((ext_Vektör_type(3))))

Üç uzun vektör. Bu üç uzun dosya, 256 bit hizalamayla 256 bitlik tek bir alanda toplanır.

long4 : Dört 64 bit işaretli tam sayı

typedef: long __attribute__((ext_Vektör_type(4)))

Dört uzun vektör. Bu dört uzun dosya, 256 bit hizalamayla 256 bitlik tek bir alanda toplanır.

rs_matrix2x2 : 32 bitlik kayan noktalı 2x2 matris

Aşağıdaki alanlara sahip bir yapı:     

kayan noktalı m[4]

2x2 boyutunda kare kayan noktalı matris. Girişler dizide [row*2 + col] konumunda depolanır.

Matrix İşlevleri başlıklı makaleyi inceleyin.

rs_matrix3x3 : 32 bitlik kayan noktalı 3x3 matris

Aşağıdaki alanlara sahip bir yapı:     

kayan noktalı m[9]

3x3 boyutunda, kayan öğelerin kare şeklinde matrisi. Girişler dizide [row*3 + col] konumunda depolanır.

Matrix İşlevleri başlıklı makaleyi inceleyin.

rs_matrix4x4 : 32 bitlik kayan noktalı 4x4 matrisi

Aşağıdaki alanlara sahip bir yapı:     

kayan noktalı m[16]

4x4 boyutunda, kayan öğelerin kare şeklinde matrisi. Girişler dizide [row*4 + col] konumunda depolanır.

Matrix İşlevleri başlıklı makaleyi inceleyin.

rs_quaternion : Kuternion

Typedef: float4

Bir dördünü temsil eden, kare şeklinde 4x4'lük kayan noktalı matris.

Quaternion İşlevleri bölümüne göz atın.

short2 : 16 bitlik iki işaretli tam sayı

Şu tür değer: kısa __attribute__((ext_Vektör_type(2)))

İki şort çizimi. Bu iki Shorts videosu 32 bit hizalamayla tek bir 32 bitlik alanda toplanır.

short3 : 16 bitlik üç işaretli tam sayı

typedef: kısa __attribute__((ext_Vektör_type(3)))

Üç şort görseli. Bu üç kısa alan, 64 bit hizalamayla 64 bitlik tek bir alanda toplanır.

short4 : Dört 16 bit işaretli tam sayı

Typedef: kısa __attribute__((ext_Vektör_type(4)))

Dört şort vektörü. Bu dört kısa alan, 64 bit hizalamayla 64 bitlik tek bir alanda toplanır.

size_t : İmzasız beden türü

A typedef: uint64_t 64 bit için derleme yaparken.

Bir typedef: uint32_t 32 bit için derleme yaparken.

İmzalanmamış beden türü. Bit sayısı, derleme bayraklarına bağlıdır.

ssize_t : İmzalanmış beden türü

A typedef: int64_t 64 bit için derleme yaparken.

A typedef: int32_t 32 bit için derleme yaparken.

İmzalanmış beden türü. Bit sayısı, derleme bayraklarına bağlıdır.

uchar : 8 bit imzasız tam sayı

Bir typedef: uint8_t

8 bit imzasız tam sayı türü.

uchar2 : 8 bitlik iki imzasız tam sayı

Türdef: uchar __attribute__((ext_Vektör_type(2)))

İki uchar vektörü. Bu iki yardımcı alan, 16 bit hizalamayla 16 bitlik tek bir alanda toplanır.

uchar3 : 8 bitlik üç imzasız tam sayı

Şu tür değer: uchar __attribute__((ext_Vektör_type(3)))

Üç uchars vektörü. Bu üç yardımcı alan, 32 bit hizalamayla 32 bitlik tek bir alanda toplanır.

uchar4 : Dört 8 bit imzasız tam sayı

Şu tür değer: uchar __attribute__((ext_Vektör_type(4)))

Dört uchars vektörü. Bu dört Uchar alanı, 32 bit hizalamayla 32 bitlik tek bir alanda toplanır.

uint : 32 bit imzasız tam sayı

Bir typedef: uint32_t

32 bit imzasız tam sayı türü.

uint16_t : 16 bit imzasız tam sayı

A typedef of: unSignature kısa

16 bit imzasız tam sayı türü.

uint2 : 32 bitlik iki imzasız tam sayı

Şu tür değer: uint __attribute__((ext_Vektör_type(2)))

İki Uint vektörü. Bu iki ipucu, 64 bit hizalamayla 64 bitlik tek bir alanda toplanır.

uint3 : 32 bitlik üç imzasız tam sayı

Şu tür bir tür: uint __attribute__((ext_Vektör_type(3)))

Üç Uint vektörü. Bu üç ipucu, 128 bit hizalamayla 128 bitlik tek bir alanda toplanır.

uint32_t : 32 bit imzasız tam sayı

typedef of: unSignature int (İmzasız int)

32 bit imzasız tam sayı türü.

uint4 : Dört 32 bit imzalanmamış tam sayı

Şu tür bir tür: uint __attribute__((ext_Vektör_type(4)))

Dört Uint vektörü. Bu dört ipucu, 128 bit hizalamayla birlikte 128 bitlik tek bir alanda bulunur.

uint64_t : 64 bit imzasız tam sayı

Typedef: unsignal long API düzeyi 21 ve sonraki sürümlerden kaldırıldı

A typedef of: unSignature long API düzeyi 21'de eklendi

64 bit imzasız tam sayı türü.

uint8_t : 8 bit imzasız tam sayı

A typedef: unsigned char (imzasız karakter)

8 bit imzasız tam sayı türü.

ulong : 64 bit imzasız tam sayı

Bir typedef: uint64_t

64 bit imzasız tam sayı türü.

ulong2 : İki 64 bit işaretsiz tam sayı

Typedef: ulong __attribute__((ext_Vektör_type(2))))

İki düzlem vektörü. Bu iki öğe, 128 bit hizalamayla 128 bitlik tek bir alanda toplanır.

ulong3 : 64 bitlik üç imzasız tam sayı

Typedef: ulong __attribute__((ext_Vektör_type(3))))

Üç düzlemden oluşan bir vektör. Bu üç uzun alan, 256 bit hizalamayla 256 bitlik tek bir alanda toplanır.

ulong4 : Dört 64 bit imzasız tam sayı

typedef: ulong __attribute__((ext_Vektör_type(4)))

Dört uzun uzunluğunda bir vektör. Bu dört uzun alan, 256 bit hizalamayla 256 bitlik tek bir alanda toplanır.

ushort : 16 bit imzasız tam sayı

Bir typedef: uint16_t

16 bit imzasız tam sayı türü.

ushort2 : 16 bitlik iki imzasız tam sayı

Bir typedef: ushort __attribute__((ext_Vektör_type(2)))

İki ushorts görseli. Bu iki ushort alan, 32 bit hizalamayla 32 bitlik tek bir alanda toplanır.

ushort3 : 16 bitlik üç imzasız tam sayı

Bir typedef: ushort __attribute__((ext_Vektör_type(3)))

Üç ushorts resmi. Bu üç ushort alan, 64 bit hizalamayla 64 bitlik tek bir alanda toplanır.

ushort4 : Dört 16 bit imzasız tam sayı

Bir typedef: ushort __attribute__((ext_Vektör_type(4)))

Dört ushorts vektörü. Bu dört ushort alan, 64 bit hizalamayla 64 bitlik tek bir alanda toplanır.