XR_EXT_interaction_profile_battery_state_display

নাম স্ট্রিং

XR_EXT_interaction_profile_battery_state_display

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

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

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

৮৩৭

সংশোধন

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

অনুমোদিত

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

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

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

২০২৫-১০-২১

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

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

অবদানকারীরা

জন কার্নি, মেটা
ড্যানিয়েল উইলমট, ভালভ
ডেনি রোনগ্রেন, ভারজো
জ্যাকব বোর্নক্র্যান্টজ, এনভিডিয়া
নাথান নুবার, ভালভ
ল্যাকলান ফোর্ড, গুগল
নিহাব জৈন, গুগল

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

XR_EXT_interaction_profile_battery_state_display অ্যাপ্লিকেশনগুলোকে ইন্টারঅ্যাকশন প্রোফাইলের সাথে ব্যবহৃত ডিভাইসগুলোর ব্যাটারির অবস্থা সম্পর্কে তথ্য জানতে রানটাইমকে জিজ্ঞাসা করার একটি ব্যবস্থা প্রদান করে। এই ব্যাটারির অবস্থা সম্পর্কিত তথ্য শুধুমাত্র প্রদর্শনের উদ্দেশ্যে ব্যবহার করা উচিত এবং রানটাইমকে নিশ্চিত করতে হবে যে এই তথ্যটি সিস্টেমের অন্তর্নির্মিত ইউজার ইন্টারফেসে ব্যবহৃত তথ্যের সাথে মেলে।

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

সুনির্দিষ্টভাবে বলতে গেলে, এই তথ্য বিভিন্ন রানটাইম বা ডিভাইসের মধ্যে সমন্বয় করা হবে বলে আশা করা হয় না এবং এটি সতর্কবার্তা তৈরি করতে বা অন্য কোনোভাবে অ্যাপ্লিকেশনের আচরণ পরিবর্তন করতে ব্যবহার করা উচিত নয়।

ব্যাটারির অবস্থা সম্পর্কে জিজ্ঞাসা করা হচ্ছে

XrBatteryStateDisplayEXT স্ট্রাকচারটি নিম্নরূপে সংজ্ঞায়িত করা হয়:

typedef struct XrBatteryStateDisplayEXT {
    XrStructureType                       type;
    void*                                 next;
    XrBatteryStateDisplayStateFlagsEXT    stateFlags;
    float                                 batteryLevel;
} XrBatteryStateDisplayEXT;

সদস্যদের বিবরণ

  • type হলো এই স্ট্রাকচারটির XrStructureType
  • next হলো NULL অথবা একটি স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের দিকে নির্দেশকারী একটি পয়েন্টার।
  • stateFlags XrBatteryStateDisplayStateFlagBitsEXT- এ সংজ্ঞায়িত বিট মাস্কের মাধ্যমে batteryLevel এর বৈধতা বর্ণনা করে।
  • batteryLevel হলো সংশ্লিষ্ট সত্তা বা ক্রিয়াকলাপ দ্বারা সংযুক্ত ডিভাইসটির ব্যাটারির স্তর (0.0f থেকে 1.0f পর্যন্ত)।

ব্যাটারির লেভেল জানতে, অ্যাপ্লিকেশনটি xrGetCurrentInteractionProfile কল করার সময় XrInteractionProfileState :: next চেইনের সাথে একটি XrBatteryStateDisplayEXT স্ট্রাকচার যুক্ত করে।

যদি xrGetCurrentInteractionProfile, XrInteractionProfileState :: interactionProfile XR_NULL_PATH- এ সেট করে, তাহলে রানটাইম অবশ্যই stateFlagsXR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT বিটটি সেট করবে না।

XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT নির্দেশ করে যে batteryLevel বৈধ ডেটা আছে কিনা। যদি stateFlagsXR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT বিটটি সেট করা না থাকে, তাহলে অ্যাপ্লিকেশনটি batteryLevel পড়বে না।

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

XrBatteryStateDisplayEXT :: stateFlags মেম্বারটি নিম্নলিখিত টাইপের এবং এতে XrBatteryStateDisplayStateFlagBitsEXT- এ সংজ্ঞায়িত শূন্য বা তার বেশি বিটের একটি বিটওয়াইজ-OR থাকে।

