عند ضبط ArTextureUpdateMode
على AR_TEXTURE_UPDATE_MODE_EXPOSE_HARDWARE_BUFFER
، سيوفّر ARCore مخازن ذاكرة مؤقتة للأجهزة في Android عند استدعاء ArSession_update()
. يمكن ربط هذا المخزن المؤقت للأجهزة بـ Vulkan VkImage
.
عرض نموذج الطلب
يمكنك الاطّلاع على ميزة دعم عرض Vulkan في تطبيق نموذج hello_ar_vulkan_c.
تفعيل وضع إخراج المخزن المؤقت للأجهزة
يحدِّد ArTextureUpdateMode
الذي تم ضبطه كيفية تعديل ARCore لنسيج الكاميرا. عند ضبط السياسة على AR_TEXTURE_UPDATE_MODE_EXPOSE_HARDWARE_BUFFER
، سيوفّر ARCore صورة الكاميرا من خلال AHardwareBuffer
.
ضبط الجلسة لاستخدام AR_TEXTURE_UPDATE_MODE_EXPOSE_HARDWARE_BUFFER
:
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);
الحصول على المخزن المؤقت للأجهزة
عند تفعيل AR_TEXTURE_UPDATE_MODE_EXPOSE_HARDWARE_BUFFER
، استخدِم ArFrame_getHardwareBuffer()
للحصول على وحدة تخزين مؤقت للأجهزة:
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
يُرجى الانتقال إلى vulkan_handler.cc
للاطّلاع على مثال حول كيفية عرض تطبيق الواقع المعزّز باستخدام Vulkan.
الأجهزة المتوافقة
لا يتوفّر دعم عرض Vulkan إلا على مستويات واجهة برمجة تطبيقات Android 27
أعلاه. بالإضافة إلى ذلك، يجب أن يتيح الجهاز استخدام الإضافة "VK_ANDROID_external_memory_android_hardware_buffer
".
اشتراط استخدام Vulkan في بيان تطبيقك
يستخدم Google Play <uses-feature>
الموضَّح في بيان تطبيقك لفلترة
تطبيقك من الأجهزة التي لا تستوفي متطلبات ميزات الأجهزة والبرامج.
قد لا تتوافق الأجهزة التي تستخدم Vulkan 1.0 مع الإضافة المطلوبة، ولكن قد لا تكون متوافقة مع الأجهزة.
متوافق مع Vulkan 1.1 يجب أن تتضمّن الإضافة المطلوبة التي تبدأ في Android 10 (مستوى واجهة برمجة التطبيقات 29).