जब ArTextureUpdateMode
को AR_TEXTURE_UPDATE_MODE_EXPOSE_HARDWARE_BUFFER
पर सेट किया जाता है, तो ArSession_update()
को कॉल करने पर, ARCore एक Android हार्डवेयर बफ़र उपलब्ध कराएगा. इस हार्डवेयर बफ़र को Vulkan VkImage
से बंधा जा सकता है.
ऐप्लिकेशन का सैंपल देखें
hello_ar_vulkan_c सैंपल ऐप्लिकेशन में, Vulkan रेंडरिंग की सुविधा के बारे में बताया गया है.
हार्डवेयर बफ़र आउटपुट मोड चालू करना
कॉन्फ़िगर किए गए 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 का इस्तेमाल करके एआर ऐप्लिकेशन को रेंडर करने का उदाहरण देखने के लिए, vulkan_handler.cc
को देखें.
वे डिवाइस जिन पर YouTube TV इस्तेमाल किया जा सकता है
Vulkan रेंडरिंग की सुविधा, सिर्फ़ Android के एपीआई लेवल 27 और उसके बाद के वर्शन पर उपलब्ध है. इसके अलावा, डिवाइस पर VK_ANDROID_external_memory_android_hardware_buffer
एक्सटेंशन काम करना चाहिए.
आपके ऐप्लिकेशन के मेनिफ़ेस्ट में Vulkan को शामिल करना ज़रूरी है
Google Play, आपके ऐप्लिकेशन मेनिफ़ेस्ट में बताए गए <uses-feature>
का इस्तेमाल करके,
ऐप्लिकेशन को ऐसे डिवाइसों से डाउनलोड करें जो इसके हार्डवेयर और सॉफ़्टवेयर की सुविधाओं की ज़रूरी शर्तों को पूरा न करते हों.
ऐसा हो सकता है कि Vulkan 1.0 का इस्तेमाल करने वाले डिवाइसों पर, ज़रूरी एक्सटेंशन काम न करे. हालांकि, Vulkan 1.1 के साथ काम करने वाले डिवाइसों में, Android 10 (एपीआई लेवल 29) से ज़रूरी एक्सटेंशन होना ज़रूरी है.