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ı

OpenXR 1.0

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, NULL veya bir yapı zincirindeki sonraki yapıya işaret eden bir göstergedir.
  • stateFlags, XrBatteryStateDisplayStateFlagBitsEXT içinde tanımlanan bit maskeleriyle batteryLevel değ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 :: 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 :: batteryLevel geç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

Yeni Enum Veri Türleri

Yeni Bit Maskeleri

Yeni Enum Sabitleri

  • XR_EXT_INTERACTION_PROFILE_BATTERY_STATE_DISPLAY_EXTENSION_NAME
  • XR_EXT_interaction_profile_battery_state_display_SPEC_VERSION
  • XrStructureType'ı 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.