Przegląd
Opisane poniżej funkcje służą do pobierania i ustawiania komórek, które składają się na alokację.
- Dostęp do poszczególnych komórek można uzyskać za pomocą funkcji rsGetElementAt* i rsSetElementAt.
- Za pomocą funkcji rsAllocationCopy* i rsAllocationV* możesz kopiować wiele komórek.
- Aby pobierać wartości za pomocą próbnika, użyj rsSample.
Podsumowanie
Funkcje | |
---|---|
rsAllocationCopy1DRange, | Kopiuj następujące po sobie komórki między przydziałami |
rsAllocationCopy2DRange, | Kopiuj prostokątny region komórek między przydziałami |
rsAllocationVLoadX, | Pobierz wektor z przydziału skalarów |
rsAllocationVStoreX, | Zapisuj wektor w alokacji skalarnych |
rsGetElementAt | Zwracanie komórki z alokacji |
rsGetElementAtYuv_uchar_U | Pobierz komponent U w przydziału jednostek YUV |
rsGetElementAtYuv_uchar_V (tylko w języku angielskim) | Pobierz komponent V przydziału jednostek YUV |
rsGetElementAtYuv_uchar_Y (w języku angielskim) | Pobierz komponent Y przydziału jednostek YUV |
rsSample, | Próbkowanie wartości z przydziału tekstury |
rsSetElementAt, | Ustaw komórkę w alokacji |
Funkcje
rsAllocationCopy1DRange: kopiuj następujące po sobie komórki między alokacjami
void rsAllocationCopy1DRange(rs_allocation dstAlloc, uint32_t dstOff, uint32_t dstMip, uint32_t liczba, rs_allocation srcAlloc, uint32_t srcOff, uint32_t | Dodano do poziomu interfejsu API 14. |
Parametry
dstAlloc | Przydział, do którego mają być skopiowane komórki. |
---|---|
dstWyłączono | Przesunięcie w miejscu docelowym pierwszej komórki, do której chcesz skopiować zawartość. |
DSTMip | Poziom MIME w przydziale miejsca docelowego. Wartość 0, jeśli mapowanie mip nie jest używane. |
liczba | Liczba komórek do skopiowania. |
srcPrzydział | Przydział źródła. |
srcWyłączono | Przesunięcie w źródle pierwszej komórki do skopiowania. |
srcMip. | Poziom MIME w przydziale źródła. Wartość 0, jeśli mapowanie mip nie jest używane. |
Kopiuje określoną liczbę komórek z jednego przydziału do drugiego.
Te 2 przydziały muszą się różnić. Użycie tej funkcji do skopiowania w ramach tego samego przydziału daje niezdefiniowane wyniki.
Ta funkcja nie sprawdza, czy przesunięcie plus liczba przekracza rozmiar żadnego z alokacji. Zachowaj ostrożność.
Funkcja ta powinna być wywoływana tylko między alokacjami 1D. Wywoływanie go w innych przydziałach jest niezdefiniowane.
Funkcja ta nie powinna być wywoływana z jądra jądra ani z żadnej funkcji, która może być wywoływana bezpośrednio lub pośrednio z jądra. Spowodowałoby to błąd środowiska wykonawczego.
rsAllocationCopy2DRange: kopiowanie prostokątnego regionu komórek między przydziałami
void rsAllocationCopy2DRange(rs_allocation dstAlloc, uint32_t dstXoff, uint32_t dstYoff, uint32_t dstMip, rs_allocation_cubemap_face, rstFace, uint32_t szerokość, uint32_t | Dodano do poziomu interfejsu API 14. |
Parametry
dstAlloc | Przydział, do którego mają być skopiowane komórki. |
---|---|
DSTXoff | Przesunięcie X w miejscu docelowym regionu do ustawienia. |
DSTYoff | Przesunięcie Y w miejscu docelowym regionu do ustawienia. |
DSTMip | Poziom MIME w przydziale miejsca docelowego. Wartość 0, jeśli mapowanie mip nie jest używane. |
DSA | Mapa sześcienna przydziału miejsca docelowego. Ignorowany w przypadku alokacji, które nie są mapami sześciennymi. |
width | Szerokość regionu przychodzącego do zaktualizowania. |
wzrost | Wysokość regionu przychodzącego do zaktualizowania. |
srcPrzydział | Przydział źródła. |
srcXoff | przesunięcie X w źródle. |
srcYoff | Przesunięcie Y w źródle. |
srcMip. | Poziom MIME w przydziale źródła. Wartość 0, jeśli mapowanie mip nie jest używane. |
Źródłowa twarz | Mapa sześcienna alokacji źródła. Ignorowany w przypadku alokacji, które nie są mapami sześciennymi. |
Kopiuje prostokątny obszar komórek z jednego przydziału do drugiego. Kopiowane są komórki (szerokość * wysokość).
Te 2 przydziały muszą się różnić. Użycie tej funkcji do skopiowania w ramach tego samego przydziału daje niezdefiniowane wyniki.
Ta funkcja nie sprawdza, czy region źródłowy czy docelowy przekracza rozmiar odpowiedniego przydziału. Zachowaj ostrożność.
Funkcja ta powinna być wywoływana tylko między alokacjami 2D. Wywoływanie go w innych przydziałach jest niezdefiniowane.
Funkcja ta nie powinna być wywoływana z jądra jądra ani z żadnej funkcji, która może być wywoływana bezpośrednio lub pośrednio z jądra. Spowodowałoby to błąd środowiska wykonawczego.
rsAllocationVLoadX : pobierz wektor z alokacji skalarnych
Parametry
a | Przydział, z którego mają być pobierane dane. |
---|---|
x | Przesunięcie X w przydziale pierwszej komórki, z której ma zostać skopiowana. |
Y | Przesunięcie Y w przydziale pierwszej komórki, z której ma zostać skopiowana. |
Z | Przesunięcie Z w przydziale pierwszej komórki, z której ma zostać skopiowana. |
Ta funkcja zwraca wektor składający się z kolejnych komórek w ramach przydziału. Zakładamy, że alokacja zawiera skalary.
Znak „X” w nazwie oznacza, że kolejne wartości są wyodrębniane przez zwiększenie indeksu X. Obecnie nie ma funkcji, które mogłyby uzyskiwać kolejne wartości przyrostowe w innych wymiarach. Użyj zamiast tego wielu wywołań funkcji rsGetElementAt().
Na przykład wywołanie metody rsAllocationVLoadX_int4(a, 20, 30) powoduje zwracanie wartości int4 składającej się z a[20, 30], a[21, 30], a[22, 30] oraz a[23, 30].
Przy pobieraniu z przydziałów trójwymiarowych użyj wariantu x, y i z. Podobnie użyj wariantu x i y do przydziałów dwuwymiarowych, a wariantu x do przydziałów jednowymiarowych.
Ze względu na wydajność ta funkcja nie weryfikuje danych wejściowych. Próba opakowania indeksu X, przekroczenie rozmiaru przydziału lub użycie indeksów niezgodnych z wymiarami przydziału przynosi niezdefiniowane wyniki.
Zobacz też rsAllocationVStoreX().
rsAllocationVStoreX : przechowywanie wektora w alokacji skalarnych
void rsAllocationVStoreX_char2(rs_allocation a, char2 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_char2(rs_allocation a, char2 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_char2(rs_allocation a, char2 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_char3(rs_allocation a, char3 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_char3(rs_allocation a, char3 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_char3(rs_allocation a, char3 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_char4(rs_allocation a, char4 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_char4(rs_allocation a, char4 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_char4(rs_allocation a, char4 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_Double2(rs_allocation a, double2 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_Double2(rs_allocation a, double2 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_Double2(rs_allocation a, double2 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_double3(rs_allocation a, Double3 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_Double3(rs_allocation a, double3 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_Double3(rs_allocation a, double3 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_Double4(rs_allocation a, double4 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_Double4(rs_allocation a, double4 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_Double4(rs_allocation a, double4 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_float2(rs_allocation a, float2 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_float2(rs_allocation a, float2 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_float2(rs_allocation a, float2 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_float3(rs_allocation a, float3 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_float3(rs_allocation a, float3 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_float3(rs_allocation a, float3 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_float4(rs_allocation a, float4 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_float4(rs_allocation a, float4 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_float4(rs_allocation a, float4 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_int2(rs_allocation a, int2 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_int2(rs_allocation a, int2 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_int2(rs_allocation a, int2 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_int3(rs_allocation a, int3 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_int3(rs_allocation a, int3 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_int3(rs_allocation a, int3 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_int4(rs_allocation a, int4 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_int4(rs_allocation a, int4 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_int4(rs_allocation a, int4 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_long2(rs_allocation a, long2 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_long2(rs_allocation a, long2 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_long2(rs_allocation a, long2 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_long3(rs_allocation a, long3 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_long3(rs_allocation a, long3 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_long3(rs_allocation a, long3 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_long4(rs_allocation a, long4 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_long4(rs_allocation a, long4 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_long4(rs_allocation a, long4 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_short2(rs_allocation a, short2 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_short2(rs_allocation a, short2 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_short2(rs_allocation a, short2 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_short3(rs_allocation a, short3 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_short3(rs_allocation a, short3 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_short3(rs_allocation a, short3 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_short4(rs_allocation a, short4 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_short4(rs_allocation a, short4 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_short4(rs_allocation a, short4 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_uchar2(rs_allocation a, uchar2 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_uchar2(rs_allocation a, uchar2 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_uchar2(rs_allocation a, uchar2 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_uchar3(rs_allocation a, uchar3 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_uchar3(rs_allocation a, uchar3 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_uchar3(rs_allocation a, uchar3 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_uchar4(rs_allocation a, uchar4 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_uchar4(rs_allocation a, uchar4 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_uchar4(rs_allocation a, uchar4 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_uint2(rs_allocation a, uint2 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_uint2(rs_allocation a, uint2 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_uint2(rs_allocation a, uint2 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_uint3(rs_allocation a, uint3 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_uint3(rs_allocation a, uint3 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_uint3(rs_allocation a, uint3 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_uint4(rs_allocation a, uint4 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_uint4(rs_allocation a, uint4 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_uint4(rs_allocation a, uint4 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_ulong2(rs_allocation a, ulong2 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_ulong2(rs_allocation a, ulong2 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_ulong2(rs_allocation a, ulong2 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_ulong3(rs_allocation a, ulong3 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_ulong3(rs_allocation a, ulong3 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_ulong3(rs_allocation a, ulong3 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_ulong4(rs_allocation a, ulong4 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_ulong4(rs_allocation a, ulong4 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_ulong4(rs_allocation a, ulong4 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_ushort2(rs_allocation a, ushort2 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_ushort2(rs_allocation a, ushort2 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_ushort2(rs_allocation a, ushort2 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_ushort3(rs_allocation a, ushort3 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_ushort3(rs_allocation a, ushort3 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_ushort3(rs_allocation a, ushort3 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_ushort4(rs_allocation a, ushort4 val, uint32_t x); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_ushort4(rs_allocation a, ushort4 val, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 22 |
void rsAllocationVStoreX_ushort4(rs_allocation a, ushort4 val, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 22 |
Parametry
a | Przydział zapisu danych. |
---|---|
wartość | Wartość do zapisania. |
x | Przesunięcie X w przydziale pierwszej komórki, do której ma zostać skopiowana. |
Y | Przesunięcie Y w przydziale pierwszej komórki, do której ma zostać skopiowana. |
Z | przesunięcie Z w przydziale pierwszej komórki, do której zostanie skopiowana. |
Ta funkcja przechowuje wpisy wektora w kolejnych komórkach alokacji. Zakładamy, że alokacja zawiera skalary.
Znak „X” w nazwie oznacza, że kolejne wartości są przechowywane przez zwiększenie indeksu X. Obecnie nie ma funkcji przechowujących kolejne wartości rosnąco w innych wymiarach. Zamiast tego użyj wielu wywołań funkcji rsSetElementAt().
Na przykład podczas wywoływania rsAllocationVStoreX_int3(a, v, 20, 30) wersja v.x jest przechowywana w a[20, 30], v.y a[21, 30] i v.z o [22, 30].
Jeśli zapisujesz je w trójwymiarowych przydziałach, użyj wariantu x, y i z. Podobnie użyj wariantu x i y do przydziałów dwuwymiarowych, a wariantu x do przydziałów jednowymiarowych.
Ze względu na wydajność ta funkcja nie weryfikuje danych wejściowych. Próba opakowania indeksu X, przekroczenia rozmiaru przydziału lub użycie indeksów niezgodnych z wymiarami zysków alokacji w celu uzyskania niezdefiniowanych wyników.
Zobacz też rsAllocationVLoadX().
rsGetElementAt : zwraca komórkę z alokacji
char rsGetElementAt_char(rs_allocation a, uint32_t x); | |
char rsGetElementAt_char(rs_allocation a, uint32_t x, uint32_t y); | |
char rsGetElementAt_char(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
char2 rsGetElementAt_char2(rs_allocation a, uint32_t x); | |
char2 rsGetElementAt_char2(rs_allocation a, uint32_t x, uint32_t y); | |
char2 rsGetElementAt_char2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
char3 rsGetElementAt_char3(rs_allocation a, uint32_t x); | |
char3 rsGetElementAt_char3(rs_allocation a, uint32_t x, uint32_t y); | |
char3 rsGetElementAt_char3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
char4 rsGetElementAt_char4(rs_allocation a, uint32_t x); | |
char4 rsGetElementAt_char4(rs_allocation a, uint32_t x, uint32_t y); | |
char4 rsGetElementAt_char4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
const void* rsGetElementAt(rs_allocation a, uint32_t x); | |
const void* rsGetElementAt(rs_allocation a, uint32_t x, uint32_t y); | |
const void* rsGetElementAt(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
double rsGetElementAt_double(rs_allocation a, uint32_t x); | |
double rsGetElementAt_Double(rs_allocation a, uint32_t x, uint32_t y); | |
double rsGetElementAt_double(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
Double2 rsGetElementAt_double2(rs_allocation a, uint32_t x); | |
double2 rsGetElementAt_double2(rs_allocation a, uint32_t x, uint32_t y); | |
double2 rsGetElementAt_double2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
double3 rsGetElementAt_double3(rs_allocation a, uint32_t x); | |
double3 rsGetElementAt_double3(rs_allocation a, uint32_t x, uint32_t y); | |
double3 rsGetElementAt_double3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
double4 rsGetElementAt_double4(rs_allocation a, uint32_t x); | |
double4 rsGetElementAt_double4(rs_allocation a, uint32_t x, uint32_t y); | |
double4 rsGetElementAt_double4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
float rsGetElementAt_float(rs_allocation a, uint32_t x); | |
float rsGetElementAt_float(rs_allocation a, uint32_t x, uint32_t y); | |
float rsGetElementAt_float(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
float2 rsGetElementAt_float2(rs_allocation a, uint32_t x); | |
float2 rsGetElementAt_float2(rs_allocation a, uint32_t x, uint32_t y); | |
float2 rsGetElementAt_float2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
float3 rsGetElementAt_float3(rs_allocation a, uint32_t x); | |
float3 rsGetElementAt_float3(rs_allocation a, uint32_t x, uint32_t y); | |
float3 rsGetElementAt_float3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
float4 rsGetElementAt_float4(rs_allocation a, uint32_t x); | |
float4 rsGetElementAt_float4(rs_allocation a, uint32_t x, uint32_t y); | |
float4 rsGetElementAt_float4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
half rsGetElementAt_half(rs_allocation a, uint32_t x); | Dodano do poziomu interfejsu API 23. |
half rsGetElementAt_half(rs_allocation a, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 23. |
half rsGetElementAt_half(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 23. |
half2 rsGetElementAt_half2(rs_allocation a, uint32_t x); | Dodano do poziomu interfejsu API 23. |
half2 rsGetElementAt_half2(rs_allocation a, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 23. |
half2 rsGetElementAt_half2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 23. |
half3 rsGetElementAt_half3(rs_allocation a, uint32_t x); | Dodano do poziomu interfejsu API 23. |
half3 rsGetElementAt_half3(rs_allocation a, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 23. |
half3 rsGetElementAt_half3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 23. |
half4 rsGetElementAt_half4(rs_allocation a, uint32_t x); | Dodano do poziomu interfejsu API 23. |
half4 rsGetElementAt_half4(rs_allocation a, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 23. |
half4 rsGetElementAt_half4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | Dodano do poziomu interfejsu API 23. |
int rsGetElementAt_int(rs_allocation a, uint32_t x); | |
int rsGetElementAt_int(rs_allocation a, uint32_t x, uint32_t y); | |
int rsGetElementAt_int(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
int2 rsGetElementAt_int2(rs_allocation a, uint32_t x); | |
int2 rsGetElementAt_int2(rs_allocation a, uint32_t x, uint32_t y); | |
int2 rsGetElementAt_int2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
int3 rsGetElementAt_int3(rs_allocation a, uint32_t x); | |
int3 rsGetElementAt_int3(rs_allocation a, uint32_t x, uint32_t y); | |
int3 rsGetElementAt_int3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
int4 rsGetElementAt_int4(rs_allocation a, uint32_t x); | |
int4 rsGetElementAt_int4(rs_allocation a, uint32_t x, uint32_t y); | |
int4 rsGetElementAt_int4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
long rsGetElementAt_long(rs_allocation a, uint32_t x); | |
long rsGetElementAt_long(rs_allocation a, uint32_t x, uint32_t y); | |
long rsGetElementAt_long(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
long2 rsGetElementAt_long2(rs_allocation a, uint32_t x); | |
long2 rsGetElementAt_long2(rs_allocation a, uint32_t x, uint32_t y); | |
long2 rsGetElementAt_long2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
long3 rsGetElementAt_long3(rs_allocation a, uint32_t x); | |
long3 rsGetElementAt_long3(rs_allocation a, uint32_t x, uint32_t y); | |
long3 rsGetElementAt_long3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
long4 rsGetElementAt_long4(rs_allocation a, uint32_t x); | |
long4 rsGetElementAt_long4(rs_allocation a, uint32_t x, uint32_t y); | |
long4 rsGetElementAt_long4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
Short rsGetElementAt_short(rs_allocation a, uint32_t x); | |
short rsGetElementAt_short(rs_allocation a, uint32_t x, uint32_t y); | |
short rsGetElementAt_short(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
short2 rsGetElementAt_short2(rs_allocation a, uint32_t x); | |
short2 rsGetElementAt_short2(rs_allocation a, uint32_t x, uint32_t y); | |
short2 rsGetElementAt_short2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
short3 rsGetElementAt_short3(rs_allocation a, uint32_t x); | |
short3 rsGetElementAt_short3(rs_allocation a, uint32_t x, uint32_t y); | |
short3 rsGetElementAt_short3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
short4 rsGetElementAt_short4(rs_allocation a, uint32_t x); | |
short4 rsGetElementAt_short4(rs_allocation a, uint32_t x, uint32_t y); | |
short4 rsGetElementAt_short4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
uchar rsGetElementAt_uchar(rs_allocation a, uint32_t x); | |
uchar rsGetElementAt_uchar(rs_allocation a, uint32_t x, uint32_t y); | |
uchar rsGetElementAt_uchar(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
uchar2 rsGetElementAt_uchar2(rs_allocation a, uint32_t x); | |
uchar2 rsGetElementAt_uchar2(rs_allocation a, uint32_t x, uint32_t y); | |
uchar2 rsGetElementAt_uchar2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
uchar3 rsGetElementAt_uchar3(rs_allocation a, uint32_t x); | |
uchar3 rsGetElementAt_uchar3(rs_allocation a, uint32_t x, uint32_t y); | |
uchar3 rsGetElementAt_uchar3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
uchar4 rsGetElementAt_uchar4(rs_allocation a, uint32_t x); | |
uchar4 rsGetElementAt_uchar4(rs_allocation a, uint32_t x, uint32_t y); | |
uchar4 rsGetElementAt_uchar4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
uint rsGetElementAt_uint(rs_allocation a, uint32_t x); | |
uint rsGetElementAt_uint(rs_allocation a, uint32_t x, uint32_t y); | |
uint rsGetElementAt_uint(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
uint2 rsGetElementAt_uint2(rs_allocation a, uint32_t x); | |
uint2 rsGetElementAt_uint2(rs_allocation a, uint32_t x, uint32_t y); | |
uint2 rsGetElementAt_uint2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
uint3 rsGetElementAt_uint3(rs_allocation a, uint32_t x); | |
uint3 rsGetElementAt_uint3(rs_allocation a, uint32_t x, uint32_t y); | |
uint3 rsGetElementAt_uint3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
uint4 rsGetElementAt_uint4(rs_allocation a, uint32_t x); | |
uint4 rsGetElementAt_uint4(rs_allocation a, uint32_t x, uint32_t y); | |
uint4 rsGetElementAt_uint4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
ulong rsGetElementAt_ulong(rs_allocation a, uint32_t x); | |
ulong rsGetElementAt_ulong(rs_allocation a, uint32_t x, uint32_t y); | |
ulong rsGetElementAt_ulong(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
ulong2 rsGetElementAt_ulong2(rs_allocation a, uint32_t x); | |
ulong2 rsGetElementAt_ulong2(rs_allocation a, uint32_t x, uint32_t y); | |
ulong2 rsGetElementAt_ulong2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
ulong3 rsGetElementAt_ulong3(rs_allocation a, uint32_t x); | |
ulong3 rsGetElementAt_ulong3(rs_allocation a, uint32_t x, uint32_t y); | |
ulong3 rsGetElementAt_ulong3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
ulong4 rsGetElementAt_ulong4(rs_allocation a, uint32_t x); | |
ulong4 rsGetElementAt_ulong4(rs_allocation a, uint32_t x, uint32_t y); | |
ulong4 rsGetElementAt_ulong4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
ushort rsGetElementAt_ushort(rs_allocation a, uint32_t x); | |
ushort rsGetElementAt_ushort(rs_allocation a, uint32_t x, uint32_t y); | |
ushort rsGetElementAt_ushort(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
ushort2 rsGetElementAt_ushort2(rs_allocation a, uint32_t x); | |
ushort2 rsGetElementAt_ushort2(rs_allocation a, uint32_t x, uint32_t y); | |
ushort2 rsGetElementAt_ushort2(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
ushort3 rsGetElementAt_ushort3(rs_allocation a, uint32_t x); | |
ushort3 rsGetElementAt_ushort3(rs_allocation a, uint32_t x, uint32_t y); | |
ushort3 rsGetElementAt_ushort3(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); | |
ushort4 rsGetElementAt_ushort4(rs_allocation a, uint32_t x); | |
ushort4 rsGetElementAt_ushort4(rs_allocation a, uint32_t x, uint32_t y); | |
ushort4 rsGetElementAt_ushort4(rs_allocation a, uint32_t x, uint32_t y, uint32_t z); |
Ta funkcja wyodrębnia z alokacji pojedynczą komórkę.
Przy pobieraniu z przydziałów trójwymiarowych użyj wariantu x, y i z. Podobnie użyj wariantu x i y do przydziałów dwuwymiarowych, a wariantu x do przydziałów jednowymiarowych.
Ta funkcja ma 2 style. Jeden zwraca adres wartości, używając pustej*, a drugi zwraca rzeczywistą wartość, np. rsGetElementAt() kontra rsGetElementAt_int4(). W przypadku typów podstawowych używaj zawsze tej drugiej wartości, ponieważ jest ona wydajniejsza.
rsGetElementAtYuv_uchar_U: pobierz komponent U w przydziale jednostek YUV.
uchar rsGetElementAtYuv_uchar_U(rs_allocation a, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 18 |
Wyodrębnia komponent U w pojedynczej wartości YUV z przydziału 2D YUV.
W obrębie przydziału komponenty Y, U i V mogą być przechowywane, jeśli występują w różnych płaszczyznach i w różnych rozdzielczościach. Podane współrzędne x i y są podane w wymiarach płaszczyzny Y.
Patrz funkcja rsGetElementAtYuv_uchar_Y().
rsGetElementAtYuv_uchar_V : pobierz komponent V przydziału YUV.
uchar rsGetElementAtYuv_uchar_V(rs_allocation a, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 18 |
Wyodrębnia komponent V pojedynczej wartości YUV z przydziału 2D jednostek YUV.
W obrębie przydziału komponenty Y, U i V mogą być przechowywane, jeśli występują w różnych płaszczyznach i w różnych rozdzielczościach. Podane współrzędne x i y są podane w wymiarach płaszczyzny Y.
Patrz funkcja rsGetElementAtYuv_uchar_Y().
rsGetElementAtYuv_uchar_Y: pobierz komponent Y przydziału YUV.
uchar rsGetElementAtYuv_uchar_Y(rs_allocation a, uint32_t x, uint32_t y); | Dodano do poziomu interfejsu API 18 |
Wyodrębnia komponent Y pojedynczej wartości YUV z przydziału 2D jednostek YUV.
W obrębie przydziału komponenty Y, U i V mogą być przechowywane, jeśli występują w różnych płaszczyznach i w różnych rozdzielczościach. Podane współrzędne x i y są podane w wymiarach płaszczyzny Y.
Patrz rsGetElementAtYuv_uchar_U() i rsGetElementAtYuv_uchar_V().
rsSample : próbkowanie wartości z alokacji tekstury
float4 rsSample(rs_allocation a, rs_sampler s, float location); | Dodano do poziomu interfejsu API 16. |
float4 rsSample(rs_allocation a, rs_sampler s, float location, float lod); | Dodano do poziomu interfejsu API 16. |
float4 rsSample(rs_allocation a, rs_sampler s, float2 location); | Dodano do poziomu interfejsu API 16. |
float4 rsSample(rs_allocation a, rs_sampler s, float2 location, float lod); | Dodano do poziomu interfejsu API 16. |
Parametry
a | Przydział do próbkowania. |
---|---|
s | Stan próbkowania. |
lokalizacja | Lokalizacja, z której pochodzi próbka. |
Lod | Poziom miP, z którego uzyskano próbkowanie dla wartości ułamkowych, zostanie interpolowany, jeśli używana jest funkcja RS_SAMPLER_LINEAR_MIP_LINEAR. |
Pobiera wartość z przydziału tekstury w sposób opisany przez próbkę.
Jeśli przydział to 1 D, użyj wariantu z liczbą zmiennoprzecinkową na potrzeby lokalizacji. W przypadku 2D użyj wariantu float2.
Więcej informacji znajdziesz na stronie android.renderscript.Sampler.
rsSetElementAt : ustaw komórkę alokacji
Ta funkcja przechowuje wartość w jednej komórce przydziału.
Jeśli zapisujesz je w trójwymiarowych przydziałach, użyj wariantu x, y i z. Podobnie użyj wariantu x i y do alokacji dwuwymiarowych, a wariantu x do przydziałów jednowymiarowych.
Ta funkcja ma 2 style. Jedna z nich przekazuje wartość do zapisania za pomocą pustej*, a druga – jako argument, np. rsSetElementAt() i rsSetElementAt_int4(). W przypadku typów podstawowych zawsze używaj tej drugiej, bo jest ona bardziej efektywna.
Patrz też rsGetElementAt().