XR_ANDROID_global_passthrough_dimming

নামের স্ট্রিং

XR_ANDROID_global_passthrough_dimming

এক্সটেনশনের ধরন

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

রেজিস্টার করা এক্সটেনশন নম্বর

797

সংশোধন

1

অনুমোদনের স্ট্যাটাস

অনুমোদিত নয়

এক্সটেনশন ও ভার্সন ডিপেন্ডেন্সি

OpenXR 1.0

শেষবার পরিবর্তন করার তারিখ

2026-03-10

IP স্ট্যাটাস

IP সংক্রান্ত কোনও দাবি নেই।

কন্ট্রিবিউটর

ব্রায়ান চেন, Google
কাইল চেন, Google
নিহভ জৈন, Google
স্পেন্সার কুইন, Google

এক নজরে

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

এই এক্সটেনশন অ্যাপের জন্য দুটি ফাংশন প্রদান করে, যার মাধ্যমে বর্তমান ডিমিং লেভেল সেট করা ও পাওয়া যায় এবং ডিমিং লেভেল পরিবর্তন হলে ইভেন্ট ব্রডকাস্ট করা যায়।

সিস্টেমের ক্ষমতা পরীক্ষা করা

XrSystemGlobalDimmingPropertiesANDROID স্ট্রাকচার এইভাবে সংজ্ঞায়িত করা হয়:

typedef struct XrSystemGlobalDimmingPropertiesANDROID {
    XrStructureType    type;
    void*              next;
    XrBool32           supportsGlobalDimming;
} XrSystemGlobalDimmingPropertiesANDROID;

মেম্বারদের বিবরণ

  • type হল এই স্ট্রাকচারের XrStructureType।
  • next হল NULL অথবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনও স্ট্রাকচার সংজ্ঞায়িত করা নেই। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনও স্ট্রাকচার সংজ্ঞায়িত করা নেই।
  • supportsGlobalDimming হল একটি XrBool32 , যা বর্তমান সিস্টেম গ্লোবাল ডিমিং সাপোর্ট করে কিনা তা নির্দেশ করে।

xrGetSystemProperties কল করার সময় XrSystemProperties-এ XrSystemGlobalDimmingPropertiesANDROID স্ট্রাকচার চেইন করে, সিস্টেম গ্লোবাল ডিমিং সাপোর্ট করে কিনা তা কোনও অ্যাপ্লিকেশন চেক করতে পারে।

রানটাইম যদি supportsGlobalDimming-এর জন্য XR_FALSE রিটার্ন করে, তাহলে xrGetGlobalDimmingLevelANDROID কল করা হলে রানটাইমকে XR_ERROR_FEATURE_UNSUPPORTED রিটার্ন করতেই হবে।

সঠিক ব্যবহার (অন্তর্নিহিত)

কাজ করে এমন গ্লোবাল ডিমিং লেভেল গণনা করুন

xrEnumerateSupportedGlobalDimmingLevelsANDROID স্ট্রাকচার এইভাবে সংজ্ঞায়িত করা হয়:

XrResult xrEnumerateSupportedGlobalDimmingLevelsANDROID(
    XrInstance                                  instance,
    XrSystemId                                  systemId,
    uint32_t                                    supportedGlobalDimmingLevelCapacityInput,
    uint32_t*                                   supportedGlobalDimmingLevelCountOutput,
    float*                                      supportedGlobalDimmingLevels);

মেম্বারদের বিবরণ

  • instance হল সেই ইনস্ট্যান্স যেখান থেকে systemId পুনরুদ্ধার করা হয়েছে।
  • systemId হল XrSystemId যার কাজ করা লেভেল গণনা করা হবে।
  • supportedGlobalDimmingLevelCapacityInput হল supportedGlobalDimmingLevels অ্যারের ক্যাপাসিটি, অথবা প্রয়োজনীয় ক্যাপাসিটি ফিরিয়ে আনার অনুরোধ জানাতে 0।
  • supportedGlobalDimmingLevelCountOutput হল supportedGlobalDimmingLevels-এর সংখ্যার একটি পয়েন্টার, অথবা supportedGlobalDimmingLevelCapacityInput অপর্যাপ্ত হলে প্রয়োজনীয় ক্ষমতার একটি পয়েন্টার।
  • supportedGlobalDimmingLevels হল কাজ করে এমন লেভেলের অ্যারের একটি পয়েন্টার, তবে supportedGlobalDimmingLevelCapacityInput ০ হলে NULL হতে পারে।

