XR_EXT_interaction_profile_battery_state_display

מחרוזת שם

XR_EXT_interaction_profile_battery_state_display

סוג התוסף

הרחבת המכונה

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

837

Revision

1

סטטוס האישור

אושר

תלות בתוסף ובגרסה

OpenXR 1.0

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

2025-10-21

סטטוס כתובת ה-IP

לא ידוע על תלונות בנושא זכויות יוצרים שקשורות לכתובות 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 הוא מהסוג הבא, והוא מכיל פעולת 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
}

מבנים חדשים

New Enums

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

New Enum Constants

  • 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 באוקטובר 2025 (John Kearney)

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