Przegląd
Opisane poniżej funkcje mogą służyć do wysyłania zapytań o cechy obiektów Alokacji, Elementu lub Samplera. Obiekty te są tworzone w języku Java. Nie można ich tworzyć ze skryptu.
Przydziały:
Alokacje to podstawowa metoda używana do przekazywania danych do i z jądra RenderScript.
Jest to uporządkowany zbiór komórek, którego można używać do przechowywania map bitowych, tekstur, dowolnych punktów danych itp.
Ten zbiór komórek może mieć wiele wymiarów (X, Y, Z, tablica0, tablica1, tablica2, tablica3), twarze (mapy sześcienne) oraz poziom szczegółów (do mipmappingu).
Szczegółowe informacje o tworzeniu przydziałów znajdziesz na stronie android.renderscript.Allocation.
Elementy:
Termin „element” w RenderScript jest używany nieco niejednoznacznie jako informacje o typie zarówno dla komórek alokacji, jak i wystąpienia tego typu. Na przykład:
- rs_element to uchwyt specyfikacji typu,
- W funkcjach takich jak rsGetElementAt() „element” oznacza wystąpienie typu, np. komórkę alokacji.
Poniższe funkcje umożliwiają wysyłanie zapytań o cechy specyfikacji typu.
Element może określać proste typy danych znane z C, np. liczbę całkowitą, liczbę zmiennoprzecinkową lub wartość logiczną. Może też określić uchwyt obiektu RenderScript. Listę podstawowych typów znajdziesz w sekcji rs_data_type.
Elementy mogą określać wersje podstawowych typów wektorowych o stałym rozmiarze (o rozmiarze 2, 3 lub 4). Elementy można grupować w elementy złożone, tworząc odpowiednik definicji struktur C.
Elementy mogą też mieć rodzaj, czyli informacje semantyczne używane do interpretacji danych piksela. Zobacz rs_data_kind.
Podczas tworzenia alokacji wspólnych elementów możesz używać jednego z wielu wstępnie zdefiniowanych elementów, np. F32_2.
Aby tworzyć elementy złożone, użyj klasy Java Element.Builder.
Sample:
Obiekty próbkowania określają, jak alokacje mogą być odczytywane jako struktura w jądrze. Zobacz android.renderscript.S.
Podsumowanie
Funkcje | |
---|---|
rsAllocationGetDimFaces, | Obecność więcej niż jednej twarzy |
rsAllocationGetDimLOD, | Obecność poziomów szczegółowości |
rsAllocationGetDimX, | Rozmiar wymiaru X |
rsAllocationGetDimY, | Rozmiar wymiaru Y |
rsAllocationGetDimZ, | Rozmiar wymiaru Z |
rsAllocationGetElement, | Pobieranie obiektu opisującego komórkę przydziału |
rsClearObject | Zwalnianie obiektu |
rsElementGetBytesSize | Rozmiar elementu |
rsElementGetDataKind | Rodzaj elementu |
rsElementGetDataType | Typ danych elementu |
rsElementGetSubElement | Element podrzędny elementu złożonego |
rsElementGetSubElementTrackSize | Rozmiar tablicy elementu podrzędnego elementu złożonego |
rsElementGetSubElementCount | Liczba elementów podrzędnych |
rsElementGetSubElementName | Nazwa podelementu |
rsElementGetSubElementNameLength | Długość nazwy podelementu |
rsElementGetSubElementOffsetBytes | Przesunięcie elementu podrzędnego utworzonego na podstawie instancji |
rsElementGetVectorSize | Rozmiar wektora elementu |
rsIsObject, | Sprawdzanie, czy nic nie jest puste |
rsSamplerGetanizotropia | Anizotropia próbki |
rsSamplerGetMagnification, | Wartość powiększenia próbnika |
rsSamplerGetMinification | Wartość minifikacji próbkowania |
rsSamplerGetWrapS | Wartość zawijania próbek (S) |
rsSamplerGetWrapT, | Wartość zawijania próbek (T) |
Funkcje wycofane | |
---|---|
rsGetAllocation, | Wycofano. Zwraca przydział danego wskaźnika |
Funkcje
rsAllocationGetDimFaces : obecność więcej niż 1 twarzy
uint32_t rsAllocationGetDimFaces(rs_allocation a); |
Zwroty
Zwraca 1, jeśli występuje więcej niż jedna twarz. W przeciwnym razie zwraca wartość 0. |
Jeśli alokacja jest mapą sześcianów, funkcja zwraca 1, jeśli występuje więcej niż 1 twarz. W pozostałych przypadkach zwraca wartość 0.
Użyj funkcji rsGetDimHasFaces(), aby uzyskać rozmiar obecnie uruchomionego jądra.
rsAllocationGetDimLOD : obecność poziomów szczegółowości
uint32_t rsAllocationGetDimLOD(rs_allocation a); |
Zwroty
Zwraca 1, jeśli istnieje więcej niż jeden LOD. W przeciwnym razie zwraca 0. |
Zapytanie o alokację pod kątem obecności więcej niż jednego poziomu szczegółów. Jest to przydatne w przypadku mipmap.
Użyj funkcji rsGetDimLod(), aby uzyskać rozmiar obecnie uruchomionego jądra.
rsAllocationGetDimX : rozmiar wymiaru X
uint32_t rsAllocationGetDimX(rs_allocation a); |
Zwroty
Wymiar X przydziału. |
Zwraca rozmiar wymiaru X przydziału.
Użyj funkcji rsGetDimX(), aby uzyskać rozmiar obecnie uruchomionego jądra.
rsAllocationGetDimY : rozmiar wymiaru Y
uint32_t rsAllocationGetDimY(rs_allocation a); |
Zwroty
Wymiar Y przydziału. |
Zwraca rozmiar wymiaru Y przydziału. Jeśli alokacja ma mniej niż 2 wymiary, zwraca wartość 0.
Użyj funkcji rsGetDimY(), aby uzyskać rozmiar obecnie uruchomionego jądra.
rsAllocationGetDimZ : rozmiar wymiaru Z
uint32_t rsAllocationGetDimZ(rs_allocation a); |
Zwroty
Wymiar Z alokacji. |
Zwraca rozmiar wymiaru Z alokacji. Jeśli alokacja ma mniej niż 3 wymiary, zwraca wartość 0.
Użyj funkcji rsGetDimZ(), aby uzyskać rozmiar obecnie uruchomionego jądra.
rsAllocationGetElement : pobiera obiekt opisujący komórkę alokacji.
rs_element rsAllocationGetElement(rs_allocation a); |
Parametry
a | Przydział, z którego mają być pobierane dane. |
---|
Zwroty
Element opisujący układ przydziału. |
Pobierz obiekt Element opisujący typ, rodzaj i inne cechy komórki alokacji. Funkcje rsElement* znajdziesz poniżej.
rsClearObject : zwolnij obiekt
void rsClearObject(rs_allocation* dst); | |
void rsClearObject(rs_element* dst); | |
void rsClearObject(rs_font* dst); | Podczas kompilowania do 32 bitów. Usunięto z interfejsu API na poziomie 23 lub wyższym |
void rsClearObject(rs_mesh* dst); | Podczas kompilowania do 32 bitów. Usunięto z interfejsu API na poziomie 23 lub wyższym |
void rsClearObject(rs_program_fragment* dst); | Podczas kompilowania do 32 bitów. Usunięto z interfejsu API na poziomie 23 lub wyższym |
void rsClearObject(rs_program_raster* dst); | Podczas kompilowania do 32 bitów. Usunięto z interfejsu API na poziomie 23 lub wyższym |
void rsClearObject(rs_program_store* dst); | Podczas kompilowania do 32 bitów. Usunięto z interfejsu API na poziomie 23 lub wyższym |
void rsClearObject(rs_program_vertex* dst); | Podczas kompilowania do 32 bitów. Usunięto z interfejsu API na poziomie 23 lub wyższym |
void rsClearObject(rs_sampler* dst); | |
void rsClearObject(rs_script* dst); | |
void rsClearObject(rs_type* dst); |
Informuje w czasie wykonywania działanie, że ten nick nie będzie już używany do uzyskiwania dostępu do powiązanego obiektu. Jeśli był to ostatni nick tego obiektu, może nastąpić przywrócenie zasobów.
Po wywołaniu tej funkcji *dst zostanie ustawiony na pusty uchwyt. Zobacz funkcję rsIsObject().
rsElementGetBytesSize : rozmiar elementu
uint32_t rsElementGetBytesSize(rs_element e); | Dodano do poziomu interfejsu API 16. |
Zwraca rozmiar w bajtach, które zajmie wystąpienie tego elementu.
rsElementGetDataKind : rodzaj elementu
rs_data_kind rsElementGetDataKind(rs_element e); | Dodano do poziomu interfejsu API 16. |
Zwraca rodzaj danych elementu. Służy do interpretowania danych pikseli.
Zobacz rs_data_kind.
rsElementGetDataType : typ danych elementu
rs_data_type rsElementGetDataType(rs_element e); | Dodano do poziomu interfejsu API 16. |
Zwraca podstawowy typ danych elementu. Może to być typ podobny do C/C++ (np. RS_TYPE_UNSIGNED_8), nick (np. RS_TYPE_ALLOCATION i RS_TYPE_ELEMENT) lub bardziej złożony typ liczbowy (np. RS_TYPE_UNSIGNED_5_6_5 i RS_TYPE_MATRIX_4X4). Zobacz rs_data_type.
Jeśli Element opisuje wektor, ta funkcja zwraca typ danych jednego z jego elementów. Użyj funkcji rsElementGetVectorSize, aby uzyskać rozmiar wektora.
Jeśli Element opisuje strukturę, zwracana jest wartość RS_TYPE_NONE. Do zbadania tego złożonego elementu użyj funkcji rsElementGetSub*.
rsElementGetSubElement : element podrzędny elementu złożonego
rs_element rsElementGetSubElement(rs_element e, indeks uint32_t); | Dodano do poziomu interfejsu API 16. |
Parametry
E | Element, którego dotyczy zapytanie. |
---|---|
indeks. | Indeks elementu podrzędnego do zwrócenia. |
Zwroty
Element podrzędny w danym indeksie. |
W przypadku elementów reprezentujących strukturę ta funkcja zwraca element podrzędny o podanym indeksie.
Jeśli element nie jest strukturą albo indeks jest większy lub równy liczbie elementów podrzędnych, zwracany jest nieprawidłowy nick.
rsElementGetSubElementTrackSize : rozmiar tablicy elementu podrzędnego złożonego elementu
uint32_t rsElementGetSubElementArraySize(rs_element e, indeks uint32_t); | Dodano do poziomu interfejsu API 16. |
Parametry
E | Element, którego dotyczy zapytanie. |
---|---|
indeks. | Indeks elementu podrzędnego. |
Zwroty
Rozmiar tablicy elementu podrzędnego. |
W przypadku złożonych elementów elementy podrzędne mogą mieć tablice o statycznym rozmiarze. Ta funkcja zwraca rozmiar tablicy elementu podrzędnego w indeksie. Powtórzenie elementu podrzędnego różni się od wektorów o stałym rozmiarze.
rsElementGetSubElementCount : liczba elementów podrzędnych
uint32_t rsElementGetSubElementCount(rs_element e); | Dodano do poziomu interfejsu API 16. |
Parametry
E | Element, z którego mają zostać pobrane dane. |
---|
Zwroty
Liczba elementów podrzędnych. |
Elementy mogą być proste, np. liczba zmiennoprzecinkowa, liczba zmiennoprzecinkowa, lub struktura z wieloma elementami podrzędnymi. Ta funkcja zwraca zero w przypadku elementów prostych i liczbę elementów podrzędnych w przypadku elementów złożonych.
rsElementGetSubElementName : nazwa elementu podrzędnego
uint32_t rsElementGetSubElementName(rs_element e, indeks uint32_t, char* name, uint32_t nameLength); | Dodano do poziomu interfejsu API 16. |
Parametry
E | Element, z którego mają zostać pobrane dane. |
---|---|
indeks. | Indeks elementu podrzędnego. |
nazwa | Adres tablicy, w której ma być zapisana nazwa. |
Długość nazwy | Długość podanej tablicy nazw. |
Zwroty
Liczba skopiowanych znaków z wyłączeniem pustego zakończenia. |
W przypadku elementów złożonych ta funkcja zwraca nazwę elementu podrzędnego w określonym indeksie.
rsElementGetSubElementNameLength : długość nazwy elementu podrzędnego
uint32_t rsElementGetSubElementNameLength(rs_element e, indeks uint32_t); | Dodano do poziomu interfejsu API 16. |
Parametry
E | Element, z którego mają zostać pobrane dane. |
---|---|
indeks. | Indeks elementu podrzędnego. |
Zwroty
Długość nazwy elementu podrzędnego z zakończeniem o wartości null. |
W przypadku elementów złożonych ta funkcja zwraca długość nazwy elementu podrzędnego w określonym indeksie.
rsElementGetSubElementOffsetBytes : przesunięcie elementu podrzędnego utworzonego na podstawie instancji
uint32_t rsElementGetSubElementOffsetBytes(rs_element e, indeks uint32_t); | Dodano do poziomu interfejsu API 16. |
Parametry
E | Element, z którego mają zostać pobrane dane. |
---|---|
indeks. | Indeks elementu podrzędnego. |
Zwroty
Przesunięcie w bajtach. |
Ta funkcja zwraca względną pozycję wystąpienia wskazanego elementu podrzędnego w wystąpieniu elementu.
Jeśli np. element opisuje 32-bitową liczbę zmiennoprzecinkową, po której następuje 32-bitowa liczba całkowita, zwrot przesunięcia pierwszej z nich będzie wynosić 0, a drugiej 4.
rsElementGetVectorSize : rozmiar wektorowy elementu
uint32_t rsElementGetVectorSize(rs_element e); | Dodano do poziomu interfejsu API 16. |
Parametry
E | Element, z którego mają zostać pobrane dane. |
---|
Zwroty
Długość wektora elementu. |
Zwraca rozmiar wektora elementu. Jeśli Element nie reprezentuje wektora, zwracana jest wartość 1.
rsGetAllocation : zwraca alokację danego wskaźnika
rs_allocation rsGetAllocation(const void* p); |
Wycofano. Ta funkcja jest wycofana i w przyszłej wersji zostanie usunięta z pakietu SDK.
Zwraca przydział danego wskaźnika. Wskaźnik powinien wskazywać prawidłowy przydział. Jeśli wskaźnik nie pochodzi z prawidłowego przydziału, wyniki są nieokreślone.
rsIsObject : sprawdź, czy nie ma pustego uchwytu
bool rsIsObject(rs_allocation v); | |
bool rsIsObject(rs_element v); | |
bool rsIsObject(rs_font v); | Podczas kompilowania do 32 bitów. Usunięto z interfejsu API na poziomie 23 lub wyższym |
bool rsIsObject(rs_mesh v); | Podczas kompilowania do 32 bitów. Usunięto z interfejsu API na poziomie 23 lub wyższym |
bool rsIsObject(rs_program_fragment v); | Podczas kompilowania do 32 bitów. Usunięto z interfejsu API na poziomie 23 lub wyższym |
bool rsIsObject(rs_program_raster v); | Podczas kompilowania do 32 bitów. Usunięto z interfejsu API na poziomie 23 lub wyższym |
bool rsIsObject(rs_program_store v); | Podczas kompilowania do 32 bitów. Usunięto z interfejsu API na poziomie 23 lub wyższym |
bool rsIsObject(rs_program_vertex v); | Podczas kompilowania do 32 bitów. Usunięto z interfejsu API na poziomie 23 lub wyższym |
bool rsIsObject(rs_sampler v); | |
bool rsIsObject(rs_script v); | |
bool rsIsObject(rs_type v); |
Zwraca wartość „true”, jeśli nick zawiera odwołanie, które nie ma wartości null.
Ta funkcja nie sprawdza, czy wskaźnik wewnętrzny używany w uchwycie wskazuje na rzeczywisty prawidłowy obiekt – sprawdza tylko wartość null.
Tej funkcji można użyć do sprawdzenia elementu zwróconego przez rsElementGetSubElement() lub sprawdzenia, czy funkcja rsClearObject() została wywołana w nicku.
rsSamplerGetAnisotropy : anizotropia próbki
float rsSamplerGetAnisotropy(rs_sampler s); | Dodano do poziomu interfejsu API 16. |
Pobierz anizotropię Samplera.
Zobacz android.renderscript.S.
rsSamplerGetMagnification : wartość powiększenia próbki
rs_sampler_value rsSamplerGetMagnification(rs_sampler s); | Dodano do poziomu interfejsu API 16. |
Pobieranie wartości powiększenia próbnika.
Zobacz android.renderscript.S.
rsSamplerGetMinification : wartość minifikacji próbki
rs_sampler_value rsSamplerGetMinification(rs_sampler s); | Dodano do poziomu interfejsu API 16. |
Pobieranie wartości minifikacji Samplera.
Zobacz android.renderscript.S.
rsSamplerGetWrapS : wartość S zawijania próbek
rs_sampler_value rsSamplerGetWrapS(rs_sampler s); | Dodano do poziomu interfejsu API 16. |
Pobierz wartość S zawijania próbek.
Zobacz android.renderscript.S.
rsSamplerGetWrapT : wartość T zawijania próbek
rs_sampler_value rsSamplerGetWrapT(rs_sampler s); | Dodano do poziomu interfejsu API 16. |
Pobierz wartość T zawijania próbek.
Zobacz android.renderscript.S.