XR_ANDROID_global_passthrough_dimming
নামের স্ট্রিং
XR_ANDROID_global_passthrough_dimming
এক্সটেনশনের ধরন
ইনস্ট্যান্স এক্সটেনশন
রেজিস্টার করা এক্সটেনশন নম্বর
797
সংশোধন
1
অনুমোদনের স্ট্যাটাস
অনুমোদিত নয়
এক্সটেনশন ও ভার্সন ডিপেন্ডেন্সি
শেষবার পরিবর্তন করার তারিখ
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 রিটার্ন করতেই হবে।
সঠিক ব্যবহার (অন্তর্নিহিত)
- XrSystemGlobalDimmingPropertiesANDROID ব্যবহার করার আগে
XR_ANDROID_global_passthrough_dimmingএক্সটেনশন অবশ্যই চালু করতে হবে -
typeঅবশ্যইXR_TYPE_SYSTEM_GLOBAL_DIMMING_PROPERTIES_ANDROIDহতে হবে -
nextঅবশ্যইNULLবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের সঠিক পয়েন্টার হতে হবে
কাজ করে এমন গ্লোবাল ডিমিং লেভেল গণনা করুন
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অবশ্যইsupportedGlobalDimmingLevelCapacityInputfloatমানের অ্যারের পয়েন্টার হতে হবে
রিটার্ন কোড
XR_SUCCESS
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_RUNTIME_FAILUREXR_ERROR_SIZE_INSUFFICIENTXR_ERROR_SYSTEM_INVALIDXR_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-তে চেন করতে পারে যাতে পছন্দের গ্লোবাল ডিমিং লেভেলের জন্য অনুরোধ করা যায়।
অনুরোধ করা ডিমিং লেভেল বর্তমান ডিমিং লেভেলের থেকে আলাদা হলে, রানটাইমকে অবশ্যই অনুরোধ করা ডিমিং লেভেল মেনে চলতে হবে।
রানটাইমের কাছে গ্লোবাল ডিমিং লেভেলের কন্ট্রোল থাকবে এবং নিরাপত্তার কারণে পছন্দের গ্লোবাল ডিমিং লেভেলকে উপেক্ষা করতে পারে।
সঠিক ব্যবহার (অন্তর্নিহিত)
- XrGlobalDimmingFrameEndInfoANDROID ব্যবহার করার আগে
XR_ANDROID_global_passthrough_dimmingএক্সটেনশন অবশ্যই চালু করতে হবে -
typeঅবশ্যইXR_TYPE_GLOBAL_DIMMING_FRAME_END_INFO_ANDROIDহতে হবে -
nextঅবশ্যইNULLবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের সঠিক পয়েন্টার হতে হবে
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_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_RUNTIME_FAILUREXR_ERROR_SESSION_LOSTXR_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 আপডেট করতে হবে। ইভেন্টে সাড়া দিলে রানটাইম সিগন্যাল পাবে যখন অ্যাপ্লিকেশনটি তার পছন্দের ডিমিং লেভেল পরিবর্তন করবে।
সঠিক ব্যবহার (অন্তর্নিহিত)
- XrEventDataGlobalDimmingLevelChangedANDROID ব্যবহার করার আগে
XR_ANDROID_global_passthrough_dimmingএক্সটেনশন অবশ্যই চালু করতে হবে -
typeঅবশ্যইXR_TYPE_EVENT_DATA_GLOBAL_DIMMING_LEVEL_CHANGED_ANDROIDহতে হবে -
nextঅবশ্যইNULLবা স্ট্রাকচার চেনের পরবর্তী স্ট্রাকচারের সঠিক পয়েন্টার হতে হবে
উদাহরণ কোড
সিস্টেমের ক্ষমতা চেক করুন এবং কাজ করে এমন গ্লোবাল ডিমিং লেভেল গণনা করুন
গ্লোবাল ডিমিং কাজ করে কিনা তা কীভাবে চেক করবেন তা নিম্নলিখিত উদাহরণ কোড থেকে জানতে পারবেন।
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()
}
}
নতুন কমান্ড
নতুন স্ট্রাকচার
- XrEventDataGlobalDimmingLevelChangedANDROID
XrFrameEndInfo এক্সটেন্ড করা হচ্ছে :
XrSystemProperties এক্সটেন্ড করা হচ্ছে :
নতুন Enum কনস্ট্যান্ট
XR_ANDROID_GLOBAL_PASSTHROUGH_DIMMING_EXTENSION_NAMEXR_ANDROID_global_passthrough_dimming_SPEC_VERSIONXrStructureType এক্সটেন্ড করা হচ্ছে :
XR_TYPE_EVENT_DATA_GLOBAL_DIMMING_LEVEL_CHANGED_ANDROIDXR_TYPE_GLOBAL_DIMMING_FRAME_END_INFO_ANDROIDXR_TYPE_SYSTEM_GLOBAL_DIMMING_PROPERTIES_ANDROID
ইস্যু
ভার্সনের ইতিহাস
সংশোধন ১, ০৭-১০-২০২৫ (ব্রায়ান চেন)
- এক্সটেনশনের প্রাথমিক বিবরণ।