Funkcje obiektu RenderScript

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
aPrzydział, 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
EElement, 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
EElement, 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
EElement, 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
EElement, z którego mają zostać pobrane dane.
indeks.Indeks elementu podrzędnego.
nazwaAdres tablicy, w której ma być zapisana nazwa.
Długość nazwyDł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
EElement, 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
EElement, 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
EElement, 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.