XR_ANDROID_global_passthrough_dimming
Name String
XR_ANDROID_global_passthrough_dimming
Loại tiện ích
Phần mở rộng thực thể
Số máy lẻ đã đăng ký
797
Bản sửa đổi
1
Trạng thái phê chuẩn
Chưa được phê chuẩn
Phần phụ thuộc của tiện ích và phiên bản
Ngày sửa đổi gần đây nhất
2026-03-10
Trạng thái IP
Không có tuyên bố nào về tài sản trí tuệ.
Cộng tác viên
Brian Chen, Google
Kyle Chen, Google
Nihav Jain, Google
Spencer Quin, Google
Tổng quan
Khi các thiết bị quang học nhìn xuyên thấu được ra mắt, điều quan trọng là không chỉ cho phép các ứng dụng điều chỉnh độ tối của chế độ truyền qua để mang lại sự kết hợp tốt nhất với bối cảnh ứng dụng cho người dùng, mà còn cho phép hệ thống làm sáng chế độ truyền qua vì lý do an toàn.
Tiện ích này cung cấp hai hàm để ứng dụng đặt và lấy mức độ mờ hiện tại, cũng như một sự kiện để phát sóng khi mức độ mờ thay đổi.
Kiểm tra chức năng của hệ thống
Cấu trúc XrSystemGlobalDimmingPropertiesANDROID được định nghĩa như sau:
typedef struct XrSystemGlobalDimmingPropertiesANDROID {
XrStructureType type;
void* next;
XrBool32 supportsGlobalDimming;
} XrSystemGlobalDimmingPropertiesANDROID;
Nội dung mô tả về thành viên
typelà XrStructureType của cấu trúc này.nextlàNULLhoặc con trỏ trỏ đến cấu trúc tiếp theo trong chuỗi cấu trúc. Không có cấu trúc nào như vậy được xác định trong OpenXR cốt lõi hoặc tiện ích này. Không có cấu trúc nào như vậy được xác định trong OpenXR cốt lõi hoặc tiện ích này.supportsGlobalDimminglà mộtXrBool32, cho biết liệu hệ thống hiện tại có hỗ trợ tính năng làm mờ toàn cục hay không.
Ứng dụng có thể kiểm tra xem hệ thống có hỗ trợ tính năng làm mờ toàn cục hay không bằng cách liên kết cấu trúc XrSystemGlobalDimmingPropertiesANDROID với XrSystemProperties khi gọi xrGetSystemProperties .
Nếu thời gian chạy trả về XR_FALSE cho supportsGlobalDimming , thì thời gian chạy phải trả về XR_ERROR_FEATURE_UNSUPPORTED khi xrGetGlobalDimmingLevelANDROID được gọi.
Cách sử dụng hợp lệ (Ngầm ẩn)
- Tiện ích
XR_ANDROID_global_passthrough_dimmingphải được bật trước khi sử dụng XrSystemGlobalDimmingPropertiesANDROID -
typephải làXR_TYPE_SYSTEM_GLOBAL_DIMMING_PROPERTIES_ANDROID -
nextphải làNULLhoặc một con trỏ hợp lệ đến cấu trúc tiếp theo trong chuỗi cấu trúc
Liệt kê các mức độ làm mờ toàn cục được hỗ trợ
Cấu trúc xrEnumerateSupportedGlobalDimmingLevelsANDROID được định nghĩa như sau:
XrResult xrEnumerateSupportedGlobalDimmingLevelsANDROID(
XrInstance instance,
XrSystemId systemId,
uint32_t supportedGlobalDimmingLevelCapacityInput,
uint32_t* supportedGlobalDimmingLevelCountOutput,
float* supportedGlobalDimmingLevels);
Nội dung mô tả về thành viên
instancelà thực thể màsystemIdđược truy xuất.systemIdlàXrSystemIdcó các cấp độ được hỗ trợ sẽ được liệt kê.supportedGlobalDimmingLevelCapacityInputlà dung lượng của mảngsupportedGlobalDimmingLevelshoặc 0 để cho biết yêu cầu truy xuất dung lượng cần thiết.supportedGlobalDimmingLevelCountOutputlà con trỏ đến số lượngsupportedGlobalDimmingLevelsđược ghi hoặc con trỏ đến dung lượng cần thiết trong trường hợpsupportedGlobalDimmingLevelCapacityInputkhông đủ.supportedGlobalDimmingLevelslà con trỏ đến một mảng các cấp được hỗ trợ, nhưng có thể là NULL nếusupportedGlobalDimmingLevelCapacityInputlà 0.
Nếu supportedGlobalDimmingLevelCountOutput được trả về là 0, thì tất cả các mức độ mờ chung từ 0 đến 1 đều được hỗ trợ.
xrEnumerateSupportedGlobalDimmingLevelsANDROID liệt kê các mức độ làm mờ chung mà XrSystemId hỗ trợ. Các cấp độ được hỗ trợ không được thay đổi trong suốt thời gian hoạt động của XrInstance . Danh sách cấp độ được trả về phải được sắp xếp theo thứ tự tăng dần.
Thời gian chạy phải luôn trả về nội dung vùng đệm giống hệt nhau từ kiểu liệt kê này cho systemId đã cho và trong suốt thời gian hoạt động của instance .
Cách sử dụng hợp lệ (Ngầm ẩn)
- Bạn phải bật tiện ích
XR_ANDROID_global_passthrough_dimmingtrước khi gọi xrEnumerateSupportedGlobalDimmingLevelsANDROID -
instancephải là một tên người dùng XrInstance hợp lệ -
supportedGlobalDimmingLevelCountOutputphải là con trỏ đến giá trịuint32_t - Nếu
supportedGlobalDimmingLevelCapacityInputkhông phải là0, thìsupportedGlobalDimmingLevelsphải là con trỏ đến một mảng gồm các giá trịsupportedGlobalDimmingLevelCapacityInputfloat
Mã trả về
XR_SUCCESS
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_RUNTIME_FAILUREXR_ERROR_SIZE_INSUFFICIENTXR_ERROR_SYSTEM_INVALIDXR_ERROR_VALIDATION_FAILURE
Định cấu hình mức độ giảm độ sáng tổng thể
Cấu trúc XrGlobalDimmingFrameEndInfoANDROID được định nghĩa như sau:
typedef struct XrGlobalDimmingFrameEndInfoANDROID {
XrStructureType type;
const void* next;
float globalDimmingLevel;
} XrGlobalDimmingFrameEndInfoANDROID;
Nội dung mô tả về tham số
typelà XrStructureType của cấu trúc này.nextlàNULLhoặc con trỏ trỏ đến cấu trúc tiếp theo trong chuỗi cấu trúc. Không có cấu trúc nào như vậy được xác định trong OpenXR cốt lõi hoặc tiện ích này.globalDimmingLevellà một giá trị nằm trong khoảng từ 0 (trong suốt) đến 1 (mờ đục). Thời gian chạy có thể liên kết giá trị này với mức làm mờ toàn cục được hỗ trợ gần nhất. Ứng dụng có thể đặt giá trị này thành -1.0 để cho biết rằng mức độ mờ hiện tại được ưu tiên.
Giá trị globalDimmingLevel chỉ định tỷ lệ phần trăm ánh sáng bị chặn, trong đó giá trị 0,0 tương ứng với 0% ánh sáng bị chặn và 1,0 tương ứng với 100% ánh sáng bị chặn. Tỷ lệ phần trăm ánh sáng bị chặn có thể được biểu thị chung như sau:
100% - Light Transmittance%
Tỷ lệ phần trăm độ truyền ánh sáng, theo ISO 8980-3:2022 , có thể được đo bằng tỷ lệ giữa quang thông truyền qua và quang thông tới ở các bước sóng của ánh sáng nhìn thấy (380 nm đến 780 nm).
XrGlobalDimmingFrameEndInfoANDROID là một cấu trúc mà ứng dụng có thể liên kết trong XrFrameEndInfo để yêu cầu mức độ làm mờ toàn cục ưu tiên.
Thời gian chạy phải tuân thủ mức độ mờ được yêu cầu nếu mức độ mờ được yêu cầu khác với mức độ mờ hiện tại.
Môi trường thời gian chạy sẽ kiểm soát mức độ làm mờ toàn cục và có thể bỏ qua mức độ làm mờ toàn cục ưu tiên vì lý do an toàn.
Cách sử dụng hợp lệ (Ngầm ẩn)
- Tiện ích
XR_ANDROID_global_passthrough_dimmingphải được bật trước khi sử dụng XrGlobalDimmingFrameEndInfoANDROID -
typephải làXR_TYPE_GLOBAL_DIMMING_FRAME_END_INFO_ANDROID -
nextphải làNULLhoặc một con trỏ hợp lệ đến cấu trúc tiếp theo trong chuỗi cấu trúc
Hàm xrGetGlobalDimmingLevelANDROID được định nghĩa như sau:
XrResult xrGetGlobalDimmingLevelANDROID(
XrSession session,
float* dimmingLevel);
Nội dung mô tả về tham số
sessionlà một tên người dùng XrSession hợp lệ.dimmingLevellà con trỏ đến mức độ mờ hiện tại.
dimmingLevel được trả về phải nằm trong khoảng từ 0 đến 1, trong đó 0 nghĩa là hoàn toàn trong suốt và 1 nghĩa là hoàn toàn mờ.
Nếu chưa đặt mức độ mờ, thì thời gian chạy phải đặt mức độ mờ thành 0 khi bật tính năng truyền qua và 1 khi tắt tính năng truyền qua.
Cách sử dụng hợp lệ (Ngầm ẩn)
- Tiện ích
XR_ANDROID_global_passthrough_dimmingphải được bật trước khi gọi xrGetGlobalDimmingLevelANDROID -
sessionphải là một tên người dùng XrSession hợp lệ -
dimmingLevelphải là con trỏ đến giá trịfloat
Mã trả về
XR_SUCCESSXR_SESSION_LOSS_PENDING
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_RUNTIME_FAILUREXR_ERROR_SESSION_LOSTXR_ERROR_VALIDATION_FAILURE
Sự kiện thay đổi mức độ mờ
Cấu trúc XrEventDataGlobalDimmingLevelChangedANDROID được định nghĩa như sau:
typedef struct XrEventDataGlobalDimmingLevelChangedANDROID {
XrStructureType type;
const void* next;
XrSession session;
} XrEventDataGlobalDimmingLevelChangedANDROID;
Nội dung mô tả về thành viên
typelà XrStructureType của cấu trúc này.nextlàNULLhoặc con trỏ trỏ đến cấu trúc tiếp theo trong chuỗi cấu trúc. Không có cấu trúc nào như vậy được xác định trong OpenXR cốt lõi hoặc tiện ích này.sessionlà một tên người dùng XrSession hợp lệ.
Ứng dụng có thể truy xuất sự kiện này bằng cách sử dụng xrPollEvent . Sự kiện này sẽ được gửi khi mức độ làm mờ thay đổi do ứng dụng hoặc nút vật lý trên thiết bị.
Sự kiện này sẽ không được gửi khi ứng dụng được lấy làm tâm điểm chuyển sang một ứng dụng khác.
Ứng dụng nên phản hồi sự kiện bằng cách gọi xrGetGlobalDimmingLevelANDROID để nhận mức độ mờ mới và cập nhật XrGlobalDimmingFrameEndInfoANDROID :: globalDimmingLevel cho phù hợp. Việc phản hồi sự kiện đảm bảo thời gian chạy sẽ được báo hiệu khi ứng dụng thay đổi mức độ mờ ưu tiên.
Cách sử dụng hợp lệ (Ngầm ẩn)
- Bạn phải bật tiện ích
XR_ANDROID_global_passthrough_dimmingtrước khi sử dụng XrEventDataGlobalDimmingLevelChangedANDROID -
typephải làXR_TYPE_EVENT_DATA_GLOBAL_DIMMING_LEVEL_CHANGED_ANDROID -
nextphải làNULLhoặc một con trỏ hợp lệ đến cấu trúc tiếp theo trong chuỗi cấu trúc
Mã ví dụ
Kiểm tra khả năng của hệ thống và liệt kê các mức độ làm mờ toàn cục được hỗ trợ
Mã ví dụ sau đây minh hoạ cách kiểm tra xem tính năng làm mờ toàn cục có được hỗ trợ hay không.
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()));
Sự kiện thay đổi mức độ mờ của cuộc thăm dò ý kiến
Mã ví dụ sau đây minh hoạ cách thăm dò sự kiện thay đổi mức độ mờ.
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()
}
}
Lệnh mới
Cấu trúc mới
- XrEventDataGlobalDimmingLevelChangedANDROID
Mở rộng XrFrameEndInfo :
Mở rộng XrSystemProperties :
Hằng số enum mới
XR_ANDROID_GLOBAL_PASSTHROUGH_DIMMING_EXTENSION_NAMEXR_ANDROID_global_passthrough_dimming_SPEC_VERSIONMở rộng XrStructureType :
XR_TYPE_EVENT_DATA_GLOBAL_DIMMING_LEVEL_CHANGED_ANDROIDXR_TYPE_GLOBAL_DIMMING_FRAME_END_INFO_ANDROIDXR_TYPE_SYSTEM_GLOBAL_DIMMING_PROPERTIES_ANDROID
Vấn đề
Danh sách phiên bản
Bản sửa đổi 1, ngày 7 tháng 10 năm 2025 (Brian Chen)
- Nội dung mô tả ban đầu về tiện ích.