Skip to content

Commit eb3aff4

Browse files
committed
OpenXR Specification 1.1.58 (2026-03-31)
This release features several fixes and improvements to the specification as well as a number of new extensions. The most notable are the two new ratified multi-vendor extensions, XR_EXT_view_configuration_views_change and XR_EXT_interaction_profile_battery_state_display. - Specification - Change: Update the extension process document to include an alternate method of distinguishing experimental extensions during their development. (internal MR 3678) - Clarify: In XR_EXT_spatial_entity, clarify that update snapshot must not included unlisted entities. (internal MR 4149) - Fix: Typo in XR_EXT_hand_tracking_data_source Issue 2, referencing the incorrect structure. (internal MR 4170) - Fix: Correct link for MR number reservation from extension process to style guide. (internal MR 4183, internal issue 2688) - Fix: Two-call idiom links in some extensions. (internal MR 4185) - Improvement: Fix syntax highlighting of example C++ code in the spec. (internal MR 4181) - Improvement: Add links to XrSystemProperties next chain usage. (internal MR 4195) - New ratified multi-vendor extension specification: XR_EXT_view_configuration_views_change providing an event to notify the app of manual or infrequent changes to views (usually recommended resolutions). (internal MR 711, internal issue 619) - New ratified multi-vendor extension specification: XR_EXT_interaction_profile_battery_state_display providing access to limited battery state information for display purposes only. (internal MR 3528, internal issue 1339, internal issue 1905) - New vendor extension specification: XR_QCOM_hand_tracking_gesture adding vendor-specific additional data to the hand tracking extension. (internal MR 2572) - New vendor extension specification: XR_META_body_tracking_fidelity providing applications with the ability to influence performance vs. quality tradeoffs in body tracking. (internal MR 2962) - New vendor extension specification: XR_META_spatial_entity_semantic_label defines semantic labels to describe semantic meanings of an associated spatial entity, within the XR_FB_spatial_entity framework. (internal MR 3529) - New vendor extension specification: XR_ANDROID_performance_metrics to enumerate and query various performance metrics counters of the current XR device. (internal MR 3607) - New vendor extension specification: XR_ANDROID_mouse_interaction introduces a new vendor-specific interaction profile for mouse devices. (internal MR 3608) - New vendor extension specification: XR_ANDROID_unbounded_reference_space provides a new vendor-specific reference space type. (internal MR 3624) - New vendor extension specification: XR_ANDROID_composition_layer_passthrough_mesh enables applications to project passthrough textures onto arbitrary geometry. (internal MR 3625) - New vendor extension specification: XR_META_environment_raycast allowing applications to perform raycast operations against the surrounding physical environment. (internal MR 3758) - New vendor extension specification: XR_ANDROID_trackables_qr_code allowing applications to detect and track QR codes in the user’s environment, in the XR_ANDROID_trackables framework. (internal MR 3772) - New vendor extension specification: XR_BD_spatial_audio_rendering allowing applications to render spatial audio in a 3D space. (internal MR 3794) - New vendor extension specification: XR_ANDROID_scene_meshing to track the triangle mesh representation of the user’s environment. (internal MR 3872) - New vendor extension specification: XR_META_tile_properties_hint allowing applications to provide the tile properties of a render pass as a hint to the OpenXR runtime. (internal MR 3885) - New vendor extension specification: XR_ANDROID_spatial_object_tracking allowing applications to track objects in the user’s environment, within the XR_EXT_spatial_entity framework. (internal MR 3992) - New vendor extension specification: XR_ANDROID_spatial_discovery_raycast to discover spatial entities via raycast hit test. (internal MR 3993) - New vendor extension specification: XR_ANDROID_spatial_entity_bound_anchor allowing applications to attach anchors to spatial entities, within the XR_EXT_spatial_entity framework. (internal MR 3994) - New vendor extension specification: XR_ANDROID_spatial_component_subsumed_by to provide a component on spatial entities that get subsumed by another entity, within the XR_EXT_spatial_entity framework. (internal MR 4125) - New vendor extension specification: XR_ANDROID_spatial_anchor_space to create an XrSpace that represents a spatial anchor, within the XR_EXT_spatial_entity framework. (internal MR 4132) - Registry - Change: Mark XR_FB_space_warp as deprecated by XR_EXT_frame_synthesis, which provides the same functionality with a slightly modified interface. (internal MR 4173, internal issue 2469) - Chore: Reserve extension numbers. (internal MR 4204) - Fix: Mark XR_FB_touch_controller_proximity as obsoleted by OpenXR 1.1. (internal MR 4191, internal issue 2599) - Improvement: Add command return code checks in xml_consistency.py for specific spatial entity input types. (internal MR 4151) - New ratified multi-vendor extension: XR_EXT_view_configuration_views_change (internal MR 711, internal issue 619) - New ratified multi-vendor extension: XR_EXT_interaction_profile_battery_state_display. (internal MR 3528, internal issue 1339, internal issue 1905) - New vendor extension: XR_QCOM_hand_tracking_gesture (internal MR 2572) - New vendor extension: XR_META_body_tracking_fidelity (internal MR 2962) - New vendor extension: XR_META_spatial_entity_semantic_label (internal MR 3529) - New vendor extension: XR_ANDROID_performance_metrics (internal MR 3607) - New vendor extension: XR_ANDROID_mouse_interaction (internal MR 3608) - New vendor extension: XR_ANDROID_unbounded_reference_space (internal MR 3624) - New vendor extension: XR_ANDROID_composition_layer_passthrough_mesh (internal MR 3625) - New vendor extension: XR_META_environment_raycast (internal MR 3758) - New vendor extension: XR_ANDROID_trackables_qr_code (internal MR 3772) - New vendor extension: XR_BD_spatial_audio_rendering (internal MR 3794) - New vendor extension: XR_ANDROID_scene_meshing (internal MR 3872) - New vendor extension: XR_META_tile_properties_hint (internal MR 3885) - New vendor extension: XR_ANDROID_spatial_object_tracking (internal MR 3992) - New vendor extension: XR_ANDROID_spatial_discovery_raycast (internal MR 3993) - New vendor extension: XR_ANDROID_spatial_entity_bound_anchor (internal MR 3994) - New vendor extension: XR_ANDROID_spatial_component_subsumed_by (internal MR 4125) - New vendor extension: XR_ANDROID_spatial_anchor_space (internal MR 4132) - Schematron: Add schematron validation for prefix XrCompositionLayer for structures which extend XrCompositionLayerBaseHeader. (internal MR 4131) GitOrigin-RevId: 38a3136372ebb2a2e94cbe7c0687b1cad6ea0850
1 parent 1d9b4d9 commit eb3aff4

