ส่วนขยาย XR_ANDROID_eye_tracking OpenXR

สตริงชื่อ

XR_ANDROID_eye_tracking

ประเภทชิ้นงาน

การขยายอินสแตนซ์

หมายเลขต่อที่จดทะเบียน

457

การแก้ไข

1

การพึ่งพาส่วนขยายและเวอร์ชัน

OpenXR 1.0

วันที่แก้ไขล่าสุด

2025-01-17

สถานะ IP

ไม่มีการอ้างสิทธิ์ IP ที่ทราบ

ผู้เขียน

Spencer Quin จาก Google

Jared Finder จาก Google

Levana Chen จาก Google

Kenny Vercaemer จาก Google

Prasanthi Gurumurthy จาก Google

Nihav Jain จาก Google

ภาพรวม

ส่วนขยายนี้ช่วยให้แอปพลิเคชันทราบตำแหน่งและการวางแนวของดวงตาของผู้ใช้ รวมถึงสถานะการติดตามสายตา

ข้อมูลการติดตามสายตามี 2 โหมด ได้แก่ โหมดหยาบและโหมดละเอียด การติดตามแบบหยาบจะให้ค่าประมาณคร่าวๆ ของดวงตาของผู้ใช้ ส่วนการติดตามแบบละเอียดจะให้ค่าประมาณที่แม่นยำยิ่งขึ้น การติดตามแบบหยาบมีไว้สําหรับแอปพลิเคชันที่ต้องการให้การแสดงผลเป็นภาพเหมือนรูปโปรไฟล์พื้นฐาน ส่วนการติดตามแบบละเอียดมีไว้สําหรับแอปพลิเคชันที่แม่นยํามากขึ้น

สําหรับการโต้ตอบ ควรใช้ XR_EXT_eye_gaze_interaction

ตรวจสอบความสามารถของระบบ

โครงสร้าง XrSystemEyeTrackingPropertiesANDROID มีคำจำกัดความดังนี้

typedef struct XrSystemEyeTrackingPropertiesANDROID {
    XrStructureType    type;
    void*              next;
    XrBool32           supportsEyeTracking;
} XrSystemEyeTrackingPropertiesANDROID;

คำอธิบายสมาชิก

  • type คือ XrStructureType ของโครงสร้างนี้
  • next คือ NULL หรือพอยน์เตอร์ไปยังโครงสร้างถัดไปในเชนโครงสร้าง ไม่มีการกำหนดโครงสร้างดังกล่าวใน OpenXR หลักหรือส่วนขยายนี้
  • supportsEyeTracking คือ XrBool32 ซึ่งระบุว่าระบบปัจจุบันรองรับการติดตามสายตาหรือไม่

แอปพลิเคชันสามารถตรวจสอบว่าระบบสามารถติดตามการเคลื่อนไหวของตาได้หรือไม่โดยการทำเชนโครงสร้าง XrSystemEyeTrackingPropertiesANDROID กับ XrSystemProperties เมื่อเรียกใช้ xrGetSystemProperties หาก supportsEyeTracking แสดงผลเป็น XR_FALSE แอปพลิเคชันจะได้รับ XR_ERROR_FEATURE_UNSUPPORTED จาก xrCreateEyeTrackerANDROID

การใช้งานที่ถูกต้อง (โดยนัย)

สร้างแฮนเดิลเครื่องมือติดตามสายตา

XR_DEFINE_HANDLE(XrEyeTrackerANDROID)

แฮนเดิล XrEyeTrackerANDROID แสดงถึงอุปกรณ์ติดตามสายตาสำหรับติดตามการเคลื่อนไหวของดวงตาและจับคู่สิ่งที่ผู้ใช้กําลังมองอยู่อย่างแม่นยำ

ข้อมูลการติดตามสายตาอาจเป็นข้อมูลส่วนบุคคลที่ละเอียดอ่อนและเชื่อมโยงกับความเป็นส่วนตัวและความเป็นธรรมส่วนบุคคลอย่างใกล้ชิด ขอแนะนําอย่างยิ่งว่าแอปพลิเคชันที่จัดเก็บหรือโอนข้อมูลการติดตามสายตาควรขอความยินยอมที่ชัดเจนและใช้งานอยู่เสมอจากผู้ใช้

แฮนเดิลนี้สามารถใช้เพื่อเข้าถึงข้อมูลการติดตามสายตาโดยใช้ฟังก์ชันอื่นๆ ในส่วนขยายนี้ได้

การติดตามตาจะแสดงลักษณะและสถานะของตาในฉาก

