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.