XR_ANDROID_eye_tracking

নাম স্ট্রিং

XR_ANDROID_eye_tracking

এক্সটেনশন টাইপ

ইনস্ট্যান্স এক্সটেনশন

নিবন্ধিত এক্সটেনশন নম্বর

৪৫৭

সংশোধন

অনুমোদনের অবস্থা

অনুমোদিত নয়

এক্সটেনশন এবং সংস্করণ নির্ভরতা

ওপেনএক্সআর ১.০

সর্বশেষ সংশোধনের তারিখ

২০২৫-০১-১৭

আইপি স্ট্যাটাস

কোনো জ্ঞাত আইপি দাবি নেই।

অবদানকারীরা

স্পেন্সার কুইন, গুগল
জ্যারেড ফাইন্ডার, গুগল
লেভানা চেন, গুগল
কেনি ভার্সেমার, গুগল
প্রশান্তি গুরুমূর্তি, গুগল
নিহাব জৈন, গুগল

সংক্ষিপ্ত বিবরণ

এই এক্সটেনশনটি অ্যাপ্লিকেশনগুলিকে ব্যবহারকারীর চোখের অবস্থান ও অভিমুখ, সেইসাথে আই ট্র্যাকিং স্ট্যাটাস জানতে সক্ষম করে।

আই ট্র্যাকিং ডেটা দুটি মোডে প্রদান করা হয়: কোর্স এবং ফাইন। কোর্স ট্র্যাকিং ব্যবহারকারীর চোখের একটি স্থূল ধারণা দেয়, অন্যদিকে ফাইন ট্র্যাকিং আরও নির্ভুল ধারণা প্রদান করে। কোর্স ট্র্যাকিং সেইসব অ্যাপ্লিকেশনের জন্য ব্যবহৃত হয় যেগুলো একটি সাধারণ অ্যাভাটার-সদৃশ উপস্থাপনা দিতে চায়, আর ফাইন ট্র্যাকিং আরও সুনির্দিষ্ট অ্যাপ্লিকেশনের জন্য ব্যবহৃত হয়।

মিথস্ক্রিয়ার জন্য XR_EXT_eye_gaze_interaction ব্যবহার করা উচিত

অনুমতি

অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলির ম্যানিফেস্টে অবশ্যই 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 অবশ্যই একটি 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 হ্যান্ডেল তৈরি করার জন্য প্রয়োজনীয় তথ্য বর্ণনা করে।

বৈধ ব্যবহার (অন্তর্নিহিত)

xrDestroyEyeTrackerANDROID ফাংশনটি নিম্নরূপে সংজ্ঞায়িত করা হয়েছে:

XrResult xrDestroyEyeTrackerANDROID(
    XrEyeTrackerANDROID                         eyeTracker);

প্যারামিটার বিবরণ

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 :: baseSpaceXrEyesGetInfoANDROID :: 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 চোখের ভঙ্গিগুলো হবে।

বৈধ ব্যবহার (অন্তর্নিহিত)

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 , যা নির্দেশ করে বর্তমানে কোন চোখটি ট্র্যাক করছে।

বৈধ ব্যবহার (অন্তর্নিহিত)

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));

নতুন অবজেক্টের প্রকারভেদ

নতুন কমান্ড

নতুন কাঠামো

নতুন এনাম

নতুন এনাম ধ্রুবক

  • 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

সমস্যা

সংস্করণ ইতিহাস

  • সংস্করণ ১, ২০২৫-০১-১৭ (কেনি ভার্কাইমার)

    • প্রাথমিক এক্সটেনশনের বিবরণ