Skip to content

Commit

Permalink
OpenXR 1.0.4 release (21-November-2019)
Browse files Browse the repository at this point in the history
Patch release for the 1.0 series.

This release includes some fixes, extensions, and a small build system change:
the build system is now configured to use C++14. No code changes in the loader
or layers have yet taken place that require C++14. **Please file an issue** in
OpenXR-SDK-Source if there is some deployment platform where you would be unable
to use a loader making use of C++14 features.

### GitHub Pull Requests

These had been integrated into the public repo incrementally.

- General, Build, Other
  - KhronosGroup#141 - Support system libs better (permit system jsoncpp, etc. for easier
    packaging)
- hello_xr
  - KhronosGroup#144 - Fix hello_xr when running under Linux OpenGL X11
- Registry
  - Reserve a Monado EGL extension
    <KhronosGroup/OpenXR-Docs#39>

### Internal issues

- General, Build, Other
  - Switch C++ standard version to C++14 (internal MR 1602)
  - Remove unused/unneeded files (internal MR 1609)
- Loader
  - Fix typo in parameter/member names (internal MR 1607, internal issue 1233)
  - Fix deprecated usage of JsonCpp (internal MR 1604, internal issue 1212)
- hello_xr
  - Resolve misleading use of `xrLocateViews` before `xrWaitFrame` in helloXR
    and spec (internal MR 1584, internal issue 1227, public issue
    <KhronosGroup#134>)
- Registry
  - Add `XR_EXT_conformance_automation` extension, for use **only** by
    conformance testing (internal MR 1577, 1608)
  • Loading branch information
rpavlik committed Nov 22, 2019
1 parent 2bcc4fe commit 7462cda
Show file tree
Hide file tree
Showing 15 changed files with 804 additions and 28 deletions.
46 changes: 43 additions & 3 deletions CHANGELOG.SDK.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
# Changelog for OpenXR-SDK-Source and OpenXR-SDK Repo

Update log for the OpenXR-SDK-Source and OpenXR-SDK repo on GitHub.
Updates are in reverse chronological order starting with the latest public release.
Update log for the OpenXR-SDK-Source and OpenXR-SDK repo on GitHub. Updates are
in reverse chronological order starting with the latest public release.

Note that only changes relating to the loader and some of the build changes will affect the OpenXR-SDK repository.
Note that only changes relating to the loader and some of the build changes will
affect the OpenXR-SDK repository.

This summarizes the periodic public updates, not individual commits. Updates
on GitHub are generally done as single large patches at the release point,
Expand All @@ -12,6 +13,45 @@ 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 1.0.4 release (21-November-2019)

Patch release for the 1.0 series.

This release includes some fixes, extensions, and a small build system change:
the build system is now configured to use C++14. No code changes in the loader
or layers have yet taken place that require C++14. **Please file an issue** in
OpenXR-SDK-Source if there is some deployment platform where you would be unable
to use a loader making use of C++14 features.

### GitHub Pull Requests

These had been integrated into the public repo incrementally.

- General, Build, Other
- #141 - Support system libs better (permit system jsoncpp, etc. for easier
packaging)
- hello_xr
- #144 - Fix hello_xr when running under Linux OpenGL X11
- Registry
- Reserve a Monado EGL extension
<https://github.com/KhronosGroup/OpenXR-Docs/pull/39>

### Internal issues

- General, Build, Other
- Switch C++ standard version to C++14 (internal MR 1602)
- Remove unused/unneeded files (internal MR 1609)
- Loader
- Fix typo in parameter/member names (internal MR 1607, internal issue 1233)
- Fix deprecated usage of JsonCpp (internal MR 1604, internal issue 1212)
- hello_xr
- Resolve misleading use of `xrLocateViews` before `xrWaitFrame` in helloXR
and spec (internal MR 1584, internal issue 1227, public issue
<https://github.com/KhronosGroup/OpenXR-SDK-Source/issues/134>)
- Registry
- Add `XR_EXT_conformance_automation` extension, for use **only** by
conformance testing (internal MR 1577, 1608)

## OpenXR 1.0.3 release (7-October-2019)

Patch release for the 1.0 series.
Expand Down
47 changes: 45 additions & 2 deletions include/openxr/openxr.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,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, 3)
#define XR_CURRENT_API_VERSION XR_MAKE_VERSION(1, 0, 4)

