Übersicht
Skalare:
RenderScript unterstützt die folgenden skalaren numerischen Typen:
8 Bit | 16 Bit | 32 Bit | 64 Bit | |
Ganzzahl: | char, int8_t | kurz, int16_t | int32_t | long, long long, int64_t |
Vorzeichenlose Ganzzahl: | uchar, uint8_t | ushort, uint16_t | uint, uint32_t | Ulong, uint64_t |
Gleitkommawert: | Spielhälfte | schweben | Doppelt |
Vektoren:
RenderScript unterstützt Vektoren mit fester Größe in den Längen 2, 3 und 4. Vektoren werden mit dem allgemeinen Typnamen gefolgt von 2, 3 oder 4 deklariert. Beispiel: float4, int3, double2, ulong4.
Verwenden Sie zum Erstellen von Vektorliteralen den Vektortyp, gefolgt von den Werten in geschweiften Klammern, z.B. (float3){1.0f, 2.0f, 3.0f}
.
Auf Einträge eines Vektors kann mithilfe verschiedener Namensstile zugegriffen werden.
Um auf einzelne Einträge zuzugreifen, folgen Sie dem Variablennamen mit einem Punkt und:
- Die Buchstaben x, y, z und w
- Die Buchstaben r, g, b und a,
- Der Buchstabe „s“ oder „S“ gefolgt von einem nullbasierten Index.
Mit int4 myVar;
ist beispielsweise Folgendes äquivalent:
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
Auf mehrere Einträge eines Vektors kann gleichzeitig zugegriffen werden, indem eine Kennung verwendet wird, die die Verkettung mehrerer Buchstaben oder Indizes ist. Der resultierende Vektor hat eine Größe, die der Anzahl der benannten Einträge entspricht.
Im Beispiel oben kann mit myVar.yz
, myVar.gb
, myVar.s12
und myVar.S12
auf die beiden mittleren Einträge zugegriffen werden.
Die Einträge müssen nicht fortlaufend oder in aufsteigender Reihenfolge sein. Einträge können sogar wiederholt werden, solange nicht versucht wird, sie zuzuweisen. Außerdem dürfen die Benennungsstile nicht gemischt werden.
Hier sind einige Beispiele dafür, was möglich ist und was nicht:
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
Matrizen und Quaternionen:
RenderScript unterstützt quadratische Matrizen mit fester Größe von Gleitkommazahlen der Größe 2 x 2, 3 x 3 und 4 x 4. Die Typen heißen rs_matrix2x2, rs_matrix3x3 und rs_matrix4x4. Eine Liste der Vorgänge finden Sie unter Matrixfunktionen.
Quaternion werden auch über rs_quaternion unterstützt. Die Liste der Vorgänge finden Sie unter Quaterionsfunktionen.
Zusammenfassung
Typen | |
---|---|
char2 | Zwei ganze 8-Bit-Ganzzahlen mit Vorzeichen |
char3 | Drei vorzeichenbehaftete 8-Bit-Ganzzahlen |
char4 | Vier ganze 8-Bit-Ganzzahlen mit Vorzeichen |
Double2 | Zwei 64-Bit-Gleitkommazahlen |
double3 | Drei 64-Bit-Gleitkommazahlen |
Double4 | Vier 64-Bit-Gleitkommazahlen |
Gleitkommazahl2 | Zwei 32-Bit-Gleitkommazahlen |
Gleitkommazahl3 | Drei 32-Bit-Gleitkommazahlen |
Gleitkommazahl4 | Vier 32-Bit-Gleitkommazahlen |
die Hälfte | 16-Bit-Gleitkommawert |
Hälft2 | Zwei 16-Bit-Gleitkommazahlen |
Hälft3 | Drei 16-Bit-Gleitkommazahlen |
Hälft4 | Vier 16-Bit-Gleitkommazahlen |
int16_t | Vorzeichenbehaftete 16-Bit-Ganzzahl |
int2 | Zwei ganze 32-Bit-Ganzzahlen mit Vorzeichen |
int3 | Drei vorzeichenbehaftete 32-Bit-Ganzzahlen |
int32_t | Vorzeichenbehaftete 32-Bit-Ganzzahl |
int4 | Vier ganze 32-Bit-Ganzzahlen mit Vorzeichen |
int64_t | Vorzeichenbehaftete 64-Bit-Ganzzahl |
int8_t | Vorzeichenbehaftete 8-Bit-Ganzzahl |
long2 | Zwei ganze 64-Bit-Ganzzahlen mit Vorzeichen |
long3 | Drei vorzeichenbehaftete 64-Bit-Ganzzahlen |
long4 | Vier ganze 64-Bit-Ganzzahlen mit Vorzeichen |
rs_matrix2x2 | 2x2-Matrix aus 32-Bit-Gleitkommazahlen |
rs_matrix3x3 | 3x3-Matrix aus 32-Bit-Gleitkommazahlen |
rs_matrix4x4 | 4x4-Matrix aus 32-Bit-Gleitkommazahlen |
rs_quaternion | Quaternion |
Kurz2 | Zwei ganze 16-Bit-Ganzzahlen mit Vorzeichen |
Kurz3 | Drei vorzeichenbehaftete 16-Bit-Ganzzahlen |
Kurz4 | Vier Ganzzahlen mit Vorzeichen (16 Bit) |
size_t [Größe] | Nicht signierter Größentyp |
ssize_t [Größe_T] | Typ der signierten Größe |
Uchar | Vorzeichenlose 8-Bit-Ganzzahl |
Uchar2 | Zwei vorzeichenlose 8-Bit-Zahlen |
Uchar3 | Drei vorzeichenlose 8-Bit-Ganzzahlen |
Uchar 4 | Vier vorzeichenlose 8-Bit-Ganzzahlen |
Uint | Vorzeichenlose 32-Bit-Ganzzahl |
uint16_t | Vorzeichenlose 16-Bit-Ganzzahl |
Uint2 | Zwei vorzeichenlose 32-Bit-Zahlen |
uint3 | Drei vorzeichenlose 32-Bit-Zahlen |
uint32_t | Vorzeichenlose 32-Bit-Ganzzahl |
uint4 | Vier vorzeichenlose 32-Bit-Ganzzahlen |
uint64_t | Vorzeichenlose 64-Bit-Ganzzahl |
uint8_t | Vorzeichenlose 8-Bit-Ganzzahl |
Ulong | Vorzeichenlose 64-Bit-Ganzzahl |
Ulong2 | Zwei vorzeichenlose 64-Bit-Zahlen |
Ulong3 | Drei vorzeichenlose 64-Bit-Ganzzahlen |
Ulong4 | Vier vorzeichenlose 64-Bit-Ganzzahlen |
Ushort | Vorzeichenlose 16-Bit-Ganzzahl |
Ushort2 | Zwei vorzeichenlose 16-Bit-Zahlen |
Ushort3 | Drei vorzeichenlose 16-Bit-Ganzzahlen |
Ushort4 | Vier vorzeichenlose 16-Bit-Ganzzahlen |
Typen
char2 : zwei vorzeichenbehaftete 8-Bit-Ganzzahlen
Ein typedef von: char __attribute__((ext_vector_type(2)))
Ein Vektor mit zwei Zeichen. Diese beiden Zeichen sind in einem einzelnen 16-Bit-Feld mit einer 16-Bit-Ausrichtung verpackt.
char3 : drei vorzeichenbehaftete 8-Bit-Ganzzahlen
Ein typedef von: char __attribute__((ext_vector_type(3)))
Ein Vektor mit drei Zeichen. Diese drei Zeichen sind in einem einzelnen 32-Bit-Feld mit einer 32-Bit-Ausrichtung verpackt.
char4 : Vier vorzeichenbehaftete 8-Bit-Ganzzahlen
Ein typedef von: char __attribute__((ext_vector_type(4)))
Ein Vektor mit vier Zeichen. Diese vier Zeichen sind in einem einzelnen 32-Bit-Feld mit einer 32-Bit-Ausrichtung verpackt.
double2 : Zwei 64-Bit-Gleitkommazahlen
Ein typedef von: double __attribute__((ext_vector_type(2)))
Ein Vektor von zwei Double-Werten. Diese beiden doppelten Felder, die in einem einzelnen 128-Bit-Feld mit einer 128-Bit-Ausrichtung verpackt sind.
double3 : Drei 64-Bit-Gleitkommazahlen
Ein typedef von: double __attribute__((ext_vector_type(3)))
Ein Vektor von drei Double-Werten. Diese drei Doppelfelder, die in einem einzelnen 256-Bit-Feld mit einer 256-Bit-Ausrichtung verpackt sind.
double4 : Vier 64-Bit-Gleitkommazahlen
Ein typedef-Wert von: double __attribute__((ext_vector_type(4)))
Ein Vektor von vier Double-Werten. Diese vier Doppelfelder, die in einem einzelnen 256-Bit-Feld mit einer 256-Bit-Ausrichtung verpackt sind.
Gleitkommazahl2 : Zwei 32-Bit-Gleitkommazahlen
Ein typedef von: float __attribute__((ext_vector_type(2)))
Ein Vektor von zwei Gleitkommazahlen. Diese beiden Gleitkommazahlen sind in einem einzelnen 64-Bit-Feld mit einer 64-Bit-Ausrichtung verpackt.
Ein Vektor von zwei Gleitkommazahlen. Diese beiden Gleitkommazahlen sind in einem einzelnen 64-Bit-Feld mit einer 64-Bit-Ausrichtung verpackt.
FLOAT3 : Drei 32-Bit-Gleitkommazahlen
Ein typedef von: float __attribute__((ext_vector_type(3)))
Ein Vektor aus drei Gleitkommazahlen. Diese drei Gleitkommazahlen sind in einem einzelnen 128-Bit-Feld mit einer 128-Bit-Ausrichtung verpackt.
float4 : Vier 32-Bit-Gleitkommazahlen
Ein typedef von: float __attribute__((ext_vector_type(4)))
Ein Vektor mit vier Gleitkommazahlen. Diese vier Gleitkommazahlen sind in einem einzelnen 128-Bit-Feld mit einer 128-Bit-Ausrichtung verpackt.
half : 16-Bit-Gleitkommawert
Typdef. __fp16 In API-Level 23 hinzugefügt.
Ein 16-Bit-Gleitkommawert.
half2 : Zwei 16-Bit-Gleitkommazahlen
Ein typedef-Wert von: half __attribute__((ext_vector_type(2))) In API-Ebene 23 hinzugefügt
Vektorversion des halben Gleitkommazahltyps. Stellt zwei halbe Felder in einem einzelnen 32-Bit-Feld mit 32-Bit-Ausrichtung bereit.
half3 : drei 16-Bit-Gleitkommazahlen
Ein typedef-Wert von: half __attribute__((ext_vector_type(3))) In API-Level 23 hinzugefügt
Vektorversion des halben Gleitkommazahltyps. Stellt drei halbe Felder in einem einzelnen 64-Bit-Feld mit 64-Bit-Ausrichtung bereit.
half4 : Vier 16-Bit-Gleitkommazahlen
Ein typedef von: half __attribute__((ext_vector_type(4))) In API-Ebene 23 hinzugefügt
Vektorversion des halben Gleitkommazahltyps. Stellt vier halbe Felder bereit, die in einem einzelnen 64-Bit-Feld mit 64-Bit-Ausrichtung zusammengefasst sind.
int16_t : 16-Bit-Ganzzahl mit Vorzeichen
Typdef-Wert: kurz
Ein vorzeichenbehafteter 16-Bit-Ganzzahltyp.
int2 : zwei vorzeichenbehaftete 32-Bit-Ganzzahlen
Ein typedef-Wert von: int __attribute__((ext_vector_type(2)))
Ein Vektor mit zwei Ganzzahlen. Diese beiden Ganzzahlen sind in einem einzelnen 64-Bit-Feld mit einer 64-Bit-Ausrichtung verpackt.
int3 : Drei vorzeichenbehaftete 32-Bit-Ganzzahlen
Ein typedef von: int __attribute__((ext_vector_type(3)))
Ein Vektor mit drei Ints. Diese drei Ganzzahlen sind in einem einzelnen 128-Bit-Feld mit einer 128-Bit-Ausrichtung verpackt.
int32_t : 32-Bit-Ganzzahl mit Vorzeichen
Typdef-Wert: int
Ein vorzeichenbehafteter 32-Bit-Ganzzahltyp.
int4: Vier 32-Bit-Ganzzahlen mit Vorzeichen
Ein typedef-Wert von: int __attribute__((ext_vector_type(4)))
Ein Vektor von vier Ints. Diese beiden Vier sind in einem einzelnen 128-Bit-Feld mit einer 128-Bit-Ausrichtung zusammengefasst.
int64_t: : 64-Bit-Ganzzahl mit Vorzeichen
typedef of: long long Aus API-Level 21 und höher entfernt
Ein typedef-Typ: long In API-Level 21 hinzugefügt
Ein vorzeichenbehafteter 64-Bit-Ganzzahltyp.
int8_t : 8-Bit-Ganzzahl mit Vorzeichen
Ein typedef-Wert von: char
Vorzeichenbehafteter 8-Bit-Ganzzahltyp.
long2 : zwei vorzeichenbehaftete 64-Bit-Ganzzahlen
Ein typedef von: long __attribute__((ext_vector_type(2)))
Ein Vektor von zwei Longs-Werten. Diese beiden Long-Werte sind in einem einzelnen 128-Bit-Feld mit einer 128-Bit-Ausrichtung verpackt.
long3 : drei vorzeichenbehaftete 64-Bit-Ganzzahlen
Ein typedef von: long __attribute__((ext_vector_type(3)))
Ein Vektor von drei Longs. Diese drei Longs sind in einem einzelnen 256-Bit-Feld mit einer 256-Bit-Ausrichtung zusammengefasst.
long4: 4 vorzeichenbehaftete 64-Bit-Ganzzahlen
Ein Typdef-Wert von: long __attribute__((ext_vector_type(4)))
Ein Vektor von vier Longs. Diese vier Long-Werte sind in einem einzelnen 256-Bit-Feld mit einer 256-Bit-Ausrichtung verpackt.
rs_matrix2x2 : 2x2-Matrix aus 32-Bit-Gleitkommazahlen
Eine Struktur mit den folgenden Feldern:
Gleitkommazahl m[4] |
---|
Quadratische 2x2-Matrix aus Gleitkommazahlen. Die Einträge werden im Array am Speicherort [row*2 + col] gespeichert.
Siehe Matrixfunktionen.
rs_matrix3x3 : 3x3-Matrix aus 32-Bit-Gleitkommazahlen
Eine Struktur mit den folgenden Feldern:
Gleitkommazahl m[9] |
---|
Eine quadratische 3 x 3-Matrix aus Gleitkommazahlen. Die Einträge werden im Array am Speicherort [row*3 + col] gespeichert.
Siehe Matrixfunktionen.
rs_matrix4x4 : 4x4-Matrix aus 32-Bit-Gleitkommazahlen
Eine Struktur mit den folgenden Feldern:
Gleitkommazahl m[16] |
---|
Eine quadratische 4 x 4-Matrix aus Gleitkommazahlen. Die Einträge werden im Array am Speicherort [row*4 + col] gespeichert.
Siehe Matrixfunktionen.
rs_quaternion : Quaternion
Typdef. Gleitkommazahl4
Quadratische 4 x 4-Matrix aus Gleitkommazahlen, die ein Quaternion darstellen.
Siehe Quaternionsfunktionen.
short2 : Zwei 16-Bit-Ganzzahlen mit Vorzeichen
Typdef-Wert: kurz __attribute__((ext_vector_type(2)))
Ein Vektor von zwei Kurzvideos. Diese beiden Kurzfilme sind in einem einzelnen 32-Bit-Feld mit einer 32-Bit-Ausrichtung zusammengefasst.
short3 : Drei vorzeichenbehaftete 16-Bit-Ganzzahlen
Typdef-Wert: kurz __attribute__((ext_vector_type(3)))
Ein Vektor von drei Kurzvideos. Diese drei kurzen Felder, die in einem einzelnen 64-Bit-Feld mit einer 64-Bit-Ausrichtung zusammengefasst sind.
short4 : Vier Ganzzahlen mit Vorzeichen in 16 Bit
Ein typedef von: kurz __attribute__((ext_vector_type(4)))
Ein Vektor von vier Kurzvideos. Diese vier kurzen Felder, die in einem einzelnen 64-Bit-Feld mit einer 64-Bit-Ausrichtung zusammengefasst sind.
size_t : Größentyp ohne Vorzeichen
Ein typedef-Wert von: uint64_t Bei der Kompilierung über 64 Bit.
Ein typedef-Wert von: uint32_t Bei der Kompilierung über 32 Bit.
Nicht signierter Größentyp. Die Anzahl der Bits hängt von den Kompilierungs-Flags ab.
ssize_t : Typ der signierten Größe
Ein typedef-Wert von: int64_t Bei Kompilierung über 64 Bit.
Ein typedef-Wert von: int32_t Bei Kompilierung über 32 Bit.
Typ der signierten Größe. Die Anzahl der Bits hängt von den Kompilierungs-Flags ab.
uchar : 8-Bit-Ganzzahl ohne Vorzeichen
Ein typedef von: uint8_t
Vorzeichenloser 8-Bit-Ganzzahltyp
uchar2 : zwei vorzeichenlose 8-Bit-Ganzzahlen
Ein typedef von: uchar __attribute__((ext_vector_type(2)))
Ein Vektor von zwei Utarren. Diese beiden uchar-Felder, die in einem einzelnen 16-Bit-Feld mit einer 16-Bit-Ausrichtung zusammengefasst sind.
uchar3 : drei vorzeichenlose 8-Bit-Ganzzahlen
Ein typedef von: uchar __attribute__((ext_vector_type(3)))
Ein Vektor von drei Utar. Diese drei uchar-Felder, die in einem einzelnen 32-Bit-Feld mit einer 32-Bit-Ausrichtung zusammengefasst sind.
uchar4 : Vier vorzeichenlose 8-Bit-Ganzzahlen
Ein typedef von: uchar __attribute__((ext_vector_type(4)))
Ein Vektor von vier Utar. Diese vier uchar-Felder, die in einem einzelnen 32-Bit-Feld mit einer 32-Bit-Ausrichtung zusammengefasst sind.
uint : 32-Bit-Ganzzahl ohne Vorzeichen
Ein typedef von: uint32_t
Ein vorzeichenloser 32-Bit-Ganzzahltyp.
uint16_t: 16-Bit-Ganzzahl ohne Vorzeichen
Typdef-Wert: unsigniertes Kurzvideo
Ein vorzeichenloser 16-Bit-Ganzzahltyp.
uint2 : Zwei vorzeichenlose 32-Bit-Ganzzahlen
Ein typedef von: uint __attribute__((ext_vector_type(2)))
Ein Vektor von zwei Uints. Diese beiden Uints sind in einem einzelnen 64-Bit-Feld mit einer 64-Bit-Ausrichtung verpackt.
uint3 : drei vorzeichenlose 32-Bit-Ganzzahlen
Ein typedef von: uint __attribute__((ext_vector_type(3)))
Ein Vektor von drei Uints. Diese drei uints sind in einem einzelnen 128-Bit-Feld mit einer 128-Bit-Ausrichtung verpackt.
uint32_t : vorzeichenlose 32-Bit-Ganzzahl
Typdef-Wert: unsigniertes int
Ein vorzeichenloser 32-Bit-Ganzzahltyp.
uint4 : Vier vorzeichenlose 32-Bit-Ganzzahlen
Ein typedef von: uint __attribute__((ext_vector_type(4)))
Ein Vektor von vier Uints. Diese vier uints sind in einem einzelnen 128-Bit-Feld mit einer 128-Bit-Ausrichtung verpackt.
uint64_t : vorzeichenlose 64-Bit-Ganzzahl
Ein typedef-Wert von: unsigniert long long Aus API-Level 21 und höher entfernt
Ein typedef-Element: unsigniertes langes Zeichen In API-Level 21 hinzugefügt
Ein vorzeichenloser 64-Bit-Ganzzahltyp.
uint8_t : vorzeichenlose 8-Bit-Ganzzahl
Typdef-Wert: unsigniertes Zeichen
Vorzeichenloser 8-Bit-Ganzzahltyp
ulong: 64-Bit-Ganzzahl ohne Vorzeichen
Ein typedef von: uint64_t
Ein vorzeichenloser 64-Bit-Ganzzahltyp.
ulong2 : Zwei vorzeichenlose 64-Bit-Ganzzahlen
Ein typedef von: ulong __attribute__((ext_vector_type(2)))
Ein Vektor von zwei Ulongs. Diese beiden Ulongs sind in einem einzelnen 128-Bit-Feld mit einer 128-Bit-Ausrichtung verpackt.
ulong3: Drei vorzeichenlose 64-Bit-Ganzzahlen
Ein typedef von: ulong __attribute__((ext_vector_type(3)))
Ein Vektor von drei Ulongs. Diese drei ulong-Felder sind in einem einzelnen 256-Bit-Feld mit einer 256-Bit-Ausrichtung zusammengefasst.
ulong4 : Vier vorzeichenlose 64-Bit-Ganzzahlen
Ein typedef von: ulong __attribute__((ext_vector_type(4)))
Ein Vektor von vier Ulongs. Diese vier ulong-Felder, die in einem einzelnen 256-Bit-Feld mit einer 256-Bit-Ausrichtung verpackt sind.
ushort : 16-Bit-Ganzzahl ohne Vorzeichen
Ein typedef von: uint16_t
Ein vorzeichenloser 16-Bit-Ganzzahltyp.
ushort2 : Zwei 16-Bit-Ganzzahlen ohne Vorzeichen
Ein typedef von: ushort __attribute__((ext_vector_type(2)))
Ein Vektor von zwei Ushorts. Diese beiden ushort-Felder sind in einem einzelnen 32-Bit-Feld mit einer 32-Bit-Ausrichtung zusammengefasst.
ushort3: Drei vorzeichenlose 16-Bit-Ganzzahlen
Ein typedef von: ushort __attribute__((ext_vector_type(3)))
Ein Vektor von drei Ushorts. Diese drei ushort-Felder, die in einem einzelnen 64-Bit-Feld mit einer 64-Bit-Ausrichtung zusammengefasst sind.
ushort4: Vier 16-Bit-Ganzzahlen ohne Vorzeichen
Ein typedef von: ushort __attribute__((ext_vector_type(4)))
Ein Vektor von vier Ushorts. Diese vier ushort-Felder, die in einem einzelnen 64-Bit-Feld mit einer 64-Bit-Ausrichtung zusammengefasst sind.