Skip to content

Commit

Permalink
OpenXR SDK 1.0.31 (2023-10-18)
Browse files Browse the repository at this point in the history
This release features two new vendor extensions and minor extension XML
revisions, in addition to compatibility and logging improvements in the
software.

-   Registry
    -   Extension reservation: Reserve extensions for NVIDIA. (internal
        MR 2952)
    -   Extension reservation: Reserve extensions for Meta. (internal MR
        2959)
    -   Extension reservation: Reserve extensions for Android. (internal
        MR 2966)
    -   Extension reservation: Reserve an extension for
        XR_KHR_egl_enable. (internal MR 2982)
    -   New vendor extension: XR_MSFT_scene_marker (internal MR 2601)
    -   New vendor extension: XR_ML_user_calibration (internal MR 2849)
    -   Schematron: Allow chained structs that extend a two-call-idiom
        struct to carry only a *CapacityInput member. (internal MR 2892,
        internal issue 2059)
    -   XR_FB_render_model: Fix structextends attribute and remove
        returnedonly attribute of XrRenderModelCapabilitiesRequestFB, to
        match the specification prose. (internal MR 2765, OpenXR-Docs
        issue 153, internal issue 2017)
    -   xml: Fixed a few errors in MSFT extensions discovered by
        Schematron checks. (internal MR 2892)
-   SDK
    -   API Layers: Add logging on API layer negotiation failure.
        (internal MR 2926)
    -   Fix: Enable build with clang-cl on Windows through Visual
        Studio. (internal MR 2948)
    -   Fix: Remove unused pthread prototypes declaration in _USE_GNU
        ifdef, fixing builds on some systems. (internal MR 2981)
    -   Fix comment typo in platform utils header. (internal MR 2991)
    -   gfxwrapper: Add OpenGL 3.3 functions to an internal utility
        library used by hello_xr, shared with the CTS. (internal MR
        2941)
    -   loader: Modify jnipp, used by the loader on Android, to no
        longer use basic_string<> with types that are technically not in
        the C++ specification as permissible, to fix compatibility with
        an upcoming libc++ update. (internal MR 2974, internal issue
        2094, OpenXR-SDK-Source PR 426)
    -   loader_test: Refactor to use existing macros for all test to
        avoid repetition. (internal MR 2922)
    -   scripts: Small fixes and cleanups (internal MR 2998, internal MR
        2894, internal MR 2896)

GitOrigin-RevId: 38114c3ba8eb46d6fafe1761ed08e263ce132237
  • Loading branch information
rpavlik committed Oct 19, 2023
1 parent 5522447 commit 95fe35f
Show file tree
Hide file tree
Showing 23 changed files with 1,961 additions and 77 deletions.
2 changes: 1 addition & 1 deletion .appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
#
# SPDX-License-Identifier: Apache-2.0

version: 1.0.30.{build}
version: 1.0.31.{build}
image: Visual Studio 2017


Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@ jobs:
loader:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Get modern CMake and Ninja
uses: lukka/get-cmake@v3.26.4
uses: lukka/get-cmake@v3.27.7

- name: set up JDK 11
uses: actions/setup-java@v3
Expand Down Expand Up @@ -59,9 +59,9 @@ jobs:
build-helloxr:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Get modern CMake and Ninja
uses: lukka/get-cmake@v3.26.4
uses: lukka/get-cmake@v3.27.7
- name: set up JDK 11
uses: actions/setup-java@v3
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/check_clang_format_and_codespell.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
container:
image: khronosgroup/docker-images:openxr-sdk.20230209
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- run: ./runClangFormat.sh
name: Run clang-format

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/msvc-build-preset.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@ jobs:
VULKAN_SDK_VERSION: "1.1.114.0"
INSTALL_DIR: "${{ github.workspace }}/install"
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Get modern CMake and Ninja
uses: lukka/get-cmake@v3.26.4
uses: lukka/get-cmake@v3.27.7

- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.3
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/windows-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
# outputs:
# matrix: "${{ steps.set-matrix.outputs.matrix }}"
# steps:
# - uses: "actions/checkout@v3"
# - uses: "actions/checkout@v4"
# - id: set-matrix
# run: "python3 .github/scripts/generate_windows_matrix_build.py matrix"
msvc-build:
Expand Down Expand Up @@ -47,7 +47,7 @@ jobs:
- msvc-build
runs-on: ubuntu-latest
steps:
- uses: "actions/checkout@v3"
- uses: "actions/checkout@v4"

- name: Retrieve artifacts
uses: "actions/download-artifact@v3"
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -77,3 +77,7 @@ local.properties
# Output artifact
*.aar
*.pom
clang-format-patches/

# Key stores
*.jks
57 changes: 57 additions & 0 deletions CHANGELOG.SDK.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,63 @@ along with any public pull requests that have been accepted.
In this repository in particular, since it is primarily software,
pull requests may be integrated as they are accepted even between periodic updates.

## OpenXR SDK 1.0.31 (2023-10-18)

This release features two new vendor extensions and minor extension XML
revisions, in addition to compatibility and logging improvements in the
software.

- Registry
- Extension reservation: Reserve extensions for NVIDIA.
([internal MR 2952](https://gitlab.khronos.org/openxr/openxr/merge_requests/2952))
- Extension reservation: Reserve extensions for Meta.
([internal MR 2959](https://gitlab.khronos.org/openxr/openxr/merge_requests/2959))
- Extension reservation: Reserve extensions for Android.
([internal MR 2966](https://gitlab.khronos.org/openxr/openxr/merge_requests/2966))
- Extension reservation: Reserve an extension for `XR_KHR_egl_enable`.
([internal MR 2982](https://gitlab.khronos.org/openxr/openxr/merge_requests/2982))
- New vendor extension: `XR_MSFT_scene_marker`
([internal MR 2601](https://gitlab.khronos.org/openxr/openxr/merge_requests/2601))
- New vendor extension: `XR_ML_user_calibration`
([internal MR 2849](https://gitlab.khronos.org/openxr/openxr/merge_requests/2849))
- Schematron: Allow chained structs that extend a two-call-idiom struct to carry
only a `*CapacityInput` member.
([internal MR 2892](https://gitlab.khronos.org/openxr/openxr/merge_requests/2892),
[internal issue 2059](https://gitlab.khronos.org/openxr/openxr/issues/2059))
- `XR_FB_render_model`: Fix `structextends` attribute and remove `returnedonly`
attribute of `XrRenderModelCapabilitiesRequestFB`, to match the specification
prose.
([internal MR 2765](https://gitlab.khronos.org/openxr/openxr/merge_requests/2765),
[OpenXR-Docs issue 153](https://github.com/KhronosGroup/OpenXR-Docs/issues/153),
[internal issue 2017](https://gitlab.khronos.org/openxr/openxr/issues/2017))
- xml: Fixed a few errors in MSFT extensions discovered by Schematron checks.
([internal MR 2892](https://gitlab.khronos.org/openxr/openxr/merge_requests/2892))
- SDK
- API Layers: Add logging on API layer negotiation failure.
([internal MR 2926](https://gitlab.khronos.org/openxr/openxr/merge_requests/2926))
- Fix: Enable build with clang-cl on Windows through Visual Studio.
([internal MR 2948](https://gitlab.khronos.org/openxr/openxr/merge_requests/2948))
- Fix: Remove unused pthread prototypes declaration in `_USE_GNU` ifdef, fixing
builds on some systems.
([internal MR 2981](https://gitlab.khronos.org/openxr/openxr/merge_requests/2981))
- Fix comment typo in platform utils header.
([internal MR 2991](https://gitlab.khronos.org/openxr/openxr/merge_requests/2991))
- gfxwrapper: Add OpenGL 3.3 functions to an internal utility library used by
hello_xr, shared with the CTS.
([internal MR 2941](https://gitlab.khronos.org/openxr/openxr/merge_requests/2941))
- loader: Modify `jnipp`, used by the loader on Android, to no longer use
`basic_string<>` with types that are technically not in the C++ specification
as permissible, to fix compatibility with an upcoming `libc++` update.
([internal MR 2974](https://gitlab.khronos.org/openxr/openxr/merge_requests/2974),
[internal issue 2094](https://gitlab.khronos.org/openxr/openxr/issues/2094),
[OpenXR-SDK-Source PR 426](https://github.com/KhronosGroup/OpenXR-SDK-Source/pull/426))
- loader_test: Refactor to use existing macros for all test to avoid repetition.
([internal MR 2922](https://gitlab.khronos.org/openxr/openxr/merge_requests/2922))
- scripts: Small fixes and cleanups
([internal MR 2998](https://gitlab.khronos.org/openxr/openxr/merge_requests/2998),
[internal MR 2894](https://gitlab.khronos.org/openxr/openxr/merge_requests/2894),
[internal MR 2896](https://gitlab.khronos.org/openxr/openxr/merge_requests/2896))

## OpenXR SDK 1.0.30 (2023-09-20)

This release is primarily a quality improvement release, fixing a range of
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
# It should contain only definitions that are applicable to the
# entire project and includes for the sub-directories.

cmake_minimum_required(VERSION 3.0)
cmake_minimum_required(VERSION 3.0...3.16)
project(OPENXR)

find_package(PythonInterp 3)
Expand Down
142 changes: 136 additions & 6 deletions include/openxr/openxr.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ extern "C" {
((((major) & 0xffffULL) << 48) | (((minor) & 0xffffULL) << 32) | ((patch) & 0xffffffffULL))

// OpenXR current version number.
#define XR_CURRENT_API_VERSION XR_MAKE_VERSION(1, 0, 30)
#define XR_CURRENT_API_VERSION XR_MAKE_VERSION(1, 0, 31)

#define XR_VERSION_MAJOR(version) (uint16_t)(((uint64_t)(version) >> 48)& 0xffffULL)
#define XR_VERSION_MINOR(version) (uint16_t)(((uint64_t)(version) >> 32) & 0xffffULL)
Expand Down Expand Up @@ -220,6 +220,7 @@ typedef enum XrResult {
XR_ERROR_MARKER_ID_INVALID_VARJO = -1000124001,
XR_ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT = -1000142001,
XR_ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT = -1000142002,
XR_SCENE_MARKER_DATA_NOT_STRING_MSFT = 1000147000,
XR_ERROR_SPACE_MAPPING_INSUFFICIENT_FB = -1000169000,
XR_ERROR_SPACE_LOCALIZATION_FAILED_FB = -1000169001,
XR_ERROR_SPACE_NETWORK_TIMEOUT_FB = -1000169002,
Expand Down Expand Up @@ -444,8 +445,14 @@ typedef enum XrStructureType {
XR_TYPE_FRAME_END_INFO_ML = 1000135000,
XR_TYPE_GLOBAL_DIMMER_FRAME_END_INFO_ML = 1000136000,
XR_TYPE_COORDINATE_SPACE_CREATE_INFO_ML = 1000137000,
XR_TYPE_EVENT_DATA_HEADSET_FIT_CHANGED_ML = 1000472000,
XR_TYPE_EVENT_DATA_EYE_CALIBRATION_CHANGED_ML = 1000472001,
XR_TYPE_USER_CALIBRATION_ENABLE_EVENTS_INFO_ML = 1000472002,
XR_TYPE_SPATIAL_ANCHOR_PERSISTENCE_INFO_MSFT = 1000142000,
XR_TYPE_SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_MSFT = 1000142001,
XR_TYPE_SCENE_MARKERS_MSFT = 1000147000,
XR_TYPE_SCENE_MARKER_TYPE_FILTER_MSFT = 1000147001,
XR_TYPE_SCENE_MARKER_QR_CODES_MSFT = 1000147002,
XR_TYPE_SPACE_QUERY_INFO_FB = 1000156001,
XR_TYPE_SPACE_QUERY_RESULTS_FB = 1000156002,
XR_TYPE_SPACE_STORAGE_LOCATION_FILTER_INFO_FB = 1000156003,
Expand Down Expand Up @@ -2876,6 +2883,7 @@ typedef enum XrSceneComputeFeatureMSFT {
XR_SCENE_COMPUTE_FEATURE_VISUAL_MESH_MSFT = 3,
XR_SCENE_COMPUTE_FEATURE_COLLIDER_MESH_MSFT = 4,
XR_SCENE_COMPUTE_FEATURE_SERIALIZE_SCENE_MSFT = 1000098000,
XR_SCENE_COMPUTE_FEATURE_MARKER_MSFT = 1000147000,
XR_SCENE_COMPUTE_FEATURE_MAX_ENUM_MSFT = 0x7FFFFFFF
} XrSceneComputeFeatureMSFT;

Expand All @@ -2901,6 +2909,7 @@ typedef enum XrSceneComponentTypeMSFT {
XR_SCENE_COMPONENT_TYPE_VISUAL_MESH_MSFT = 3,
XR_SCENE_COMPONENT_TYPE_COLLIDER_MESH_MSFT = 4,
XR_SCENE_COMPONENT_TYPE_SERIALIZED_SCENE_FRAGMENT_MSFT = 1000098000,
XR_SCENE_COMPONENT_TYPE_MARKER_MSFT = 1000147000,
XR_SCENE_COMPONENT_TYPE_MAX_ENUM_MSFT = 0x7FFFFFFF
} XrSceneComponentTypeMSFT;

Expand Down Expand Up @@ -4131,7 +4140,7 @@ typedef struct XrSystemRenderModelPropertiesFB {
XrBool32 supportsRenderModelLoading;
} XrSystemRenderModelPropertiesFB;

// XrRenderModelCapabilitiesRequestFB extends XrSystemProperties
// XrRenderModelCapabilitiesRequestFB extends XrRenderModelPropertiesFB
typedef struct XrRenderModelCapabilitiesRequestFB {
XrStructureType type;
void* XR_MAY_ALIAS next;
Expand Down Expand Up @@ -4359,7 +4368,7 @@ typedef struct XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT {
typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorStoreConnectionMSFT)(XrSession session, XrSpatialAnchorStoreConnectionMSFT* spatialAnchorStore);
typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialAnchorStoreConnectionMSFT)(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore);
typedef XrResult (XRAPI_PTR *PFN_xrPersistSpatialAnchorMSFT)(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore, const XrSpatialAnchorPersistenceInfoMSFT* spatialAnchorPersistenceInfo);
typedef XrResult (XRAPI_PTR *PFN_xrEnumeratePersistedSpatialAnchorNamesMSFT)(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore, uint32_t spatialAnchorNamesCapacityInput, uint32_t* spatialAnchorNamesCountOutput, XrSpatialAnchorPersistenceNameMSFT* persistedAnchorNames);
typedef XrResult (XRAPI_PTR *PFN_xrEnumeratePersistedSpatialAnchorNamesMSFT)(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore, uint32_t spatialAnchorNameCapacityInput, uint32_t* spatialAnchorNameCountOutput, XrSpatialAnchorPersistenceNameMSFT* spatialAnchorNames);
typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorFromPersistedNameMSFT)(XrSession session, const XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT* spatialAnchorCreateInfo, XrSpatialAnchorMSFT* spatialAnchor);
typedef XrResult (XRAPI_PTR *PFN_xrUnpersistSpatialAnchorMSFT)(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore, const XrSpatialAnchorPersistenceNameMSFT* spatialAnchorPersistenceName);
typedef XrResult (XRAPI_PTR *PFN_xrClearSpatialAnchorStoreMSFT)(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore);
Expand All @@ -4379,9 +4388,9 @@ XRAPI_ATTR XrResult XRAPI_CALL xrPersistSpatialAnchorMSFT(

XRAPI_ATTR XrResult XRAPI_CALL xrEnumeratePersistedSpatialAnchorNamesMSFT(
XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore,
uint32_t spatialAnchorNamesCapacityInput,
uint32_t* spatialAnchorNamesCountOutput,
XrSpatialAnchorPersistenceNameMSFT* persistedAnchorNames);
uint32_t spatialAnchorNameCapacityInput,
uint32_t* spatialAnchorNameCountOutput,
XrSpatialAnchorPersistenceNameMSFT* spatialAnchorNames);

XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorFromPersistedNameMSFT(
XrSession session,
Expand All @@ -4398,6 +4407,78 @@ XRAPI_ATTR XrResult XRAPI_CALL xrClearSpatialAnchorStoreMSFT(
#endif /* !XR_NO_PROTOTYPES */


#define XR_MSFT_scene_marker 1
#define XR_MSFT_scene_marker_SPEC_VERSION 1
#define XR_MSFT_SCENE_MARKER_EXTENSION_NAME "XR_MSFT_scene_marker"

typedef enum XrSceneMarkerTypeMSFT {
XR_SCENE_MARKER_TYPE_QR_CODE_MSFT = 1,
XR_SCENE_MARKER_TYPE_MAX_ENUM_MSFT = 0x7FFFFFFF
} XrSceneMarkerTypeMSFT;

typedef enum XrSceneMarkerQRCodeSymbolTypeMSFT {
XR_SCENE_MARKER_QR_CODE_SYMBOL_TYPE_QR_CODE_MSFT = 1,
XR_SCENE_MARKER_QR_CODE_SYMBOL_TYPE_MICRO_QR_CODE_MSFT = 2,
XR_SCENE_MARKER_QRCODE_SYMBOL_TYPE_MAX_ENUM_MSFT = 0x7FFFFFFF
} XrSceneMarkerQRCodeSymbolTypeMSFT;
typedef struct XrSceneMarkerMSFT {
XrSceneMarkerTypeMSFT markerType;
XrTime lastSeenTime;
XrOffset2Df center;
XrExtent2Df size;
} XrSceneMarkerMSFT;

// XrSceneMarkersMSFT extends XrSceneComponentsMSFT
typedef struct XrSceneMarkersMSFT {
XrStructureType type;
const void* XR_MAY_ALIAS next;
uint32_t sceneMarkerCapacityInput;
XrSceneMarkerMSFT* sceneMarkers;
} XrSceneMarkersMSFT;

// XrSceneMarkerTypeFilterMSFT extends XrSceneComponentsGetInfoMSFT
typedef struct XrSceneMarkerTypeFilterMSFT {
XrStructureType type;
const void* XR_MAY_ALIAS next;
uint32_t markerTypeCount;
XrSceneMarkerTypeMSFT* markerTypes;
} XrSceneMarkerTypeFilterMSFT;

typedef struct XrSceneMarkerQRCodeMSFT {
XrSceneMarkerQRCodeSymbolTypeMSFT symbolType;
uint8_t version;
} XrSceneMarkerQRCodeMSFT;

// XrSceneMarkerQRCodesMSFT extends XrSceneComponentsMSFT
typedef struct XrSceneMarkerQRCodesMSFT {
XrStructureType type;
const void* XR_MAY_ALIAS next;
uint32_t qrCodeCapacityInput;
XrSceneMarkerQRCodeMSFT* qrCodes;
} XrSceneMarkerQRCodesMSFT;

typedef XrResult (XRAPI_PTR *PFN_xrGetSceneMarkerRawDataMSFT)(XrSceneMSFT scene, const XrUuidMSFT* markerId, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, uint8_t* buffer);
typedef XrResult (XRAPI_PTR *PFN_xrGetSceneMarkerDecodedStringMSFT)(XrSceneMSFT scene, const XrUuidMSFT* markerId, uint32_t bufferCapacityInput, uint32_t* bufferCountOutput, char* buffer);

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrGetSceneMarkerRawDataMSFT(
XrSceneMSFT scene,
const XrUuidMSFT* markerId,
uint32_t bufferCapacityInput,
uint32_t* bufferCountOutput,
uint8_t* buffer);

XRAPI_ATTR XrResult XRAPI_CALL xrGetSceneMarkerDecodedStringMSFT(
XrSceneMSFT scene,
const XrUuidMSFT* markerId,
uint32_t bufferCapacityInput,
uint32_t* bufferCountOutput,
char* buffer);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


#define XR_ULTRALEAP_hand_tracking_forearm 1

#define XR_HAND_FOREARM_JOINT_COUNT_ULTRALEAP 27
Expand Down Expand Up @@ -6155,6 +6236,55 @@ XRAPI_ATTR XrResult XRAPI_CALL xrGetPlanePolygonBufferEXT(
#define XR_OPPO_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_OPPO_controller_interaction"


#define XR_ML_user_calibration 1
#define XR_ML_user_calibration_SPEC_VERSION 1
#define XR_ML_USER_CALIBRATION_EXTENSION_NAME "XR_ML_user_calibration"

typedef enum XrHeadsetFitStatusML {
XR_HEADSET_FIT_STATUS_UNKNOWN_ML = 0,
XR_HEADSET_FIT_STATUS_NOT_WORN_ML = 1,
XR_HEADSET_FIT_STATUS_GOOD_FIT_ML = 2,
XR_HEADSET_FIT_STATUS_BAD_FIT_ML = 3,
XR_HEADSET_FIT_STATUS_MAX_ENUM_ML = 0x7FFFFFFF
} XrHeadsetFitStatusML;

typedef enum XrEyeCalibrationStatusML {
XR_EYE_CALIBRATION_STATUS_UNKNOWN_ML = 0,
XR_EYE_CALIBRATION_STATUS_NONE_ML = 1,
XR_EYE_CALIBRATION_STATUS_COARSE_ML = 2,
XR_EYE_CALIBRATION_STATUS_FINE_ML = 3,
XR_EYE_CALIBRATION_STATUS_MAX_ENUM_ML = 0x7FFFFFFF
} XrEyeCalibrationStatusML;
typedef struct XrEventDataHeadsetFitChangedML {
XrStructureType type;
const void* XR_MAY_ALIAS next;
XrHeadsetFitStatusML status;
XrTime time;
} XrEventDataHeadsetFitChangedML;

typedef struct XrEventDataEyeCalibrationChangedML {
XrStructureType type;
const void* XR_MAY_ALIAS next;
XrEyeCalibrationStatusML status;
} XrEventDataEyeCalibrationChangedML;

typedef struct XrUserCalibrationEnableEventsInfoML {
XrStructureType type;
const void* XR_MAY_ALIAS next;
XrBool32 enabled;
} XrUserCalibrationEnableEventsInfoML;

typedef XrResult (XRAPI_PTR *PFN_xrEnableUserCalibrationEventsML)(XrInstance instance, const XrUserCalibrationEnableEventsInfoML* enableInfo);

#ifndef XR_NO_PROTOTYPES
#ifdef XR_EXTENSION_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrEnableUserCalibrationEventsML(
XrInstance instance,
const XrUserCalibrationEnableEventsInfoML* enableInfo);
#endif /* XR_EXTENSION_PROTOTYPES */
#endif /* !XR_NO_PROTOTYPES */


#define XR_YVR_controller_interaction 1
#define XR_YVR_controller_interaction_SPEC_VERSION 1
#define XR_YVR_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_YVR_controller_interaction"
Expand Down
Loading

0 comments on commit 95fe35f

Please sign in to comment.