XR_EXT_interaction_profile_battery_state_display
מחרוזת שם
XR_EXT_interaction_profile_battery_state_display
סוג התוסף
תוסף למכונה
מספר השלוחה הרשום
837
גרסה
1
סטטוס האישור
אושר
תלויות של תוספים וגרסאות
תאריך השינוי האחרון
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 .
שימוש תקין (משתמע)
- חובה להפעיל את התוסף
XR_EXT_interaction_profile_battery_state_displayלפני שמשתמשים ב-XrBatteryStateDisplayEXT -
typeחייב להיותXR_TYPE_BATTERY_STATE_DISPLAY_EXT -
nextחייב להיותNULLאו מצביע תקין למבנה הבא בשרשרת מבנים -
stateFlagsחייב להיות שילוב תקין של ערכי XrBatteryStateDisplayStateFlagBitsEXT -
stateFlagsלא יכול להיות0
האיבר 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_NAMEXR_EXT_interaction_profile_battery_state_display_SPEC_VERSIONהרחבה של XrStructureType :
XR_TYPE_BATTERY_STATE_DISPLAY_EXT
בעיות
האם האפליקציה יכולה לשלוח שאילתה לגבי רמת הטעינה שמוצגת במכשיר שמוצמד לראש באמצעות התוסף הזה?
- הבעיה נפתרה. לא באופן ישיר . התוסף הזה תומך רק בהחזרת רמת הטעינה שמוצגת לנתיבי /user ברמה העליונה עם פרופילי אינטראקציה נוכחיים. אם האפליקציה מציעה קישורים לפרופיל אינטראקציה של המכשיר שמוצמד לראש ( /user/head ), ואם סביבת זמן הריצה מפעילה את פרופיל האינטראקציה הזה, אז סביבת זמן הריצה יכולה להחזיר את רמת הטעינה של הנתיב /user ברמה העליונה.
היסטוריית הגרסאות
גרסה 1, 21.10.2025 (ג'ון קירני)
- טיוטה ראשונית.