Config.TextureUpdateMode
TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
olarak ayarlandığında ARCore, Session.update()
çağrıldığında bir Android donanım arabelleği sağlar. Bu donanım arabelleği bir Vulkan'a VkImage
bağlanabilir.
Örnek uygulamayı göster
Vulkan oluşturma desteği, hello_ar_vulkan_c örnek uygulamasında gösterilmektedir.
Donanım arabellek çıkış modunu etkinleştir
Yapılandırılmış Config.TextureUpdateMode
, ARCore'un kamera dokusunu nasıl güncelleyeceğini belirler. Politika TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
olarak ayarlandığında ARCore, kamera görüntüsünü bir HardwareBuffer
üzerinden sağlar.
Oturum TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
kullanacak şekilde yapılandırın:
Java
Config config = session.getConfig(); config.setTextureUpdateMode(Config.TextureUpdateMode.EXPOSE_HARDWARE_BUFFER); session.configure(config);
Kotlin
session.configure( session.config.apply { textureUpdateMode = Config.TextureUpdateMode.EXPOSE_HARDWARE_BUFFER } )
Donanım arabelleğini alma
TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
etkinleştirildiğinde donanım arabelleğini almak için Frame.getHardwareBuffer()
kullanın:
Java
try { HardwareBuffer buffer = frame.getHardwareBuffer(); // Use the buffer object in your rendering. } catch (NotYetAvailableException e) { // The hardware buffer is not ready yet. }
Kotlin
try { val buffer = frame.hardwareBuffer // Use the buffer object in your rendering. } catch (e: NotYetAvailableException) { // The hardware buffer is not ready yet. }
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, uygulamanızı donanım ve yazılım özelliği şartlarını karşılamayan cihazlardan filtrelemek için uygulama manifestinizde belirtilen <uses-feature>
öğesini kullanır.
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.