สตริงชื่อ
XR_ANDROID_eye_tracking
ประเภทชิ้นงาน
การขยายอินสแตนซ์
หมายเลขต่อที่จดทะเบียน
457
การแก้ไข
1
การพึ่งพาส่วนขยายและเวอร์ชัน
วันที่แก้ไขล่าสุด
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_ANDROID_eye_trackingก่อนใช้XrSystemEyeTrackingPropertiesANDROID typeต้องเป็นXR_TYPE_SYSTEM_EYE_TRACKING_PROPERTIES_ANDROIDnextต้องเป็นNULLหรือพอยน์เตอร์ที่ถูกต้องไปยังโครงสร้างถัดไปในเชนโครงสร้าง
สร้างแฮนเดิลเครื่องมือติดตามสายตา
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_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
การใช้งานที่ถูกต้อง (โดยนัย)
- ต้องเปิดใช้ส่วนขยาย
XR_ANDROID_eye_trackingก่อนใช้XrEyeTrackerCreateInfoANDROID typeต้องเป็นXR_TYPE_EYE_TRACKER_CREATE_INFO_ANDROIDnextต้องเป็นNULLหรือพอยน์เตอร์ที่ถูกต้องไปยังโครงสร้างถัดไปในเชนโครงสร้าง
ฟังก์ชัน xrDestroyEyeTrackerANDROID ได้รับการกําหนดดังนี้
XrResult xrDestroyEyeTrackerANDROID(
XrEyeTrackerANDROID eyeTracker);
คําอธิบายพารามิเตอร์
eyeTrackerคือXrEyeTrackerANDROIDที่สร้างโดยxrCreateEyeTrackerANDROIDก่อนหน้านี้
ฟังก์ชัน xrDestroyEyeTrackerANDROID จะปล่อย eyeTracker และทรัพยากรพื้นฐานเมื่อประสบการณ์การติดตามสายตาสิ้นสุดลง
การใช้งานที่ถูกต้อง (โดยนัย)
- ต้องเปิดใช้ส่วนขยาย
XR_ANDROID_eye_trackingก่อนเรียกใช้xrDestroyEyeTrackerANDROID 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 จะรับข้อมูลสถานะและการโพสท่าของดวงตาในลักษณะที่รักษาความเป็นส่วนตัวของผู้ใช้
รันไทม์ต้องแสดงผลเป็น 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_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
จะกำหนดดังนี้
{:#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_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ที่จะใช้ประเมินพิกัดซึ่งสัมพันธ์กับbaseSpacebaseSpaceการวางดวงตาจะสัมพันธ์กับXrSpaceนี้ที่time
การใช้งานที่ถูกต้อง (โดยนัย)
- ต้องเปิดใช้ส่วนขยาย
XR_ANDROID_eye_trackingก่อนใช้XrEyesGetInfoANDROID typeต้องเป็นXR_TYPE_EYES_GET_INFO_ANDROIDnextต้องเป็น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สำหรับตาซ้ายและขวา โดยเรียงตามลําดับโดยXrEyeIndexANDROIDmodeคือXrEyeTrackingModeANDROIDเพื่อระบุว่าดวงตากำลังติดตามหรือไม่และติดตามดวงตาข้างใด
การใช้งานที่ถูกต้อง (โดยนัย)
- ต้องเปิดใช้ส่วนขยาย
XR_ANDROID_eye_trackingก่อนใช้XrEyesANDROID typeต้องเป็นXR_TYPE_EYES_ANDROIDnextต้องเป็นNULLหรือพอยน์เตอร์ที่ถูกต้องไปยังโครงสร้างถัดไปในเชนโครงสร้าง- องค์ประกอบใดๆ ของ
eyesต้องเป็นโครงสร้างXrEyeANDROIDที่ถูกต้อง 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 |
คำอธิบาย |
|
บ่งบอกว่ารูปดวงตาอยู่ในสถานะข้อผิดพลาดหรือไม่แสดง |
|
บ่งบอกว่าดวงตากลอกมอง |
|
บ่งบอกว่าตาปิดอยู่เนื่องจากการกะพริบตา |
การแจกแจง 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
Enum ใหม่
โครงสร้างใหม่
XrEyeANDROIDXrEyesANDROIDXrEyesGetInfoANDROIDXrEyeTrackerCreateInfoANDROIDXrSystemEyeTrackingPropertiesANDROID
ฟังก์ชันใหม่
xrCreateEyeTrackerANDROIDxrDestroyEyeTrackerANDROIDxrGetCoarseTrackingEyesInfoANDROIDxrGetFineTrackingEyesInfoANDROID
ปัญหา
ประวัติเวอร์ชัน
- ฉบับที่ 1, 17-01-2025 (Kenny Vercaemer)
- คำอธิบายส่วนขยายเริ่มต้น
OpenXR™ และโลโก้ OpenXR เป็นเครื่องหมายการค้าของ The Khronos Group Inc. และจดทะเบียนเป็นเครื่องหมายการค้าในจีน สหภาพยุโรป ญี่ปุ่น และสหราชอาณาจักร