supportedGlobalDimmingLevelCountOutput-এর মান ০ হলে, ০.০ থেকে ১.০-এর মধ্যে সব গ্লোবাল ডিমিং লেভেল কাজ করে।

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

রানটাইমকে অবশ্যই প্রদত্ত systemId এবং instance-এর লাইফটাইমের জন্য এই এনিউমারেশন থেকে সবসময় অভিন্ন বাফার কন্টেন্ট রিটার্ন করতে হবে।

সঠিক ব্যবহার (অন্তর্নিহিত)

  • xrEnumerateSupportedGlobalDimmingLevelsANDROID কল করার আগে XR_ANDROID_global_passthrough_dimming এক্সটেনশন অবশ্যই চালু করতে হবে
  • instance অবশ্যই একটি সঠিক XrInstance হ্যান্ডেল হতে হবে
  • supportedGlobalDimmingLevelCountOutput অবশ্যই uint32_t ভ্যালুর পয়েন্টার হতে হবে
  • supportedGlobalDimmingLevelCapacityInput যদি 0 না হয়, তাহলে supportedGlobalDimmingLevels অবশ্যই supportedGlobalDimmingLevelCapacityInput float মানের অ্যারের পয়েন্টার হতে হবে

রিটার্ন কোড

হয়ে গেছে

  • XR_SUCCESS

ব্যর্থতা

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_HANDLE_INVALID
  • XR_ERROR_INSTANCE_LOST
  • XR_ERROR_RUNTIME_FAILURE
  • XR_ERROR_SIZE_INSUFFICIENT
  • XR_ERROR_SYSTEM_INVALID
  • XR_ERROR_VALIDATION_FAILURE

গ্লোবাল ডিমিং লেভেল কনফিগার করুন

XrGlobalDimmingFrameEndInfoANDROID স্ট্রাকচার এইভাবে সংজ্ঞায়িত করা হয়:

typedef struct XrGlobalDimmingFrameEndInfoANDROID {
    XrStructureType    type;
    const void*        next;
    float              globalDimmingLevel;
} XrGlobalDimmingFrameEndInfoANDROID;

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

  • type হল এই স্ট্রাকচারের XrStructureType।
  • next হল NULL অথবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনও স্ট্রাকচার সংজ্ঞায়িত করা নেই।
  • globalDimmingLevel হল ০.০ (স্বচ্ছ) থেকে ১.০ (অস্বচ্ছ)-এর মধ্যে একটি ভ্যালু। রানটাইম হয়ত এই ভ্যালুকে সবচেয়ে কাছাকাছি সমর্থিত গ্লোবাল ডিমিং লেভেলে ম্যাপ করতে পারে। অ্যাপ্লিকেশনটি এই ভ্যালু -১.০-এ সেট করতে পারে যাতে বোঝা যায় যে বর্তমান ডিমিং লেভেলটিই পছন্দ করা হয়েছে।

globalDimmingLevel ভ্যালু থেকে বোঝা যায় যে কত শতাংশ আলো ব্লক করা হচ্ছে, যেখানে 0.0 ভ্যালু মানে 0% আলো ব্লক করা হচ্ছে এবং 1.0 ভ্যালু মানে 100% আলো ব্লক করা হচ্ছে। ব্লক করা আলোর শতাংশ সাধারণত এইভাবে দেখানো যেতে পারে:

100% - Light Transmittance%

ISO 8980-3:2022 অনুযায়ী, দৃশ্যমান আলোর তরঙ্গদৈর্ঘ্যে (৩৮০ ন্যানোমিটার থেকে ৭৮০ ন্যানোমিটার) আপতিত রেডিয়েন্ট ফ্লাক্সের সাথে ট্রান্সমিট করা রেডিয়েন্ট ফ্লাক্সের অনুপাত হিসেবে আলো ট্রান্সমিট্যান্সের শতাংশ পরিমাপ করা যেতে পারে।