#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 @@ -1583,7 +1583,7 @@ XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialAnchorMSFT(


#define XR_MND_headless 1
#define XR_MND_headless_SPEC_VERSION 1
#define XR_MND_headless_SPEC_VERSION 2
#define XR_MND_HEADLESS_EXTENSION_NAME "XR_MND_headless"


Expand All @@ -1605,6 +1605,49 @@ typedef struct XrViewConfigurationDepthRangeEXT {
} XrViewConfigurationDepthRangeEXT;



#define XR_EXT_conformance_automation 1
#define XR_EXT_conformance_automation_SPEC_VERSION 1
#define XR_EXT_CONFORMANCE_AUTOMATION_EXTENSION_NAME "XR_EXT_conformance_automation"
typedef XrResult (XRAPI_PTR *PFN_xrSetInputDeviceActiveEXT)(XrSession session, XrPath interactionProfile, XrPath topLevelPath, XrBool32 isActive);
typedef XrResult (XRAPI_PTR *PFN_xrSetInputDeviceStateBoolEXT)(XrSession session, XrPath topLevelPath, XrPath inputSourcePath, XrBool32 state);
typedef XrResult (XRAPI_PTR *PFN_xrSetInputDeviceStateFloatEXT)(XrSession session, XrPath topLevelPath, XrPath inputSourcePath, float state);
typedef XrResult (XRAPI_PTR *PFN_xrSetInputDeviceStateVector2fEXT)(XrSession session, XrPath topLevelPath, XrPath inputSourcePath, XrVector2f state);
typedef XrResult (XRAPI_PTR *PFN_xrSetInputDeviceLocationEXT)(XrSession session, XrPath topLevelPath, XrPath inputSourcePath, XrSpace space, XrPosef pose);

#ifndef XR_NO_PROTOTYPES
XRAPI_ATTR XrResult XRAPI_CALL xrSetInputDeviceActiveEXT(
XrSession session,
XrPath interactionProfile,
XrPath topLevelPath,
XrBool32 isActive);

XRAPI_ATTR XrResult XRAPI_CALL xrSetInputDeviceStateBoolEXT(
XrSession session,
XrPath topLevelPath,
XrPath inputSourcePath,
XrBool32 state);

XRAPI_ATTR XrResult XRAPI_CALL xrSetInputDeviceStateFloatEXT(
XrSession session,
XrPath topLevelPath,
XrPath inputSourcePath,
float state);

XRAPI_ATTR XrResult XRAPI_CALL xrSetInputDeviceStateVector2fEXT(
XrSession session,
XrPath topLevelPath,
XrPath inputSourcePath,
XrVector2f state);

XRAPI_ATTR XrResult XRAPI_CALL xrSetInputDeviceLocationEXT(
XrSession session,
XrPath topLevelPath,
XrPath inputSourcePath,
XrSpace space,
XrPosef pose);
#endif

#ifdef __cplusplus
}
#endif
Expand Down
65 changes: 63 additions & 2 deletions specification/registry/xr.xml
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ maintained in the master branch of the Khronos OpenXR GitHub project.
updates them automatically by processing a line at a time.
-->
<type category="define">// OpenXR current version number.
#define <name>XR_CURRENT_API_VERSION</name> <type>XR_MAKE_VERSION</type>(1, 0, 3)</type>
#define <name>XR_CURRENT_API_VERSION</name> <type>XR_MAKE_VERSION</type>(1, 0, 4)</type>

<!--
NOTE: For avoidance of ambiguity, there should only be 1 <name> tag immediately in
Expand Down Expand Up @@ -1812,6 +1812,49 @@ maintained in the master branch of the Khronos OpenXR GitHub project.
<param><type>XrSpatialAnchorMSFT</type> <name>anchor</name></param>
</command>

