Name String
XR_ANDROID_eye_tracking
एक्सटेंशन टाइप
इंस्टेंस एक्सटेंशन
रजिस्टर किया गया एक्सटेंशन नंबर
457
बदलाव
1
एक्सटेंशन और वर्शन की डिपेंडेंसी
पिछली बार बदलाव किए जाने की तारीख
2025-01-17
आईपी का स्टेटस
आईपी से जुड़े किसी भी दावे की जानकारी नहीं है.
योगदान देने वाले
स्पेंसर क्विन, Google
जेरेड फ़ाइंडर, Google
लेवाना चेन, Google
कैनी वर्केमर, Google
प्रशांति गुरुमूर्ति, Google
निहाव जैन, Google
खास जानकारी
इस एक्सटेंशन की मदद से, ऐप्लिकेशन को उपयोगकर्ता की आंखों की पोज़िशन और ओरिएंटेशन के साथ-साथ आई ट्रैकिंग की स्थिति के बारे में जानकारी मिलती है.
आई ट्रैकिंग की सुविधा से जुड़ा डेटा, दो मोड में उपलब्ध होता है: मोटा और बारीक. कोर्स ट्रैकिंग से, उपयोगकर्ता की आंखों की जगह का अनुमान लगाया जाता है. वहीं, फ़ाइन ट्रैकिंग से, आंखों की जगह का ज़्यादा सटीक अनुमान लगाया जाता है. कोर्स ट्रैकिंग का इस्तेमाल उन ऐप्लिकेशन के लिए किया जाता है जो अवतार जैसी बुनियादी सुविधा देना चाहते हैं. वहीं, फ़ाइन ट्रैकिंग का इस्तेमाल ज़्यादा सटीक ऐप्लिकेशन के लिए किया जाता है.
इंटरैक्शन के लिए, XR_EXT_eye_gaze_interaction का इस्तेमाल किया जाना चाहिए.
सिस्टम की क्षमता की जांच करना
XrSystemEyeTrackingPropertiesANDROID स्ट्रक्चर को इस तरह परिभाषित किया गया है:
typedef struct XrSystemEyeTrackingPropertiesANDROID {
XrStructureType type;
void* next;
XrBool32 supportsEyeTracking;
} XrSystemEyeTrackingPropertiesANDROID;
पैसे चुकाकर बने सदस्यों के लिए उपलब्ध सुविधाओं का ब्यौरा
typeइस स्ट्रक्चर काXrStructureTypeहै.next,NULLया स्ट्रक्चर चेन में अगले स्ट्रक्चर का पॉइंटर होता है. इस तरह के स्ट्रक्चर, कोर OpenXR या इस एक्सटेंशन में तय नहीं किए गए हैं.supportsEyeTrackingएकXrBool32है. इससे पता चलता है कि मौजूदा सिस्टम में आई ट्रैकिंग की सुविधा काम करती है या नहीं.
कोई ऐप्लिकेशन यह देख सकता है कि सिस्टम में आंखों को ट्रैक करने की सुविधा है या नहीं. इसके लिए, उसे xrGetSystemProperties को कॉल करते समय, XrSystemProperties में XrSystemEyeTrackingPropertiesANDROID स्ट्रक्चर को जोड़ना होगा. अगर supportsEyeTracking, XR_FALSE दिखाता है, तो किसी ऐप्लिकेशन को xrCreateEyeTrackerANDROID से XR_ERROR_FEATURE_UNSUPPORTED मिलेगा.
मान्य इस्तेमाल (इंप्लिसिट)
XrSystemEyeTrackingPropertiesANDROIDका इस्तेमाल करने से पहले,XR_ANDROID_eye_trackingएक्सटेंशन चालू करना ज़रूरी हैtypeज़रूरी तौर परXR_TYPE_SYSTEM_EYE_TRACKING_PROPERTIES_ANDROIDहोना चाहिएnextज़रूरी है कि वहNULLहो या स्ट्रक्चर चेन में अगले स्ट्रक्चर का मान्य पॉइंटर हो
आई ट्रैकर हैंडल बनाना
XR_DEFINE_HANDLE(XrEyeTrackerANDROID)
XrEyeTrackerANDROID हैंडल, आंखों को ट्रैक करने वाले आई ट्रैकर को दिखाता है. साथ ही, यह सटीक तरीके से मैप करता है कि उपयोगकर्ता क्या देख रहा है.
आंखों के मूवमेंट को ट्रैक करने से जुड़ा डेटा, संवेदनशील निजी जानकारी हो सकती है. यह निजी निजता और अखंडता से काफ़ी हद तक जुड़ा होता है. हमारा सुझाव है कि जो ऐप्लिकेशन आंखों की गतिविधियों को ट्रैक करने वाले डेटा को सेव या ट्रांसफ़र करते हैं वे हमेशा उपयोगकर्ता से, डेटा को सेव या ट्रांसफ़र करने की अनुमति लें.
इस हैंडल का इस्तेमाल करके, इस एक्सटेंशन में मौजूद अन्य फ़ंक्शन का इस्तेमाल करके, आंखों को ट्रैक करने से जुड़ा डेटा ऐक्सेस किया जा सकता है.
आई ट्रैकिंग की सुविधा, सीन में आंखों की पोज़िशन और स्टेटस दिखाती है.
xrCreateEyeTrackerANDROID फ़ंक्शन को इस तरह से परिभाषित किया गया है:
XrResult xrCreateEyeTrackerANDROID(
XrSession session,
const XrEyeTrackerCreateInfoANDROID* createInfo,
XrEyeTrackerANDROID* eyeTracker);
पैरामीटर की जानकारी
sessionएकXrSessionहैंडल है, जिसमें आंखों को ट्रैक करने की सुविधा चालू होगी.createInfo,XrEyeTrackerCreateInfoANDROIDहै. इसका इस्तेमाल, आंखों की गतिविधियों को ट्रैक करने के लिए किया जाता है.eyeTracker,XrEyeTrackerANDROIDहैंडल है.
कोई ऐप्लिकेशन, xrCreateEyeTrackerANDROID फ़ंक्शन का इस्तेमाल करके XrEyeTrackerANDROID हैंडल बना सकता है.
अगर सिस्टम में आंखों को ट्रैक करने की सुविधा काम नहीं करती है, तो xrCreateEyeTrackerANDROID से XR_ERROR_FEATURE_UNSUPPORTED वापस आ जाएगा.
मान्य इस्तेमाल (इंप्लिसिट)
xrCreateEyeTrackerANDROIDको कॉल करने से पहले,XR_ANDROID_eye_trackingएक्सटेंशन को चालू करना ज़रूरी हैsession,XrSessionका मान्य हैंडल होना चाहिएcreateInfoज़रूरी है कि यह एक मान्यXrEyeTrackerCreateInfoANDROIDस्ट्रक्चर का पॉइंटर होeyeTracker,XrEyeTrackerANDROIDहैंडल का पॉइंटर होना चाहिए
रिटर्न कोड
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_VALIDATION_FAILUREXR_ERROR_RUNTIME_FAILUREXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_SESSION_LOSTXR_ERROR_OUT_OF_MEMORYXR_ERROR_LIMIT_REACHEDXR_ERROR_FEATURE_UNSUPPORTED
XrEyeTrackerCreateInfoANDROID स्ट्रक्चर को इस तरह परिभाषित किया गया है:
typedef struct XrEyeTrackerCreateInfoANDROID {
XrStructureType type;
void* next;
} XrEyeTrackerCreateInfoANDROID;
पैसे चुकाकर बने सदस्यों के लिए उपलब्ध सुविधाओं का ब्यौरा
typeइस स्ट्रक्चर काXrStructureTypeहै.next,NULLया स्ट्रक्चर चेन में अगले स्ट्रक्चर का पॉइंटर होता है. इस तरह के स्ट्रक्चर, कोर OpenXR या इस एक्सटेंशन में तय नहीं किए गए हैं.
XrEyeTrackerCreateInfoANDROID स्ट्रक्चर में, XrEyeTrackerANDROID हैंडल बनाने के लिए जानकारी दी गई है.
मान्य इस्तेमाल (इंप्लिसिट)
XrEyeTrackerCreateInfoANDROIDका इस्तेमाल करने से पहले,XR_ANDROID_eye_trackingएक्सटेंशन चालू करना ज़रूरी हैtypeज़रूरी तौर परXR_TYPE_EYE_TRACKER_CREATE_INFO_ANDROIDहोना चाहिएnextज़रूरी है कि वहNULLहो या स्ट्रक्चर चेन में अगले स्ट्रक्चर का मान्य पॉइंटर हो
xrDestroyEyeTrackerANDROID फ़ंक्शन को इस तरह से परिभाषित किया गया है:
XrResult xrDestroyEyeTrackerANDROID(
XrEyeTrackerANDROID eyeTracker);
पैरामीटर की जानकारी
eyeTracker,XrEyeTrackerANDROIDहै. इसे पहलेxrCreateEyeTrackerANDROIDने बनाया था.
xrDestroyEyeTrackerANDROID फ़ंक्शन, आंखों को ट्रैक करने की सुविधा का इस्तेमाल खत्म होने पर eyeTracker और इससे जुड़े संसाधनों को रिलीज़ करता है.
मान्य इस्तेमाल (इंप्लिसिट)
xrDestroyEyeTrackerANDROIDको कॉल करने से पहले,XR_ANDROID_eye_trackingएक्सटेंशन को चालू करना ज़रूरी हैeyeTrackerएक मान्यXrEyeTrackerANDROIDहैंडल होना चाहिए.
थ्रेड सेफ़्टी
eyeTrackerऔर बच्चों के सभी हैंडल को बाहरी तौर पर सिंक किया जाना ज़रूरी है
रिटर्न कोड
XR_SUCCESS
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALID
आंखों की जानकारी पाना
xrGetCoarseTrackingEyesInfoANDROID फ़ंक्शन को इस तरह से परिभाषित किया गया है:
XrResult xrGetCoarseTrackingEyesInfoANDROID(
XrEyeTrackerANDROID eyeTracker,
const XrEyesGetInfoANDROID* getInfo,
XrEyesANDROID* eyesOutput);
पैरामीटर की जानकारी
eyeTracker,XrEyeTrackerANDROIDहै. इसे पहलेxrCreateEyeTrackerANDROIDने बनाया था.getInfo,XrEyesGetInfoANDROIDका एक पॉइंटर है. इसका इस्तेमाल यह बताने के लिए किया जाता है कि कौनसा आउटपुट ज़रूरी है.infoOutput,XrEyesANDROIDका पॉइंटर है. इसमें आंखों की जानकारी होती है. जैसे, पोज़ और स्थितियां.
xrGetCoarseTrackingEyesInfoANDROID फ़ंक्शन, आंखों की स्थिति और पोज़ की जानकारी इस तरह से इकट्ठा करता है कि उपयोगकर्ता की निजता बनी रहे.
अगर ऐप्लिकेशन के पास android.permission.EYE_TRACKING_COARSE की अनुमति नहीं है, तो रनटाइम को XR_ERROR_PERMISSION_INSUFFICIENT दिखाना होगा.
आंखों की जानकारी को ठीक किया जाता है और xrGetCoarseTrackingEyesInfoANDROID को कॉल करने के समय, बेस स्पेस के हिसाब से जानकारी दी जाती है. इसके लिए, XrEyesGetInfoANDROID::time, XrEyesGetInfoANDROID::baseSpace का इस्तेमाल किया जाता है.
आंखों की पोज़िशन और दिशा को किसी भी समय ट्रैक या अनट्रैक किया जा सकता है. इसका मतलब है कि ऐप्लिकेशन यह उम्मीद कर सकते हैं कि दिए गए XrEyesANDROID::eyes पर XR_SPACE_LOCATION_POSITION_TRACKED_BIT और XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT, दोनों सेट या क्लियर किए जाएंगे. साथ ही, XrEyesANDROID::mode से ट्रैकिंग की स्थितियों का पता चलेगा.
मान्य इस्तेमाल (इंप्लिसिट)
xrGetCoarseTrackingEyesInfoANDROIDको कॉल करने से पहले,XR_ANDROID_eye_trackingएक्सटेंशन को चालू करना ज़रूरी हैeyeTracker,XrEyeTrackerANDROIDका मान्य हैंडल होना चाहिएgetInfo, मान्यXrEyesGetInfoANDROIDस्ट्रक्चर का पॉइंटर होना चाहिएeyesOutput,XrEyesANDROIDस्ट्रक्चर का पॉइंटर होना चाहिए
रिटर्न कोड
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_VALIDATION_FAILUREXR_ERROR_RUNTIME_FAILUREXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_SESSION_LOSTXR_ERROR_OUT_OF_MEMORYXR_ERROR_LIMIT_REACHEDXR_ERROR_TIME_INVALIDXR_ERROR_PERMISSION_INSUFFICIENT
xrGetFineTrackingEyesInfoANDROID
फ़ंक्शन को इस तरह से परिभाषित किया गया है:
XrResult xrGetFineTrackingEyesInfoANDROID(
XrEyeTrackerANDROID eyeTracker,
const XrEyesGetInfoANDROID* getInfo,
XrEyesANDROID* eyesOutput);
पैरामीटर की जानकारी
eyeTracker,XrEyeTrackerANDROIDहै. इसे पहलेxrCreateEyeTrackerANDROIDने बनाया था.getInfo,XrEyesGetInfoANDROIDका एक पॉइंटर है. इसका इस्तेमाल यह बताने के लिए किया जाता है कि कौनसा आउटपुट ज़रूरी है.infoOutput,XrEyesANDROIDका पॉइंटर है. इसमें आंखों की जानकारी होती है. जैसे, पोज़ और स्थितियां.xrGetFineTrackingEyesInfoANDROIDफ़ंक्शन, आंखों की स्थिति और पोज़ की जानकारीxrGetCoarseTrackingEyesInfoANDROIDके मुकाबले ज़्यादा सटीक तरीके से देता है.
अगर ऐप्लिकेशन के पास android.permission.EYE_TRACKING_FINE की अनुमति नहीं है, तो रनटाइम को XR_ERROR_PERMISSION_INSUFFICIENT दिखाना होगा.
आंखों की जानकारी को ठीक किया जाता है और xrGetFineTrackingEyesInfoANDROID को कॉल करने के समय, बेस स्पेस के हिसाब से जानकारी दी जाती है. इसके लिए, XrEyesGetInfoANDROID::time, XrEyesGetInfoANDROID::baseSpace का इस्तेमाल किया जाता है.
आंखों की पोज़िशन और दिशा को किसी भी समय ट्रैक या अनट्रैक किया जा सकता है. इसका मतलब है कि ऐप्लिकेशन यह उम्मीद कर सकते हैं कि दिए गए XrEyesANDROID::eyes पर XR_SPACE_LOCATION_POSITION_TRACKED_BIT और XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT, दोनों सेट या क्लियर किए जाएंगे. साथ ही, XrEyesANDROID::mode से ट्रैकिंग की स्थितियों का पता चलेगा.
मान्य इस्तेमाल (इंप्लिसिट)
xrGetFineTrackingEyesInfoANDROIDको कॉल करने से पहले,XR_ANDROID_eye_trackingएक्सटेंशन को चालू करना ज़रूरी हैeyeTracker,XrEyeTrackerANDROIDका मान्य हैंडल होना चाहिएgetInfo, मान्यXrEyesGetInfoANDROIDस्ट्रक्चर का पॉइंटर होना चाहिएeyesOutput,XrEyesANDROIDस्ट्रक्चर का पॉइंटर होना चाहिए
रिटर्न कोड
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_VALIDATION_FAILUREXR_ERROR_RUNTIME_FAILUREXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_SESSION_LOSTXR_ERROR_OUT_OF_MEMORYXR_ERROR_LIMIT_REACHEDXR_ERROR_TIME_INVALIDXR_ERROR_PERMISSION_INSUFFICIENT
XrEyesGetInfoANDROID स्ट्रक्चर में, आंखों की पोज़िशन और उनकी स्थितियों को वापस पाने के लिए ज़रूरी जानकारी होती है.
typedef struct XrEyesGetInfoANDROID {
XrStructureType type;
void* next;
XrTime time;
XrSpace baseSpace;
} XrEyesGetInfoANDROID;
पैसे चुकाकर बने सदस्यों के लिए उपलब्ध सुविधाओं का ब्यौरा
typeइस स्ट्रक्चर काXrStructureTypeहै.next,NULLया स्ट्रक्चर चेन में अगले स्ट्रक्चर का पॉइंटर होता है. इस तरह के स्ट्रक्चर, कोर OpenXR या इस एक्सटेंशन में तय नहीं किए गए हैं.timeवहXrTimeहै जिस परbaseSpaceके हिसाब से निर्देशांकों का आकलन किया जाता है.baseSpace,timeपर आंखों की पोज़िशन, इसXrSpaceके हिसाब से तय होगी.
मान्य इस्तेमाल (इंप्लिसिट)
XrEyesGetInfoANDROIDका इस्तेमाल करने से पहले,XR_ANDROID_eye_trackingएक्सटेंशन चालू करना ज़रूरी हैtypeज़रूरी तौर परXR_TYPE_EYES_GET_INFO_ANDROIDहोना चाहिएnextज़रूरी है कि वहNULLहो या स्ट्रक्चर चेन में अगले स्ट्रक्चर का मान्य पॉइंटर होbaseSpace,XrSpaceका मान्य हैंडल होना चाहिए
XrEyesANDROID स्ट्रक्चर में, ट्रैक की गई आंखों की जानकारी होती है.
typedef struct XrEyesANDROID {
XrStructureType type;
void* next;
XrEyeANDROID eyes[XR_EYE_MAX_ANDROID];
XrEyeTrackingModeANDROID mode;
} XrEyesANDROID;
पैसे चुकाकर बने सदस्यों के लिए उपलब्ध सुविधाओं का ब्यौरा
typeइस स्ट्रक्चर काXrStructureTypeहै.next,NULLया स्ट्रक्चर चेन में अगले स्ट्रक्चर का पॉइंटर होता है. इस तरह के स्ट्रक्चर, कोर OpenXR या इस एक्सटेंशन में तय नहीं किए गए हैं.eyes, बाईं और दाईं आंखों के लिएXrEyeANDROIDका एक कलेक्शन है. इसेXrEyeIndexANDROIDके हिसाब से इंडेक्स किया जाता है.mode,XrEyeTrackingModeANDROIDहै. इससे यह पता चलता है कि आँखें ट्रैक हो रही हैं या नहीं और कौनसी आँखें ट्रैक हो रही हैं.
मान्य इस्तेमाल (इंप्लिसिट)
XrEyesANDROIDका इस्तेमाल करने से पहले,XR_ANDROID_eye_trackingएक्सटेंशन चालू करना ज़रूरी हैtypeज़रूरी तौर परXR_TYPE_EYES_ANDROIDहोना चाहिएnextज़रूरी है कि वहNULLहो या स्ट्रक्चर चेन में अगले स्ट्रक्चर का मान्य पॉइंटर होeyesका कोई भी एलिमेंट, मान्यXrEyeANDROIDस्ट्रक्चर होना चाहिएmodeकी वैल्यू,XrEyeTrackingModeANDROIDकी मान्य वैल्यू होनी चाहिए
XrEyeANDROID स्ट्रक्चर, आंख की स्थिति, जगह, और ओरिएंटेशन के बारे में बताता है.
typedef struct XrEyeANDROID {
XrEyeStateANDROID eyeState;
XrPosef eyePose;
} XrEyeANDROID;
पैसे चुकाकर बने सदस्यों के लिए उपलब्ध सुविधाओं का ब्यौरा
eyeState, आंख काXrEyeStateANDROIDहोता है.pose,XrPosefहै. यहXrEyesGetInfoANDROID::baseSpaceके रेफ़रंस फ़्रेम में, आंख के ऑरिजिन की पोज़िशन और ओरिएंटेशन तय करता है. यहां आइडेंटिटी ओरिएंटेशन, कोऑर्डिनेट ऐक्सिस को दिखाता है. इसमें +Z, उपयोगकर्ता की आंखों की ओर, +X दाईं ओर, और +Y ऊपर की ओर होता है.
मान्य इस्तेमाल (इंप्लिसिट)
XrEyeANDROIDका इस्तेमाल करने से पहले,XR_ANDROID_eye_trackingएक्सटेंशन चालू करना ज़रूरी हैeyeStateकी वैल्यू,XrEyeStateANDROIDकी मान्य वैल्यू होनी चाहिए
XrEyeStateANDROID एन्यूमरेशन से, ट्रैक की गई आंखों की अलग-अलग स्थितियों का पता चलता है.
typedef enum XrEyeStateANDROID {
XR_EYE_STATE_INVALID_ANDROID = 0,
XR_EYE_STATE_GAZING_ANDROID = 1,
XR_EYE_STATE_SHUT_ANDROID = 2
} XrEyeStateANDROID;
इन एनम का मतलब यह है:
Enum |
ब्यौरा |
|
इससे पता चलता है कि आंख में कोई गड़बड़ी है या वह मौजूद नहीं है. |
|
इससे पता चलता है कि आंखें खुली हैं. |
|
इससे पता चलता है कि आंख बंद है. ऐसा पलक झपकने या आंख मारने की वजह से होता है. |
XrEyeIndexANDROID एन्यूमरेशन से, बाईं या दाईं आंख के इंडेक्स का पता चलता है.
typedef enum XrEyeIndexANDROID {
XR_EYE_INDEX_LEFT_ANDROID = 0,
XR_EYE_INDEX_RIGHT_ANDROID = 1
} XrEyeIndexANDROID;
इन एनम का मतलब यह है:
Enum |
ब्यौरा |
|
बाईं आंख. |
|
दाईं आंख. |
XrEyeTrackingModeANDROID इन्यूमरेशन से, ट्रैक की गई आंखों के अलग-अलग मोड की पहचान होती है.
typedef enum XrEyeTrackingModeANDROID {
XR_EYE_TRACKING_MODE_NOT_TRACKING_ANDROID = 0,
XR_EYE_TRACKING_MODE_RIGHT_ANDROID = 1,
XR_EYE_TRACKING_MODE_LEFT_ANDROID = 2,
XR_EYE_TRACKING_MODE_BOTH_ANDROID = 3
} XrEyeTrackingModeANDROID;
इन एनम का मतलब यह है:
Enum |
ब्यौरा |
|
इस कुकी से पता चलता है कि आंखों की गतिविधियों को ट्रैक करने की सुविधा चालू नहीं है. |
|
इससे पता चलता है कि सिर्फ़ दाईं आंख को ट्रैक किया जा रहा है. |
|
इससे पता चलता है कि सिर्फ़ बाईं आंख को ट्रैक किया जा रहा है. |
|
इससे पता चलता है कि बाईं और दाईं, दोनों आंखों को ट्रैक किया जा रहा है. |
आई ट्रैकिंग के लिए कोड का उदाहरण
यहां दिए गए उदाहरण कोड में, व्यू स्पेस के हिसाब से आंखों की जानकारी पाने का तरीका बताया गया है.
XrSession session; // previously initialized, e.g. created at app startup.
XrSpace viewSpace; // space created for XR_REFERENCE_SPACE_TYPE_VIEW.
// The function pointers are previously initialized using xrGetInstanceProcAddr.
PFN_xrCreateEyeTrackerANDROID xrCreateEyeTrackerANDROID; // previously initialized
PFN_xrDestroyEyeTrackerANDROID xrDestroyEyeTrackerANDROID; // previously initialized
PFN_xrGetCoarseTrackingEyesInfoANDROID xrGetCoarseTrackingEyesInfoANDROID; // previously initialized
PFN_xrGetFineTrackingEyesInfoANDROID xrGetFineTrackingEyesInfoANDROID; // previously initialized
// This will use the XrSession that is bound to the eye tracker done at time of creation.
XrEyeTrackerANDROID eyeTracker;
XrEyeTrackerCreateInfoANDROID createInfo{
.type = XR_TYPE_EYE_TRACKER_CREATE_INFO_ANDROID,
.next = nullptr};
CHK_XR(xrCreateEyeTrackerANDROID(session, &createInfo, &eyeTracker));
while (1) {
// ...
// For every frame in frame loop
// ...
XrFrameState frameState; // previously returned from xrWaitFrame
const XrTime time = frameState.predictedDisplayTime;
XrEyesANDROID fineEyesInfo{.type = XR_TYPE_EYES_ANDROID,
.next = nullptr,
.mode = XR_EYE_TRACKING_MODE_BOTH_ANDROID};
XrEyesANDROID coarseEyesInfo{.type = XR_TYPE_EYES_ANDROID,
.next = nullptr,
.mode = XR_EYE_TRACKING_MODE_BOTH_ANDROID};
XrEyesGetInfoANDROID eyesGetInfo{.type = XR_TYPE_EYES_GET_INFO_ANDROID,
.next = nullptr,
.time = time,
.baseSpace = viewSpace};
CHK_XR(xrGetCoarseTrackingEyesInfoANDROID(eyeTracker, &eyesGetInfo, &coarseEyesInfo));
CHK_XR(xrGetFineTrackingEyesInfoANDROID(eyeTracker, &eyesGetInfo, &fineEyesInfo));
// eyes tracking information is now available:
// drawLeftEye(eyesInfo.eyes[XR_EYE_INDEX_LEFT_ANDROID].eyePose);
// drawRightEye(eyesInfo.eyes[XR_EYE_INDEX_RIGHT_ANDROID].eyePose);
// ...
// Finish frame loop
// ...
}
// after usage
CHK_XR(xrDestroyEyeTrackerANDROID(eyeTracker));
नए ऑब्जेक्ट टाइप
नए Enum कॉन्सटेंट
XR_EYE_MAX_ANDROID
XrObjectType की गिनती को इन तरीकों से बढ़ाया जाता है:
XR_OBJECT_TYPE_EYE_TRACKER_ANDROID
XrStructureType की गिनती को इन तरीकों से बढ़ाया जाता है:
XR_TYPE_EYES_ANDROIDXR_TYPE_EYE_TRACKER_CREATE_INFO_ANDROIDXR_TYPE_EYES_GET_INFO_ANDROIDXR_TYPE_SYSTEM_EYE_TRACKING_PROPERTIES_ANDROID
नए एनम
नए स्ट्रक्चर
XrEyeANDROIDXrEyesANDROIDXrEyesGetInfoANDROIDXrEyeTrackerCreateInfoANDROIDXrSystemEyeTrackingPropertiesANDROID
नए फ़ंक्शन
xrCreateEyeTrackerANDROIDxrDestroyEyeTrackerANDROIDxrGetCoarseTrackingEyesInfoANDROIDxrGetFineTrackingEyesInfoANDROID
समस्याएं
वर्शन इतिहास
- पहला संशोधन, 17-01-2025 (कैनी वर्केमर)
- एक्सटेंशन के बारे में शुरुआती जानकारी
OpenXR™ और OpenXR लोगो, The Khronos Group Inc. के ट्रेडमार्क हैं. इन्हें चीन, यूरोपियन यूनियन, जापान, और यूनाइटेड किंगडम में ट्रेडमार्क के तौर पर रजिस्टर किया गया है.