XR_EXT_interaction_profile_battery_state_display
Name String
XR_EXT_interaction_profile_battery_state_display
Uzantı Türü
Örnek uzantısı
Kayıtlı Uzantı Numarası
837
Düzeltme
1
Onay durumu
Onaylanma tarihi
Uzantı ve Sürüm Bağımlılıkları
Son Değiştirilme Tarihi
2025-10-21
IP Durumu
Bilinen IP hak talebi yok.
Katkıda bulunanlar
John Kearney, Meta
Daniel Willmott, Valve
Denny Rönngren, Varjo
Jakob Bornecrantz, NVIDIA
Nathan Nuber, Valve
Lachlan Ford, Google
Nihav Jain, Google
Genel Bakış
XR_EXT_interaction_profile_battery_state_display, uygulamaların etkileşim profilleriyle kullanılan cihazların pil durumu bilgilerini sorgulaması için bir mekanizma sağlar. Bu pil durumu bilgileri yalnızca görüntüleme amacıyla kullanılmalı ve çalışma süresi, bu bilgilerin yerleşik sistem kullanıcı arayüzlerinde kullanılan bilgilerle eşleşmesini sağlamalıdır.
Birden fazla fiziksel cihazın, üst düzey bir yolla ilişkili işlemlere girdi sağladığı durumlarda (ör. kullanıcı özelleştirmesi veya erişilebilirlik için yeniden eşleme gerçekleştiren çalışma zamanları), bu çalışma zamanları tek bir değerde faydalı pil bilgilerini sunmak için elinden geleni yapmalıdır.
Özellikle, bu bilgilerin çalışma zamanları veya cihazlar arasında kalibre edilmesi beklenmez ve uygulama davranışını değiştirmek ya da uyarı oluşturmak için kullanılmamalıdır.
Pil durumu için sorgu oluşturma
XrBatteryStateDisplayEXT yapısı şu şekilde tanımlanır:
typedef struct XrBatteryStateDisplayEXT {
XrStructureType type;
void* next;
XrBatteryStateDisplayStateFlagsEXT stateFlags;
float batteryLevel;
} XrBatteryStateDisplayEXT;
Üye Açıklamaları
type, bu yapının XrStructureType'ıdır.next,NULLveya bir yapı zincirindeki sonraki yapının işaretçisidir.stateFlags,batteryLevelöğesinin geçerliliğini XrBatteryStateDisplayStateFlagBitsEXT içinde tanımlanan bit maskeleriyle açıklar.batteryLevel, ilişkili tüzel kişi veya işlem tarafından bağlanan cihazın pil seviyesidir (0,0f ile 1,0f arasında).
Uygulama, pil seviyesini sorgulamak için xrGetCurrentInteractionProfile çağrılırken XrBatteryStateDisplayEXT yapısını XrInteractionProfileState :: next zincirine bağlar .
xrGetCurrentInteractionProfile, XrInteractionProfileState :: interactionProfile değerini XR_NULL_PATH olarak ayarlarsa çalışma zamanı, XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT bitini stateFlags içinde ayarlamamalıdır .
XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT, batteryLevel öğesinin geçerli veriler içerip içermediğini gösterir. Uygulama, stateFlags içinde XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT biti ayarlanmamışsa batteryLevel değerini okumamalıdır .
Geçerli Kullanım (Dolaylı)
- XrBatteryStateDisplayEXT kullanılmadan önce
XR_EXT_interaction_profile_battery_state_displayuzantısı etkinleştirilmelidir. -
typeXR_TYPE_BATTERY_STATE_DISPLAY_EXTolmalıdır. -
nextzorunlu olarakNULLveya bir yapı zincirindeki sonraki yapıya yönelik geçerli bir işaretçi olmalıdır. -
stateFlagsXrBatteryStateDisplayStateFlagBitsEXT değerlerinin geçerli bir kombinasyonu olmalıdır. -
stateFlags0olmamalıdır.
XrBatteryStateDisplayEXT :: stateFlags üyesi aşağıdaki türdendir ve XrBatteryStateDisplayStateFlagBitsEXT içinde tanımlanan bitlerden sıfır veya daha fazlasının bit düzeyinde OR işlemini içerir .
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;
İşaret bitleri aşağıdaki anlamlara sahiptir:
İşaret açıklamaları
XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT— XrBatteryStateDisplayEXT ::batteryLevelgeçerliliğini gösterir.XR_BATTERY_STATE_DISPLAY_STATE_CHARGING_BIT_EXT: Etkileşim profiliyle ilişkili cihazın şarj olduğunu gösterir.XR_BATTERY_STATE_DISPLAY_STATE_PLUGGED_IN_BIT_EXT: Etkileşim profiliyle ilişkili cihazın bir güç kaynağına takılı olduğunu gösterir.XR_BATTERY_STATE_DISPLAY_STATE_NO_BATTERY_BIT_EXT: Etkileşim profiliyle ilişkili cihazın pil güç kaynağı olmadığını gösterir.
Örnek
// 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
}
Yeni Yapılar
XrInteractionProfileState'i genişletme :
Yeni Sıralamalar
Yeni Bitmask'ler
Yeni Enum Sabitleri
XR_EXT_INTERACTION_PROFILE_BATTERY_STATE_DISPLAY_EXTENSION_NAMEXR_EXT_interaction_profile_battery_state_display_SPEC_VERSIONXrStructureType uzatma :
XR_TYPE_BATTERY_STATE_DISPLAY_EXT
Sayılar
Uygulama, bu uzantıyla başa takılan bir cihaz için gösterilen pil seviyesini sorgulayabilir mi?
- Çözüldü. Doğrudan değil . Bu uzantı yalnızca mevcut etkileşim profilleriyle üst düzey /user yolları için gösterilen pil seviyesini destekler. Uygulama, başa takılan cihazın etkileşim profili için bağlamalar öneriyorsa ( /user/head ) ve çalışma zamanı bu etkileşim profilini etkinleştirirse çalışma zamanı, bu üst düzey /user yolu için pil seviyesini döndürebilir.
Sürüm Geçmişi
Düzeltme 1, 21.10.2025 (John Kearney)
- İlk taslak.