XR_ANDROID_eye_tracking
নাম স্ট্রিং
XR_ANDROID_eye_tracking
এক্সটেনশন টাইপ
ইনস্ট্যান্স এক্সটেনশন
নিবন্ধিত এক্সটেনশন নম্বর
৪৫৭
সংশোধন
১
অনুমোদনের অবস্থা
অনুমোদিত নয়
এক্সটেনশন এবং সংস্করণ নির্ভরতা
সর্বশেষ সংশোধনের তারিখ
২০২৫-০১-১৭
আইপি স্ট্যাটাস
কোনো জ্ঞাত আইপি দাবি নেই।
অবদানকারীরা
স্পেন্সার কুইন, গুগল
জ্যারেড ফাইন্ডার, গুগল
লেভানা চেন, গুগল
কেনি ভার্সেমার, গুগল
প্রশান্তি গুরুমূর্তি, গুগল
নিহাব জৈন, গুগল
সংক্ষিপ্ত বিবরণ
এই এক্সটেনশনটি অ্যাপ্লিকেশনগুলিকে ব্যবহারকারীর চোখের অবস্থান ও অভিমুখ, সেইসাথে আই ট্র্যাকিং স্ট্যাটাস জানতে সক্ষম করে।
আই ট্র্যাকিং ডেটা দুটি মোডে প্রদান করা হয়: কোর্স এবং ফাইন। কোর্স ট্র্যাকিং ব্যবহারকারীর চোখের একটি স্থূল ধারণা দেয়, অন্যদিকে ফাইন ট্র্যাকিং আরও নির্ভুল ধারণা প্রদান করে। কোর্স ট্র্যাকিং সেইসব অ্যাপ্লিকেশনের জন্য ব্যবহৃত হয় যেগুলো একটি সাধারণ অ্যাভাটার-সদৃশ উপস্থাপনা দিতে চায়, আর ফাইন ট্র্যাকিং আরও সুনির্দিষ্ট অ্যাপ্লিকেশনের জন্য ব্যবহৃত হয়।
মিথস্ক্রিয়ার জন্য XR_EXT_eye_gaze_interaction ব্যবহার করা উচিত ।
অনুমতি
অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলির ম্যানিফেস্টে অবশ্যই 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 হ্যান্ডেল হতে হবে। -
createInfoঅবশ্যই একটি বৈধ XrEyeTrackerCreateInfoANDROID স্ট্রাকচারের পয়েন্টার হতে হবে। -
eyeTrackerঅবশ্যই একটি XrEyeTrackerANDROID হ্যান্ডেলের দিকে নির্দেশকারী একটি পয়েন্টার হতে হবে।
রিটার্ন কোড
-
XR_SUCCESS -
XR_SESSION_LOSS_PENDING
-
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 হ্যান্ডেল তৈরি করার জন্য প্রয়োজনীয় তথ্য বর্ণনা করে।
বৈধ ব্যবহার (অন্তর্নিহিত)
- 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_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 :: XR_SPACE_LOCATION_POSITION_TRACKED_BIT eyes XR_SPACE_LOCATION_POSITION_TRACKED_BIT এবং XR_SPACE_LOCATION_ORIENTATION_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
-
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 :: XR_SPACE_LOCATION_POSITION_TRACKED_BIT eyes XR_SPACE_LOCATION_POSITION_TRACKED_BIT এবং XR_SPACE_LOCATION_ORIENTATION_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
-
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চোখের ভঙ্গিগুলো হবে।
বৈধ ব্যবহার (অন্তর্নিহিত)
- 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হলো XrEyeIndexANDROID দ্বারা সূচিত বাম ও ডান চোখের জন্যXR_EYE_MAX_ANDROIDআকারের XrEyeANDROID- এর একটি অ্যারে। -
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এক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
eyeStateঅবশ্যই একটি বৈধ XrEyeStateANDROID মান হতে হবে।
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;
এনামগুলোর নিম্নলিখিত অর্থ রয়েছে:
এনামের বিবরণ
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;
এনামগুলোর নিম্নলিখিত অর্থ রয়েছে:
এনামের বিবরণ
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;
এনামগুলোর নিম্নলিখিত অর্থ রয়েছে:
এনামের বিবরণ
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
নতুন কাঠামো
- এক্সআরআইঅ্যান্ড্রয়েড
- XrEyeTrackerCreateInfoANDROID
- এক্সআরআইজঅ্যান্ড্রয়েড
- XrEyesGetInfoANDROID
XrSystemProperties-এর সম্প্রসারণ :
নতুন এনাম
নতুন এনাম ধ্রুবক
-
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
-
সমস্যা
সংস্করণ ইতিহাস
সংস্করণ ১, ২০২৫-০১-১৭ (কেনি ভার্কাইমার)
- প্রাথমিক এক্সটেনশনের বিবরণ