XR_ANDROID_eye_tracking
Name String
XR_ANDROID_eye_tracking
एक्सटेंशन टाइप
इंस्टेंस एक्सटेंशन
रजिस्टर किया गया एक्सटेंशन नंबर
457
बदलाव
1
पुष्टि की स्थिति
पुष्टि नहीं की गई
एक्सटेंशन और वर्शन की डिपेंडेंसी
पिछली बार बदलाव किए जाने की तारीख
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 की अनुमति ज़रूर दी गई होनी चाहिए. इन अनुमतियों को खतरनाक अनुमतियां माना जाता है. इन फ़ंक्शन का इस्तेमाल करने के लिए, ऐप्लिकेशन को रनटाइम के दौरान अनुमति का अनुरोध ज़रूर करना चाहिए:
- xrCreateEyeTrackerANDROID (कम से कम एक अनुमति)
- xrGetCoarseTrackingEyesInfoANDROID (android.permission.EYE_TRACKING_COARSE)
- xrGetFineTrackingEyesInfoANDROID (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 दिखाना ज़रूरी है .
मान्य इस्तेमाल (इंप्लिसिट)
- 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 का एक मान्य हैंडल होना चाहिए -
createInfoXrEyeTrackerCreateInfoANDROID स्ट्रक्चर का मान्य पॉइंटर होना चाहिए -
eyeTrackermust be a pointer to an XrEyeTrackerANDROID handle
रिटर्न कोड
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FEATURE_UNSUPPORTEDXR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_LIMIT_REACHEDXR_ERROR_OUT_OF_MEMORYXR_ERROR_RUNTIME_FAILUREXR_ERROR_SESSION_LOSTXR_ERROR_VALIDATION_FAILURE
XrEyeTrackerCreateInfoANDROID स्ट्रक्चर को इस तरह से तय किया गया है:
typedef struct XrEyeTrackerCreateInfoANDROID {
XrStructureType type;
const 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 का पॉइंटर है. इसका इस्तेमाल, आंखों की पोज़िशन और स्थितियों के बारे में क्वेरी करने के लिए जानकारी देने के लिए किया जाता है.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 स्ट्रक्चर का पॉइंटर होना चाहिए -
eyesOutputXrEyesANDROID स्ट्रक्चर का पॉइंटर होना चाहिए
रिटर्न कोड
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_LIMIT_REACHEDXR_ERROR_OUT_OF_MEMORYXR_ERROR_PERMISSION_INSUFFICIENTXR_ERROR_RUNTIME_FAILUREXR_ERROR_SESSION_LOSTXR_ERROR_TIME_INVALIDXR_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 स्ट्रक्चर का पॉइंटर होना चाहिए -
eyesOutputXrEyesANDROID स्ट्रक्चर का पॉइंटर होना चाहिए
रिटर्न कोड
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_LIMIT_REACHEDXR_ERROR_OUT_OF_MEMORYXR_ERROR_PERMISSION_INSUFFICIENTXR_ERROR_RUNTIME_FAILUREXR_ERROR_SESSION_LOSTXR_ERROR_TIME_INVALIDXR_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के हिसाब से तय की जाएगी.
मान्य इस्तेमाल (इंप्लिसिट)
- 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 का एक ऐरे है. इसका साइज़XR_EYE_MAX_ANDROIDहै. यह बाईं और दाईं आंखों के लिए है. इसे 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 है.eyePoseएक XrPosef है. यह XrEyesGetInfoANDROID ::baseSpaceके रेफ़रंस फ़्रेम में, आँख की पुतली की पोज़िशन और ओरिएंटेशन तय करता है. यहां आइडेंटिटी ओरिएंटेशन, कोऑर्डिनेट ऐक्सिस को दिखाता है. इसमें +Z, उपयोगकर्ता की आंखों की ओर, +X दाईं ओर, और +Y ऊपर की ओर होता है.
मान्य इस्तेमाल (इंप्लिसिट)
- XrEyeANDROID का इस्तेमाल करने से पहले,
XR_ANDROID_eye_trackingएक्सटेंशन को चालू करना ज़रूरी है -
eyeStatemust 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));
नए ऑब्जेक्ट टाइप
नए निर्देश
- xrCreateEyeTrackerANDROID
- xrDestroyEyeTrackerANDROID
- xrGetCoarseTrackingEyesInfoANDROID
- xrGetFineTrackingEyesInfoANDROID
नई संरचनाएं
- XrEyeANDROID
- XrEyeTrackerCreateInfoANDROID
- XrEyesANDROID
- XrEyesGetInfoANDROID
XrSystemProperties को बढ़ाना :
नए एनम
नए Enum कॉन्स्टेंट
XR_ANDROID_EYE_TRACKING_EXTENSION_NAMEXR_ANDROID_eye_tracking_SPEC_VERSIONXR_EYE_MAX_ANDROIDXrObjectType को बढ़ाना :
XR_OBJECT_TYPE_EYE_TRACKER_ANDROID
XrStructureType को बढ़ाना :
XR_TYPE_EYES_ANDROIDXR_TYPE_EYES_GET_INFO_ANDROIDXR_TYPE_EYE_TRACKER_CREATE_INFO_ANDROIDXR_TYPE_SYSTEM_EYE_TRACKING_PROPERTIES_ANDROID
समस्याएं
वर्शन इतिहास
पहला संशोधन, 17-01-2025 (कैनी वर्केमर)
- एक्सटेंशन की शुरुआती जानकारी