ฟังก์ชัน xrCreateEyeTrackerANDROID ได้รับการกําหนดดังนี้

XrResult xrCreateEyeTrackerANDROID(
    XrSession                                   session,
    const XrEyeTrackerCreateInfoANDROID*        createInfo,
    XrEyeTrackerANDROID*                        eyeTracker);

คําอธิบายพารามิเตอร์

  • session คือแฮนเดิล XrSession ที่การติดตามสายตาจะทำงานอยู่
  • createInfo คือ XrEyeTrackerCreateInfoANDROID ที่ใช้ในการระบุการติดตามการเคลื่อนไหวของตา
  • eyeTracker คือแฮนเดิล XrEyeTrackerANDROID ที่แสดงผล

แอปพลิเคชันสามารถสร้างแฮนเดิล XrEyeTrackerANDROID โดยใช้ฟังก์ชัน xrCreateEyeTrackerANDROID

หากระบบไม่รองรับการติดตามการเคลื่อนไหวของตา ระบบจะแสดงผล XR_ERROR_FEATURE_UNSUPPORTED จาก xrCreateEyeTrackerANDROID

การใช้งานที่ถูกต้อง (โดยนัย)

  • ต้องเปิดใช้ส่วนขยาย XR_ANDROID_eye_tracking ก่อนเรียกใช้ xrCreateEyeTrackerANDROID
  • session ต้องเป็นแฮนเดิล XrSession ที่ถูกต้อง
  • createInfo ต้องเป็นพอยน์เตอร์ไปยังโครงสร้าง XrEyeTrackerCreateInfoANDROID ที่ถูกต้อง
  • eyeTracker ต้องเป็นพอยน์เตอร์ไปยังแฮนเดิล XrEyeTrackerANDROID

รหัสการคืนสินค้า

สำเร็จ

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

ไม่สำเร็จ

  • 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 และทรัพยากรพื้นฐานเมื่อประสบการณ์การติดตามสายตาสิ้นสุดลง

การใช้งานที่ถูกต้อง (โดยนัย)

  • ต้องเปิดใช้ส่วนขยาย XR_ANDROID_eye_tracking ก่อนเรียกใช้ xrDestroyEyeTrackerANDROID
  • eyeTracker ต้องเป็นแฮนเดิล XrEyeTrackerANDROID ที่ถูกต้อง

ความปลอดภัยของชุดข้อความ

  • การเข้าถึง eyeTracker และตัวแฮนเดิลย่อยต้องได้รับการซิงค์จากภายนอก

รหัสการคืนสินค้า

สำเร็จ

  • XR_SUCCESS

ไม่สำเร็จ

  • 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 จะรับข้อมูลสถานะและการโพสท่าของดวงตาในลักษณะที่รักษาความเป็นส่วนตัวของผู้ใช้

รันไทม์ต้องแสดงผลเป็น XR_ERROR_PERMISSION_INSUFFICIENT หากแอปพลิเคชันไม่มีสิทธิ์ android.permission.EYE_TRACKING_COARSE

ข้อมูลดวงตาจะได้รับการแก้ไขและสัมพันธ์กับพื้นที่ฐาน ณ เวลาเรียกใช้ xrGetCoarseTrackingEyesInfoANDROID โดยใช้ XrEyesGetInfoANDROID::time, XrEyesGetInfoANDROID::baseSpace

ระบบจะติดตามหรือยกเลิกการติดตามทั้งตำแหน่งและทิศทางของท่าทางของตา ซึ่งหมายความว่าแอปพลิเคชันจะตั้งค่าหรือล้างทั้ง XR_SPACE_LOCATION_POSITION_TRACKED_BIT และ XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT ใน XrEyesANDROID::eyes ที่ระบุ และ XrEyesANDROID::mode จะระบุสถานะการติดตาม

การใช้งานที่ถูกต้อง (โดยนัย)

  • ต้องเปิดใช้ส่วนขยาย XR_ANDROID_eye_tracking ก่อนเรียกใช้ xrGetCoarseTrackingEyesInfoANDROID
  • eyeTracker ต้องเป็นแฮนเดิล XrEyeTrackerANDROID ที่ถูกต้อง
  • getInfo ต้องเป็นพอยน์เตอร์ไปยังโครงสร้าง XrEyesGetInfoANDROID ที่ถูกต้อง
  • eyesOutput ต้องเป็นพอยน์เตอร์ไปยังโครงสร้าง XrEyesANDROID

รหัสการคืนสินค้า

สำเร็จ

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