typedef XrFlags64 XrBatteryStateDisplayStateFlagsEXT;

// Flag bits for XrBatteryStateDisplayStateFlagsEXT
static const XrBatteryStateDisplayStateFlagsEXT XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT = 0x00000001;
static const XrBatteryStateDisplayStateFlagsEXT XR_BATTERY_STATE_DISPLAY_STATE_CHARGING_BIT_EXT = 0x00000002;
static const XrBatteryStateDisplayStateFlagsEXT XR_BATTERY_STATE_DISPLAY_STATE_PLUGGED_IN_BIT_EXT = 0x00000004;
static const XrBatteryStateDisplayStateFlagsEXT XR_BATTERY_STATE_DISPLAY_STATE_NO_BATTERY_BIT_EXT = 0x00000008;

ফ্ল্যাগ বিটগুলোর নিম্নলিখিত অর্থ রয়েছে:

পতাকার বিবরণ

  • XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXTXrBatteryStateDisplayEXT :: batteryLevel এর বৈধতা নির্দেশ করে।
  • XR_BATTERY_STATE_DISPLAY_STATE_CHARGING_BIT_EXT — নির্দেশ করে যে ইন্টারঅ্যাকশন প্রোফাইলের সাথে যুক্ত ডিভাইসটি চার্জ হচ্ছে।
  • XR_BATTERY_STATE_DISPLAY_STATE_PLUGGED_IN_BIT_EXT — এটি নির্দেশ করে যে ইন্টারঅ্যাকশন প্রোফাইলের সাথে যুক্ত ডিভাইসটি একটি পাওয়ার সোর্সের সাথে সংযুক্ত আছে।
  • XR_BATTERY_STATE_DISPLAY_STATE_NO_BATTERY_BIT_EXT — এটি নির্দেশ করে যে ইন্টারঅ্যাকশন প্রোফাইলের সাথে যুক্ত ডিভাইসটিতে কোনো ব্যাটারি পাওয়ার সোর্স নেই।

উদাহরণ

// previously initialized
extern XrSession session;
extern XrPath topLevelUserPath;

XrBatteryStateDisplayEXT batteryStateDisplay{XR_TYPE_BATTERY_STATE_DISPLAY_EXT};
XrInteractionProfileState ipState{XR_TYPE_INTERACTION_PROFILE_STATE, &batteryStateDisplay};
CHK_XR(xrGetCurrentInteractionProfile(session, topLevelUserPath, &ipState));
if ((batteryStateDisplay.stateFlags & XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT) != 0) {
  // use value of batteryStateDisplay.batteryLevel
}

নতুন কাঠামো

নতুন এনাম

নতুন বিটমাস্ক

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

  • XR_EXT_INTERACTION_PROFILE_BATTERY_STATE_DISPLAY_EXTENSION_NAME
  • XR_EXT_interaction_profile_battery_state_display_SPEC_VERSION
  • XrStructureType সম্প্রসারণ :

    • XR_TYPE_BATTERY_STATE_DISPLAY_EXT

সমস্যা

  • এই এক্সটেনশনটি ব্যবহার করে অ্যাপ্লিকেশনটি কি কোনো হেড-মাউন্টেড ডিভাইসের প্রদর্শিত ব্যাটারির লেভেল জানতে পারে?

    • সমাধান করা হয়েছে। সরাসরি নয় । এই এক্সটেনশনটি শুধুমাত্র বর্তমান ইন্টারঅ্যাকশন প্রোফাইলসহ টপ-লেভেল /user পাথের জন্য প্রদর্শিত ব্যাটারি লেভেল ফেরত দেওয়া সমর্থন করে। যদি অ্যাপ্লিকেশনটি হেড-মাউন্টেড ডিভাইসের ( /user/head ) জন্য কোনো ইন্টারঅ্যাকশন প্রোফাইলের বাইন্ডিং প্রস্তাব করে, এবং যদি রানটাইম সেই ইন্টারঅ্যাকশন প্রোফাইলটিকে সক্রিয় করে, তাহলে রানটাইম সেই টপ-লেভেল /user পাথের জন্য ব্যাটারি লেভেল ফেরত দিতে পারে।

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

  • সংস্করণ ১, ২০২৫-১০-২১ (জন কার্নি)

    • প্রাথমিক খসড়া।