Ringkasan
Skalar:
RenderScript mendukung jenis numerik skalar berikut:
8 bit | 16 bit | 32 bit | 64 bit | |
{i>Integer<i} (Bilangan bulat): | karakter, int8_t | singkat, int16_t | int32_t | long, long long, int64_t |
Bilangan bulat tidak bertanda tangan: | uchar, uint8_t | ushort, uint16_t | {i>uint<i}, uint32_t | ulong, uint64_t |
Floating point: | paruh babak | float | ganda |
Vektor:
RenderScript mendukung vektor ukuran tetap dengan panjang 2, 3, dan 4. Vektor dideklarasikan menggunakan nama tipe umum diikuti oleh 2, 3, atau 4. Misalnya float4, int3, double2, ulong4.
Untuk membuat literal vektor, gunakan jenis vektor diikuti dengan nilai yang diapit oleh tanda kurung kurawal, misalnya (float3){1.0f, 2.0f, 3.0f}
.
Entri dari vektor dapat diakses menggunakan gaya penamaan yang berbeda.
Entri tunggal dapat diakses dengan mengikuti nama variabel dengan titik dan:
- Huruf x, y, z, dan w,
- Huruf r, g, b, dan a,
- Huruf s atau S, diikuti dengan indeks berbasis nol.
Misalnya, dengan int4 myVar;
, hal berikut setara:
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
Beberapa entri vektor dapat diakses sekaligus dengan menggunakan ID yang merupakan penyambungan dari beberapa huruf atau indeks. Vektor yang dihasilkan memiliki ukuran yang sama dengan jumlah entri yang dinamai.
Dengan contoh di atas, dua entri tengah dapat diakses menggunakan
myVar.yz
, myVar.gb
, myVar.s12
, dan myVar.S12
.
Entri tidak harus berdekatan atau dalam urutan yang meningkat. Entri bahkan dapat diulang selama kita tidak mencoba menugaskannya. Anda juga tidak dapat mencampur gaya penamaan.
Berikut contoh hal yang dapat atau tidak dapat dilakukan:
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
Matriks dan Kuaternion:
RenderScript mendukung matriks persegi ukuran tetap float dengan ukuran 2x2, 3x3, dan 4x4. Jenisnya bernama rs_matrix2x2, rs_matrix3x3, dan rs_matrix4x4. Lihat Fungsi Matriks untuk daftar operasi.
Kuaternion juga didukung melalui rs_quaternion. Lihat Fungsi Kuaterion untuk daftar operasi.
Ringkasan
Jenis | |
---|---|
karakter2 | Dua bilangan bulat bertanda 8 bit |
karakter3 | Tiga bilangan bulat bertanda 8 bit |
karakter4 | Empat bilangan bulat dengan tanda tangan 8 bit |
double2 | Dua float 64 bit |
double3 | Tiga float 64 bit |
double4 | Empat float 64 bit |
float2 | Dua float 32 bit |
float3 | Tiga float 32 bit |
float4 | Empat float 32 bit |
setengah | Nilai floating point 16 bit |
setengah2 | Dua float 16 bit |
setengah3 | Tiga float 16 bit |
setengah 4 | Empat float 16 bit |
int16_t | Bilangan bulat 16 bit dengan tanda tangan |
int2 | Dua bilangan bulat bertanda 32 bit |
int3 | Tiga bilangan bulat bertanda 32 bit |
int32_t | Bilangan bulat dengan tanda tangan 32 bit |
int4 | Empat bilangan bulat bertanda 32 bit |
int64_t | Bilangan bulat dengan tanda tangan 64 bit |
int8_t | Bilangan bulat dengan tanda tangan 8 bit |
panjang2 | Dua bilangan bulat bertanda 64 bit |
panjang3 | Tiga bilangan bulat bertanda 64 bit |
panjang4 | Empat bilangan bulat bertanda 64 bit |
rs_matrix2x2 | Matriks 2x2 dari float 32 bit |
rs_matrix3x3 | Matriks 3x3 dari float 32 bit |
rs_matrix4x4 | Matriks 4x4 dari float 32 bit |
rs_quaternion | Kuaternion |
pendek2 | Dua bilangan bulat bertanda 16 bit |
singkat3 | Tiga bilangan bulat bertanda 16 bit |
short4 | Empat bilangan bulat 16 bit bertanda tangan |
size_t [t_ukuran] | Jenis ukuran yang tidak ditandatangani |
ssize_t [t_ukuran] | Jenis ukuran yang ditandatangani |
uchar | Bilangan bulat tanpa tanda tangan 8 bit |
uchar2 | Dua bilangan bulat tanpa tanda tangan 8 bit |
uchar3 | Tiga bilangan bulat tanpa tanda tangan 8 bit |
uchar4 | Empat bilangan bulat tanpa tanda tangan 8 bit |
uint | Bilangan bulat tanpa tanda tangan 32 bit |
uint16_t | Bilangan bulat tanpa tanda tangan 16 bit |
uint2 | Dua bilangan bulat tanpa tanda tangan 32 bit |
uint3 | Tiga bilangan bulat tanpa tanda tangan 32 bit |
uint32_t | Bilangan bulat tanpa tanda tangan 32 bit |
uint4 | Empat bilangan bulat tanpa tanda tangan 32 bit |
uint64_t | Bilangan bulat tanpa tanda tangan 64 bit |
uint8_t | Bilangan bulat tanpa tanda tangan 8 bit |
ulong | Bilangan bulat tanpa tanda tangan 64 bit |
ulong2 | Dua bilangan bulat tanpa tanda tangan 64 bit |
ulong3 | Tiga bilangan bulat tanpa tanda tangan 64 bit |
ulong4 | Empat bilangan bulat tanpa tanda tangan 64 bit |
singkat | Bilangan bulat tanpa tanda tangan 16 bit |
ushort2 | Dua bilangan bulat tanpa tanda tangan 16 bit |
ushort3 | Tiga bilangan bulat tanpa tanda tangan 16 bit |
ushort4 | Empat bilangan bulat tanpa tanda tangan 16 bit |
Jenis
char2 : Dua bilangan bulat dengan tanda tangan 8 bit
Typedef dari: char __attribute__((ext_vector_type(2)))
Vektor dua karakter. Kedua karakter ini dikemas ke dalam satu kolom 16 bit dengan penyelarasan 16 bit.
char3 : Tiga bilangan bulat dengan tanda tangan 8 bit
Typedef dari: char __attribute__((ext_vector_type(3)))
Vektor tiga karakter. Ketiga karakter ini dikemas ke dalam satu kolom 32 bit dengan penyelarasan 32 bit.
char4 : Empat bilangan bulat dengan tanda tangan 8 bit
Typedef dari: char __attribute__((ext_vector_type(4)))
Vektor empat karakter. Keempat karakter ini dikemas ke dalam satu kolom 32 bit dengan penyelarasan 32 bit.
double2 : Dua float 64 bit
typedef dari: __attribute__ ganda ((ext_vector_type(2)))
Vektor dua double. Dua kolom ganda ini dikemas ke dalam satu kolom 128 bit dengan perataan 128 bit.
double3 : Tiga float 64 bit
Typedef dari: __attribute__ ganda ((ext_vector_type(3)))
Vektor tiga double. Tiga kolom ganda ini dikemas ke dalam satu kolom 256 bit dengan perataan 256 bit.
double4 : Empat float 64 bit
Typedef dari: __attribute__ ganda ((ext_vector_type(4)))
Vektor empat double. Keempat kolom ganda ini dikemas ke dalam satu kolom 256 bit dengan penyelarasan 256 bit.
float2 : Dua float 32 bit
typedef dari: float __attribute__((ext_vector_type(2)))
Vektor dua float. Kedua {i>float<i} ini dikemas ke dalam satu bidang 64 bit dengan penyelarasan 64 bit.
Vektor dua float. Kedua {i>float<i} ini dikemas ke dalam satu bidang 64 bit dengan penyelarasan 64 bit.
float3 : Tiga float 32 bit
typedef dari: float __attribute__((ext_vector_type(3)))
Vektor tiga float. Ketiga float ini dikemas ke dalam satu kolom 128 bit dengan perataan 128 bit.
float4 : Empat float 32 bit
typedef dari: float __attribute__((ext_vector_type(4)))
Vektor empat jenis float. Keempat float ini dikemas ke dalam satu kolom 128 bit dengan penyelarasan 128 bit.
half : Nilai floating point 16 bit
Jenis: __fp16 Ditambahkan di API level 23
Nilai floating point 16 bit.
half2 : Dua float 16 bit
Typedef dari: setengah __attribute__((ext_vector_type(2))) Ditambahkan di API level 23
Versi vektor dari jenis half float. Menyediakan dua kolom setengah yang dikemas ke dalam satu kolom 32 bit dengan penyelarasan 32 bit.
half3 : Tiga float 16 bit
Typedef dari: setengah __attribute__((ext_vector_type(3))) Ditambahkan di API level 23
Versi vektor dari jenis half float. Menyediakan tiga kolom setengah yang dikemas ke dalam satu kolom 64 bit dengan penyelarasan 64 bit.
half4 : Empat float 16 bit
Typedef dari: setengah __attribute__((ext_vector_type(4))) Ditambahkan di API level 23
Versi vektor dari jenis half float. Menyediakan empat kolom setengah yang dikemas ke dalam satu kolom 64 bit dengan penyelarasan 64 bit.
int16_t : Bilangan bulat 16 bit dengan tanda tangan
Jenis: singkat
Jenis integer dengan tanda tangan 16 bit.
int2 : Dua bilangan bulat dengan tanda tangan 32 bit
Typedef dari: int __attribute__((ext_vector_type(2)))
Vektor dua int. Kedua int ini dikemas ke dalam satu bidang 64 bit dengan keselarasan 64 bit.
int3 : Tiga bilangan bulat dengan tanda tangan 32 bit
Typedef dari: int __attribute__((ext_vector_type(3)))
Vektor tiga int. Ketiga int ini dikemas ke dalam satu bidang 128 bit dengan penyelarasan 128 bit.
int32_t : Bilangan bulat 32 bit dengan tanda tangan
Jenis defisit: int
Tipe integer dengan tanda tangan 32 bit.
int4 : Empat bilangan bulat dengan tanda tangan 32 bit
Typedef dari: int __attribute__((ext_vector_type(4)))
Vektor empat int. Kedua empat ini dikemas ke dalam satu bidang 128 bit dengan penyelarasan 128 bit.
int64_t : Bilangan bulat 64 bit dengan tanda tangan
Jenis: panjang panjang Dihapus dari API level 21 dan yang lebih tinggi
Jenis: long Ditambahkan di API level 21
Tipe integer dengan tanda tangan 64 bit.
int8_t : Bilangan bulat 8 bit dengan tanda tangan
Typedef dari: char
Jenis integer dengan tanda tangan 8 bit.
long2 : Dua bilangan bulat dengan tanda tangan 64 bit
Typedef dari: __attribute__ panjang ((ext_vector_type(2)))
Vektor dua nilai long. Kedua nilai panjang ini dikemas ke dalam satu kolom 128 bit dengan penyelarasan 128 bit.
long3 : Tiga bilangan bulat dengan tanda tangan 64 bit
Typedef dari: __attribute__ panjang ((ext_vector_type(3)))
Vektor tiga nilai long. Ketiga nilai panjang ini dikemas ke dalam satu kolom 256 bit dengan penyelarasan 256 bit.
long4 : Empat bilangan bulat dengan tanda tangan 64 bit
Typedef dari: __attribute__ panjang ((ext_vector_type(4)))
Vektor empat nilai panjang. Keempat nilai panjang ini dikemas ke dalam satu kolom 256 bit dengan penyelarasan 256 bit.
rs_matrix2x2 : Matriks 2x2 dari float 32 bit
Struktur dengan kolom berikut:
pelampung m[4] |
---|
Matriks 2x2 persegi dari float. Entri disimpan dalam array di lokasi [row*2 + col].
Lihat Fungsi Matriks.
rs_matrix3x3 : Matriks 3x3 dari float 32 bit
Struktur dengan kolom berikut:
float m[9] |
---|
Matriks float 3x3 persegi. Entri disimpan dalam array di lokasi [row*3 + col].
Lihat Fungsi Matriks.
rs_matrix4x4 : Matriks 4x4 dari float 32 bit
Struktur dengan kolom berikut:
float m[16] |
---|
Matriks float 4x4 persegi. Entri disimpan dalam array di lokasi [row*4 + col].
Lihat Fungsi Matriks.
rs_quaternion : Kuaternion
Typedef dari: float4
Matriks persegi 4x4 berisi float yang merepresentasikan angka empat.
Lihat Fungsi Kuaternion.
short2 : Dua bilangan bulat dengan tanda tangan 16 bit
Typedef dari: __attribute__ singkat ((ext_vector_type(2)))
Vektor dua celana pendek. Kedua Shorts ini dikemas ke dalam satu kolom 32 bit dengan perataan 32 bit.
short3 : Tiga bilangan bulat dengan tanda tangan 16 bit
Typedef dari: __attribute__ singkat ((ext_vector_type(3)))
Vektor tiga Shorts. Tiga isian pendek ini dikemas ke dalam satu ruang isian 64 bit dengan penyelarasan 64 bit.
short4 : Empat bilangan bulat 16 bit dengan tanda tangan
Typedef dari: __attribute__ singkat ((ext_vector_type(4)))
Vektor empat Shorts. Keempat isian pendek ini dikemas ke dalam satu ruang isian 64 bit dengan penyelarasan 64 bit.
size_t : Tipe ukuran tidak bertanda tangan
Typedef dari: uint64_t Saat mengompilasi untuk 64 bit.
Typedef dari: uint32_t Saat mengompilasi untuk 32 bit.
Jenis ukuran yang tidak ditandatangani. Jumlah bit bergantung pada flag kompilasi.
ssize_t : Jenis ukuran bertanda tangan
Typedef dari: int64_t Saat mengompilasi untuk 64 bit.
Typedef dari: int32_t Saat mengompilasi untuk 32 bit.
Jenis ukuran yang ditandatangani. Jumlah bit bergantung pada flag kompilasi.
uchar : Bilangan bulat tanpa tanda tangan 8 bit
Typedef dari: uint8_t
Jenis bilangan bulat tanpa tanda tangan 8 bit.
uchar2 : Dua bilangan bulat tanpa tanda tangan 8 bit
Typedef dari: uchar __attribute__((ext_vector_type(2)))
Vektor dua uchar. Kedua kolom uchar ini dikemas ke dalam satu kolom 16 bit dengan perataan 16 bit.
uchar3 : Tiga bilangan bulat tanpa tanda tangan 8 bit
Typedef dari: uchar __attribute__((ext_vector_type(3)))
Vektor tiga uchar. Ketiga kolom uchar ini dikemas ke dalam satu kolom 32 bit dengan penyelarasan 32 bit.
uchar4 : Empat bilangan bulat tanpa tanda tangan 8 bit
Typedef dari: uchar __attribute__((ext_vector_type(4)))
Vektor empat uchar. Keempat kolom uchar ini dikemas ke dalam satu kolom 32 bit dengan penyelarasan 32 bit.
uint : Bilangan bulat tanpa tanda tangan 32 bit
Typedef dari: uint32_t
Jenis bilangan bulat tanpa tanda tangan 32 bit.
uint16_t : Bilangan bulat tanpa tanda tangan 16 bit
Typedef dari: singkat tanpa tanda tangan
Jenis bilangan bulat tanpa tanda tangan 16 bit.
uint2 : Dua bilangan bulat tanpa tanda tangan 32 bit
Typedef dari: uint __attribute__((ext_vector_type(2)))
Vektor dua uint. Kedua uint ini dikemas ke dalam satu bidang 64 bit dengan penyelarasan 64 bit.
uint3 : Tiga bilangan bulat tanpa tanda tangan 32 bit
Typedef dari: uint __attribute__((ext_vector_type(3)))
Vektor tiga uint. Ketiga uint ini dikemas ke dalam satu kolom 128 bit dengan penyelarasan 128 bit.
uint32_t : Bilangan bulat tanpa tanda tangan 32 bit
Jenis defisit dari: int tanpa tanda tangan
Jenis bilangan bulat tanpa tanda tangan 32 bit.
uint4 : Empat bilangan bulat tanpa tanda tangan 32 bit
Typedef dari: uint __attribute__((ext_vector_type(4)))
Vektor empat uint. Keempat uint ini dikemas ke dalam satu kolom 128 bit dengan penyelarasan 128 bit.
uint64_t : Bilangan bulat tanpa tanda tangan 64 bit
Typedef dari: panjang tanpa tanda tangan Dihapus dari API level 21 dan yang lebih tinggi
Jenis: panjang tanpa tanda tangan Ditambahkan di API level 21
Jenis bilangan bulat tanpa tanda tangan 64 bit.
uint8_t : Bilangan bulat tanpa tanda tangan 8 bit
Typedef dari: karakter tak bertanda
Jenis bilangan bulat tanpa tanda tangan 8 bit.
ulong : Bilangan bulat tanpa tanda tangan 64 bit
Typedef dari: uint64_t
Jenis bilangan bulat tanpa tanda tangan 64 bit.
ulong2 : Dua bilangan bulat tanpa tanda tangan 64 bit
Typedef dari: ulong __attribute__((ext_vector_type(2)))
Vektor dua ulong. Kedua ulong ini dikemas ke dalam satu kolom 128 bit dengan penyelarasan 128 bit.
ulong3 : Tiga bilangan bulat tanpa tanda tangan 64 bit
Typedef dari: ulong __attribute__((ext_vector_type(3)))
Vektor tiga ulong. Ketiga kolom ulong ini dikemas ke dalam satu kolom 256 bit dengan penyelarasan 256 bit.
ulong4 : Empat bilangan bulat tanpa tanda tangan 64 bit
Typedef dari: ulong __attribute__((ext_vector_type(4)))
Vektor empat ulong. Keempat kolom ulong ini dikemas ke dalam satu kolom 256 bit dengan penyelarasan 256 bit.
ushort : Bilangan bulat tanpa tanda tangan 16 bit
Typedef dari: uint16_t
Jenis bilangan bulat tanpa tanda tangan 16 bit.
ushort2 : Dua bilangan bulat tanpa tanda tangan 16 bit
Typedef dari: ushort __attribute__((ext_vector_type(2)))
Vektor dua ushort. Dua kolom ushort ini dikemas ke dalam satu kolom 32 bit dengan penyelarasan 32 bit.
ushort3 : Tiga bilangan bulat tanpa tanda tangan 16 bit
Typedef dari: ushort __attribute__((ext_vector_type(3)))
Vektor tiga ushort. Tiga kolom ushort ini dikemas ke dalam satu bidang 64 bit dengan penyelarasan 64 bit.
ushort4 : Empat bilangan bulat tanpa tanda tangan 16 bit
Typedef dari: ushort __attribute__((ext_vector_type(4)))
Vektor empat ushort. Keempat kolom ushort ini dikemas ke dalam satu bidang 64 bit dengan penyelarasan 64 bit.