ไม่สำเร็จ

  • 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 จะกำหนดดังนี้ {:#xrGetFineTrackingEyesInfoANDROID} C++ XrResult xrGetFineTrackingEyesInfoANDROID( XrEyeTrackerANDROID eyeTracker, const XrEyesGetInfoANDROID* getInfo, XrEyesANDROID* eyesOutput);

คําอธิบายพารามิเตอร์

  • eyeTracker เป็น XrEyeTrackerANDROID ที่ xrCreateEyeTrackerANDROID สร้างขึ้นก่อนหน้านี้
  • getInfo คือพอยน์เตอร์ไปยัง XrEyesGetInfoANDROID ซึ่งใช้ในการระบุเอาต์พุตที่ต้องการ
  • infoOutput เป็นพอยน์เตอร์ไปยัง XrEyesANDROID ที่มีข้อมูลดวงตาที่แสดงผล ซึ่งรวมถึงท่าทางและสถานะ ฟังก์ชัน xrGetFineTrackingEyesInfoANDROID จะรับข้อมูลสถานะตาและท่าทางที่มีความแม่นยำสูงกว่า xrGetCoarseTrackingEyesInfoANDROID

รันไทม์ต้องแสดงผลเป็น XR_ERROR_PERMISSION_INSUFFICIENT หากแอปพลิเคชันไม่มีสิทธิ์ android.permission.EYE_TRACKING_FINE

ข้อมูลดวงตาจะได้รับการแก้ไขและสัมพันธ์กับพื้นที่ฐาน ณ เวลาเรียกใช้ xrGetFineTrackingEyesInfoANDROID โดยใช้ XrEyesGetInfoANDROID::time, XrEyesGetInfoANDROID::baseSpace

ระบบจะติดตามหรือยกเลิกการติดตามทั้งตำแหน่งและทิศทางของท่าทางของตา ซึ่งหมายความว่าแอปพลิเคชันจะตั้งค่าหรือล้างทั้ง XR_SPACE_LOCATION_POSITION_TRACKED_BIT และ XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT ใน XrEyesANDROID::eyes ที่ระบุ และ XrEyesANDROID::mode จะระบุสถานะการติดตาม

การใช้งานที่ถูกต้อง (โดยนัย)

  • ต้องเปิดใช้ส่วนขยาย XR_ANDROID_eye_tracking ก่อนเรียกใช้ xrGetFineTrackingEyesInfoANDROID
  • eyeTracker ต้องเป็นแฮนเดิล XrEyeTrackerANDROID ที่ถูกต้อง
  • getInfo ต้องเป็นพอยน์เตอร์ไปยังโครงสร้าง XrEyesGetInfoANDROID ที่ถูกต้อง
  • eyesOutput ต้องเป็นพอยน์เตอร์ไปยังโครงสร้าง XrEyesANDROID

รหัสการคืนสินค้า

สำเร็จ

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

ไม่สำเร็จ

  • 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 การวางดวงตาจะสัมพันธ์กับ 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 สำหรับตาซ้ายและขวา โดยเรียงตามลําดับโดย XrEyeIndexANDROID
  • mode คือ XrEyeTrackingModeANDROID เพื่อระบุว่าดวงตากำลังติดตามหรือไม่และติดตามดวงตาข้างใด

การใช้งานที่ถูกต้อง (โดยนัย)

โครงสร้าง XrEyeANDROID อธิบายสถานะ ตำแหน่ง และการวางแนวของตา

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

คำอธิบายสมาชิก

  • eyeState คือXrEyeStateANDROIDของตา
  • pose คือ XrPosef ที่กําหนดตําแหน่งและการวางแนวของจุดเริ่มต้นของตาภายในเฟรมอ้างอิงของ XrEyesGetInfoANDROID::baseSpace ที่สอดคล้องกัน การวางแนวข้อมูลประจำตัวที่นี่แสดงถึงแกนพิกัดที่มี +Z ไปยังดวงตาของผู้ใช้ +X ไปทางขวา และ +Y ขึ้น

การใช้งานที่ถูกต้อง (โดยนัย)

  • ต้องเปิดใช้ส่วนขยาย XR_ANDROID_eye_tracking ก่อนใช้ XrEyeANDROID
  • 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

Enum ใหม่

โครงสร้างใหม่

ฟังก์ชันใหม่

ปัญหา

ประวัติเวอร์ชัน

  • ฉบับที่ 1, 17-01-2025 (Kenny Vercaemer)
    • คำอธิบายส่วนขยายเริ่มต้น