XrGlobalDimmingFrameEndInfoANDROID হল এমন একটি স্ট্রাকচার যা কোনও অ্যাপ্লিকেশন XrFrameEndInfo-তে চেন করতে পারে যাতে পছন্দের গ্লোবাল ডিমিং লেভেলের জন্য অনুরোধ করা যায়।

অনুরোধ করা ডিমিং লেভেল বর্তমান ডিমিং লেভেলের থেকে আলাদা হলে, রানটাইমকে অবশ্যই অনুরোধ করা ডিমিং লেভেল মেনে চলতে হবে।

রানটাইমের কাছে গ্লোবাল ডিমিং লেভেলের কন্ট্রোল থাকবে এবং নিরাপত্তার কারণে পছন্দের গ্লোবাল ডিমিং লেভেলকে উপেক্ষা করতে পারে।

সঠিক ব্যবহার (অন্তর্নিহিত)

xrGetGlobalDimmingLevelANDROID ফাংশনটি এইভাবে সংজ্ঞায়িত করা হয়েছে:

XrResult xrGetGlobalDimmingLevelANDROID(
    XrSession                                   session,
    float*                                      dimmingLevel);

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

  • session হল একটি সঠিক XrSession হ্যান্ডেল।
  • dimmingLevel হল বর্তমান ডিমিং লেভেলের একটি পয়েন্টার।

রিটার্ন করা dimmingLevel অবশ্যই ০.০ থেকে ১.০-এর মধ্যে হতে হবে, যেখানে ০.০ মানে সম্পূর্ণ স্বচ্ছ এবং ১.০ মানে সম্পূর্ণ আবছা।

ডিম করার লেভেল সেট করা না থাকলে, রানটাইমকে অবশ্যই ডিম করার লেভেল পাসথ্রু চালু থাকলে 0.0 এবং পাসথ্রু বন্ধ থাকলে 1.0-এ সেট করতে হবে।

সঠিক ব্যবহার (অন্তর্নিহিত)

  • xrGetGlobalDimmingLevelANDROID কল করার আগে XR_ANDROID_global_passthrough_dimming এক্সটেনশন অবশ্যই চালু করতে হবে
  • session অবশ্যই একটি সঠিক XrSession হ্যান্ডেল হতে হবে
  • dimmingLevel অবশ্যই float ভ্যালুর পয়েন্টার হতে হবে

রিটার্ন কোড

হয়ে গেছে

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

ব্যর্থতা

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_HANDLE_INVALID
  • XR_ERROR_INSTANCE_LOST
  • XR_ERROR_RUNTIME_FAILURE
  • XR_ERROR_SESSION_LOST
  • XR_ERROR_VALIDATION_FAILURE

ডিম করার লেভেল পরিবর্তন সংক্রান্ত ইভেন্ট

XrEventDataGlobalDimmingLevelChangedANDROID স্ট্রাকচার এইভাবে সংজ্ঞায়িত করা হয়:

typedef struct XrEventDataGlobalDimmingLevelChangedANDROID {
    XrStructureType    type;
    const void*        next;
    XrSession          session;
} XrEventDataGlobalDimmingLevelChangedANDROID;

মেম্বারদের বিবরণ

  • type হল এই স্ট্রাকচারের XrStructureType।
  • next হল NULL অথবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনও স্ট্রাকচার সংজ্ঞায়িত করা নেই।
  • session হল একটি সঠিক XrSession হ্যান্ডেল।

অ্যাপ্লিকেশন xrPollEvent ব্যবহার করে এই ইভেন্ট ফিরিয়ে আনতে পারে। অ্যাপ বা ডিভাইসের ফিজিক্যাল বোতামের মাধ্যমে ডিম করার লেভেল পরিবর্তন করা হলে এই ইভেন্ট পাঠানো হবে।