<!-- commands for XR_EXT_conformance_automation -->
<command successcodes="XR_SUCCESS"
errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SESSION_LOST,XR_SESSION_LOSS_PENDING,XR_ERROR_PATH_INVALID,XR_ERROR_PATH_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrSetInputDeviceActiveEXT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrPath</type> <name>interactionProfile</name></param>
<param><type>XrPath</type> <name>topLevelPath</name></param>
<param><type>XrBool32</type> <name>isActive</name></param>
</command>
<command successcodes="XR_SUCCESS"
errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SESSION_LOST,XR_SESSION_LOSS_PENDING,XR_ERROR_PATH_INVALID,XR_ERROR_PATH_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrSetInputDeviceStateBoolEXT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrPath</type> <name>topLevelPath</name></param>
<param><type>XrPath</type> <name>inputSourcePath</name></param>
<param><type>XrBool32</type> <name>state</name></param>
</command>
<command successcodes="XR_SUCCESS"
errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SESSION_LOST,XR_SESSION_LOSS_PENDING,XR_ERROR_PATH_INVALID,XR_ERROR_PATH_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrSetInputDeviceStateFloatEXT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrPath</type> <name>topLevelPath</name></param>
<param><type>XrPath</type> <name>inputSourcePath</name></param>
<param><type>float</type> <name>state</name></param>
</command>
<command successcodes="XR_SUCCESS"
errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SESSION_LOST,XR_SESSION_LOSS_PENDING,XR_ERROR_PATH_INVALID,XR_ERROR_PATH_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrSetInputDeviceStateVector2fEXT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrPath</type> <name>topLevelPath</name></param>
<param><type>XrPath</type> <name>inputSourcePath</name></param>
<param><type>XrVector2f</type> <name>state</name></param>
</command>
<command successcodes="XR_SUCCESS"
errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_SESSION_LOST,XR_SESSION_LOSS_PENDING,XR_ERROR_PATH_INVALID,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_POSE_INVALID">
<proto><type>XrResult</type> <name>xrSetInputDeviceLocationEXT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrPath</type> <name>topLevelPath</name></param>
<param><type>XrPath</type> <name>inputSourcePath</name></param>
<param><type>XrSpace</type> <name>space</name></param>
<param><type>XrPosef</type> <name>pose</name></param>
</command>

</commands>

<!-- SECTION: OpenXR API interface definitions -->
Expand Down Expand Up @@ -2352,7 +2395,7 @@ maintained in the master branch of the Khronos OpenXR GitHub project.

<extension name="XR_MND_headless" number="43" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_MND_headless_SPEC_VERSION"/>
<enum value="2" name="XR_MND_headless_SPEC_VERSION"/>
<enum value="&quot;XR_MND_headless&quot;" name="XR_MND_HEADLESS_EXTENSION_NAME"/>
</require>
</extension>
Expand Down Expand Up @@ -2387,5 +2430,23 @@ maintained in the master branch of the Khronos OpenXR GitHub project.
</require>
</extension>

<extension name="XR_EXT_conformance_automation" number="48" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_EXT_conformance_automation_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_conformance_automation&quot;" name="XR_EXT_CONFORMANCE_AUTOMATION_EXTENSION_NAME"/>
<command name="xrSetInputDeviceActiveEXT"/>
<command name="xrSetInputDeviceStateBoolEXT"/>
<command name="xrSetInputDeviceStateFloatEXT"/>
<command name="xrSetInputDeviceStateVector2fEXT"/>
<command name="xrSetInputDeviceLocationEXT"/>
</require>
</extension>
<extension name="XR_MND_egl_enable" number="49" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MND_egl_enable_SPEC_VERSION"/>
<enum value="&quot;XR_MND_egl_enable&quot;" name="XR_MND_EGL_ENABLE_EXTENSION_NAME"/>
</require>
</extension>

</extensions>
</registry>
9 changes: 7 additions & 2 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
# Author:
#

# Entire project uses C++11
set(CMAKE_CXX_STANDARD 11)
# Entire project uses C++14
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")

Expand All @@ -38,6 +38,11 @@ endif()
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/conformance" AND NOT CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
option(BUILD_CONFORMANCE_TESTS "Build conformance tests" ON)
endif()
include(CMakeDependentOption)

find_package(JsonCpp)
cmake_dependent_option(BUILD_WITH_SYSTEM_JSONCPP "Use system jsoncpp instead of vendored source" ON
"JSONCPP_FOUND" OFF)


# Several files use these compile-time OS switches
Expand Down
Loading

0 comments on commit 7462cda

Please sign in to comment.