XR_EXT_interaction_profile_battery_state_display
Name String
XR_EXT_interaction_profile_battery_state_display
Uzantı Türü
Örnek uzantısı
Kayıtlı Dahili Numara
837
Düzeltme
1
Onay Durumu
Onaylandı
Uzantı ve Sürüm Bağımlılıkları
Son Değiştirilme Tarihi
2025-10-21
IP Durumu
Bilinen bir fikri mülkiyet 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 bilgileri için çalışma zamanını sorgulamasına olanak tanıyan bir mekanizma sağlar. Bu pil durumu bilgileri yalnızca görüntüleme amacıyla kullanılmalıdır ve çalışma zamanı, bu bilgilerin yerleşik sistem kullanıcı arayüzlerinde kullanılanlarla eşleşmesini sağlamalıdır.
Birden fazla fiziksel cihazın, üst düzey bir yolla ilişkili işlemlere giriş sağladığı durumlarda (ör. kullanıcı özelleştirmesi veya erişilebilirlik için yeniden eşleme yapan çalışma zamanları), bu çalışma zamanları yararlı pil bilgilerini tek bir değerde sunmak için elinden geleni yapmalıdır.
Özellikle bu bilgilerin çalışma zamanları veya cihazlar arasında kalibre edilmesi beklenmez ve uyarı oluşturmak ya da uygulama davranışını başka bir şekilde değiştirmek için kullanılmamalıdır.
Pil durumu sorgulanıyor
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 değeridir.next,NULLveya bir yapı zincirindeki sonraki yapıya işaret eden bir göstergedir.stateFlags, XrBatteryStateDisplayStateFlagBitsEXT içinde tanımlanan bit maskeleriylebatteryLeveldeğerinin geçerliliğini açıklar.batteryLevel, ilişkili varlık 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 işlevini çağırırken XrInteractionProfileState :: next zincirine bir XrBatteryStateDisplayEXT yapısı ekler.
xrGetCurrentInteractionProfile, XrInteractionProfileState :: interactionProfile değerini XR_NULL_PATH olarak ayarlarsa çalışma zamanı, stateFlags içinde XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT bitini ayarlamamalıdır.
XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT, batteryLevel öğesinin geçerli veriler içerip içermediğini gösterir. stateFlags içinde XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT biti ayarlanmamışsa uygulama 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 -
next,NULLveya yapı zincirindeki bir sonraki yapıya geçerli bir işaretçi olmalıdır. -
stateFlags, XrBatteryStateDisplayStateFlagBitsEXT değerlerinin geçerli bir kombinasyonu olmalıdır. -
stateFlags,0olmamalıdır
XrBatteryStateDisplayEXT :: stateFlags üyesi aşağıdaki türdedir ve XrBatteryStateDisplayStateFlagBitsEXT içinde tanımlanan sıfır veya daha fazla bitin bit düzeyinde VEYA'sını 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 Enum Veri Türleri
Yeni Bit Maskeleri
Yeni Enum Sabitleri
XR_EXT_INTERACTION_PROFILE_BATTERY_STATE_DISPLAY_EXTENSION_NAMEXR_EXT_interaction_profile_battery_state_display_SPEC_VERSIONXrStructureType'ı genişletme:
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 profillerine sahip üst düzey /user yolları için görüntülenen pil seviyesinin döndürülmesini destekler. Uygulama, başa takılı cihaz ( /user/head) için bir etkileşim profiline bağlama öneriyorsa ve çalışma zamanı bu etkileşim profilini etkinleştiriyorsa çalışma zamanı, bu üst düzey /user yolu için pil seviyesini döndürebilir.
Sürüm Geçmişi
1. düzeltme, 21.10.2025 (John Kearney)
- İlk taslak.