XR_ANDROID_recommended_settings
Name String
XR_ANDROID_recommended_settings
نوع الإضافة
إضافة مثيل
رقم الإضافة المسجَّل
455
المراجعة
1
حالة التصديق
لم تتم المصادقة عليها
الاعتماد على الإضافات والإصدارات
تاريخ آخر تعديل
2026-03-16
المساهمون
سبنسر كوين، Google
جاريد فايندر، Google
كيفن مول، Google
نيهاف جاين، Google
ليفانا تشن، Google
ألفين شي، Google
سالار خان، Google
نظرة عامة
يمكن أن تكون البيئة التلقائية للمستخدم في حالات مختلفة باستخدام مزيج من وضع المزج وطريقة الإدخال. توفّر هذه الإضافة الإعدادات المقترَحة للمستخدم، والتي تتوافق مع حالة البيئة التلقائية للمستخدم قبل تشغيل التطبيق، لضمان عملية انتقال سلسة.
البُنى وعمليات التعداد
تحدّد وحدات بت XrInputModalityFlagsANDROID طرق الإدخال المختلفة التي قد تكون قيد الاستخدام.
typedef XrFlags64 XrInputModalityFlagsANDROID;
يتم تحديد وحدات البت الصالحة لـ XrInputModalityFlagsANDROID من خلال XrInputModalityFlagBitsANDROID، والتي يتم تحديدها على النحو التالي:
// Flag bits for XrInputModalityFlagsANDROID
static const XrInputModalityFlagsANDROID XR_INPUT_MODALITY_HEAD_BIT_ANDROID = 0x00000001;
static const XrInputModalityFlagsANDROID XR_INPUT_MODALITY_CONTROLLER_BIT_ANDROID = 0x00000002;
static const XrInputModalityFlagsANDROID XR_INPUT_MODALITY_HANDS_BIT_ANDROID = 0x00000004;
static const XrInputModalityFlagsANDROID XR_INPUT_MODALITY_MOUSE_BIT_ANDROID = 0x00000008;
static const XrInputModalityFlagsANDROID XR_INPUT_MODALITY_GAZE_AND_GESTURE_BIT_ANDROID = 0x00000010;
أوصاف العلامات
-
XR_INPUT_MODALITY_HEAD_BIT_ANDROID: يشير إلى طريقة إدخال تستخدم ميزة تتبُّع حركة الرأس. -
XR_INPUT_MODALITY_CONTROLLER_BIT_ANDROID: يشير إلى طريقة إدخال تستخدم أي إدخالات من وحدة تحكّم في الواقع الممتد. -
XR_INPUT_MODALITY_HANDS_BIT_ANDROID: يشير إلى طريقة إدخال تستخدم ميزة "تتبُّع اليد". -
XR_INPUT_MODALITY_MOUSE_BIT_ANDROID: تشير إلى طريقة إدخال تستخدم إدخالات الماوس. -
XR_INPUT_MODALITY_GAZE_AND_GESTURE_BIT_ANDROID: يشير إلى طريقة إدخال تجمع بين تتبُّع العين وتتبُّع اليد.
يتم تعريف بنية XrRecommendedSettingsANDROID على النحو التالي:
typedef struct XrRecommendedSettingsANDROID {
XrStructureType type;
void* next;
XrEnvironmentBlendMode blendMode;
float passthroughOpacity;
XrInputModalityFlagsANDROID activeInputModalities;
} XrRecommendedSettingsANDROID;
أوصاف الأعضاء
-
typeهو XrStructureType لهذه البنية. -
nextهوNULLأو مؤشر إلى البنية التالية في سلسلة البنى. لا يتم تحديد مثل هذه البُنى في OpenXR الأساسية أو هذه الإضافة. -
blendModeهو XrEnvironmentBlendMode يشير إلى وضع المزج التلقائي للبيئة قبل تشغيل التطبيق مباشرةً. -
passthroughOpacityهوfloatيشير إلى معدّل شفافية البيئة التلقائية قبل تشغيل التطبيق مباشرةً. يجب أن يضبط وقت التشغيل هذه القيمة على (1.0 - dimming_value) لأجهزة OST. -
activeInputModalitiesهو قناع بت لـ XrInputModalityFlagsANDROID يشير إلى طرق الإدخال المستخدَمة في البيئة التلقائية قبل تشغيل التطبيق مباشرةً.
الاستخدام الصالح (ضمني)
- يجب تفعيل الإضافة
XR_ANDROID_recommended_settingsقبل استخدام XrRecommendedSettingsANDROID - يجب أن يكون
typeXR_TYPE_RECOMMENDED_SETTINGS_ANDROID -
nextيجب أن تكونNULLأو مؤشرًا صالحًا إلى البنية التالية في سلسلة البنية -
blendModeيجب أن تكون قيمة XrEnvironmentBlendMode صالحة -
activeInputModalitiesيجب أن يكون مجموعة صالحة من قيم XrInputModalityFlagBitsANDROID -
activeInputModalitiesيجب ألا يكون0
تعداد حالات البيئة المتوافقة
يمكن للتطبيق تحديد حالات وضع المزج ووضع الإدخال التي يتيحها النظام باستخدام xrEnumerateEnvironmentBlendModes وتوسيع XrSystemProperties باستخدام بنية XrSystemInputModalityPropertiesANDROID عند استدعاء xrGetSystemProperties .
يتم تحديد بنية XrSystemInputModalityPropertiesANDROID على النحو التالي:
typedef struct XrSystemInputModalityPropertiesANDROID {
XrStructureType type;
void* next;
XrInputModalityFlagsANDROID supportedInputModalities;
} XrSystemInputModalityPropertiesANDROID;
أوصاف الأعضاء
-
typeهو XrStructureType لهذه البنية. -
nextهوNULLأو مؤشر إلى البنية التالية في سلسلة البنى. لا يتم تحديد مثل هذه البُنى في OpenXR الأساسية أو هذه الإضافة. -
supportedInputModalitiesهي علامة واحدة أو أكثر من علامات XrInputModalityFlagsANDROID التي تشير إلى طرق الإدخال التي يتيحها النظام.
الاستخدام الصالح (ضمني)
- يجب تفعيل الإضافة
XR_ANDROID_recommended_settingsقبل استخدام XrSystemInputModalityPropertiesANDROID - يجب أن يكون
typeXR_TYPE_SYSTEM_INPUT_MODALITY_PROPERTIES_ANDROID -
nextيجب أن تكونNULLأو مؤشرًا صالحًا إلى البنية التالية في سلسلة البنية
الحصول على الإعدادات المقترَحة (حالة البيئة التلقائية قبل الإطلاق)
XrResult xrGetRecommendedSettingsANDROID(
XrInstance instance,
XrSystemId systemId,
XrRecommendedSettingsANDROID* output);
أوصاف المَعلمات
-
instanceهو مؤشر XrInstance تم إنشاؤه سابقًا باستخدام xrCreateInstance . -
systemIdهوXrSystemIdتم جلبه سابقًا من xrGetSystem . -
outputهو مؤشر إلى بنية XrRecommendedSettingsANDROID التي يتم إخراجها مع حالة البيئة التلقائية.
الاستخدام الصالح (ضمني)
- يجب تفعيل الإضافة
XR_ANDROID_recommended_settingsقبل استدعاء xrGetRecommendedSettingsANDROID - يجب أن يكون
instanceمقبض XrInstance صالحًا - يجب أن يكون
outputمؤشرًا إلى بنية XrRecommendedSettingsANDROID
رموز الإرجاع
XR_SUCCESS
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_RUNTIME_FAILUREXR_ERROR_SYSTEM_INVALID
مثال على الرمز البرمجي للإعدادات المقترَحة
يوضّح الرمز البرمجي في المثال التالي كيفية الحصول على طرق الإدخال المتوافقة والإعدادات المقترَحة، ويؤكّد أنّ الإعدادات التي تم الإبلاغ عنها متوافقة مع النظام.
XrInstance instance; // Created at app startup
XrSystemId systemId; // previously initialized from xrGetSystem
XrViewConfigurationType viewType; // previously initialized to select desired view configuration
// The function pointers are previously initialized using xrGetInstanceProcAddr.
PFN_xrGetRecommendedSettingsANDROID xrGetRecommendedSettingsANDROID; // previously initialized
XrSystemInputModalityPropertiesANDROID props = {
.type = XR_TYPE_SYSTEM_INPUT_MODALITY_PROPERTIES_ANDROID
};
XrSystemProperties base = {
.type = XR_TYPE_SYSTEM_PROPERTIES,
.next = &props
};
CHK_XR(xrGetSystemProperties(instance, systemId, &base));
uint32_t blendModeCount = 0;
CHK_XR(
xrEnumerateEnvironmentBlendModes(instance, systemId, viewType, 0, &blendModeCount, nullptr));
std::vector<XrEnvironmentBlendMode> supportedBlendModes(blendModeCount);
CHK_XR(
xrEnumerateEnvironmentBlendModes(
instance, systemId, viewType, blendModeCount, &blendModeCount, supportedBlendModes.data()));
XrRecommendedSettingsANDROID output = {
.type = XR_TYPE_RECOMMENDED_SETTINGS_ANDROID
};
XrResult result = xrGetRecommendedSettingsANDROID(instance, systemId, &output);
if (result == XR_SUCCESS) {
// We now know the current state of the default environment as recommended settings
bool correctBlendMode = false;
for(XrEnvironmentBlendMode blendMode : supportedBlendModes) {
if (blendMode == output.blendMode) {
correctBlendMode = true;
break;
}
}
assert(correctBlendMode);
assert((~props.supportedInputModalities & output.activeInputModalities) == 0);
}
الأوامر الجديدة
منشآت جديدة
عمليات تعداد جديدة
أقنعة بت جديدة
ثوابت تعداد جديدة
XR_ANDROID_RECOMMENDED_SETTINGS_EXTENSION_NAMEXR_ANDROID_recommended_settings_SPEC_VERSIONتوسيع XrStructureType :
XR_TYPE_RECOMMENDED_SETTINGS_ANDROIDXR_TYPE_SYSTEM_INPUT_MODALITY_PROPERTIES_ANDROID
المشاكل
سجلّ التعديلات
المراجعة 3، بتاريخ 16-03-2026 (سالار خان)
- تمت ترقية هذه الفئة إلى فئة علنية، وتم إنشاء وحدات بت لعلامات أساليب الإدخال، وتم تغيير اسم الإضافة إلى
XR_ANDROID_recommended_settings.
- تمت ترقية هذه الفئة إلى فئة علنية، وتم إنشاء وحدات بت لعلامات أساليب الإدخال، وتم تغيير اسم الإضافة إلى
المراجعة 2، بتاريخ 28 مارس 2025 (سالار خان)
- تم التغيير إلى ANDROIDX وتضمين passthroughOpacity.
المراجعة 1، في 18-02-2025 (سالار خان)
- الإصدار الأولي