RenderScript-Objekteigenschaftenfunktionen

Ü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
aDie 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
eAbzufragendes Element.
IndexIndex 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
eAbzufragendes Element.
IndexIndex 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
eElement, 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
eElement, von dem Daten abgerufen werden sollen.
IndexIndex des Unterelements
NameAdresse des Arrays, in dem der Name gespeichert werden soll.
nameLengthLä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
eElement, von dem Daten abgerufen werden sollen.
IndexIndex 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
eElement, von dem Daten abgerufen werden sollen.
IndexIndex 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
eElement, 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.