Ringkasan
Fungsi di bawah ini dapat digunakan untuk membuat kueri karakteristik objek Alokasi, Elemen, atau Sampler. Objek ini dibuat dari Java. Anda tidak dapat membuatnya dari skrip.
Alokasi:
Alokasi adalah metode utama yang digunakan untuk meneruskan data ke dan dari kernel RenderScript.
File ini adalah kumpulan sel terstruktur yang dapat digunakan untuk menyimpan bitmap, tekstur, titik data arbitrer, dll.
Kumpulan sel ini dapat memiliki banyak dimensi (X, Y, Z, Array0, Array1, Array2, Array3), wajah (untuk peta kubus), dan tingkat detail (untuk mipmapping).
Lihat android.renderscript.Allocation untuk mengetahui detail tentang cara membuat Alokasi.
Elemen:
Istilah "elemen" digunakan secara ambigu di RenderScript, karena informasi jenis untuk sel Alokasi dan pembuatan instance jenis tersebut. Contoh:
- rs_element adalah handle untuk spesifikasi jenis, dan
- Dalam fungsi seperti rsGetElementAt(), "element" berarti pembuatan instance jenis, yaitu sel Alokasi.
Fungsi di bawah memungkinkan Anda membuat kueri untuk karakteristik spesifikasi jenis.
Elemen dapat menentukan jenis data sederhana seperti yang ditemukan di C, misalnya bilangan bulat, float, atau boolean. Class ini juga dapat menentukan handle untuk objek RenderScript. Lihat rs_data_type untuk mengetahui daftar jenis dasar.
Elemen dapat menentukan versi vektor ukuran tetap (dengan ukuran 2, 3, atau 4) dari jenis dasar. Elemen dapat dikelompokkan bersama ke dalam Elemen kompleks, sehingga menghasilkan definisi struktur C yang setara.
Elemen juga dapat memiliki sejenis, yaitu informasi semantik yang digunakan untuk menafsirkan data piksel. Lihat rs_data_Kind.
Saat membuat Alokasi elemen umum, Anda cukup menggunakan salah satu dari berbagai Elemen bawaan seperti F32_2.
Untuk membuat Element yang kompleks, gunakan class Java Element.Builder.
Sampler:
Objek Sampler menentukan cara Alokasi dapat dibaca sebagai struktur dalam {i>kernel<i}. Lihat android.renderscript.S.
Ringkasan
Fungsi | |
---|---|
rsAllocationGetDimFaces | Kehadiran lebih dari satu wajah |
rsAllocationGetDimLOD | Adanya tingkat detail |
rsAllocationGetDimX | Ukuran dimensi X |
rsAllocationGetDimY | Ukuran dimensi Y |
rsAllocationGetDimZ | Ukuran dimensi Z |
rsAllocationGetElement | Mendapatkan objek yang mendeskripsikan sel Alokasi |
rsClearObject | Melepaskan objek |
rsElementGetBytesSize | Ukuran Elemen |
rsElementGetDataKind | Jenis Elemen |
rsElementGetDataType | Jenis data Elemen |
rsElementGetSubElement | Sub-elemen Elemen kompleks |
rsElementGetSubElementArraySize | Ukuran array sub-elemen dari Elemen kompleks |
rsElementGetSubElementCount | Jumlah sub-elemen |
rsElementGetSubElementName | Nama sub-elemen |
rsElementGetSubElementNameLength | Panjang nama sub-elemen |
rsElementGetSubElementOffsetBytes | Offset sub-elemen yang dibuat instance-nya |
rsElementGetVectorSize | Ukuran vektor Elemen |
rsIsObject | Periksa nama sebutan channel yang kosong |
rsSamplerGetAnisotropy | Anisotropi Sampler |
rsSamplerGetMagnification | Nilai pembesaran sampler |
rsSamplerGetMinification | Nilai minifikasi sampler |
rsSamplerGetWrapS | Nilai S wrapper sampel |
rsSamplerGetWrapT | Nilai T pengemasan sampel |
Fungsi yang Tidak Digunakan Lagi | |
---|---|
rsGetAllocation | Tidak digunakan lagi. Menampilkan Alokasi untuk pointer yang diberikan |
Fungsi
rsAllocationGetDimFaces : Kehadiran lebih dari satu wajah
uint32_t rsAllocationGetDimFaces(rs_allocation a); |
Hasil
Menampilkan 1 jika ada lebih dari satu wajah, 0 jika tidak. |
Jika Alokasi berupa peta kubus, fungsi ini akan menampilkan 1 jika ada lebih dari satu wajah. Dalam semua kasus lain, kueri akan menampilkan 0.
Gunakan rsGetDimHasFaces() untuk mendapatkan dimensi kernel yang sedang berjalan.
rsAllocationGetDimLOD : Adanya tingkat detail
uint32_t rsAllocationGetDimLOD(rs_allocation a); |
Hasil
Menampilkan 1 jika ada lebih dari satu LOD, 0 jika sebaliknya. |
Mengkueri Alokasi untuk mengetahui adanya lebih dari satu Tingkat Detail. Hal ini berguna untuk mipmap.
Gunakan rsGetDimLod() untuk mendapatkan dimensi kernel yang sedang berjalan.
rsAllocationGetDimX : Ukuran dimensi X
uint32_t rsAllocationGetDimX(rs_allocation a); |
Hasil
X Alokasi. |
Menampilkan ukuran dimensi X Alokasi.
Gunakan rsGetDimX() untuk mendapatkan dimensi kernel yang sedang berjalan.
rsAllocationGetDimY : Ukuran dimensi Y
uint32_t rsAllocationGetDimY(rs_allocation a); |
Hasil
Y Alokasi. |
Menampilkan ukuran dimensi Y Alokasi. Jika Alokasi memiliki kurang dari dua dimensi, tampilkan 0.
Gunakan rsGetDimY() untuk mendapatkan dimensi kernel yang sedang berjalan.
rsAllocationGetDimZ : Ukuran dimensi Z
uint32_t rsAllocationGetDimZ(rs_allocation a); |
Hasil
Dimensi Z Alokasi. |
Menampilkan ukuran dimensi Z Alokasi. Jika Alokasi memiliki kurang dari tiga dimensi, tampilkan 0.
Gunakan rsGetDimZ() untuk mendapatkan dimensi kernel yang sedang berjalan.
rsAllocationGetElement : Mendapatkan objek yang mendeskripsikan sel Alokasi
rs_element rsAllocationGetElement(rs_allocation a); |
Parameter
CANNOT TRANSLATE | Alokasi untuk mendapatkan data. |
---|
Hasil
Elemen yang menjelaskan tata letak Alokasi. |
Mendapatkan objek Elemen yang menjelaskan jenis, jenis, dan karakteristik lainnya dari sel Alokasi. Lihat fungsi rsElement* di bawah.
rsClearObject : Melepaskan objek
void rsClearObject(rs_allocation* dst); | |
void rsClearObject(rs_element* dst); | |
void rsClearObject(rs_font* dst); | Saat mengompilasi untuk 32 bit. Dihapus dari API level 23 dan yang lebih tinggi |
void rsClearObject(rs_mesh* dst); | Saat mengompilasi untuk 32 bit. Dihapus dari API level 23 dan yang lebih tinggi |
void rsClearObject(rs_program_fragment* dst); | Saat mengompilasi untuk 32 bit. Dihapus dari API level 23 dan yang lebih tinggi |
void rsClearObject(rs_program_raster* dst); | Saat mengompilasi untuk 32 bit. Dihapus dari API level 23 dan yang lebih tinggi |
void rsClearObject(rs_program_store* dst); | Saat mengompilasi untuk 32 bit. Dihapus dari API level 23 dan yang lebih tinggi |
void rsClearObject(rs_program_vertex* dst); | Saat mengompilasi untuk 32 bit. Dihapus dari API level 23 dan yang lebih tinggi |
void rsClearObject(rs_sampler* dst); | |
void rsClearObject(rs_script* dst); | |
void rsClearObject(rs_type* dst); |
Memberi tahu runtime bahwa handle ini tidak akan digunakan lagi untuk mengakses objek terkait. Jika ini adalah handle terakhir untuk objek tersebut, pemulihan resource dapat terjadi.
Setelah memanggil fungsi ini, *dst akan ditetapkan ke handle kosong. Lihat rsIsObject().
rsElementGetBytesSize : Ukuran Elemen
uint32_t rsElementGetBytesSize(rs_element e); | Ditambahkan di API level 16 |
Menampilkan ukuran dalam byte yang akan ditempati oleh pembuatan instance Elemen ini.
rsElementGetDataKind : Jenis Elemen
rs_data_types rsElementGetDataKind(rs_element e); | Ditambahkan di API level 16 |
Menampilkan jenis data Elemen. Ini digunakan untuk menafsirkan data piksel.
Lihat rs_data_Kind.
rsElementGetDataType : Jenis data Elemen
rs_data_type rsElementGetDataType(rs_element e); | Ditambahkan di API level 16 |
Menampilkan jenis data dasar Elemen. Ini dapat berupa jenis yang mirip dengan C/C++ (misalnya RS_TYPE_UNSIGNED_8), handle (misalnya RS_TYPE_ALLOCATION dan RS_TYPE_ELEMENT), atau jenis numerik yang lebih kompleks (misalnya RS_TYPE_UNSIGNED_5_6_5 dan RS_TYPE_MATRIX_4X4). Lihat rs_data_type.
Jika Elemen menjelaskan vektor, fungsi ini akan menampilkan jenis data dari salah satu itemnya. Gunakan rsElementGetVectorSize untuk mendapatkan ukuran vektor.
Jika Elemen menjelaskan struktur, RS_TYPE_NONE akan ditampilkan. Gunakan fungsi rsElementGetSub* untuk mempelajari Elemen yang kompleks ini.
rsElementGetSubElement : Subelemen dari Elemen kompleks
rs_element rsElementGetSubElement(rs_element e, uint32_t index); | Ditambahkan di API level 16 |
Parameter
e | Elemen yang akan dikueri. |
---|---|
index | Indeks sub-elemen yang akan ditampilkan. |
Hasil
Sub-elemen pada indeks yang diberikan. |
Untuk Elemen yang merepresentasikan struktur, fungsi ini menampilkan subelemen pada indeks yang ditentukan.
Jika Elemen bukan struktur atau indeks lebih besar atau sama dengan jumlah sub-elemen, handle yang tidak valid akan ditampilkan.
rsElementGetSubElementArraySize : Ukuran array sub-elemen dari Elemen kompleks
uint32_t rsElementGetSubElementArraySize(rs_element e, uint32_t index); | Ditambahkan di API level 16 |
Parameter
e | Elemen yang akan dikueri. |
---|---|
index | Indeks sub-elemen. |
Hasil
Ukuran array sub-elemen. |
Untuk Elemen kompleks, sub-elemen dapat berupa array berukuran statis. Fungsi ini menampilkan ukuran array sub-elemen di indeks. Pengulangan sub-elemen ini berbeda dengan vektor ukuran tetap.
rsElementGetSubElementCount : Jumlah sub-elemen
uint32_t rsElementGetSubElementCount(rs_element e); | Ditambahkan di API level 16 |
Parameter
e | Elemen yang datanya akan diambil. |
---|
Hasil
Jumlah sub-elemen. |
Elemen bisa sederhana, seperti int atau float, atau struktur dengan beberapa sub-elemen. Fungsi ini menampilkan nol untuk Elemen sederhana dan jumlah sub-elemen untuk Elemen kompleks.
rsElementGetSubElementName : Nama sub-elemen
uint32_t rsElementGetSubElementName(rs_element e, uint32_t index, char* name, uint32_t nameLength); | Ditambahkan di API level 16 |
Parameter
e | Elemen yang datanya akan diambil. |
---|---|
index | Indeks sub-elemen. |
nama | Alamat array untuk menyimpan nama. |
namaPanjang | Panjang array nama yang diberikan. |
Hasil
Jumlah karakter yang disalin, tidak termasuk terminator null. |
Untuk Elemen kompleks, fungsi ini menampilkan nama subelemen pada indeks yang ditentukan.
rsElementGetSubElementNameLength : Panjang nama sub-elemen
uint32_t rsElementGetSubElementNameLength(rs_element e, uint32_t index); | Ditambahkan di API level 16 |
Parameter
e | Elemen yang datanya akan diambil. |
---|---|
index | Indeks sub-elemen. |
Hasil
Panjang nama sub-elemen termasuk terminator null. |
Untuk Elemen kompleks, fungsi ini menampilkan panjang nama sub-elemen pada indeks yang ditentukan.
rsElementGetSubElementOffsetBytes : Offset sub-elemen yang dibuat instance
uint32_t rsElementGetSubElementOffsetBytes(rs_element e, uint32_t index); | Ditambahkan di API level 16 |
Parameter
e | Elemen yang datanya akan diambil. |
---|---|
index | Indeks sub-elemen. |
Hasil
Offset dalam byte. |
Fungsi ini menampilkan posisi relatif pembuatan instance sub-elemen yang ditentukan dalam pembuatan instance Elemen.
Misalnya, jika Elemen menjelaskan float 32 bit yang diikuti dengan bilangan bulat 32 bit, pengembalian offset untuk yang pertama adalah 0 dan yang kedua 4.
rsElementGetVectorSize : Ukuran vektor Elemen
uint32_t rsElementGetVectorSize(rs_element e); | Ditambahkan di API level 16 |
Parameter
e | Elemen yang datanya akan diambil. |
---|
Hasil
Panjang vektor elemen. |
Menampilkan ukuran vektor Elemen. Jika Elemen tidak merepresentasikan vektor, 1 akan ditampilkan.
rsGetAllocation : Menampilkan Alokasi untuk pointer tertentu
rs_allocation rsGetAllocation(const void* p); |
Tidak digunakan lagi. Fungsi ini tidak digunakan lagi dan akan dihapus dari SDK dalam rilis mendatang.
Menampilkan Alokasi untuk pointer yang diberikan. Pointer harus menunjuk dalam alokasi yang valid. Hasilnya tidak didefinisikan jika pointer bukan dari Alokasi yang valid.
rsIsObject : Memeriksa handle kosong
bool rsIsObject(rs_allocation v); | |
bool rsIsObject(rs_element v); | |
bool rsIsObject(rs_font v); | Saat mengompilasi untuk 32 bit. Dihapus dari API level 23 dan yang lebih tinggi |
bool rsIsObject(rs_mesh v); | Saat mengompilasi untuk 32 bit. Dihapus dari API level 23 dan yang lebih tinggi |
bool rsIsObject(rs_program_fragment v); | Saat mengompilasi untuk 32 bit. Dihapus dari API level 23 dan yang lebih tinggi |
bool rsIsObject(rs_program_raster v); | Saat mengompilasi untuk 32 bit. Dihapus dari API level 23 dan yang lebih tinggi |
bool rsIsObject(rs_program_store v); | Saat mengompilasi untuk 32 bit. Dihapus dari API level 23 dan yang lebih tinggi |
bool rsIsObject(rs_program_vertex v); | Saat mengompilasi untuk 32 bit. Dihapus dari API level 23 dan yang lebih tinggi |
bool rsIsObject(rs_sampler v); | |
bool rsIsObject(rs_script v); | |
bool rsIsObject(rs_type v); |
Menampilkan true jika handle berisi referensi non-null.
Fungsi ini tidak memvalidasi bahwa pointer internal yang digunakan dalam handle mengarah ke objek valid yang sebenarnya. Fungsi ini hanya memeriksa null.
Fungsi ini dapat digunakan untuk memeriksa Elemen yang ditampilkan oleh rsElementGetSubElement() atau melihat apakah rsClearObject() telah dipanggil pada handle.
rsSamplerGetAnisotropy : Anisotropi Sampler
float rsSamplerGetAnisotropy(rs_sampler s); | Ditambahkan di API level 16 |
Mendapatkan anisotropi Sampler.
Lihat android.renderscript.S.
rsSamplerGetMagnification : Nilai pembesaran Sampler
rs_sampler_value rsSamplerGetMagnification(rs_sampler); | Ditambahkan di API level 16 |
Mendapatkan nilai pembesaran Sampler.
Lihat android.renderscript.S.
rsSamplerGetMinification : Nilai minifikasi Sampler
rs_sampler_value rsSamplerGetMinification(rs_sampler); | Ditambahkan di API level 16 |
Mendapatkan nilai minifikasi Sampler.
Lihat android.renderscript.S.
rsSamplerGetWrapS : Nilai S sampler wrap
rs_sampler_value rsSamplerGetWrapS(rs_sampler); | Ditambahkan di API level 16 |
Mendapatkan nilai S wrap Sampler.
Lihat android.renderscript.S.
rsSamplerGetWrapT : Nilai T sampler wrap
rs_sampler_value rsSamplerGetWrapT(rs_sampler); | Ditambahkan di API level 16 |
Mendapatkan nilai T wrap sampel.
Lihat android.renderscript.S.