XR_ANDROID_eye_tracking

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 का इस्तेमाल किया जाना चाहिए.

अनुमतियां

Android ऐप्लिकेशन के मेनिफ़ेस्ट में, android.permission.EYE_TRACKING_COARSE या android.permission.EYE_TRACKING_FINE की अनुमति ज़रूर दी गई होनी चाहिए. इन अनुमतियों को खतरनाक अनुमतियां माना जाता है. इन फ़ंक्शन का इस्तेमाल करने के लिए, ऐप्लिकेशन को रनटाइम के दौरान अनुमति का अनुरोध ज़रूर करना चाहिए:

(सुरक्षा का लेवल: खतरनाक)

सिस्टम की क्षमता की जांच करना

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 must be a pointer to an XrEyeTrackerANDROID handle

रिटर्न कोड

सफल

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

Failure

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

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

typedef struct XrEyeTrackerCreateInfoANDROID {
    XrStructureType    type;
    const 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 का पॉइंटर है. इसका इस्तेमाल, आंखों की पोज़िशन और स्थितियों के बारे में क्वेरी करने के लिए जानकारी देने के लिए किया जाता है.
  • eyesOutput, XrEyesANDROID का पॉइंटर है. इसमें आंखों की जानकारी होती है. जैसे, पोज़ और स्थितियां.

xrGetCoarseTrackingEyesInfoANDROID फ़ंक्शन, आंखों की स्थिति और पोज़ की जानकारी इस तरह से पाता है कि उपयोगकर्ता की निजता बनी रहे.

अगर ऐप्लिकेशन के पास android.permission.EYE_TRACKING_COARSE अनुमति नहीं है, तो रनटाइम को XR_ERROR_PERMISSION_INSUFFICIENT वैल्यू ज़रूर दिखानी चाहिए.

आंखों की पोज़िशन को XrEyesGetInfoANDROID :: baseSpace पर XrEyesGetInfoANDROID :: time के तौर पर दिखाया जाता है .

आंखों की पोज़िशन और दिशा को किसी भी समय ट्रैक या अनट्रैक किया जा सकता है. इसका मतलब है कि रनटाइम को, XrEyesANDROID :: eyes पर दिए गए XR_SPACE_LOCATION_POSITION_TRACKED_BIT और XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT, दोनों को सेट करना होगा या दोनों को हटाना होगा. साथ ही, ट्रैकिंग की स्थितियां दिखाने के लिए, XrEyesANDROID :: mode को सेट करना होगा.XR_SPACE_LOCATION_POSITION_TRACKED_BITXR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT

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

  • xrGetCoarseTrackingEyesInfoANDROID को कॉल करने से पहले, XR_ANDROID_eye_tracking एक्सटेंशन को चालू करना ज़रूरी है
  • eyeTracker, XrEyeTrackerANDROID का एक मान्य हैंडल होना चाहिए
  • getInfo, मान्य XrEyesGetInfoANDROID स्ट्रक्चर का पॉइंटर होना चाहिए
  • eyesOutput XrEyesANDROID स्ट्रक्चर का पॉइंटर होना चाहिए

रिटर्न कोड

सफल

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

Failure

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_HANDLE_INVALID
  • XR_ERROR_INSTANCE_LOST
  • XR_ERROR_LIMIT_REACHED
  • XR_ERROR_OUT_OF_MEMORY
  • XR_ERROR_PERMISSION_INSUFFICIENT
  • XR_ERROR_RUNTIME_FAILURE
  • XR_ERROR_SESSION_LOST
  • XR_ERROR_TIME_INVALID
  • XR_ERROR_VALIDATION_FAILURE

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

XrResult xrGetFineTrackingEyesInfoANDROID(
    XrEyeTrackerANDROID                         eyeTracker,
    const XrEyesGetInfoANDROID*                 getInfo,
    XrEyesANDROID*                              eyesOutput);

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

  • eyeTracker एक XrEyeTrackerANDROID है, जिसे पहले xrCreateEyeTrackerANDROID ने बनाया था .
  • getInfo, XrEyesGetInfoANDROID का पॉइंटर है. इसका इस्तेमाल यह तय करने के लिए किया जाता है कि किस तरह का आउटपुट चाहिए.
  • eyesOutput, XrEyesANDROID का पॉइंटर है. इसमें आंखों की जानकारी होती है. जैसे, आंखों की पोज़िशन और उनकी स्थिति.

xrGetFineTrackingEyesInfoANDROID फ़ंक्शन, आंखों की स्थिति और पोज़ की जानकारी xrGetCoarseTrackingEyesInfoANDROID की तुलना में ज़्यादा सटीक तरीके से देता है .

अगर ऐप्लिकेशन के पास android.permission.EYE_TRACKING_FINE की अनुमति नहीं है, तो रनटाइम को XR_ERROR_PERMISSION_INSUFFICIENT दिखाना ज़रूरी है.

आंखों की जानकारी को हल किया जाता है और XrEyesGetInfoANDROID :: time , XrEyesGetInfoANDROID :: baseSpace का इस्तेमाल करके, xrGetFineTrackingEyesInfoANDROID को कॉल करने के समय बेस स्पेस के हिसाब से जानकारी दी जाती है . कॉल के समय, रनटाइम को XrEyesGetInfoANDROID :: baseSpace से तय की गई जगह की जानकारी को हल करना ज़रूरी है.

आंखों की पोज़िशन और दिशा को किसी भी समय ट्रैक या अनट्रैक किया जा सकता है. इसका मतलब है कि रनटाइम को, XrEyesANDROID :: eyes पर दिए गए XR_SPACE_LOCATION_POSITION_TRACKED_BIT और XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT, दोनों को सेट करना होगा या दोनों को हटाना होगा. साथ ही, ट्रैकिंग की स्थितियां दिखाने के लिए, XrEyesANDROID :: mode को सेट करना होगा.XR_SPACE_LOCATION_POSITION_TRACKED_BITXR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT

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

  • xrGetFineTrackingEyesInfoANDROID को कॉल करने से पहले, XR_ANDROID_eye_tracking एक्सटेंशन को चालू करना ज़रूरी है
  • eyeTracker, XrEyeTrackerANDROID का एक मान्य हैंडल होना चाहिए
  • getInfo, मान्य XrEyesGetInfoANDROID स्ट्रक्चर का पॉइंटर होना चाहिए
  • eyesOutput XrEyesANDROID स्ट्रक्चर का पॉइंटर होना चाहिए

रिटर्न कोड

सफल

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

Failure

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_HANDLE_INVALID
  • XR_ERROR_INSTANCE_LOST
  • XR_ERROR_LIMIT_REACHED
  • XR_ERROR_OUT_OF_MEMORY
  • XR_ERROR_PERMISSION_INSUFFICIENT
  • XR_ERROR_RUNTIME_FAILURE
  • XR_ERROR_SESSION_LOST
  • XR_ERROR_TIME_INVALID
  • XR_ERROR_VALIDATION_FAILURE

XrEyesGetInfoANDROID स्ट्रक्चर में, आंखों की पोज़िशन और स्थितियों को वापस पाने के लिए ज़रूरी जानकारी होती है.

typedef struct XrEyesGetInfoANDROID {
    XrStructureType    type;
    const void*        next;
    XrTime             time;
    XrSpace            baseSpace;
} XrEyesGetInfoANDROID;

सदस्यों के बारे में जानकारी

  • type इस स्ट्रक्चर का XrStructureType है.
  • next, NULL होता है या स्ट्रक्चर चेन में अगले स्ट्रक्चर का पॉइंटर होता है. इस तरह के स्ट्रक्चर, OpenXR के मुख्य स्पेसिफ़िकेशन या इस एक्सटेंशन में तय नहीं किए गए हैं.
  • time वह XrTime है जिस पर baseSpace के हिसाब से निर्देशांकों का आकलन करना है .
  • baseSpace, XrSpace है. इसमें आंखों की पोज़िशन, time के हिसाब से तय की जाएगी.

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

XrEyesANDROID स्ट्रक्चर में, ट्रैक की गई आंखों के बारे में जानकारी होती है.

typedef struct XrEyesANDROID {
    XrStructureType             type;
    void*                       next;
    XrEyeANDROID                eyes[XR_EYE_MAX_ANDROID];
    XrEyeTrackingModeANDROID    mode;
} XrEyesANDROID;

सदस्यों के बारे में जानकारी

  • type इस स्ट्रक्चर का XrStructureType है.
  • next, NULL होता है या स्ट्रक्चर चेन में अगले स्ट्रक्चर का पॉइंटर होता है. इस तरह के स्ट्रक्चर, OpenXR के मुख्य स्पेसिफ़िकेशन या इस एक्सटेंशन में तय नहीं किए गए हैं.
  • eyes , XrEyeANDROID का एक ऐरे है. इसका साइज़ XR_EYE_MAX_ANDROID है. यह बाईं और दाईं आंखों के लिए है. इसे XrEyeIndexANDROID के हिसाब से इंडेक्स किया गया है.
  • mode, XrEyeTrackingModeANDROID है. इससे पता चलता है कि फ़िलहाल कौनसी आंखें ट्रैक की जा रही हैं.

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

XrEyeANDROID स्ट्रक्चर से, आंख की स्थिति, जगह, और ओरिएंटेशन के बारे में पता चलता है.

typedef struct XrEyeANDROID {
    XrEyeStateANDROID    eyeState;
    XrPosef              eyePose;
} XrEyeANDROID;

सदस्यों के बारे में जानकारी

  • eyeState, आंख का XrEyeStateANDROID है.
  • eyePose एक XrPosef है. यह XrEyesGetInfoANDROID :: baseSpace के रेफ़रंस फ़्रेम में, आँख की पुतली की पोज़िशन और ओरिएंटेशन तय करता है. यहां आइडेंटिटी ओरिएंटेशन, कोऑर्डिनेट ऐक्सिस को दिखाता है. इसमें +Z, उपयोगकर्ता की आंखों की ओर, +X दाईं ओर, और +Y ऊपर की ओर होता है.

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

  • XrEyeANDROID का इस्तेमाल करने से पहले, XR_ANDROID_eye_tracking एक्सटेंशन को चालू करना ज़रूरी है
  • eyeState must be a valid XrEyeStateANDROID value

XrEyeStateANDROID इन्यूमरेशन, ट्रैक की गई आंखों की अलग-अलग स्थितियों की पहचान करता है.

typedef enum XrEyeStateANDROID {
    XR_EYE_STATE_INVALID_ANDROID = 0,
    XR_EYE_STATE_GAZING_ANDROID = 1,
    XR_EYE_STATE_SHUT_ANDROID = 2,
    XR_EYE_STATE_MAX_ENUM_ANDROID = 0x7FFFFFFF
} 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,
    XR_EYE_INDEX_MAX_ENUM_ANDROID = 0x7FFFFFFF
} 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,
    XR_EYE_TRACKING_MODE_MAX_ENUM_ANDROID = 0x7FFFFFFF
} 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_ANDROID_EYE_TRACKING_EXTENSION_NAME
  • XR_ANDROID_eye_tracking_SPEC_VERSION
  • XR_EYE_MAX_ANDROID
  • XrObjectType को बढ़ाना :

    • XR_OBJECT_TYPE_EYE_TRACKER_ANDROID
  • XrStructureType को बढ़ाना :

    • XR_TYPE_EYES_ANDROID
    • XR_TYPE_EYES_GET_INFO_ANDROID
    • XR_TYPE_EYE_TRACKER_CREATE_INFO_ANDROID
    • XR_TYPE_SYSTEM_EYE_TRACKING_PROPERTIES_ANDROID

समस्याएं

वर्शन इतिहास

  • पहला संशोधन, 17-01-2025 (कैनी वर्केमर)

    • एक्सटेंशन की शुरुआती जानकारी