ফোকাস করা অ্যাপ অন্য অ্যাপে সুইচ করলে এই ইভেন্ট পাঠানো হবে না।

অ্যাপ্লিকেশনটিকে অবশ্যই ইভেন্টে সাড়া দিতে হবে, যার জন্য নতুন ডিমিং লেভেল পেতে xrGetGlobalDimmingLevelANDROID কল করতে হবে এবং সেই অনুযায়ী XrGlobalDimmingFrameEndInfoANDROID :: globalDimmingLevel আপডেট করতে হবে। ইভেন্টে সাড়া দিলে রানটাইম সিগন্যাল পাবে যখন অ্যাপ্লিকেশনটি তার পছন্দের ডিমিং লেভেল পরিবর্তন করবে।

সঠিক ব্যবহার (অন্তর্নিহিত)

উদাহরণ কোড

সিস্টেমের ক্ষমতা চেক করুন এবং কাজ করে এমন গ্লোবাল ডিমিং লেভেল গণনা করুন

গ্লোবাল ডিমিং কাজ করে কিনা তা কীভাবে চেক করবেন তা নিম্নলিখিত উদাহরণ কোড থেকে জানতে পারবেন।

XrInstance instance; // previously initialized
XrSystemId systemId; // previously initialized

// The function pointers are previously initialized using xrGetInstanceProcAddr.
PFN_xrEnumerateSupportedGlobalDimmingLevelsANDROID xrEnumerateSupportedGlobalDimmingLevelsANDROID;

XrSystemGlobalDimmingPropertiesANDROID dimmingControlSystemProperties { XR_TYPE_SYSTEM_GLOBAL_DIMMING_PROPERTIES_ANDROID };

XrSystemProperties systemProperties; // Chain dimmingControlSystemProperties

// ...
// Run xrGetSystemProperties()
// ...

if (!dimmingControlSystemProperties.supportsGlobalDimming) {
  // The system does not support global dimming
  return;
}

// Enumerate supported levels
uint32_t count = 0;
CHK_XR(xrEnumerateSupportedGlobalDimmingLevelsANDROID(instance, systemId, count, &count, nullptr));

std::vector<float> supportedLevels(count);
CHK_XR(xrEnumerateSupportedGlobalDimmingLevelsANDROID(instance, systemId, count, &count, supportedLevels.data()));

পোল ডিমিং লেভেল পরিবর্তন সংক্রান্ত ইভেন্ট

নিম্নলিখিত উদাহরণ কোডটি দেখায় যে কীভাবে ডিমিং লেভেল পরিবর্তন ইভেন্ট পোল করতে হয়।

XrEventDataBuffer event{ XR_TYPE_EVENT_DATA_BUFFER };

// ...
// Run xrPollEvent()
// ...

switch (event.type) {
  // This event will not be sent when focused app switches
  case XR_TYPE_EVENT_DATA_GLOBAL_DIMMING_LEVEL_CHANGED_ANDROID:
  {
    const XrEventDataGlobalDimmingLevelChangedANDROID &dimmingLevelChangedEvent =
            *reinterpret_cast<XrEventDataGlobalDimmingLevelChangedANDROID *>(&event);

    // Query new dimming level using xrGetGlobalDimmingLevelANDROID()
  }
}

নতুন কমান্ড

নতুন স্ট্রাকচার

নতুন Enum কনস্ট্যান্ট

  • XR_ANDROID_GLOBAL_PASSTHROUGH_DIMMING_EXTENSION_NAME
  • XR_ANDROID_global_passthrough_dimming_SPEC_VERSION
  • XrStructureType এক্সটেন্ড করা হচ্ছে :

    • XR_TYPE_EVENT_DATA_GLOBAL_DIMMING_LEVEL_CHANGED_ANDROID
    • XR_TYPE_GLOBAL_DIMMING_FRAME_END_INFO_ANDROID
    • XR_TYPE_SYSTEM_GLOBAL_DIMMING_PROPERTIES_ANDROID

ইস্যু

ভার্সনের ইতিহাস

  • সংশোধন ১, ০৭-১০-২০২৫ (ব্রায়ান চেন)

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