Übersicht
Mit den folgenden Funktionen können Sie die Eigenschaften eines Allocation-, Element- oder Sampler-Objekts abfragen. Diese Objekte werden aus Java erstellt. Sie können sie nicht aus einem Skript erstellen.
Zuweisungen:
Zuweisungen sind die primäre Methode, um Daten an und von RenderScript-Kerneln zu übergeben.
Sie sind eine strukturierte Sammlung von Zellen, in denen Bitmaps, Texturen, beliebige Datenpunkte usw. gespeichert werden können.
Diese Sammlung von Zellen kann viele Dimensionen (X, Y, Z, Array0, Array1, Array2, Array3), Flächen (für Cubemaps) und Detailebenen (für Mipmapping) haben.
Weitere Informationen zum Erstellen von Zuweisungen finden Sie unter android.renderscript.Allocation.
Elemente:
Der Begriff "Element" wird in RenderScript etwas mehrdeutig verwendet, da sowohl Typinformationen für die Zellen einer Zuordnung als auch die Instanziierung dieses Typs verwendet werden. Beispiele:
- rs_element ist ein Handle zu einer Typspezifikation und
- In Funktionen wie rsGetElementAt() bezeichnet „element“ die Instanziierung des Typs, also eine Zelle einer Zuordnung.
Mit den folgenden Funktionen können Sie die Eigenschaften der Typspezifikation abfragen.
Ein Element kann einfache Datentypen wie in C enthalten, z.B. eine Ganzzahl, eine Gleitkommazahl oder einen booleschen Wert. Außerdem kann ein Handle für ein RenderScript-Objekt angegeben werden. Eine Liste der Basistypen finden Sie unter rs_data_type.
In den Elementen können Vektorversionen mit fester Größe (Größe 2, 3 oder 4) der Basistypen angegeben werden. Elemente können zu komplexen Elementen gruppiert werden und entsprechen so den C-Strukturdefinitionen.
Elemente können auch eine Art haben. Dabei handelt es sich um semantische Informationen, die zur Interpretation von Pixeldaten verwendet werden. Siehe rs_data_kind.
Beim Erstellen von Zuordnungen gängiger Elemente können Sie einfach eines der vielen vordefinierten Elemente wie F32_2 verwenden.
Verwenden Sie die Java-Klasse Element.Builder, um komplexe Elemente zu erstellen.
Sampler:
Sampler-Objekte definieren, wie Zuweisungen als Struktur innerhalb eines Kernels gelesen werden können. Siehe android.renderscript.S.
Zusammenfassung
Funktionen | |
---|---|
rsAllocationGetDimFaces | Vorhandensein mehrerer Gesichter |
rsAllocationGetDimLOD | Hohe Detailgenauigkeit |
rsAllocationGetDimX | Größe der Dimension „X“ |
rsAllocationGetDimY | Größe der Y-Dimension |
rsAllocationGetDimZ | Größe der Z-Dimension |
rsAllocationGetElement | Objekt abrufen, das die Zelle einer Zuweisung beschreibt |
RSClearObject | Objekt freigeben |
rsElementGetBytesSize | Größe eines Elements |
rsElementGetDataKind | Art eines Elements |
rsElementGetDataType | Datentyp eines Elements |
rsElementGetSubElement | Unterelement eines komplexen Elements |
rsElementGetSubElementArraySize | Arraygröße eines Unterelements eines komplexen Elements |
rsElementGetSubElementCount | Anzahl der Unterelemente |
rsElementGetSubElementName | Name eines Unterelements |
rsElementGetSubElementNameLength | Länge des Namens eines Unterelements |
rsElementGetSubElementOffsetBytes | Offset des instanziierten Unterelements |
rsElementGetVectorSize | Vektorgröße des Elements |
rsIsObject | Nach einem leeren Alias suchen |
rsSamplerGetAnisotropy | Anisotropie des Samplers |
rsSamplerGetMagnification | Sampler-Vergrößerungswert |
rsSamplerGetMinification | Sampler-Minifizierungswert |
rsSamplerGetWrapS | S-Wert für Sampler-Wrapping |
rsSamplerGetWrapT | T-Wert für Sampler-Wrapping |
Verworfene Funktionen | |
---|---|
rsGetAllocation | Eingestellt. Gibt die Zuordnung für einen bestimmten Zeiger zurück. |
Funktionen
rsAllocationGetDimFaces : Präsenz von mehr als einem Gesicht
uint32_t rsAllocationGetDimFaces(rs_allocation a); |
Returns
Gibt 1 zurück, wenn mehr als ein Gesicht vorhanden ist, andernfalls wird 0 zurückgegeben. |
Wenn die Zuordnung eine Cubemap ist, gibt diese Funktion 1 zurück, wenn mehr als ein Gesicht vorhanden ist. In allen anderen Fällen wird 0 zurückgegeben.
Verwenden Sie rsGetDimHasFaces(), um die Dimension eines derzeit ausgeführten Kernels abzurufen.
rsAllocationGetDimLOD : Präsenz von Detailebenen
uint32_t rsAllocationGetDimLOD(rs_allocation a); |
Returns
Gibt 1 zurück, wenn mehr als eine LOD vorhanden ist, andernfalls 0. |
Fragen Sie eine Zuordnung nach mehr als einer Detailebene ab. Dies ist nützlich für Mipmaps.
Verwenden Sie rsGetDimLod(), um die Dimension eines derzeit ausgeführten Kernels abzurufen.
rsAllocationGetDimX : Größe der X-Dimension
uint32_t rsAllocationGetDimX(rs_allocation a); |
Returns
x-Dimension für die Zuweisung aus. |
Gibt die Größe der X-Dimension der Zuweisung zurück.
Verwenden Sie rsGetDimX(), um die Dimension eines derzeit ausgeführten Kernels abzurufen.
rsAllocationGetDimY : Größe der Y-Dimension
uint32_t rsAllocationGetDimY(rs_allocation a); |
Returns
Y-Dimension der Zuweisung. |
Gibt die Größe der Y-Dimension der Zuweisung zurück. Hat die Zuordnung weniger als zwei Dimensionen, wird 0 zurückgegeben.
Verwenden Sie rsGetDimY(), um die Dimension eines derzeit ausgeführten Kernels abzurufen.
rsAllocationGetDimZ : Größe der Z-Dimension
uint32_t rsAllocationGetDimZ(rs_allocation a); |
Returns
Z-Dimension der Zuweisung. |
Gibt die Größe der Z-Dimension der Zuweisung zurück. Hat die Zuordnung weniger als drei Dimensionen, wird 0 zurückgegeben.
Verwenden Sie rsGetDimZ(), um die Dimension eines derzeit ausgeführten Kernels abzurufen.
rsAllocationGetElement : Objekt abrufen, das die Zelle einer Zuweisung beschreibt
rs_element rsAllocationGetElement(rs_allocation a); |
Parameter
a | Die Zuweisung, von der Daten abgerufen werden sollen. |
---|
Returns
Element, das das Zuweisungslayout beschreibt. |
Rufen Sie das Elementobjekt ab, das den Typ, die Art und andere Eigenschaften einer Zelle einer Zuordnung beschreibt. Siehe die rsElement*-Funktionen unten.
rsClearObject : Objekt freigeben
void rsClearObject(rs_allocation* dst); | |
void rsClearObject(rs_element* dst); | |
void rsClearObject(rs_font* dst); | Bei Kompilierung über 32 Bit. Aus API-Level 23 und höher entfernt |
void rsClearObject(rs_mesh* dst); | Bei Kompilierung über 32 Bit. Aus API-Level 23 und höher entfernt |
void rsClearObject(rs_program_fragment* dst); | Bei Kompilierung über 32 Bit. Aus API-Level 23 und höher entfernt |
void rsClearObject(rs_program_raster* dst); | Bei Kompilierung über 32 Bit. Aus API-Level 23 und höher entfernt |
void rsClearObject(rs_program_store* dst); | Bei Kompilierung über 32 Bit. Aus API-Level 23 und höher entfernt |
void rsClearObject(rs_program_vertex* dst); | Bei Kompilierung über 32 Bit. Aus API-Level 23 und höher entfernt |
void rsClearObject(rs_sampler* dst); | |
void rsClearObject(rs_script* dst); | |
void rsClearObject(rs_type* dst); |
Informiert die Laufzeit darüber, dass dieser Handle nicht mehr für den Zugriff auf das zugehörige Objekt verwendet wird. Wenn dies der letzte Handle für dieses Objekt war, kann die Ressourcenwiederherstellung erfolgen.
Nach dem Aufrufen dieser Funktion wird *dst auf einen leeren Handle gesetzt. Siehe rsIsObject().
rsElementGetBytesSize : Größe eines Elements
uint32_t rsElementGetBytesSize(rs_element e); | In API-Level 16 hinzugefügt |
Gibt die Größe in Byte zurück, die eine Instanziierung dieses Elements belegt.
rsElementGetDataKind : Art eines Elements
rs_data_kind rsElementGetDataKind(rs_element e); | In API-Level 16 hinzugefügt |
Gibt die Datenart des Elements zurück. Dieser wird zum Interpretieren der Pixeldaten verwendet.
Siehe rs_data_kind.
rsElementGetDataType : Datentyp eines Elements
rs_data_type rsElementGetDataType(rs_element e); | In API-Level 16 hinzugefügt |
Gibt den Basisdatentyp des Elements zurück. Dies kann ein Typ ähnlich wie C/C++ (z.B. RS_TYPE_UNSIGNED_8), ein Handle (z.B. RS_TYPE_ALLOCATION und RS_TYPE_ELEMENT) oder ein komplexerer numerischer Typ (z.B. RS_TYPE_UNSIGNED_5_6_5 und RS_TYPE_MATRIX_4X4) sein. Siehe rs_data_type.
Wenn das Element einen Vektor beschreibt, gibt diese Funktion den Datentyp eines seiner Elemente zurück. Verwenden Sie rsElementGetVectorSize, um die Größe des Vektors abzurufen.
Wenn das Element eine Struktur beschreibt, wird RS_TYPE_NONE zurückgegeben. Mit den Funktionen rsElementGetSub* können Sie sich dieses komplexe Element genauer ansehen.
rsElementGetSubElement: Unterelement eines komplexen Elements
rs_element rsElementGetSubElement(rs_element e, uint32_t index); | In API-Level 16 hinzugefügt |
Parameter
e | Abzufragendes Element. |
---|---|
Index | Index des Unterelements, das zurückgegeben werden soll. |
Returns
Unterelement beim angegebenen Index. |
Bei Elementen, die eine Struktur darstellen, gibt diese Funktion das Unterelement beim angegebenen Index zurück.
Wenn das Element keine Struktur ist oder der Index größer oder gleich der Anzahl von Unterelementen ist, wird ein ungültiger Handle zurückgegeben.
rsElementGetSubElementArraySize: Arraygröße eines Unterelements eines komplexen Elements
uint32_t rsElementGetSubElementArraySize(rs_element e, uint32_t index); | In API-Level 16 hinzugefügt |
Parameter
e | Abzufragendes Element. |
---|---|
Index | Index des Unterelements |
Returns
Arraygröße des Unterelements |
Bei komplexen Elementen können Unterelemente Arrays mit einer statischen Größe sein. Diese Funktion gibt die Arraygröße des Unterelements am Index zurück. Diese Wiederholung von Unterelementen unterscheidet sich von Vektoren mit fester Größe.
rsElementGetSubElementCount : Anzahl der Unterelemente
uint32_t rsElementGetSubElementCount(rs_element e); | In API-Level 16 hinzugefügt |
Parameter
e | Element, von dem Daten abgerufen werden sollen. |
---|
Returns
Anzahl der Unterelemente. |
Elemente können einfach sein, z. B. eine Ganzzahl oder eine Gleitkommazahl oder eine Struktur mit mehreren Unterelementen. Diese Funktion gibt null für einfache Elemente und die Anzahl der Unterelemente für komplexe Elemente zurück.
rsElementGetSubElementName : Name eines Unterelements
uint32_t rsElementGetSubElementName(rs_element e, uint32_t index, char* name, uint32_t nameLength); | In API-Level 16 hinzugefügt |
Parameter
e | Element, von dem Daten abgerufen werden sollen. |
---|---|
Index | Index des Unterelements |
Name | Adresse des Arrays, in dem der Name gespeichert werden soll. |
nameLength | Länge des angegebenen Namensarrays |
Returns
Anzahl der kopierten Zeichen ohne das Nullabschlusszeichen. |
Bei komplexen Elementen gibt diese Funktion den Namen des Unterelements beim angegebenen Index zurück.
rsElementGetSubElementNameLength : Länge des Namens eines Unterelements
uint32_t rsElementGetSubElementNameLength(rs_element e, uint32_t index); | In API-Level 16 hinzugefügt |
Parameter
e | Element, von dem Daten abgerufen werden sollen. |
---|---|
Index | Index des Unterelements |
Returns
Länge des Unterelementnamens, einschließlich des Nullabschlusszeichens. |
Bei komplexen Elementen gibt diese Funktion die Länge des Namens des Unterelements beim angegebenen Index zurück.
rsElementGetSubElementOffsetBytes : Offset des instanziierten Unterelements
uint32_t rsElementGetSubElementOffsetBytes(rs_element e, uint32_t Index); | In API-Level 16 hinzugefügt |
Parameter
e | Element, von dem Daten abgerufen werden sollen. |
---|---|
Index | Index des Unterelements |
Returns
Offset in Byte. |
Diese Funktion gibt die relative Position der Instanziierung des angegebenen Unterelements innerhalb der Instanziierung des Elements zurück.
Wenn das Element beispielsweise eine 32-Bit-Gleitkommazahl gefolgt von einer 32-Bit-Ganzzahl beschreibt, ist die Offsetrückgabe für die erste 0 und die zweite 4.
rsElementGetVectorSize: Vektorgröße des Elements
uint32_t rsElementGetVectorSize(rs_element e); | In API-Level 16 hinzugefügt |
Parameter
e | Element, von dem Daten abgerufen werden sollen. |
---|
Returns
Länge des Elementvektors. |
Gibt die Vektorgröße des Elements zurück. Wenn das Element keinen Vektor darstellt, wird 1 zurückgegeben.
rsGetAllocation : Gibt die Zuordnung für einen bestimmten Zeiger zurück.
rs_allocation rsGetAllocation(const void* p); |
Eingestellt. Diese Funktion ist veraltet und wird in einer zukünftigen Version aus dem SDK entfernt.
Gibt die Zuordnung für einen gegebenen Zeiger zurück. Der Zeiger sollte innerhalb einer gültigen Zuweisung zeigen. Die Ergebnisse sind nicht definiert, wenn der Zeiger nicht aus einer gültigen Zuordnung stammt.
rsIsObject : Nach einem leeren Handle suchen
bool rsIsObject(rs_allocation v); | |
bool rsIsObject(rs_element v); | |
bool rsIsObject(rs_font v); | Bei Kompilierung über 32 Bit. Aus API-Level 23 und höher entfernt |
bool rsIsObject(rs_mesh v); | Bei Kompilierung über 32 Bit. Aus API-Level 23 und höher entfernt |
bool rsIsObject(rs_program_fragment v); | Bei Kompilierung über 32 Bit. Aus API-Level 23 und höher entfernt |
bool rsIsObject(rs_program_raster v); | Bei Kompilierung über 32 Bit. Aus API-Level 23 und höher entfernt |
bool rsIsObject(rs_program_store v); | Bei Kompilierung über 32 Bit. Aus API-Level 23 und höher entfernt |
bool rsIsObject(rs_program_vertex v); | Bei Kompilierung über 32 Bit. Aus API-Level 23 und höher entfernt |
bool rsIsObject(rs_sampler v); | |
bool rsIsObject(rs_script v); | |
bool rsIsObject(rs_type v); |
Gibt „true“ zurück, wenn der Handle einen Verweis ungleich null enthält.
Diese Funktion prüft nicht, ob der im Handle verwendete interne Zeiger auf ein tatsächlich gültiges Objekt verweist. Es wird nur auf Null geprüft.
Mit dieser Funktion können Sie das von rsElementGetSubElement() zurückgegebene Element prüfen oder feststellen, ob rsClearObject() für einen Handle aufgerufen wurde.
rsSamplerGetAnisotropy : Anisotropie des Samplers
float rsSamplerGetAnisotropy(rs_sampler s); | In API-Level 16 hinzugefügt |
Ermitteln Sie die Anisotropie des Samplers.
Siehe android.renderscript.S.
rsSamplerGetMagnification : Sampler-Vergrößerungswert
rs_sampler_value rsSamplerGetMagnification(rs_sampler s); | In API-Level 16 hinzugefügt |
Rufen Sie den Vergrößerungswert des Samplers ab.
Siehe android.renderscript.S.
rsSamplerGetMinification : Sampler-Minifizierungswert
rs_sampler_value rsSamplerGetMinification(rs_sampler s); | In API-Level 16 hinzugefügt |
Rufen Sie den Minifizierungswert des Samplers ab.
Siehe android.renderscript.S.
rsSamplerGetWrapS : S-Wert für Sampler-Wrapping
rs_sampler_value rsSamplerGetWrapS(rs_sampler s); | In API-Level 16 hinzugefügt |
Ruft den S-Wert des Wrapping-Elements des Samplers ab.
Siehe android.renderscript.S.
rsSamplerGetWrapT : T-Wert für Sampler-Wrapping
rs_sampler_value rsSamplerGetWrapT(rs_sampler s); | In API-Level 16 hinzugefügt |
Ruft den T-Wert für das Wrapping des Samplers ab.
Siehe android.renderscript.S.