122 files changed

Lines changed: 9601 additions & 197 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.gitattributes‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@
2828
*.pdf filter=lfs diff=lfs merge=lfs -text
2929
*.glb filter=lfs diff=lfs merge=lfs -text
3030
src/conformance/**/*.png filter=lfs diff=lfs merge=lfs -text
31+
specification/sources/images/XR_ANDROID_mouse_interaction_aim_drag.png filter=lfs diff=lfs merge=lfs -text
32+
specification/sources/images/XR_ANDROID_mouse_interaction_aim_pose.png filter=lfs diff=lfs merge=lfs -text
3133

3234
# Shell/python scripts that don't end in .sh
3335
specification/makeAllExts eol=lf

‎CHANGELOG.Docs.md‎

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,165 @@ any public pull requests that have been accepted.
1717
This changelog only lists changes that affect the registry,
1818
headers, and/or specification text.
1919

20+
## OpenXR Specification 1.1.58 (2026-03-31)
21+
22+
This release features several fixes and improvements to the specification as
23+
well as a number of new extensions. The most notable are the two new ratified
24+
multi-vendor extensions, `XR_EXT_view_configuration_views_change` and
25+
`XR_EXT_interaction_profile_battery_state_display`.
26+
27+
- Specification
28+
- Change: Update the extension process document to include an alternate method of
29+
distinguishing experimental extensions during their development.
30+
([internal MR 3678](https://gitlab.khronos.org/openxr/openxr/merge_requests/3678))
31+
- Clarify: In `XR_EXT_spatial_entity`, clarify that update snapshot must not
32+
included unlisted entities.
33+
([internal MR 4149](https://gitlab.khronos.org/openxr/openxr/merge_requests/4149))
34+
- Fix: Typo in `XR_EXT_hand_tracking_data_source` Issue 2, referencing the
35+
incorrect structure.
36+
([internal MR 4170](https://gitlab.khronos.org/openxr/openxr/merge_requests/4170))
37+
- Fix: Correct link for MR number reservation from extension process to style
38+
guide.
39+
([internal MR 4183](https://gitlab.khronos.org/openxr/openxr/merge_requests/4183),
40+
[internal issue 2688](https://gitlab.khronos.org/openxr/openxr/issues/2688))
41+
- Fix: Two-call idiom links in some extensions.
42+
([internal MR 4185](https://gitlab.khronos.org/openxr/openxr/merge_requests/4185))
43+
- Improvement: Fix syntax highlighting of example C++ code in the spec.
44+
([internal MR 4181](https://gitlab.khronos.org/openxr/openxr/merge_requests/4181))
45+
- Improvement: Add links to `XrSystemProperties` next chain usage.
46+
([internal MR 4195](https://gitlab.khronos.org/openxr/openxr/merge_requests/4195))
47+
- New ratified multi-vendor extension specification:
48+
`XR_EXT_view_configuration_views_change` providing an event to notify the app
49+
of manual or infrequent changes to views (usually recommended resolutions).
50+
([internal MR 711](https://gitlab.khronos.org/openxr/openxr/merge_requests/711),
51+
[internal issue 619](https://gitlab.khronos.org/openxr/openxr/issues/619))
52+
- New ratified multi-vendor extension specification:
53+
`XR_EXT_interaction_profile_battery_state_display` providing access to limited
54+
battery state information for display purposes only.
55+
([internal MR 3528](https://gitlab.khronos.org/openxr/openxr/merge_requests/3528),
56+
[internal issue 1339](https://gitlab.khronos.org/openxr/openxr/issues/1339),
57+
[internal issue 1905](https://gitlab.khronos.org/openxr/openxr/issues/1905))
58+
- New vendor extension specification: `XR_QCOM_hand_tracking_gesture` adding
59+
vendor-specific additional data to the hand tracking extension.
60+
([internal MR 2572](https://gitlab.khronos.org/openxr/openxr/merge_requests/2572))
61+
- New vendor extension specification: `XR_META_body_tracking_fidelity` providing
62+
applications with the ability to influence performance vs. quality tradeoffs in
63+
body tracking.
64+
([internal MR 2962](https://gitlab.khronos.org/openxr/openxr/merge_requests/2962))
65+
- New vendor extension specification: `XR_META_spatial_entity_semantic_label`
66+
defines semantic labels to describe semantic meanings of an associated spatial
67+
entity, within the `XR_FB_spatial_entity` framework.
68+
([internal MR 3529](https://gitlab.khronos.org/openxr/openxr/merge_requests/3529))
69+
- New vendor extension specification: `XR_ANDROID_performance_metrics` to
70+
enumerate and query various performance metrics counters of the current XR
71+
device.
72+
([internal MR 3607](https://gitlab.khronos.org/openxr/openxr/merge_requests/3607))
73+
- New vendor extension specification: `XR_ANDROID_mouse_interaction` introduces a
74+
new vendor-specific interaction profile for mouse devices.
75+
([internal MR 3608](https://gitlab.khronos.org/openxr/openxr/merge_requests/3608))
76+
- New vendor extension specification: `XR_ANDROID_unbounded_reference_space`
77+
provides a new vendor-specific reference space type.
78+
([internal MR 3624](https://gitlab.khronos.org/openxr/openxr/merge_requests/3624))
79+
- New vendor extension specification:
80+
`XR_ANDROID_composition_layer_passthrough_mesh` enables applications to project
81+
passthrough textures onto arbitrary geometry.
82+
([internal MR 3625](https://gitlab.khronos.org/openxr/openxr/merge_requests/3625))
83+
- New vendor extension specification: `XR_META_environment_raycast` allowing
84+
applications to perform raycast operations against the surrounding physical
85+
environment.
86+
([internal MR 3758](https://gitlab.khronos.org/openxr/openxr/merge_requests/3758))
87+
- New vendor extension specification: `XR_ANDROID_trackables_qr_code` allowing
88+
applications to detect and track QR codes in the user's environment, in the
89+
`XR_ANDROID_trackables` framework.
90+
([internal MR 3772](https://gitlab.khronos.org/openxr/openxr/merge_requests/3772))
91+
- New vendor extension specification: `XR_BD_spatial_audio_rendering` allowing
92+
applications to render spatial audio in a 3D space.
93+
([internal MR 3794](https://gitlab.khronos.org/openxr/openxr/merge_requests/3794))
94+
- New vendor extension specification: `XR_ANDROID_scene_meshing` to track the
95+
triangle mesh representation of the user's environment.
96+
([internal MR 3872](https://gitlab.khronos.org/openxr/openxr/merge_requests/3872))
97+
- New vendor extension specification: `XR_META_tile_properties_hint` allowing
98+
applications to provide the tile properties of a render pass as a hint to the
99+
OpenXR runtime.
100+
([internal MR 3885](https://gitlab.khronos.org/openxr/openxr/merge_requests/3885))
101+
- New vendor extension specification: `XR_ANDROID_spatial_object_tracking`
102+
allowing applications to track objects in the user's environment, within the
103+
`XR_EXT_spatial_entity` framework.
104+
([internal MR 3992](https://gitlab.khronos.org/openxr/openxr/merge_requests/3992))
105+
- New vendor extension specification: `XR_ANDROID_spatial_discovery_raycast` to
106+
discover spatial entities via raycast hit test.
107+
([internal MR 3993](https://gitlab.khronos.org/openxr/openxr/merge_requests/3993))
108+
- New vendor extension specification: `XR_ANDROID_spatial_entity_bound_anchor`
109+
allowing applications to attach anchors to spatial entities, within the
110+
`XR_EXT_spatial_entity` framework.
111+
([internal MR 3994](https://gitlab.khronos.org/openxr/openxr/merge_requests/3994))
112+
- New vendor extension specification: `XR_ANDROID_spatial_component_subsumed_by`
113+
to provide a component on spatial entities that get subsumed by another entity,
114+
within the `XR_EXT_spatial_entity` framework.
115+
([internal MR 4125](https://gitlab.khronos.org/openxr/openxr/merge_requests/4125))
116+
- New vendor extension specification: `XR_ANDROID_spatial_anchor_space` to create
117+
an XrSpace that represents a spatial anchor, within the `XR_EXT_spatial_entity`
118+
framework.
119+
([internal MR 4132](https://gitlab.khronos.org/openxr/openxr/merge_requests/4132))
120+
- Registry
121+
- Change: Mark `XR_FB_space_warp` as deprecated by `XR_EXT_frame_synthesis`,
122+
which provides the same functionality with a slightly modified interface.
123+
([internal MR 4173](https://gitlab.khronos.org/openxr/openxr/merge_requests/4173),
124+
[internal issue 2469](https://gitlab.khronos.org/openxr/openxr/issues/2469))
125+
- Chore: Reserve extension numbers.
126+
([internal MR 4204](https://gitlab.khronos.org/openxr/openxr/merge_requests/4204))
127+
- Fix: Mark `XR_FB_touch_controller_proximity` as obsoleted by OpenXR 1.1.
128+
([internal MR 4191](https://gitlab.khronos.org/openxr/openxr/merge_requests/4191),
129+
[internal issue 2599](https://gitlab.khronos.org/openxr/openxr/issues/2599))
130+
- Improvement: Add command return code checks in `xml_consistency.py` for
131+
specific spatial entity input types.
132+
([internal MR 4151](https://gitlab.khronos.org/openxr/openxr/merge_requests/4151))
133+
- New ratified multi-vendor extension: `XR_EXT_view_configuration_views_change`
134+
([internal MR 711](https://gitlab.khronos.org/openxr/openxr/merge_requests/711),
135+
[internal issue 619](https://gitlab.khronos.org/openxr/openxr/issues/619))
136+
- New ratified multi-vendor extension:
137+
`XR_EXT_interaction_profile_battery_state_display`.
138+
([internal MR 3528](https://gitlab.khronos.org/openxr/openxr/merge_requests/3528),
139+
[internal issue 1339](https://gitlab.khronos.org/openxr/openxr/issues/1339),
140+
[internal issue 1905](https://gitlab.khronos.org/openxr/openxr/issues/1905))
141+
- New vendor extension: `XR_QCOM_hand_tracking_gesture`
142+
([internal MR 2572](https://gitlab.khronos.org/openxr/openxr/merge_requests/2572))
143+
- New vendor extension: `XR_META_body_tracking_fidelity`
144+
([internal MR 2962](https://gitlab.khronos.org/openxr/openxr/merge_requests/2962))
145+
- New vendor extension: `XR_META_spatial_entity_semantic_label`
146+
([internal MR 3529](https://gitlab.khronos.org/openxr/openxr/merge_requests/3529))
147+
- New vendor extension: `XR_ANDROID_performance_metrics`
148+
([internal MR 3607](https://gitlab.khronos.org/openxr/openxr/merge_requests/3607))
149+
- New vendor extension: `XR_ANDROID_mouse_interaction`
150+
([internal MR 3608](https://gitlab.khronos.org/openxr/openxr/merge_requests/3608))
151+
- New vendor extension: `XR_ANDROID_unbounded_reference_space`
152+
([internal MR 3624](https://gitlab.khronos.org/openxr/openxr/merge_requests/3624))
153+
- New vendor extension: `XR_ANDROID_composition_layer_passthrough_mesh`
154+
([internal MR 3625](https://gitlab.khronos.org/openxr/openxr/merge_requests/3625))
155+
- New vendor extension: `XR_META_environment_raycast`
156+
([internal MR 3758](https://gitlab.khronos.org/openxr/openxr/merge_requests/3758))
157+
- New vendor extension: `XR_ANDROID_trackables_qr_code`
158+
([internal MR 3772](https://gitlab.khronos.org/openxr/openxr/merge_requests/3772))
159+
- New vendor extension: `XR_BD_spatial_audio_rendering`
160+
([internal MR 3794](https://gitlab.khronos.org/openxr/openxr/merge_requests/3794))
161+
- New vendor extension: `XR_ANDROID_scene_meshing`
162+
([internal MR 3872](https://gitlab.khronos.org/openxr/openxr/merge_requests/3872))
163+
- New vendor extension: `XR_META_tile_properties_hint`
164+
([internal MR 3885](https://gitlab.khronos.org/openxr/openxr/merge_requests/3885))
165+
- New vendor extension: `XR_ANDROID_spatial_object_tracking`
166+
([internal MR 3992](https://gitlab.khronos.org/openxr/openxr/merge_requests/3992))
167+
- New vendor extension: `XR_ANDROID_spatial_discovery_raycast`
168+
([internal MR 3993](https://gitlab.khronos.org/openxr/openxr/merge_requests/3993))
169+
- New vendor extension: `XR_ANDROID_spatial_entity_bound_anchor`
170+
([internal MR 3994](https://gitlab.khronos.org/openxr/openxr/merge_requests/3994))
171+
- New vendor extension: `XR_ANDROID_spatial_component_subsumed_by`
172+
([internal MR 4125](https://gitlab.khronos.org/openxr/openxr/merge_requests/4125))
173+
- New vendor extension: `XR_ANDROID_spatial_anchor_space`
174+
([internal MR 4132](https://gitlab.khronos.org/openxr/openxr/merge_requests/4132))
175+
- Schematron: Add schematron validation for prefix `XrCompositionLayer` for
176+
structures which extend `XrCompositionLayerBaseHeader`.
177+
([internal MR 4131](https://gitlab.khronos.org/openxr/openxr/merge_requests/4131))
178+
20179
## OpenXR Specification 1.1.57 (2026-02-12)
21180

22181
This release features a few cleanups and clarifications, an addition to the

‎checkCodespell‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ CODESPELL_IGNORE=${CODESPELL_IGNORE:-${DEFAULT_CODESPELL_IGNORE}}
4747
# Wee, Ser, Nuber, Blok, DeVault are names
4848
# rouge is a word (and our source code highlighter)
4949
# implementors is just how we spell it
50-
IGNORE_WORDS="lod,nd,ba,unknwn,wee,ser,nuber,blok,devault,rouge,implementor,implementors"
50+
IGNORE_WORDS="lod,nd,ba,unknwn,wee,ser,nuber,blok,devault,rouge,implementor,implementors,ACN"
5151

5252
# Add to this to exclude individual files or directories (comma-delimited)
5353
# - Skipping external code.

‎specification/Makefile‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ endif
3939
VERSIONS := XR_VERSION_1_0 XR_VERSION_1_1 XR_LOADER_VERSION_1_0
4040
VERSIONOPTIONS := $(foreach version,$(VERSIONS),-feature $(version))
4141

42-
SPECREVISION = 1.1.57
42+
SPECREVISION = 1.1.58
4343
REVISION_COMPONENTS = $(subst ., ,$(SPECREVISION))
4444
MAJORMINORVER = $(word 1,$(REVISION_COMPONENTS)).$(word 2,$(REVISION_COMPONENTS))
4545

‎specification/current_version.ini‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@
1010
# Similarly, update specification/scripts/extensionmetadocgenerator.py as well.
1111
MAJOR=1
1212
MINOR=1
13-
PATCH=57
13+
PATCH=58

‎specification/example-builds/README.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ The makefile target `build-examples` does the following:
1616
To be extracted, a code block must satisfy *all* of the following conditions:
1717

1818
- Between two `----` dividers.
19-
- Preceded by a line like `[source,c++]` or `[source,c]`
19+
- Preceded by a line like `[source,cpp]` or `[source,c]`
2020
- This "tag list" is comma separated, case-insensitive, and order-insensitive after the first tag.
2121
- `source` must be the first tag in the list
22-
- `c` or `c++` must be in the list
22+
- `c` or `cpp` must be in the list
2323
- `suppress-build` must **not** be in the list.
2424
- All other tags are silently ignored (neither required nor disqualifying).
2525
- Longer than "trivial" (more than a handful of lines, see `MIN_LINES` in the script)
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
/*
2+
** Copyright (c) 2017-2026 The Khronos Group Inc.
3+
**
4+
** SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
XrSession session;
8+
XrSpatialContextEXT spatialContext;
9+
XrSpace localSpace; // previously initialized, e.g. from
10+
// XR_REFERENCE_SPACE_TYPE_LOCAL
11+
XrTime predictedDisplayTime; // previously initialized, e.g. from
12+
13+
PFN_xrCreateSpatialAnchorSpaceANDROID xrCreateSpatialAnchorSpaceANDROID;
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
/*
2+
** Copyright (c) 2017-2026 The Khronos Group Inc.
3+
**
4+
** SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
XrSession session;
8+
XrSpatialContextEXT spatialContext;
9+
10+
XrSpatialEntityIdEXT spatialAnchorEntityId;
11+
12+
PFN_xrCreateSpatialAnchorSpaceFromIdANDROID
13+
xrCreateSpatialAnchorSpaceFromIdANDROID;
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/*
2+
** Copyright (c) 2017-2026 The Khronos Group Inc.
3+
**
4+
** SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
XrInstance instance; // Created at app startup.
8+
XrSystemId systemId; // Created at app startup.
9+
XrSession session; // Created at app startup.
10+
XrFutureEXT future; // Future used for async operations.
11+
XrSpatialContextEXT spatialContext; // Will be created with capabilities
12+
13+
PFN_xrEnumerateSpatialCapabilitiesEXT xrEnumerateSpatialCapabilitiesEXT;
14+
PFN_xrEnumerateSpatialCapabilityComponentTypesEXT xrEnumerateSpatialCapabilityComponentTypesEXT;
15+
PFN_xrCreateSpatialContextAsyncEXT xrCreateSpatialContextAsyncEXT;
16+
PFN_xrCreateSpatialContextCompleteEXT xrCreateSpatialContextCompleteEXT;
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/*
2+
** Copyright (c) 2017-2026 The Khronos Group Inc.
3+
**
4+
** SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
XrInstance instance; // Created at app startup.
8+
XrFutureEXT future; // Future used for async operations.
9+
XrSpace space; // Basic space
10+
XrTime updateTime; // The current frame's predicted display time.
11+
XrSpatialContextEXT spatialContext; // Created in the previous example
12+
13+
PFN_xrPollFutureEXT xrPollFutureEXT;
14+
PFN_xrCreateSpatialDiscoverySnapshotAsyncEXT xrCreateSpatialDiscoverySnapshotAsyncEXT;
15+
PFN_xrCreateSpatialDiscoverySnapshotCompleteEXT xrCreateSpatialDiscoverySnapshotCompleteEXT;
16+
PFN_xrQuerySpatialComponentDataEXT xrQuerySpatialComponentDataEXT;
17+
PFN_xrDestroySpatialSnapshotEXT xrDestroySpatialSnapshotEXT;
18+
PFN_xrCreateSpatialEntityFromIdEXT xrCreateSpatialEntityFromIdEXT;
19+
20+
void waitUntilReady(XrFutureEXT future) {
21+
XrFuturePollInfoEXT pollInfo{XR_TYPE_FUTURE_POLL_INFO_EXT};
22+
XrFuturePollResultEXT pollResult{XR_TYPE_FUTURE_POLL_RESULT_EXT};
23+
pollInfo.future = future;
24+
do {
25+
// sleep(1);
26+
CHK_XR(xrPollFutureEXT(instance, &pollInfo, &pollResult));
27+
} while (pollResult.state != XR_FUTURE_STATE_READY_EXT);
28+
}

0 commit comments

Comments
 (0)