RenderScript Nesne Özellikleri İşlevleri

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 TRANSLATEVerileri 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
eSorgulanacak öğe.
dizinDö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
eSorgulanacak öğe.
dizinAlt öğ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
eVerilerin 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
eVerilerin alınacağı öğe.
dizinAlt öğenin dizini.
adAdın depolanacağı dizinin adresi.
adUzunluğuSağ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
eVerilerin alınacağı öğe.
dizinAlt öğ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
eVerilerin alınacağı öğe.
dizinAlt öğ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
eVerilerin 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.