ArTextureUpdateMode
, AR_TEXTURE_UPDATE_MODE_EXPOSE_HARDWARE_BUFFER
olarak ayarlandığında ArSession_update()
çağrıldığında ARCore, Android donanım arabelleği sağlar. Bu donanım arabelleği bir Vulkan'a VkImage
bağlanabilir.
Örnek uygulamayı görüntüleme
Vulkan oluşturma desteği hello_ar_vulkan_c örnek uygulamasında gösterilmektedir.
Donanım arabelleği çıkış modunu etkinleştirme
Yapılandırılmış ArTextureUpdateMode
, ARCore'un kamera dokusunu nasıl güncelleyeceğini belirler. AR_TEXTURE_UPDATE_MODE_EXPOSE_HARDWARE_BUFFER
olarak ayarlandığında ARCore, kamera görüntüsünü bir AHardwareBuffer
aracılığıyla sağlar.
Oturum AR_TEXTURE_UPDATE_MODE_EXPOSE_HARDWARE_BUFFER
kullanacak şekilde yapılandırın:
ArConfig* ar_config = NULL; ArConfig_create(ar_session, &ar_config); ArConfig_setTextureUpdateMode(ar_session, ar_config, AR_TEXTURE_UPDATE_MODE_EXPOSE_HARDWARE_BUFFER); CHECK(ArSession_configure(ar_session, ar_config) == AR_SUCCESS); ArConfig_destroy(ar_config);
Donanım arabelleğini alma
AR_TEXTURE_UPDATE_MODE_EXPOSE_HARDWARE_BUFFER
etkinleştirildiğinde donanım arabelleğini almak için ArFrame_getHardwareBuffer()
kullanın:
void* native_hardware_buffer = NULL; ArFrame_getHardwareBuffer(ar_session, ar_frame, &native_hardware_buffer); if ((int64_t)native_hardware_buffer == 0) { // The hardware buffer isn't ready yet. return; }
Vulkan oluşturma sırasında donanım arabelleğini kullanma
Vulkan'ı kullanarak bir AR uygulamasının nasıl oluşturulacağına dair örnek için vulkan_handler.cc
bölümüne bakın.
Desteklenen cihazlar
Vulkan oluşturma desteği yalnızca Android API düzeyi 27 ve sonraki sürümlerde kullanılabilir. Ayrıca cihaz, VK_ANDROID_external_memory_android_hardware_buffer
uzantısını desteklemelidir.
Uygulamanızın manifest dosyasında Vulkan'ı zorunlu kılın
Google Play, verilerinizi filtrelemek için uygulama manifestinizde belirtilen <uses-feature>
kullanır.
uygulamanın donanım ve yazılım özelliği gereksinimlerini karşılamayan cihazlarda kullanılabilir.
Vulkan 1.0 kullanan cihazlar gerekli uzantıyı desteklemeyebilir ancak Vulkan 1.1 ile uyumlu cihazlar Android 10'dan (API düzeyi 29) itibaren gerekli uzantıya sahip olmalıdır.