XR_EXT_interaction_profile_battery_state_display

מחרוזת שם

XR_EXT_interaction_profile_battery_state_display

סוג התוסף

תוסף למכונה

מספר השלוחה הרשום

837

גרסה

1

סטטוס האישור

אושר

תלויות של תוספים וגרסאות

OpenXR 1.0

תאריך השינוי האחרון

2025-10-21

סטטוס IP

אין תלונות ידועות על הפרת קניין רוחני.

שותפים ביצירת התוכן

John Kearney, Meta
Daniel Willmott, Valve
Denny Rönngren, Varjo
Jakob Bornecrantz, NVIDIA
Nathan Nuber, Valve
Lachlan Ford, Google
Nihav Jain, Google

סקירה כללית

‫XR_EXT_interaction_profile_battery_state_display מספק מנגנון לאפליקציות לשליחת שאילתות לסביבת זמן הריצה לגבי מידע על מצב הסוללה של מכשירים שמשמשים עם פרופילי אינטראקציה. צריך להשתמש במידע הזה על מצב הסוללה רק למטרות תצוגה, וזמן הריצה צריך להבטיח שהמידע הזה תואם למידע שמוצג בממשקי המשתמש המובנים של המערכת.

במקרים שבהם כמה מכשירים פיזיים מספקים קלט לפעולות שמשויכות לנתיב ברמה העליונה, כמו סביבות זמן ריצה שמבצעות מיפוי מחדש להתאמה אישית או לנגישות, סביבות זמן הריצה האלה צריכות לעשות מאמץ כדי להציג מידע שימושי על הסוללה בערך יחיד.

באופן ספציפי, המידע הזה לא אמור להיות מכויל בין סביבות זמן ריצה או מכשירים, ואין להשתמש בו כדי ליצור אזהרות או לשנות את אופן הפעולה של האפליקציה.

שאילתה לגבי מצב הסוללה

המבנה של XrBatteryStateDisplayEXT מוגדר כך:

typedef struct XrBatteryStateDisplayEXT {
    XrStructureType                       type;
    void*                                 next;
    XrBatteryStateDisplayStateFlagsEXT    stateFlags;
    float                                 batteryLevel;
} XrBatteryStateDisplayEXT;

תיאורי חברים

  • ‫type הוא ה-XrStructureType של המבנה הזה.
  • ‫next הוא NULL או מצביע למבנה הבא בשרשרת מבנים.
  • ‫stateFlags מתאר את התוקף של batteryLevel עם מיסוך סיביות שמוגדר ב-XrBatteryStateDisplayStateFlagBitsEXT
  • ‫batteryLevel היא רמת הטעינה של הסוללה (מ-0.0f עד 1.0f) של המכשיר שמחובר על ידי הישות או הפעולה המשויכת.

כדי לשלוח שאילתה לגבי רמת הטעינה, האפליקציה משרשרת מבנה של XrBatteryStateDisplayEXT לשרשרת XrInteractionProfileState :: next כשמתבצעת קריאה ל-xrGetCurrentInteractionProfile .

אם הפונקציה xrGetCurrentInteractionProfile מגדירה את XrInteractionProfileState :: interactionProfile ל-XR_NULL_PATH , אז זמן הריצה לא צריך להגדיר את הביט XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT ב-stateFlags .

השדה XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT מציין אם השדה batteryLevel מכיל נתונים תקינים. האפליקציה לא יכולה לקרוא את batteryLevel אם הביט XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT לא מוגדר ב-stateFlags .

שימוש תקין (משתמע)

האיבר XrBatteryStateDisplayEXT :: stateFlags הוא מהסוג הבא, ומכיל bitwise-OR של אפס או יותר מהביטים שמוגדרים ב-XrBatteryStateDisplayStateFlagBitsEXT .

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;

אלה המשמעויות של סיביות הדגל:

תיאורי הדגלים

  • ‫XR_BATTERY_STATE_DISPLAY_STATE_VALID_BIT_EXT — מציין את התוקף של XrBatteryStateDisplayEXT :: batteryLevel
  • XR_BATTERY_STATE_DISPLAY_STATE_CHARGING_BIT_EXT – מציין שהמכשיר שמשויך לפרופיל האינטראקציה נמצא בטעינה.
  • XR_BATTERY_STATE_DISPLAY_STATE_PLUGGED_IN_BIT_EXT — מציין שהמכשיר שמשויך לפרופיל האינטראקציה מחובר למקור חשמל.
  • XR_BATTERY_STATE_DISPLAY_STATE_NO_BATTERY_BIT_EXT – מציין שלמכשיר שמשויך לפרופיל האינטראקציה אין מקור מתח של סוללה.

דוגמה

// 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
}

מבנים חדשים

ערכי Enums חדשים

מסכות סיביות חדשות

קבועי Enum חדשים

  • XR_EXT_INTERACTION_PROFILE_BATTERY_STATE_DISPLAY_EXTENSION_NAME
  • XR_EXT_interaction_profile_battery_state_display_SPEC_VERSION
  • הרחבה של XrStructureType :

    • XR_TYPE_BATTERY_STATE_DISPLAY_EXT

בעיות

  • האם האפליקציה יכולה לשלוח שאילתה לגבי רמת הטעינה שמוצגת במכשיר שמוצמד לראש באמצעות התוסף הזה?

    • הבעיה נפתרה. לא באופן ישיר . התוסף הזה תומך רק בהחזרת רמת הטעינה שמוצגת לנתיבי /user ברמה העליונה עם פרופילי אינטראקציה נוכחיים. אם האפליקציה מציעה קישורים לפרופיל אינטראקציה של המכשיר שמוצמד לראש ( /user/head ), ואם סביבת זמן הריצה מפעילה את פרופיל האינטראקציה הזה, אז סביבת זמן הריצה יכולה להחזיר את רמת הטעינה של הנתיב /user ברמה העליונה.

היסטוריית הגרסאות

  • גרסה 1, 21.10.2025 (ג'ון קירני)

    • טיוטה ראשונית.