Genel bakış
Aşağıdaki işlevler bir Ayırma, Öğe veya Örnekleyici nesnesinin özelliklerini sorgulamak için kullanılabilir. Bu nesneler Java'dan oluşturulur. Bunları bir komut dosyasından oluşturamazsınız.
Ayırmalar:
Ayırmalar, RenderScript çekirdekleri arasında veri aktarmak için kullanılan birincil yöntemdir.
Bunlar; bit eşlemleri, dokuları, rastgele veri noktalarını vb. depolamak için kullanılabilen yapılandırılmış bir hücre koleksiyonudur.
Bu hücre koleksiyonu birçok boyuta (X, Y, Z, Dizi0, Dizi1, Dizi2, Dizi3), yüzeye (küp haritalar için) ve ayrıntı düzeyine (eşleştirme için) sahip olabilir.
Ayırma oluşturma ile ilgili ayrıntılar için android.renderscript.Allocation bölümüne bakın.
Öğeler:
RenderScript'te hem bir Allocation hücrelerine ilişkin tür bilgileri hem de o türün örneklendirmesi nedeniyle "öğe" terimi biraz net bir şekilde kullanılmaktadır. Örneğin:
- rs_element, tür spesifikasyonunun tanıtıcısıdır ve
- rsGetElementAt() gibi işlevlerde "öğe", türün örneklendirmesini, yani bir Allocation hücresini ifade eder.
Aşağıdaki işlevler, tür spesifikasyonunun özelliklerini sorgulamanıza olanak tanır.
Bir öğe, C'de bulunan basit bir veri türlerini (ör. tam sayı, kayan noktalı veya boole) belirtebilir. Ayrıca, bir RenderScript nesnesinin tanıtıcısını da belirtebilir. Temel türlerin listesi için rs_data_type bölümüne bakın.
Öğeler, temel türlerin sabit boyutlu vektör (2, 3 veya 4 boyutunda) sürümlerini belirtebilir. Öğeler, karmaşık öğeler halinde bir araya getirilebilir. Böylece C yapısı tanımlarına eşdeğer sonuçlar elde edilir.
Öğelerin, piksel verilerini yorumlamak için kullanılan anlamsal bilgiler olan bir türü de olabilir. rs_data_kind konusuna bakın.
Ortak öğelerin tahsislerini oluştururken F32_2 gibi önceden tanımlanmış birçok öğeden birini kullanabilirsiniz.
Karmaşık Öğeler oluşturmak için Element.Builder Java sınıfını kullanın.
Örnekleyiciler:
Örnekleyici nesneleri, Ayırmaların bir çekirdek içinde yapı olarak nasıl okunabileceğini tanımlar. Bkz. android.renderscript.S.
Özet
| Fonksiyonlar | |
|---|---|
| rsAllocationGetDimFaces | Birden fazla yüzün bulunması |
| rsAllocationGetDimLOD | Ayrıntı seviyelerinin varlığı |
| rsAllocationGetDimX | X boyutunun boyutu |
| rsAllocationGetDimY | Y boyutunun boyutu |
| rsAllocationGetDimZ | Z boyutunun boyutu |
| rsAllocationGetElement | Bir Allocation hücresini açıklayan nesneyi alın |
| rsClearObject | Nesneyi serbest bırakma |
| rsElementGetBytesSize | Bir Öğenin Boyutu |
| rsElementGetDataKind | Öğe Türü |
| rsElementGetDataType | Bir Öğenin veri türü |
| rsElementGetSubElement | Karmaşık bir elementin alt öğesi |
| rsElementGetSubElementArraySize | Karmaşık bir elementin alt öğesinin dizi boyutu |
| rsElementGetSubElementCount | Alt öğe sayısı |
| rsElementGetSubElementName | Alt öğenin adı |
| rsElementGetSubElementNameLength | Alt öğe adının uzunluğu |
| rsElementGetSubElementoffsetBytes | Örneklenen alt öğenin göreli konumu |
| rsElementGetVectorSize | Öğenin vektör boyutu |
| rsIsNesnesi | Herkese açık kullanıcı adının boş olup olmadığını kontrol edin |
| rsSamplerGetAnizotropi | Örnekleyicinin Anizotropisi |
| rsSamplerGetMagnification | Örnekleyici büyütme değeri |
| rsSamplerGetMinification | Örnekleyici küçültme değeri |
| rsSamplerGetWrapS | Örnekleyici sarmalama S değeri |
| rsSamplerGetWrapT | Örnekleyici sarmalama T değeri |
| Kullanımdan Kaldırılan İşlevler | |
|---|---|
| rsGetAllocation | Kullanımdan kaldırıldı. Belirli bir işaretçi için Ayırmayı döndürme |
Fonksiyonlar
rsAllocationGetDimFaces : Birden fazla yüzün bulunması
| uint32_t rsAllocationGetDimFaces(rs_allocation a); |
İlerlemeler
| Birden fazla yüz varsa 1, aksi takdirde 0 değerini döndürür. |
Ayırma bir küp haritasıysa birden fazla yüz varsa bu işlev 1 değerini döndürür. Diğer tüm durumlarda 0 değerini döndürür.
Şu anda çalışan bir çekirdeğin boyutunu almak için rsGetDimHasFaces() işlevini kullanın.
rsAllocationGetDimLOD : Ayrıntı düzeylerinin varlığı
| uint32_t rsAllocationGetDimLOD(rs_allocation a); |
İlerlemeler
| Birden fazla LOD varsa 1, aksi takdirde 0 sonucunu döndürür. |
Bir Atamayı birden fazla Ayrıntı Düzeyinin varlığı açısından sorgulayın. Bu, mipmaps için yararlı bir özelliktir.
Şu anda çalışan bir çekirdeğin boyutunu almak için rsGetDimLod() işlevini kullanın.
rsAllocationGetDimX : X boyutunun boyutu
| uint32_t rsAllocationGetDimX(rs_allocation a); |
İlerlemeler
| Ayırma'nın X boyutu. |
Ayırma'nın X boyutunun boyutunu döndürür.
Şu anda çalışan bir çekirdeğin boyutunu almak için rsGetDimX() işlevini kullanın.
rsAllocationGetDimY : Y boyutunun boyutu
| uint32_t rsAllocationGetDimY(rs_allocation a); |
İlerlemeler
| Ayırma'nın Y boyutu. |
Ayırma'nın Y boyutunun boyutunu döndürür. Ayırmanın boyutu ikiden azsa 0 değerini döndürür.
Şu anda çalışan bir çekirdeğin boyutunu almak için rsGetDimY() işlevini kullanın.
rsAllocationGetDimZ : Z boyutunun boyutu
| uint32_t rsAllocationGetDimZ(rs_allocation a); |
İlerlemeler
| Ayırma'nın Z boyutu. |
Ayırma'nın Z boyutunun boyutunu döndürür. Ayırmanın boyutu üçten azsa 0 değerini döndürür.
Şu anda çalışan bir çekirdeğin boyutunu almak için rsGetDimZ() komutunu kullanın.
rsAllocationGetElement : Bir Allocation hücresini açıklayan nesneyi alın
| rs_element rsAllocationGetElement(rs_allocation a); |
Parametreler
| CANNOT TRANSLATE | Verileri almak için kullanılacak ayırma. |
|---|
İlerlemeler
| Ayırma düzenini açıklayan öğe. |
Ayırma işlevindeki bir hücrenin türünü, türünü ve diğer özelliklerini açıklayan Element nesnesini alın. Aşağıdaki rsElement* işlevlerine bakın.
rsClearObject : Nesneyi serbest bırakma
| void rsClearObject(rs_allocation* dst); | |
| void rsClearObject(rs_element* dst); | |
| void rsClearObject(rs_font* dst); | 32 bit için derleme yaparken. API düzeyi 23 ve sonraki sürümlerden kaldırıldı |
| void rsClearObject(rs_mesh* dst); | 32 bit için derleme yaparken. API düzeyi 23 ve sonraki sürümlerden kaldırıldı |
| void rsClearObject(rs_program_fragman* dst); | 32 bit için derleme yaparken. API düzeyi 23 ve sonraki sürümlerden kaldırıldı |
| void rsClearObject(rs_program_raster* dst); | 32 bit için derleme yaparken. API düzeyi 23 ve sonraki sürümlerden kaldırıldı |
| void rsClearObject(rs_program_store* dst); | 32 bit için derleme yaparken. API düzeyi 23 ve sonraki sürümlerden kaldırıldı |
| void rsClearObject(rs_program_vertex* dst); | 32 bit için derleme yaparken. API düzeyi 23 ve sonraki sürümlerden kaldırıldı |
| void rsClearObject(rs_sampler* dst); | |
| void rsClearObject(rs_script* dst); | |
| void rsClearObject(rs_type* dst); |
Çalıştırma zamanına, bu herkese açık kullanıcı adının artık ilgili nesneye erişmek için kullanılmayacağını bildirir. Bu, söz konusu nesne için son herkese açık kullanıcı adı ise kaynak kurtarma gerçekleşebilir.
Bu işlev çağrıldıktan sonra, *dst herkese açık bir tanıtıcıya ayarlanır. Bkz. rsIsObject().
rsElementGetBytesSize : Bir Öğenin Boyutu
| uint32_t rsElementGetBytesSize(rs_element e); | API düzeyi 16'da eklendi |
Bu Element örneklendirmesinin kaplayacağı boyutu bayt cinsinden döndürür.
rsElementGetDataKind : Öğe Türü
| rs_data_kind rsElementGetDataKind(rs_element e); | API düzeyi 16'da eklendi |
Öğenin veri türünü döndürür. Piksel verilerini yorumlamak için kullanılır.
rs_data_kind konusuna bakın.
rsElementGetDataType : Bir öğenin veri türü
| rs_data_type rsElementGetDataType(rs_element e); | API düzeyi 16'da eklendi |
Öğenin temel veri türünü döndürür. Bu, C/C++ benzeri bir tür (ör. RS_TYPE_UNSIGNED_8), bir herkese açık kullanıcı adı (ör. RS_TYPE_ALLOCATION ve RS_TYPE_ELEMENT) veya daha karmaşık bir sayısal tür (ör. RS_TYPE_UNSIGNED_5_6_5 ve RS_TYPE_MATRIX_4X4) olabilir. Daha fazla bilgi için rs_data_type konusuna bakın.
Öğe bir vektörü tanımlıyorsa, bu işlev, öğelerinden birinin veri türünü döndürür. Vektörün boyutunu öğrenmek için rsElementGetVectorSize'ı kullanın.
Öğe bir yapıyı açıklıyorsa RS_TYPE_NONE döndürülür. Bu karmaşık Element'i keşfetmek için rsElementGetSub* işlevlerini kullanın.
rsElementGetSubElement : Karmaşık bir öğenin alt öğesi
| rs_element rsElementGetSubElement(rs_element e, uint32_t dizin); | API düzeyi 16'da eklendi |
Parametreler
| e | Sorgulanacak öğe. |
|---|---|
| dizin | Döndürülecek alt öğenin dizini. |
İlerlemeler
| Belirtilen dizindeki alt öğe. |
Bir yapıyı temsil eden öğeler için bu işlev, belirtilen dizindeki alt öğeyi döndürür.
Öğe bir yapı değilse veya dizin, alt öğelerin sayısından büyük ya da ona eşitse geçersiz bir herkese açık kullanıcı adı döndürülür.
rsElementGetSubElementArraySize : Karmaşık bir öğenin alt öğesinin dizi boyutu
| uint32_t rsElementGetSubElementArraySize(rs_element e, uint32_t dizin); | API düzeyi 16'da eklendi |
Parametreler
| e | Sorgulanacak öğe. |
|---|---|
| dizin | Alt öğenin dizini. |
İlerlemeler
| Alt öğenin dizi boyutu. |
Karmaşık Öğeler için alt öğeler statik boyutlu diziler olabilir. Bu işlev, dizindeki alt öğenin dizi boyutunu döndürür. Bu alt öğe tekrarı, sabit boyutlu vektörlerden farklıdır.
rsElementGetSubElementCount : Alt öğe sayısı
| uint32_t rsElementGetSubElementCount(rs_element e); | API düzeyi 16'da eklendi |
Parametreler
| e | Verilerin alınacağı öğe. |
|---|
İlerlemeler
| Alt öğe sayısı. |
Öğeler, int veya kayan nokta gibi basit ya da birden çok alt öğesi olan bir yapı olabilir. Bu işlev, basit Öğeler için sıfır ve karmaşık Öğeler için alt öğe sayısını döndürür.
rsElementGetSubElementName : Alt öğenin adı
| uint32_t rsElementGetSubElementName(rs_element e, uint32_t dizin, karakter* adı, uint32_t nameLength); | API düzeyi 16'da eklendi |
Parametreler
| e | Verilerin alınacağı öğe. |
|---|---|
| dizin | Alt öğenin dizini. |
| ad | Adın depolanacağı dizinin adresi. |
| adUzunluğu | Sağlanan ad dizisinin uzunluğu. |
İlerlemeler
| Boş sonlandırıcı hariç kopyalanan karakter sayısı. |
Karmaşık Öğeler için bu işlev, belirtilen dizindeki alt öğenin adını döndürür.
rsElementGetSubElementNameLength : Alt öğe adının uzunluğu
| uint32_t rsElementGetSubElementNameLength(rs_element e, uint32_t dizin); | API düzeyi 16'da eklendi |
Parametreler
| e | Verilerin alınacağı öğe. |
|---|---|
| dizin | Alt öğenin dizini. |
İlerlemeler
| Boş sonlandırıcı da dahil olmak üzere alt öğe adının uzunluğu. |
Karmaşık Öğeler için bu işlev, belirtilen dizindeki alt öğenin adının uzunluğunu döndürür.
rsElementGetSubElementoffsetBytes : Örneklenen alt öğenin göreli konumu
| uint32_t rsElementGetSubElement OffsetBytes(rs_element e, uint32_t dizin); | API düzeyi 16'da eklendi |
Parametreler
| e | Verilerin alınacağı öğe. |
|---|---|
| dizin | Alt öğenin dizini. |
İlerlemeler
| Bayt cinsinden göreli konum. |
Bu işlev, belirtilen alt öğenin örneklendirmesinin Öğe örneği içindeki göreli konumunu döndürür.
Örneğin, Öğe 32 bitlik bir kayan noktalı değeri ve ardından 32 bitlik bir tam sayıyı tanımlarsa, ilk öğe için ofset dönüşü 0 ve ikinci 4 olur.
rsElementGetVectorSize : Öğenin vektör boyutu
| uint32_t rsElementGetVectorSize(rs_element e); | API düzeyi 16'da eklendi |
Parametreler
| e | Verilerin alınacağı öğe. |
|---|
İlerlemeler
| Öğe vektörünün uzunluğu. |
Öğenin vektör boyutunu döndürür. Öğe bir vektörü temsil etmiyorsa 1 döndürülür.
rsGetAllocation : Belirli bir işaretçi için Ayırma'yı döndürme
| rs_allocation rsGetAllocation(const void* p); |
Kullanımdan kaldırıldı. Bu işlev artık kullanılmamaktadır ve gelecekteki bir sürümde SDK'dan kaldırılacaktır.
Belirli bir işaretçi için Ayırma değerini döndürür. İşaretçi geçerli bir ayırma içinde olmalıdır. İşaretçi geçerli bir Ayırma'dan değilse sonuçlar tanımsız olur.
rsIsObject : Boş herkese açık kullanıcı adı olup olmadığını kontrol edin
| bool rsIsObject(rs_allocation v); | |
| bool rsIsObject(rs_element v); | |
| bool rsIsObject(rs_font v); | 32 bit için derleme yaparken. API düzeyi 23 ve sonraki sürümlerden kaldırıldı |
| bool rsIsObject(rs_mesh v); | 32 bit için derleme yaparken. API düzeyi 23 ve sonraki sürümlerden kaldırıldı |
| bool rsIsObject(rs_program_fragman v); | 32 bit için derleme yaparken. API düzeyi 23 ve sonraki sürümlerden kaldırıldı |
| bool rsIsObject(rs_program_raster v); | 32 bit için derleme yaparken. API düzeyi 23 ve sonraki sürümlerden kaldırıldı |
| bool rsIsObject(rs_program_store v); | 32 bit için derleme yaparken. API düzeyi 23 ve sonraki sürümlerden kaldırıldı |
| bool rsIsObject(rs_program_vertex v); | 32 bit için derleme yaparken. API düzeyi 23 ve sonraki sürümlerden kaldırıldı |
| bool rsIsObject(rs_sampler v); | |
| bool rsIsObject(rs_script v); | |
| bool rsIsObject(rs_type v); |
Herkese açık kullanıcı adı, boş olmayan bir başvuru içeriyorsa true değerini döndürür.
Bu işlev, tutma yerinde kullanılan dahili işaretçinin gerçek bir geçerli nesneye işaret ettiğini doğrulamaz; yalnızca boş olup olmadığını kontrol eder.
Bu işlev, rsElementGetSubElement() tarafından döndürülen öğeyi kontrol etmek veya bir tanıtıcıda rsClearObject() çağrısı olup olmadığını kontrol etmek için kullanılabilir.
rsSamplerGetAnisotroppy : Örnekleyicinin Anizotropisi
| kayan nokta rsSamplerGetAnisotropy(rs_sampler s); | API düzeyi 16'da eklendi |
Örnekleyicinin anizotropisini alın.
Bkz. android.renderscript.S.
rsSamplerGetMagnification : Örnekleyici büyütme değeri
| rs_sampler_value rsSamplerGetMagnification(rs_sampler s); | API düzeyi 16'da eklendi |
Örnekleyici'nin büyütme değerini öğrenin.
Bkz. android.renderscript.S.
rsSamplerGetMinification : Örnekleyici küçültme değeri
| rs_sampler_value rsSamplerGetMinification(rs_sampler s); | API düzeyi 16'da eklendi |
Örnekleyicinin küçültme değerini alma.
Bkz. android.renderscript.S.
rsSamplerGetWrapS : Örnekleyici sarmalama S değeri
| rs_sampler_value rsSamplerGetWrapS(rs_sampler s); | API düzeyi 16'da eklendi |
Örnekleyicinin sarmalama S değerini alma.
Bkz. android.renderscript.S.
rsSamplerGetWrapT : Örnekleyici sarmalama T değeri
| rs_sampler_value rsSamplerGetWrapT(rs_sampler s); | API düzeyi 16'da eklendi |
Örnekleyicinin sarmalama T değerini alın.
Bkz. android.renderscript.S.