XR_ANDROID_eye_tracking OpenXR एक्सटेंशन

Name String

XR_ANDROID_eye_tracking

एक्सटेंशन टाइप

इंस्टेंस एक्सटेंशन

रजिस्टर किया गया एक्सटेंशन नंबर

457

बदलाव

1

एक्सटेंशन और वर्शन की डिपेंडेंसी

OpenXR 1.0

पिछली बार बदलाव किए जाने की तारीख

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 मिलेगा.

मान्य इस्तेमाल (इंप्लिसिट)

आई ट्रैकर हैंडल बनाना

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_SUCCESS
  • XR_SESSION_LOSS_PENDING

Failure

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_VALIDATION_FAILURE
  • XR_ERROR_RUNTIME_FAILURE
  • XR_ERROR_HANDLE_INVALID
  • XR_ERROR_INSTANCE_LOST
  • XR_ERROR_SESSION_LOST
  • XR_ERROR_OUT_OF_MEMORY
  • XR_ERROR_LIMIT_REACHED
  • XR_ERROR_FEATURE_UNSUPPORTED

XrEyeTrackerCreateInfoANDROID स्ट्रक्चर को इस तरह परिभाषित किया गया है:

typedef struct XrEyeTrackerCreateInfoANDROID {
    XrStructureType    type;
    void*              next;
} XrEyeTrackerCreateInfoANDROID;

पैसे चुकाकर बने सदस्यों के लिए उपलब्ध सुविधाओं का ब्यौरा

  • type इस स्ट्रक्चर का XrStructureType है.
  • next, NULL या स्ट्रक्चर चेन में अगले स्ट्रक्चर का पॉइंटर होता है. इस तरह के स्ट्रक्चर, कोर OpenXR या इस एक्सटेंशन में तय नहीं किए गए हैं.

XrEyeTrackerCreateInfoANDROID स्ट्रक्चर में, XrEyeTrackerANDROID हैंडल बनाने के लिए जानकारी दी गई है.

मान्य इस्तेमाल (इंप्लिसिट)

xrDestroyEyeTrackerANDROID फ़ंक्शन को इस तरह से परिभाषित किया गया है:

XrResult xrDestroyEyeTrackerANDROID(
    XrEyeTrackerANDROID                         eyeTracker);

पैरामीटर की जानकारी

xrDestroyEyeTrackerANDROID फ़ंक्शन, आंखों को ट्रैक करने की सुविधा का इस्तेमाल खत्म होने पर eyeTracker और इससे जुड़े संसाधनों को रिलीज़ करता है.

मान्य इस्तेमाल (इंप्लिसिट)

  • xrDestroyEyeTrackerANDROID को कॉल करने से पहले, XR_ANDROID_eye_tracking एक्सटेंशन को चालू करना ज़रूरी है
  • eyeTracker एक मान्य XrEyeTrackerANDROID हैंडल होना चाहिए.

थ्रेड सेफ़्टी

  • eyeTracker और बच्चों के सभी हैंडल को बाहरी तौर पर सिंक किया जाना ज़रूरी है

रिटर्न कोड

सफल

  • XR_SUCCESS

Failure

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_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_SUCCESS
  • XR_SESSION_LOSS_PENDING

Failure

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_VALIDATION_FAILURE
  • XR_ERROR_RUNTIME_FAILURE
  • XR_ERROR_HANDLE_INVALID
  • XR_ERROR_INSTANCE_LOST
  • XR_ERROR_SESSION_LOST
  • XR_ERROR_OUT_OF_MEMORY
  • XR_ERROR_LIMIT_REACHED
  • XR_ERROR_TIME_INVALID
  • XR_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_SUCCESS
  • XR_SESSION_LOSS_PENDING

Failure

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_VALIDATION_FAILURE
  • XR_ERROR_RUNTIME_FAILURE
  • XR_ERROR_HANDLE_INVALID
  • XR_ERROR_INSTANCE_LOST
  • XR_ERROR_SESSION_LOST
  • XR_ERROR_OUT_OF_MEMORY
  • XR_ERROR_LIMIT_REACHED
  • XR_ERROR_TIME_INVALID
  • XR_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

ब्यौरा

XR_EYE_STATE_INVALID_ANDROID

इससे पता चलता है कि आंख में कोई गड़बड़ी है या वह मौजूद नहीं है.

XR_EYE_STATE_GAZING_ANDROID

इससे पता चलता है कि आंखें खुली हैं.

XR_EYE_STATE_SHUT_ANDROID

इससे पता चलता है कि आंख बंद है. ऐसा पलक झपकने या आंख मारने की वजह से होता है.

XrEyeIndexANDROID एन्यूमरेशन से, बाईं या दाईं आंख के इंडेक्स का पता चलता है.

typedef enum XrEyeIndexANDROID {
    XR_EYE_INDEX_LEFT_ANDROID = 0,
    XR_EYE_INDEX_RIGHT_ANDROID = 1
} XrEyeIndexANDROID;

इन एनम का मतलब यह है:

Enum

ब्यौरा

XR_EYE_INDEX_LEFT_ANDROID

बाईं आंख.

XR_EYE_INDEX_RIGHT_ANDROID

दाईं आंख.

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

ब्यौरा

XR_EYE_TRACKING_MODE_NOT_TRACKING_ANDROID

इस कुकी से पता चलता है कि आंखों की गतिविधियों को ट्रैक करने की सुविधा चालू नहीं है.

XR_EYE_TRACKING_MODE_RIGHT_ANDROID

इससे पता चलता है कि सिर्फ़ दाईं आंख को ट्रैक किया जा रहा है.

XR_EYE_TRACKING_MODE_LEFT_ANDROID

इससे पता चलता है कि सिर्फ़ बाईं आंख को ट्रैक किया जा रहा है.

XR_EYE_TRACKING_MODE_BOTH_ANDROID

इससे पता चलता है कि बाईं और दाईं, दोनों आंखों को ट्रैक किया जा रहा है.

आई ट्रैकिंग के लिए कोड का उदाहरण

यहां दिए गए उदाहरण कोड में, व्यू स्पेस के हिसाब से आंखों की जानकारी पाने का तरीका बताया गया है.

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_ANDROID
  • XR_TYPE_EYE_TRACKER_CREATE_INFO_ANDROID
  • XR_TYPE_EYES_GET_INFO_ANDROID
  • XR_TYPE_SYSTEM_EYE_TRACKING_PROPERTIES_ANDROID

नए एनम

नए स्ट्रक्चर

नए फ़ंक्शन

समस्याएं

वर्शन इतिहास

  • पहला संशोधन, 17-01-2025 (कैनी वर्केमर)
    • एक्सटेंशन के बारे में शुरुआती जानकारी

OpenXR™ और OpenXR लोगो, The Khronos Group Inc. के ट्रेडमार्क हैं. इन्हें चीन, यूरोपियन यूनियन, जापान, और यूनाइटेड किंगडम में ट्रेडमार्क के तौर पर रजिस्टर किया गया है.