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ı

OpenXR 1.0

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, NULL veya 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 :: 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 :: 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 Sıralamalar

Yeni Bitmask'ler

Yeni Enum Sabitleri

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