Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

OpenXR Commands

xrAcquireSwapchainImage(3)

Name

xrAcquireSwapchainImage - Acquire a swapchain image

C Specification

The xrAcquireSwapchainImage function is defined as:

XrResult xrAcquireSwapchainImage(
    XrSwapchain                                 swapchain,
    const XrSwapchainImageAcquireInfo*          acquireInfo,
    uint32_t*                                   index);

Parameters

Parameter Descriptions
  • swapchain is the swapchain from which to acquire an image.

  • acquireInfo is for extensibility purposes.

  • index is a pointer to the image index that was acquired.

Description

Acquires the image corresponding to the index position in the array returned by xrEnumerateSwapchainImages. The runtime must return XR_ERROR_CALL_ORDER_INVALID if index has already been acquired and not yet released with xrReleaseSwapchainImage. If the swapchain was created with the XR_SWAPCHAIN_CREATE_STATIC_IMAGE_BIT set in XrSwapchainCreateInfo::createFlags, this function must not have been previously called for this swapchain.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SESSION_LOSS_PENDING

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_CALL_ORDER_INVALID

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrApplyHapticFeedback(3)

Name

xrApplyHapticFeedback - Apply haptic feedback

C Specification

The xrApplyHapticFeedback function is defined as:

XrResult xrApplyHapticFeedback(
    XrAction                                    hapticAction,
    uint32_t                                    countSubactionPaths,
    const XrPath*                               subactionPaths,
    const XrHapticBaseHeader*                   hapticEvent);

Parameters

Parameter Descriptions
  • hapticAction is the XrAction handle for the desired output action.

  • countSubactionPaths is the number of elements in the subactionPaths array. If subactionPaths is NULL, this parameter must be 0.

  • subactionPaths is an array of paths or NULL. If this array is specified, it contains one or more subaction paths that were specified when the action was created. If the array includes a subaction path that was not specified when the action was created the runtime must return XR_ERROR_PATH_INVALID. If this parameter is specified, the runtime must trigger haptic events only on devices represented in the array.

  • hapticEvent is a pointer to a haptic event structure which starts with an XrHapticBaseHeader.

Description

Triggers a haptic event through the specified action of type XR_TYPE_ACTION_STATE_POSE. The runtime should deliver this request to the appropriate device, but exactly which device, if any, this event is sent to is up to the runtime to decide. If an appropriate device is unavailable the runtime may ignore this request for haptic feedback.

If another haptic event from this session is currently happening on the device bound to this action, the runtime must interrupt that other event and replace it with the new one.

See XrActionCreateInfo for a description of subaction paths, and the restrictions on their use.

Valid Usage (Implicit)
  • hapticAction must be a valid XrAction handle

  • If countSubactionPaths is not 0, countSubactionPaths must be a valid uint32_t value

  • If countSubactionPaths is not 0, subactionPaths must be a pointer to an array of countSubactionPaths XrPath values

  • hapticEvent must be a pointer to a valid XrHapticBaseHeader structure

Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SESSION_LOSS_PENDING

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_ACTION_TYPE_MISMATCH

  • XR_ERROR_SESSION_NOT_RUNNING

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrBeginFrame(3)

Name

xrBeginFrame - Marks a frame

C Specification

The xrBeginFrame function is defined as:

XrResult xrBeginFrame(
    XrSession                                   session,
    const XrFrameBeginInfo*                     frameBeginInfo);

Parameters

Parameter Descriptions

Description

xrBeginFrame is called prior to the the start of frame rendering.

The runtime must return the success code XR_FRAME_DISCARDED if a prior xrBeginFrame has been called without an intervening call to xrEndFrame.

The runtime may return the success code XR_SESSION_VISIBILITY_UNAVAILABLE if it determines that the current frame will not be visible. In this case the application may elect to omit rendering work for the frame, but should still call xrEndFrame.

The runtime must consider the frame in-progress and ready for an xrEndFrame call if a success code is returned.

The runtime must return XR_ERROR_SESSION_NOT_RUNNING if session is not in the XR_SESSION_STATE_RUNNING, XR_SESSION_STATE_VISIBLE or XR_SESSION_STATE_FOCUSED XrSessionState.

Valid Usage (Implicit)
  • session must be a valid XrSession handle

  • If frameBeginInfo is not NULL, frameBeginInfo must be a pointer to a valid XrFrameBeginInfo structure

Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SESSION_LOSS_PENDING

  • XR_FRAME_DISCARDED

  • XR_SESSION_VISIBILITY_UNAVAILABLE

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_SESSION_NOT_RUNNING

  • XR_ERROR_VALIDATION_FAILURE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrBeginSession(3)

Name

xrBeginSession - Begins an XrSession

C Specification

The xrBeginSession function is defined as:

XrResult xrBeginSession(
    XrSession                                   session,
    const XrSessionBeginInfo*                   beginInfo);

Parameters

Parameter Descriptions

Description

When an app begins a session, it is requesting that the runtime show its rendered output to the user.

Note that a runtime may decide not to show a given session’s output to the user at any time, for example if the user has switched to a different app’s running session. If the session is running but the runtime does not make the session visible, XR_SESSION_VISIBILITY_UNAVAILABLE must be returned. The app should use the XrEventDataSessionStateChanged event to determine when this session is visible to the user and is focused to receive input. If primaryViewConfigurationType in beginInfo is not supported by the XrInstance that created session the runtime must return XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED. If a session was already begun for session, then the runtime must return XR_ERROR_SESSION_RUNNING.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SESSION_VISIBILITY_UNAVAILABLE

  • XR_SESSION_LOSS_PENDING

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_SESSION_RUNNING

  • XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrConvertTimeToTimespecTimeKHR(3)

Name

xrConvertTimeToTimespecTimeKHR - Convert XrTime to timespec monotonic time

C Specification

To convert from basetype::XrTime to timespec monotonic time, call:

XrResult xrConvertTimeToTimespecTimeKHR(
    XrInstance                                  instance,
    XrTime                                      time,
    struct timespec*                            timespecTime);

Parameters

Parameter Descriptions
  • instance is an XrInstance handle previously created with xrCreateInstance.

  • time is an basetype::XrTime.

  • unixTime is the resulting timespec time that is equivalent to a timespec obtained from clock_gettime with CLOCK_MONOTONIC.

Description

The xrConvertTimeToTimespecTimeKHR function converts an basetype::XrTime to time as if generated by clock_gettime.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_VALIDATION_FAILURE

See Also

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrConvertTimeToWin32PerformanceCounterKHR(3)

Name

xrConvertTimeToWin32PerformanceCounterKHR - Convert XrTime to Win32 QueryPerformanceCounter time

C Specification

To convert from basetype::XrTime to Win32 QueryPerformanceCounter time, call:

XrResult xrConvertTimeToWin32PerformanceCounterKHR(
    XrInstance                                  instance,
    XrTime                                      time,
    LARGE_INTEGER*                              performanceCounter);

Parameters

Parameter Descriptions
  • instance is an XrInstance handle previously created with xrCreateInstance.

  • time is an basetype::XrTime.

  • performanceCounter is the resulting Win32 QueryPerformanceCounter time that is equivalent to the time.

Description

The xrConvertTimeToWin32PerformanceCounterKHR function converts an basetype::XrTime to time as if generated by Win32 QueryPerformanceCounter.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_VALIDATION_FAILURE

See Also

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrConvertTimespecTimeToTimeKHR(3)

Name

xrConvertTimespecTimeToTimeKHR - Convert timespec monotonic time to XrTime

C Specification

To convert from timespec monotonic time to basetype::XrTime, call:

XrResult xrConvertTimespecTimeToTimeKHR(
    XrInstance                                  instance,
    const struct timespec*                      timespecTime,
    XrTime*                                     time);

Parameters

Parameter Descriptions
  • instance is an XrInstance handle previously created with xrCreateInstance.

  • unixTime is a timespec obtained from clock_gettime with CLOCK_MONOTONIC.

  • time is the resulting basetpe::XrTime that is equivalent to the unixTime.

Description

The xrConvertTimespecTimeToTimeKHR function converts a time obtained by the clock_gettime function to the equivalent basetype::XrTime.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_VALIDATION_FAILURE

See Also

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrConvertWin32PerformanceCounterToTimeKHR(3)

Name

xrConvertWin32PerformanceCounterToTimeKHR - Convert Win32 QueryPerformanceCounter time to XrTime

C Specification

To convert from Win32 QueryPerformanceCounter time to basetype::XrTime, call:

XrResult xrConvertWin32PerformanceCounterToTimeKHR(
    XrInstance                                  instance,
    const LARGE_INTEGER*                        performanceCounter,
    XrTime*                                     time);

Parameters

Parameter Descriptions
  • instance is an XrInstance handle previously created with xrCreateInstance.

  • performanceCounter is a time returned by QueryPerformanceCounter.

  • time is the resulting basetpe::XrTime that is equivalent to the performanceCounter.

Description

The xrConvertWin32PerformanceCounterToTimeKHR function converts a time obtained by the Win32 QueryPerformanceCounter function to the equivalent basetype::XrTime.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_VALIDATION_FAILURE

See Also

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrCreateAction(3)

Name

xrCreateAction - Creates an XrAction

C Specification

The xrCreateAction function is defined as:

XrResult xrCreateAction(
    XrActionSet                                 actionSet,
    const XrActionCreateInfo*                   createInfo,
    XrAction*                                   action);

Parameters

Parameter Descriptions
  • actionSet is a handle to an XrActionSet.

  • createInfo is a pointer to a valid XrActionCreateInfo structure that defines the action being created.

  • action is a pointer to an XrAction where the created action is returned.

Description

xrCreateAction creates an action and returns its handle. If the session containing actionSet is running when this call is made, the runtime must return XR_ERROR_SESSION_RUNNING.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SESSION_LOSS_PENDING

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_LIMIT_REACHED

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_OUT_OF_MEMORY

  • XR_ERROR_PATH_INVALID

  • XR_ERROR_SESSION_RUNNING

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_NAME_DUPLICATED

  • XR_ERROR_NAME_INVALID

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrCreateActionSet(3)

Name

xrCreateActionSet - Creates an XrActionSet

C Specification

The xrCreateActionSet function is defined as:

XrResult xrCreateActionSet(
    XrSession                                   session,
    const XrActionSetCreateInfo*                createInfo,
    XrActionSet*                                actionSet);

Parameters

Parameter Descriptions
  • session is a handle to an XrSession.

  • createInfo is a pointer to a valid XrActionSetCreateInfo structure that defines the action set being created.

  • actionSet is a pointer to an XrActionSet where the created action set is returned.

Description

The xrCreateActionSet function creates an action set and returns a handle to the created action set. If session is running when this call is made, the runtime must return XR_ERROR_SESSION_RUNNING. Additional error codes are described with XrActionSetCreateInfo.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SESSION_LOSS_PENDING

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_LIMIT_REACHED

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_SESSION_RUNNING

  • XR_ERROR_OUT_OF_MEMORY

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_NAME_DUPLICATED

  • XR_ERROR_NAME_INVALID

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrCreateActionSpace(3)

Name

xrCreateActionSpace - Creates a space based on a pose action

C Specification

The xrCreateActionSpace function is defined as:

XrResult xrCreateActionSpace(
    XrAction                                    action,
    const XrActionSpaceCreateInfo*              createInfo,
    XrSpace*                                    space);

Parameters

Parameter Descriptions

Description

Creates an XrSpace handle based on a chosen pose action. Application can provide an XrPosef to define the position and orientation of the new space’s origin within the natural reference frame of the action space.

Multiple XrSpace handles may exist simultaneously, up to some limit imposed by the runtime. The XrSpace handle must be eventually freed via the xrDestroySpace function or by destroying the parent XrAction handle.

The runtime must return XR_ERROR_HANDLE_INVALID if the action provided in action is not a valid action.

The runtime must return XR_ERROR_POSE_INVALID if the pose passed in createInfo.poseInActionSpace contains non-unit quaternions.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_OUT_OF_MEMORY

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_LIMIT_REACHED

  • XR_ERROR_POSE_INVALID

  • XR_ERROR_VALIDATION_FAILURE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrCreateDebugUtilsMessengerEXT(3)

Name

xrCreateDebugUtilsMessengerEXT - Creates a debug messenger

C Specification

XrResult xrCreateDebugUtilsMessengerEXT(
    XrInstance                                  instance,
    const XrDebugUtilsMessengerCreateInfoEXT*   createInfo,
    XrDebugUtilsMessengerEXT*                   messenger);

Parameters

Parameter Descriptions
  • instance is the instance the messenger will be used with.

  • createInfo points to an XrDebugUtilsMessengerCreateInfoEXT structure, which contains the callback pointer as well as defines the conditions under which this messenger will trigger the callback.

  • messenger is a pointer to which the created XrDebugUtilsMessengerEXT object is returned.

Description

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_OUT_OF_MEMORY

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_LIMIT_REACHED

  • XR_ERROR_FUNCTION_UNSUPPORTED

The application must ensure that xrCreateDebugUtilsMessengerEXT is not executed in parallel with any OpenXR function that is also called with instance or child of instance as the dispatchable argument.

When an event of interest occurs a debug messenger calls its createInfo->userCallback with a debug message from the producer of the event. Additionally, the debug messenger must filter out any debug messages that the application’s callback is not interested in based on XrDebugUtilsMessengerCreateInfoEXT flags, as described below.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrCreateInstance(3)

Name

xrCreateInstance - Creates an OpenXR Instance

C Specification

The xrCreateInstance function is defined as:

XrResult xrCreateInstance(
    const XrInstanceCreateInfo*                 createInfo,
    XrInstance*                                 instance);

Parameters

Parameter Descriptions
  • createInfo points to an instance of XrInstanceCreateInfo controlling creation of the instance.

  • instance points to an XrInstance handle in which the resulting instance is returned.

Description

xrCreateInstance creates the XrInstance, then enables and initializes global API layers and extensions requested by the application. If an extension is provided by an API layer, both the API layer and extension must be specified at xrCreateInstance time. If a specified API layer cannot be found, no XrInstance will be created and the function will return XR_ERROR_API_LAYER_NOT_PRESENT. Likewise, if a specified extension cannot be found the call will return XR_ERROR_EXTENSION_NOT_PRESENT and no XrInstance will be created. Additionally, some runtimes may limit the number of concurrent instances that may be in use. If the application attempts to create more instances than a runtime can simultaneously support, xrCreateInstance will return XR_ERROR_LIMIT_REACHED.

If the XrInstanceCreateInfo struct contains a platform-specific extension for a platform other than the target platform, XR_ERROR_INITIALIZATION_FAILED will be returned. The same is true if a mandatory platform-specific extension is defined for the target platform but no matching extension struct is provided in XrInstanceCreateInfo.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_OUT_OF_MEMORY

  • XR_ERROR_LIMIT_REACHED

  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_INITIALIZATION_FAILED

  • XR_ERROR_RUNTIME_VERSION_INCOMPATIBLE

  • XR_ERROR_API_LAYER_NOT_PRESENT

  • XR_ERROR_EXTENSION_NOT_PRESENT

  • XR_ERROR_DRIVER_INCOMPATIBLE

  • XR_ERROR_VALIDATION_FAILURE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrCreateReferenceSpace(3)

Name

xrCreateReferenceSpace - Creates a reference space

C Specification

The xrCreateReferenceSpace function is defined as:

XrResult xrCreateReferenceSpace(
    XrSession                                   session,
    const XrReferenceSpaceCreateInfo*           createInfo,
    XrSpace*                                    space);

Parameters

Parameter Descriptions

Description

Creates an XrSpace handle based on a chosen reference space. Application can provide an XrPosef to define the position and orientation of the new space’s origin within the natural reference frame of the reference space.

Multiple XrSpace handles may exist simultaneously, up to some limit imposed by the runtime. The XrSpace handle must be eventually freed via the xrDestroySpace function.

The runtime must return XR_ERROR_REFERENCE_SPACE_UNSUPPORTED if the given reference space type is not supported by this session.

The runtime must return XR_ERROR_POSE_INVALID if the pose passed in createInfo.poseInReferenceSpace contains non-unit quaternions.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SESSION_LOSS_PENDING

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_LIMIT_REACHED

  • XR_ERROR_OUT_OF_MEMORY

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_REFERENCE_SPACE_UNSUPPORTED

  • XR_ERROR_POSE_INVALID

  • XR_ERROR_VALIDATION_FAILURE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrCreateSession(3)

Name

xrCreateSession - Creates an XrSession

C Specification

The xrCreateSession function is defined as:

XrResult xrCreateSession(
    XrInstance                                  instance,
    const XrSessionCreateInfo*                  createInfo,
    XrSession*                                  session);

Parameters

Parameter Descriptions
  • instance is the instance from which XrSessionCreateInfo::systemId was retrieved.

  • createInfo is a pointer to an XrSessionCreateInfo structure containing information about how to create the session.

  • session is a pointer to a handle in which the created XrSession is returned.

Description

Creates a session using the provided createInfo and returns a handle to that session. This session is created in the XR_SESSION_STATE_IDLE state.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_OUT_OF_MEMORY

  • XR_ERROR_LIMIT_REACHED

  • XR_ERROR_INITIALIZATION_FAILED

  • XR_ERROR_SYSTEM_INVALID

  • XR_ERROR_GRAPHICS_DEVICE_INVALID

  • XR_ERROR_VALIDATION_FAILURE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrCreateSwapchain(3)

Name

xrCreateSwapchain - Creates an XrSwapchain

C Specification

The xrCreateSwapchain function is defined as:

XrResult xrCreateSwapchain(
    XrSession                                   session,
    const XrSwapchainCreateInfo*                createInfo,
    XrSwapchain*                                swapchain);

Parameters

Parameter Descriptions
  • session is the session that creates the image.

  • createInfo is a pointer to an XrSwapchainCreateInfo structure containing parameters to be used to create the image.

  • swapchain is a pointer to a handle in which the created XrSwapchain is returned.

Description

Creates an XrSwapchain handle. The returned swapchain handle may be subsequently used in API calls. Multiple XrSwapchain handles may exist simultaneously, up to some limit imposed by the runtime. The XrSwapchain handle must be eventually freed via the xrDestroySwapchain function. The runtime must return XR_ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED if the image format specified in the XrSwapchainCreateInfo is unsupported.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SESSION_LOSS_PENDING

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_LIMIT_REACHED

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_OUT_OF_MEMORY

  • XR_ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED

  • XR_ERROR_VALIDATION_FAILURE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrCreateSwapchainAndroidSurfaceKHR(3)

Name

xrCreateSwapchainAndroidSurfaceKHR - Creates a swapchain and an Android Surface

C Specification

To create an XrSwapchain object and an Android Surface object call:

XrResult xrCreateSwapchainAndroidSurfaceKHR(
    XrSession                                   session,
    const XrSwapchainCreateInfo*                info,
    XrSwapchain*                                swapchain,
    jobject*                                    surface);

Parameters

Parameter Descriptions
  • session is an XrSession handle previously created with xrCreateSession.

  • info is a pointer to an XrSwapchainCreateInfo structure.

  • swapchain is a pointer to a handle in which the created XrSwapchain is returned.

  • surface is a pointer to a jobject where the created Android Surface is returned.

Description

xrCreateSwapchainAndroidSurfaceKHR creates an XrSwapchain object returned in swapchain and an Android Surface jobject returned in surface. The jobject must be valid to be passed back to Java code using JNI and must be valid to be used with ordinary Android APIs for submitting images to Surfaces. The returned XrSwapchain must be valid to be referenced in XrSwapchainSubImage structures to show content on the screen. The width and height passed in XrSwapchainCreateInfo may not be persistent throughout the life cycle of the created swapchain, since on Android, the size of the images is controlled by the producer and possibly changes at any time.

The only function that is allowed to be called on the XrSwapchain returned from this function is xrDestroySwapchain. For example calling any of the functions xrEnumerateSwapchainImages, xrAcquireSwapchainImage, xrWaitSwapchainImage or xrReleaseSwapchainImage is invalid.

The XR runtime must destroy the provided Surface on calling xrDestroySwapchain. Applications writing frames to the Surface thereafter leads to undefined behavior.

xrCreateSwapchainAndroidSurfaceKHR must return the same set of error codes as xrCreateSwapchain under same circumstances plus XR_ERROR_FUNCTION_UNSUPPORTED in case the function is not supported.

Valid Usage of XrSwapchainCreateInfo members
Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SESSION_LOSS_PENDING

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_LIMIT_REACHED

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_FUNCTION_UNSUPPORTED

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrDestroyAction(3)

Name

xrDestroyAction - Destroys an XrAction

C Specification

The xrDestroyAction function is defined as:

XrResult xrDestroyAction(
    XrAction                                    action);

Parameters

Parameter Descriptions
  • action is the action to destroy.

Description

Actions can be destroyed by calling xrDestroyAction. When an action is destroyed, it is removed from its associated action set. Alternatively, actions that are part of an action set are automatically destroyed when the action set is destroyed.

The runtime must ignore destroyed actions in action sets.

Valid Usage (Implicit)
  • action must be a valid XrAction handle

Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_VALIDATION_FAILURE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrDestroyActionSet(3)

Name

xrDestroyActionSet - Destroys an XrActionSet

C Specification

The xrDestroyActionSet function is defined as:

XrResult xrDestroyActionSet(
    XrActionSet                                 actionSet);

Parameters

Parameter Descriptions
  • actionSet is the action set to destroy.

Description

Action sets can be destroyed by calling xrDestroyActionSet. When an action set is destroyed, all actions of that action set are also destroyed. If the application subsequently attempts to destroy one of these actions via xrDestroyAction then XR_ERROR_HANDLE_INVALID is returned.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_VALIDATION_FAILURE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrDestroyDebugUtilsMessengerEXT(3)

Name

xrDestroyDebugUtilsMessengerEXT - Destroys a debug messenger

C Specification

XrResult xrDestroyDebugUtilsMessengerEXT(
    XrDebugUtilsMessengerEXT                    messenger);

Parameters

Parameter Descriptions

Description

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_DEBUG_UTILS_MESSENGER_INVALID_EXT

  • XR_ERROR_FUNCTION_UNSUPPORTED

The application must ensure that xrDestroyDebugUtilsMessengerEXT is not executed in parallel with any OpenXR function that is also called with instance or child of instance as the dispatchable argument.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrDestroyInstance(3)

Name

xrDestroyInstance - Destroy an instance of OpenXR

C Specification

The xrDestroyInstance function is defined as:

XrResult xrDestroyInstance(
    XrInstance                                  instance);

Parameters

The xrDestroyInstance function is used to destroy an XrInstance.

Description

Parameter Descriptions
  • instance is the handle to the instance to destroy.

XrInstance handles are destroyed using xrDestroyInstance. When an XrInstance is destroyed, all handles that are children of that XrInstance are also destroyed. If the instance is invalid the runtime must return XR_ERROR_HANDLE_INVALID.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_RUNTIME_FAILURE

See Also

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrDestroySession(3)

Name

xrDestroySession - Destroys an XrSession

C Specification

The xrDestroySession function is defined as.

XrResult xrDestroySession(
    XrSession                                   session);

Parameters

Parameter Descriptions
  • session is the session to destroy.

Description

XrSession handles are destroyed using xrDestroySession. When an XrSession is destroyed, all handles that are children of that XrSession are also destroyed. If the session is invalid the runtime must return XR_ERROR_HANDLE_INVALID.

The application is responsible for ensuring that it has no calls using session in progress when the session is destroyed.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_VALIDATION_FAILURE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrDestroySpace(3)

Name

xrDestroySpace - Creates a space based on a pose action

C Specification

The xrDestroySpace function is defined as:

XrResult xrDestroySpace(
    XrSpace                                     space);

Parameters

Parameter Descriptions

Description

XrSpace handles are destroyed using xrDestroySpace. If the XrSpace is invalid the runtime must return XR_ERROR_HANDLE_INVALID. The runtime may still use this space if there are active dependencies (e.g, compositions in progress).

Valid Usage (Implicit)
  • space must be a valid XrSpace handle

Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_VALIDATION_FAILURE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrDestroySwapchain(3)

Name

xrDestroySwapchain - Destroys an XrSwapchain

C Specification

The xrDestroySwapchain function is defined as:

XrResult xrDestroySwapchain(
    XrSwapchain                                 swapchain);

Parameters

Parameter Descriptions
  • swapchain is the swapchain to destroy.

Description

All submitted graphics API commands that refer to swapchain must have completed execution. Runtimes may continue to utilize swapchain images after xrDestroySwapchain is called.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_VALIDATION_FAILURE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrEndFrame(3)

Name

xrEndFrame - Marks a frame

C Specification

The xrEndFrame function is defined as:

XrResult xrEndFrame(
    XrSession                                   session,
    const XrFrameEndInfo*                       frameEndInfo);

Parameters

Parameter Descriptions

Description

Every call to xrEndFrame must be preceded by a successful call to xrBeginFrame. Failure to do so will result in XR_ERROR_CALL_ORDER_INVALID being returned by xrEndFrame. XrFrameEndInfo may reference swapchains into which the application has rendered for this frame. From each XrSwapchain only one image index is implicitly referenced per frame, the one corresponding to the last call to xrReleaseSwapchainImage. However, a specific swapchain (and by extension a specific swapchain image index) may be referenced in XrFrameEndInfo multiple times. This can be used for example to render a side by side image into a single swapchain image and referencing it twice with differing image rectangles in different layers.

XR_ERROR_LAYER_INVALID will be returned if an unknown or unsupported layer type is passed as one of the XrFrameEndInfo::layers.

XR_ERROR_LAYER_LIMIT_EXCEEDED will be returned if XrFrameEndInfo::layerCount exceeds XrSystemGraphicsProperties::maxLayerCount or if the runtime is unable to composite the specified layers due to resource constraints.

XR_ERROR_SWAPCHAIN_RECT_INVALID will be returned if XrFrameEndInfo::layers contains a composition layer which references pixels outside of the associated swapchain image.

XR_ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED will be returned if XrFrameEndInfo::environmentBlendMode is not supported.

The runtime must return XR_ERROR_SESSION_NOT_RUNNING if session is not in the XR_SESSION_STATE_RUNNING, XR_SESSION_STATE_VISIBLE or XR_SESSION_STATE_FOCUSED XrSessionState.

The runtime must return XR_ERROR_POSE_INVALID if any pose passed in XrFrameEndInfo contains non-unit quaternions.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SESSION_LOSS_PENDING

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_CALL_ORDER_INVALID

  • XR_ERROR_LAYER_INVALID

  • XR_ERROR_SWAPCHAIN_RECT_INVALID

  • XR_ERROR_POSE_INVALID

  • XR_ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED

  • XR_ERROR_SESSION_NOT_RUNNING

  • XR_ERROR_LAYER_LIMIT_EXCEEDED

  • XR_ERROR_VALIDATION_FAILURE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrEndSession(3)

Name

xrEndSession - Ends an XrSession

C Specification

The xrEndSession function is defined as:

XrResult xrEndSession(
    XrSession                                   session);

Parameters

Parameter Descriptions
  • session is a handle to a running XrSession.

Description

The application calls xrEndSession to end a running session. This function signals to the runtime that the application no longer wishes to display rendered output, read input state, or control haptic events. If this session was not running, then XR_ERROR_SESSION_NOT_RUNNING will be returned.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SESSION_LOSS_PENDING

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_SESSION_NOT_RUNNING

  • XR_ERROR_VALIDATION_FAILURE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrEnumerateApiLayerProperties(3)

Name

xrEnumerateApiLayerProperties - Returns up to requested number of global layer properties

C Specification

To determine what set of API layers are available, OpenXR provides the xrEnumerateApiLayerProperties function:

XrResult xrEnumerateApiLayerProperties(
    uint32_t                                    propertyCapacityInput,
    uint32_t*                                   propertyCountOutput,
    XrApiLayerProperties*                       properties);

Parameters

Parameter Descriptions
  • propertyCapacityInput is the capacity of the properties array, or 0 to indicate a request to retrieve the required capacity.

  • propertyCountOutput is a pointer to the count of properties written, or a pointer to the required capacity in the case that propertyCapacityInput is 0.

  • properties is a pointer to an array of XrApiLayerProperties structures, but can be NULL if propertyCapacityInput is 0.

  • See the Buffer Size Parameters section for a detailed description of retrieving the required properties size.

Description

The list of available layers may change at any time due to actions outside of the OpenXR runtime, so two calls to xrEnumerateApiLayerProperties with the same parameters may return different results, or retrieve different propertyCountOutput values or properties contents.

Once an instance has been created, the layers enabled for that instance will continue to be enabled and valid for the lifetime of that instance, even if some of them become unavailable for future instances.

Valid Usage (Implicit)
  • If propertyCapacityInput is not 0, propertyCapacityInput must be a valid uint32_t value

  • If propertyCountOutput is not NULL, propertyCountOutput must be a pointer to a uint32_t value

  • If propertyCapacityInput is not 0, properties must be a pointer to an array of propertyCapacityInput XrApiLayerProperties structures

Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_OUT_OF_MEMORY

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_SIZE_INSUFFICIENT

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrEnumerateEnvironmentBlendModes(3)

Name

xrEnumerateEnvironmentBlendModes - Lists environment blend modes

C Specification

The xrEnumerateEnvironmentBlendModes function is defined as follows.

XrResult xrEnumerateEnvironmentBlendModes(
    XrInstance                                  instance,
    XrSystemId                                  systemId,
    uint32_t                                    environmentBlendModeCapacityInput,
    uint32_t*                                   environmentBlendModeCountOutput,
    XrEnvironmentBlendMode*                     environmentBlendModes);

Parameters

Parameter Descriptions
  • instance is the instance from which systemId was retrieved.

  • systemId is the XrSystemId whose environment blend modes will be enumerated.

  • environmentBlendModeCapacityInput is the capacity of the environmentBlendModes array, or 0 to indicate a request to retrieve the required capacity.

  • environmentBlendModeCountOutput is a pointer to the count of environmentBlendModes written, or a pointer to the required capacity in the case that environmentBlendModeCapacityInput is 0.

  • environmentBlendModes is a pointer to an array of XrEnvironmentBlendMode values, but can be NULL if environmentBlendModeCapacityInput is 0.

  • See Buffer Size Parameters chapter for a detailed description of retrieving the required environmentBlendModes size.

Description

Enumerates the set of environment blend modes that this runtime supports for a given system.

Valid Usage (Implicit)
  • instance must be a valid XrInstance handle

  • If environmentBlendModeCapacityInput is not 0, environmentBlendModeCapacityInput must be a valid uint32_t value

  • If environmentBlendModeCountOutput is not NULL, environmentBlendModeCountOutput must be a pointer to a uint32_t value

  • If environmentBlendModeCapacityInput is not 0, environmentBlendModes must be a pointer to an array of environmentBlendModeCapacityInput XrEnvironmentBlendMode values

Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_SYSTEM_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_SIZE_INSUFFICIENT

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrEnumerateInstanceExtensionProperties(3)

Name

xrEnumerateInstanceExtensionProperties - Returns properties of available instance extensions

C Specification

The application can determine the available instance extensions by calling xrEnumerateInstanceExtensionProperties:

XrResult xrEnumerateInstanceExtensionProperties(
    const char*                                 layerName,
    uint32_t                                    propertyCapacityInput,
    uint32_t*                                   propertyCountOutput,
    XrExtensionProperties*                      properties);

Parameters

Parameter Descriptions
  • layerName is either NULL or a pointer to a string naming the API layer to retrieve extensions from, as returned by xrEnumerateApiLayerProperties.

  • propertyCapacityInput is the capacity of the properties array, or 0 to indicate a request to retrieve the required capacity.

  • propertyCountOutput is a pointer to the count of properties written, or a pointer to the required capacity in the case that propertyCapacityInput is 0.

  • properties is a pointer to an array of XrExtensionProperties structures, but can be NULL if propertyCapacityInput is 0.

  • See the Buffer Size Parameters section for a detailed description of retrieving the required properties size.

Description

If properties is NULL, then the number of extensions properties available is returned in propertyCountOutput. Otherwise, propertyCountInput must point to a variable set by the user to the number of elements in the properties array. If propertyCountInput is less than the number of extension properties available, the contents of properties will be undefined. If propertyCountInput is smaller than the number of extensions available, the failure code XR_ERROR_SIZE_INSUFFICIENT and the contents of properties are undefined.

Because the list of available layers may change externally between calls to xrEnumerateInstanceExtensionProperties, two calls may retrieve different results if a layerName is available in one call but not in another. The extensions supported by a layer may also change between two calls, e.g. if the layer implementation is replaced by a different version between those calls.

Valid Usage (Implicit)
  • If layerName is not NULL, layerName must be a null-terminated UTF-8 string

  • If propertyCapacityInput is not 0, propertyCapacityInput must be a valid uint32_t value

  • If propertyCountOutput is not NULL, propertyCountOutput must be a pointer to a uint32_t value

  • If propertyCapacityInput is not 0, properties must be a pointer to an array of propertyCapacityInput XrExtensionProperties structures

Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_OUT_OF_MEMORY

  • XR_ERROR_API_LAYER_NOT_PRESENT

  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_SIZE_INSUFFICIENT

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrEnumerateReferenceSpaces(3)

Name

xrEnumerateReferenceSpaces - Enumerate available reference spaces

C Specification

The xrEnumerateReferenceSpaces function is defined as:

XrResult xrEnumerateReferenceSpaces(
    XrSession                                   session,
    uint32_t                                    spaceCapacityInput,
    uint32_t*                                   spaceCountOutput,
    XrReferenceSpaceType*                       spaces);

Parameters

Parameter Descriptions
  • session is a handle to an XrSession previously created with xrCreateSession.

  • spaceCapacityInput is the capacity of the spaces array, or 0 to indicate a request to retrieve the required capacity.

  • spaceCountOutput is a pointer to the count of spaces written, or a pointer to the required capacity in the case that spaceCapacityInput is 0.

  • spaces is a pointer to an application-allocated array that will be filled with the enumerant of each supported reference space. It can be NULL if spaceCapacityInput is 0.

  • See Buffer Size Parameters chapter for a detailed description of retrieving the required spaces size.

Description

Enumerates the set of reference space types that this runtime supports for a given session. Runtimes must always return the same values from this enumeration for the lifetime of the session.

If a session enumerates support for a given reference space type, calls to xrCreateReferenceSpace must succeed for that session, with any transient unavailability of poses expressed later during calls to xrLocateSpace.

Valid Usage (Implicit)
  • session must be a valid XrSession handle

  • If spaceCapacityInput is not 0, spaceCapacityInput must be a valid uint32_t value

  • If spaceCountOutput is not NULL, spaceCountOutput must be a pointer to a uint32_t value

  • If spaceCapacityInput is not 0, spaces must be a pointer to an array of spaceCapacityInput XrReferenceSpaceType values

Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SESSION_LOSS_PENDING

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_SIZE_INSUFFICIENT

  • XR_ERROR_VALIDATION_FAILURE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrEnumerateSwapchainFormats(3)

Name

xrEnumerateSwapchainFormats - Enumerates swapchain formats

C Specification

The xrEnumerateSwapchainFormats is defined as:

XrResult xrEnumerateSwapchainFormats(
    XrSession                                   session,
    uint32_t                                    formatCapacityInput,
    uint32_t*                                   formatCountOutput,
    int64_t*                                    formats);

Parameters

Parameter Descriptions
  • session is the session that enumerates the supported formats.

  • formatCapacityInput is the capacity of the formats, or 0 to retrieve the required capacity.

  • formatCountOutput is a pointer to the count of uint64_t formats written, or a pointer to the required capacity in the case that formatCapacityInput is 0.

  • formats is a pointer to an array of int64_t format ids, but can be NULL if formatCapacityInput is 0. The format ids are specific to the specified graphics API.

  • See Buffer Size Parameters chapter for a detailed description of retrieving the required formats size.

Description

xrEnumerateSwapchainFormats enumerates the texture formats supported by the current session. The type of formats returned are dependent on the graphics API specified in xrCreateSession. For example, if a DirectX graphics API was specified, then the enumerated formats correspond to the DXGI formats, such as DXGI_FORMAT_R8G8B8A8_UNORM_SRGB.

With an OpenGL-based graphics API, the texture formats correspond to OpenGL internal formats.

With a Direct3D-based graphics API, xrEnumerateSwapchainFormats never returns typeless formats (e.g. DXGI_FORMAT_R8G8B8A8_TYPELESS). Only concrete formats are returned, and only concrete formats may be specified by applications for swapchain creation.

Valid Usage (Implicit)
  • session must be a valid XrSession handle

  • If formatCapacityInput is not 0, formatCapacityInput must be a valid uint32_t value

  • If formatCountOutput is not NULL, formatCountOutput must be a pointer to a uint32_t value

  • If formatCapacityInput is not 0, formats must be a pointer to an array of formatCapacityInput int64_t values

Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SESSION_LOSS_PENDING

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_SIZE_INSUFFICIENT

  • XR_ERROR_VALIDATION_FAILURE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrEnumerateSwapchainImages(3)

Name

xrEnumerateSwapchainImages - Gets images from an XrSwapchain

C Specification

The xrEnumerateSwapchainImages function is defined as:

XrResult xrEnumerateSwapchainImages(
    XrSwapchain                                 swapchain,
    uint32_t                                    imageCapacityInput,
    uint32_t*                                   imageCountOutput,
    XrSwapchainImageBaseHeader*                 images);

Parameters

Parameter Descriptions
  • swapchain is the XrSwapchain to get images from.

  • imageCapacityInput is the capacity of the images array, or 0 to indicate a request to retrieve the required capacity.

  • imageCountOutput is a pointer to the count of images written, or a pointer to the required capacity in the case that imageCapacityInput is 0.

  • images is a pointer to an array of graphics API-specific XrSwapchainImage structures based off of XrSwapchainImageBaseHeader. It can be NULL if imageCapacityInput is 0.

  • See Buffer Size Parameters chapter for a detailed description of retrieving the required images size.

Description

Fills an array of graphics API-specific XrSwapchainImage structures. The resources must be constant and valid for the lifetime of the XrSwapchain.

Note: images is a pointer to an array of structures of graphics API-specific type, not an array of structure pointers.

Valid Usage (Implicit)
  • swapchain must be a valid XrSwapchain handle

  • If imageCapacityInput is not 0, imageCapacityInput must be a valid uint32_t value

  • If imageCountOutput is not NULL, imageCountOutput must be a pointer to a uint32_t value

  • If imageCapacityInput is not 0, images must be a pointer to an array of imageCapacityInput XrSwapchainImageBaseHeader structures

Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SESSION_LOSS_PENDING

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_SIZE_INSUFFICIENT

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_VALIDATION_FAILURE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrEnumerateViewConfigurationViews(3)

Name

xrEnumerateViewConfigurationViews - Gets view configuration views

C Specification

The function xrEnumerateViewConfigurationViews is defined as:

XrResult xrEnumerateViewConfigurationViews(
    XrInstance                                  instance,
    XrSystemId                                  systemId,
    XrViewConfigurationType                     viewConfigurationType,
    uint32_t                                    viewCapacityInput,
    uint32_t*                                   viewCountOutput,
    XrViewConfigurationView*                    views);

Parameters

Parameter Descriptions
  • instance is the instance from which systemId was retrieved.

  • systemId is the XrSystemId whose view configuration is being queried.

  • viewConfigurationType is the XrViewConfigurationType of the configuration to get.

  • viewCapacityInput is the capacity of the views array, or 0 to indicate a request to retrieve the required capacity.

  • viewCountOutput is a pointer to the count of views written, or a pointer to the required capacity in the case that viewCapacityInput is 0.

  • views is a pointer to an array of XrViewConfigurationView values, but can be NULL if viewCapacityInput is 0.

Description

Each XrViewConfigurationType defines the number of views associated with it. Applications can query more details of each view element using xrEnumerateViewConfigurationViews. If the supplied viewConfigurationType is not supported by this XrInstance and XrSystemId, the runtime must return XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED.

Valid Usage (Implicit)
  • instance must be a valid XrInstance handle

  • viewConfigurationType must be a valid XrViewConfigurationType value

  • If viewCapacityInput is not 0, viewCapacityInput must be a valid uint32_t value

  • If viewCountOutput is not NULL, viewCountOutput must be a pointer to a uint32_t value

  • If viewCapacityInput is not 0, views must be a pointer to an array of viewCapacityInput XrViewConfigurationView structures

Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_SYSTEM_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED

  • XR_ERROR_SIZE_INSUFFICIENT

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrEnumerateViewConfigurations(3)

Name

xrEnumerateViewConfigurations - Enumerates supported view configurations

C Specification

The xrEnumerateViewConfigurations is defined as follows:

XrResult xrEnumerateViewConfigurations(
    XrInstance                                  instance,
    XrSystemId                                  systemId,
    uint32_t                                    viewConfigurationTypeCapacityInput,
    uint32_t*                                   viewConfigurationTypeCountOutput,
    XrViewConfigurationType*                    viewConfigurationTypes);

Parameters

Parameter Descriptions
  • instance is the instance from which systemId was retrieved.

  • systemId is the XrSystemId whose view configurations will be enumerated.

  • viewConfigurationsTypeCapacityInput is the capacity of the viewConfigurations array, or 0 to indicate a request to retrieve the required capacity.

  • viewConfigurationsTypeCountOutput is a pointer to the count of viewConfigurations written, or a pointer to the required capacity in the case that viewConfigurationsTypeCapacityInput is 0.

  • viewConfigurationsTypes is a pointer to an array of XrViewConfigurationType values, but can be NULL if viewConfigurationsTypeCapacityInput is 0.

  • See Buffer Size Parameters chapter for a detailed description of retrieving the required viewConfigurations size.

Description

xrEnumerateViewConfigurations enumerates the view configuration types supported by the XrSystemId. The supported set for that system must not change during the lifetime of its XrInstance. The returned list of primary view configurations should be in order from what the runtime considered highest to lowest user preference. Thus the first enumerated view configuration type should be the one the runtime prefers the application to use if possible.

Valid Usage (Implicit)
  • instance must be a valid XrInstance handle

  • If viewConfigurationTypeCapacityInput is not 0, viewConfigurationTypeCapacityInput must be a valid uint32_t value

  • If viewConfigurationTypeCountOutput is not NULL, viewConfigurationTypeCountOutput must be a pointer to a uint32_t value

  • If viewConfigurationTypeCapacityInput is not 0, viewConfigurationTypes must be a pointer to an array of viewConfigurationTypeCapacityInput XrViewConfigurationType values

Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_SYSTEM_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_SIZE_INSUFFICIENT

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrGetActionStateBoolean(3)

Name

xrGetActionStateBoolean - Gets boolean action state

C Specification

The xrGetActionStateBoolean function is defined as:

XrResult xrGetActionStateBoolean(
    XrAction                                    action,
    uint32_t                                    countSubactionPaths,
    const XrPath*                               subactionPaths,
    XrActionStateBoolean*                       data);

Parameters

Parameter Descriptions
  • action is the XrAction being queried.

  • countSubactionPaths is the number of elements in the subactionPaths array. If subactionPaths is NULL, this parameter must be 0.

  • subactionPaths is an array of paths or NULL. If this array is specified, it contains one or more subaction paths that were specified when the action was created. If the array includes a subaction path that was not specified when the action was created the runtime must return XR_ERROR_PATH_INVALID. If this parameter is specified, the runtime must return data that originates only on the paths specified in this array.

  • data is a pointer to a valid XrActionStateBoolean into which the state will be placed.

Description

xrGetActionStateBoolean retrieves the current state of a boolean action. See XrActionCreateInfo for a description of subaction paths, and the restrictions on their use.

Valid Usage (Implicit)
  • action must be a valid XrAction handle

  • If countSubactionPaths is not 0, countSubactionPaths must be a valid uint32_t value

  • If countSubactionPaths is not 0, subactionPaths must be a pointer to an array of countSubactionPaths XrPath values

  • data must be a pointer to an XrActionStateBoolean structure

Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SESSION_LOSS_PENDING

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_ACTION_TYPE_MISMATCH

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_SESSION_NOT_RUNNING

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrGetActionStatePose(3)

Name

xrGetActionStatePose - Gets metadata from a pose action

C Specification

The xrGetActionStatePose function is defined as:

XrResult xrGetActionStatePose(
    XrAction                                    action,
    XrPath                                      subactionPath,
    XrActionStatePose*                          data);

Parameters

Parameter Descriptions
  • action is the XrAction being queried.

  • subactionPath is an XrPath or XR_PATH_NULL.

  • data is a pointer to a valid XrActionStatePose into which the state will be placed.

Description

xrGetActionStatePose returns information about the binding and active state for the specified action. To determine the pose of this action at a historical or predicted time, create an action space using xrCreateActionSpace. Then, after each sync, get the pose of this action space within your base space using xrLocateSpace.

See XrActionCreateInfo for a description of subaction paths, and the restrictions on their use. xrGetActionStatePose only accepts a single subaction path to require that the application choose which subaction to use for actions that are intended to be bound to multiple devices at the same time.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SESSION_LOSS_PENDING

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_ACTION_TYPE_MISMATCH

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_SESSION_NOT_RUNNING

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrGetActionStateVector1f(3)

Name

xrGetActionStateVector1f - Gets a floating point action state

C Specification

The xrGetActionStateVector1f function is defined as:

XrResult xrGetActionStateVector1f(
    XrAction                                    action,
    uint32_t                                    countSubactionPaths,
    const XrPath*                               subactionPaths,
    XrActionStateVector1f*                      data);

Parameters

Parameter Descriptions
  • action is the XrAction being queried.

  • countSubactionPaths is the number of elements in the subactionPaths array. If subactionPaths is NULL, this parameter must be 0.

  • subactionPaths is an array of paths or NULL. If this array is specified, it contains one or more subaction paths that were specified when the action was created. If the array includes a subaction path that was not specified when the action was created the runtime must return XR_ERROR_PATH_INVALID. If this parameter is specified, the runtime must return data that originates only on the paths specified in this array.

  • data is a pointer to a valid XrActionStateVector1f into which the state will be placed.

Description

xrGetActionStateVector1f retrieves the current state of a one-dimensional vector action. See XrActionCreateInfo for a description of subaction paths, and the restrictions on their use.

Valid Usage (Implicit)
  • action must be a valid XrAction handle

  • If countSubactionPaths is not 0, countSubactionPaths must be a valid uint32_t value

  • If countSubactionPaths is not 0, subactionPaths must be a pointer to an array of countSubactionPaths XrPath values

  • data must be a pointer to an XrActionStateVector1f structure

Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SESSION_LOSS_PENDING

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_ACTION_TYPE_MISMATCH

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_SESSION_NOT_RUNNING

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrGetActionStateVector2f(3)

Name

xrGetActionStateVector2f - Gets 2d float vector action state

C Specification

The xrGetActionStateVector2f function is defined as:

XrResult xrGetActionStateVector2f(
    XrAction                                    action,
    uint32_t                                    countSubactionPaths,
    const XrPath*                               subactionPaths,
    XrActionStateVector2f*                      data);

Parameters

Parameter Descriptions
  • action is the XrAction being queried.

  • countSubactionPaths is the number of elements in the subactionPaths array. If subactionPaths is NULL, this parameter must be 0.

  • subactionPaths is an array of paths or NULL. If this array is specified, it contains one or more subaction paths that were specified when the action was created. If the array includes a subaction path that was not specified when the action was created the runtime must return XR_ERROR_PATH_INVALID. If this parameter is specified, the runtime must return data that originates only on the paths specified in this array.

  • data is a pointer to a valid XrActionStateVector2f into which the state will be placed.

Description

xrGetActionStateVector2f retrieves the current state of a two-dimensional vector action. See XrActionCreateInfo for a description of subaction paths, and the restrictions on their use.

Valid Usage (Implicit)
  • action must be a valid XrAction handle

  • If countSubactionPaths is not 0, countSubactionPaths must be a valid uint32_t value

  • If countSubactionPaths is not 0, subactionPaths must be a pointer to an array of countSubactionPaths XrPath values

  • data must be a pointer to an XrActionStateVector2f structure

Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SESSION_LOSS_PENDING

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_ACTION_TYPE_MISMATCH

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_SESSION_NOT_RUNNING

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrGetBoundSourcesForAction(3)

Name

xrGetBoundSourcesForAction - Gets the sources for an XrAction

C Specification

The xrGetBoundSourcesForAction function is defined as:

XrResult xrGetBoundSourcesForAction(
    XrAction                                    action,
    uint32_t                                    sourceCapacityInput,
    uint32_t*                                   sourceCountOutput,
    XrPath*                                     sources);

Parameters

Parameter Descriptions
  • action is the XrAction being queried.

  • sourceCapacityInput is the capacity of the array, or 0 to indicate a request to retrieve the required capacity.

  • sourceCountOutput is a pointer to the count of action sources, or a pointer to the required capacity in the case that sourceCapacityInput is 0.

  • sources is a pointer to an application-allocated array that will be filled with the XrPath values for all sources. It can be NULL if sourceCapacityInput is 0.

  • See Buffer Size Parameters chapter for a detailed description of retrieving the required sources size.

Description

An application can use the xrGetBoundSourcesForAction and xrGetInputSourceLocalizedName calls to prompt the user which physical inputs to use in order to perform an action. A source is the physical control that the action is bound to. An action may be bound to multiple sources at one time, for example an action named hold could be bound to both the X and A buttons.

If an action is unbound, xrGetBoundSourcesForAction will assign 0 to the value pointed-to by sourceCountOutput and not modify the array.

Once the semantic paths for the action’s source are obtained, the application can gather additional information about the source. xrGetInputSourceLocalizedName returns a localized human-readable string describing the source, e.g. 'A Button'.

If the parent session of action is not running, the runtime must return XR_ERROR_SESSION_NOT_RUNNING.

Valid Usage (Implicit)
  • action must be a valid XrAction handle

  • If sourceCapacityInput is not 0, sourceCapacityInput must be a valid uint32_t value

  • If sourceCountOutput is not NULL, sourceCountOutput must be a pointer to a uint32_t value

  • If sourceCapacityInput is not 0, sources must be a pointer to an array of sourceCapacityInput XrPath values

Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SESSION_LOSS_PENDING

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_SIZE_INSUFFICIENT

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_SESSION_NOT_RUNNING

See Also

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrGetCurrentInteractionProfile(3)

Name

xrGetCurrentInteractionProfile - Gets the current interaction profile for a top level user paths

C Specification

The xrGetCurrentInteractionProfile is defined as:

XrResult xrGetCurrentInteractionProfile(
    XrSession                                   session,
    XrPath                                      topLevelUserPath,
    XrInteractionProfileInfo*                   interactionProfile);

Parameters

Parameter Descriptions
  • session is the XrSession for which the application would like to retrieve the current interaction profile.

  • topLevelUserPath is the top level user path the application would like to retrieve the interaction profile for.

  • interactionProfile is a pointer to an XrInteractionProfileInfo structure to receive the current interaction profile information.

Description

xrGetCurrentInteractionProfile asks the runtime for the active interaction profiles for a top level user path.

The runtime must return only interaction profiles for which the application has provided bindings with xrSetInteractionProfileSuggestedBindings. The runtime may return interaction profiles that do not represent physically present hardware, for example if the runtime is using a known interaction profile to bind to hardware that the application is not aware of.

If the provided session is not running, the runtime must return XR_ERROR_SESSION_NOT_RUNNING.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_SESSION_NOT_RUNNING

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrGetD3D10GraphicsRequirementsKHR(3)

Name

xrGetD3D10GraphicsRequirementsKHR - Retrieve the D3D10 feature level and graphics device requirements for an instance and system

C Specification

To retrieve the D3D10 feature level and graphics device for an instance and system, call:

XrResult xrGetD3D10GraphicsRequirementsKHR(
    XrInstance                                  instance,
    XrSystemId                                  systemId,
    XrGraphicsRequirementsD3D10KHR*             graphicsRequirements);

Parameters

Parameter Descriptions

Description

The xrGetD3D10GraphicsRequirementsKHR function identifies to the application what graphics device (Windows LUID) needs to be used and the minimum feature level to use. xrGetD3D10GraphicsRequirementsKHR has to be called prior to calling xrCreateSession, and the LUID and feature level that xrGetD3D10GraphicsRequirementsKHR returns should be used to create the ID3D10Device that the application passes to xrCreateSession in the XrGraphicsBindingD3D10KHR.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_SYSTEM_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_FUNCTION_UNSUPPORTED

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrGetD3D11GraphicsRequirementsKHR(3)

Name

xrGetD3D11GraphicsRequirementsKHR - Retrieve the D3D11 feature level and graphics device requirements for an instance and system

C Specification

To retrieve the D3D11 feature level and graphics device for an instance and system, call:

XrResult xrGetD3D11GraphicsRequirementsKHR(
    XrInstance                                  instance,
    XrSystemId                                  systemId,
    XrGraphicsRequirementsD3D11KHR*             graphicsRequirements);

Parameters

Parameter Descriptions

Description

The xrGetD3D11GraphicsRequirementsKHR function identifies to the application what graphics device (Windows LUID) needs to be used and the minimum feature level to use. xrGetD3D11GraphicsRequirementsKHR has to be called prior to calling xrCreateSession, and the LUID and feature level that xrGetD3D11GraphicsRequirementsKHR returns should be used to create the ID3D11Device that the application passes to xrCreateSession in the XrGraphicsBindingD3D11KHR.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_SYSTEM_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_FUNCTION_UNSUPPORTED

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrGetD3D12GraphicsRequirementsKHR(3)

Name

xrGetD3D12GraphicsRequirementsKHR - Retrieve the D3D12 feature level and graphics device requirements for an instance and system

C Specification

To retrieve the D3D12 feature level and graphics device for an instance and system, call:

XrResult xrGetD3D12GraphicsRequirementsKHR(
    XrInstance                                  instance,
    XrSystemId                                  systemId,
    XrGraphicsRequirementsD3D12KHR*             graphicsRequirements);

Parameters

Parameter Descriptions

Description

The xrGetD3D12GraphicsRequirementsKHR function identifies to the application what graphics device (Windows LUID) needs to be used and the minimum feature level to use. xrGetD3D12GraphicsRequirementsKHR has to be called prior to calling xrCreateSession, and the LUID and feature level that xrGetD3D12GraphicsRequirementsKHR returns should be used to create the ID3D12Device that the application passes to xrCreateSession in the XrGraphicsBindingD3D12KHR.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_SYSTEM_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_FUNCTION_UNSUPPORTED

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrGetInputSourceLocalizedName(3)

Name

xrGetInputSourceLocalizedName - Gets a localized source name

C Specification

The xrGetInputSourceLocalizedName function is defined as:

XrResult xrGetInputSourceLocalizedName(
    XrSession                                   session,
    XrPath                                      source,
    XrInputSourceLocalizedNameFlags             whichComponents,
    uint32_t                                    bufferCapacityInput,
    uint32_t*                                   bufferCountOutput,
    char*                                       buffer);

Parameters

Parameter Descriptions
  • session is a handle to the XrSession associated with the action that reported this source.

  • source is an XrPath representing the source. Typically this was returned by a call to xrGetBoundSourcesForAction.

  • whichComponents is any set of flags from XrInputSourceLocalizedNameFlagBits.

  • bufferCapacityInput is the capacity of the buffer, or 0 to indicate a request to retrieve the required capacity.

  • bufferCountOutput is a pointer to the count of name characters written (including the terminating \0), or a pointer to the required capacity in the case that bufferCapacityInput is 0.

  • buffer is a pointer to an application-allocated buffer that will be filled with the source name. It can be NULL if bufferCapacityInput is 0.

  • See Buffer Size Parameters chapter for a detailed description of retrieving the required buffer size.

Description

xrGetInputSourceLocalizedName returns a string for the input source in the current system locale. This string is appropriate for showing to users.

Valid Usage (Implicit)
  • session must be a valid XrSession handle

  • whichComponents must be a valid combination of XrInputSourceLocalizedNameFlagBits values

  • whichComponents must not be 0

  • If bufferCapacityInput is not 0, bufferCapacityInput must be a valid uint32_t value

  • If bufferCountOutput is not NULL, bufferCountOutput must be a pointer to a uint32_t value

  • If bufferCapacityInput is not 0, buffer must be a pointer to an array of bufferCapacityInput char values

Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SESSION_LOSS_PENDING

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_PATH_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_SIZE_INSUFFICIENT

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrGetInstanceProcAddr(3)

Name

xrGetInstanceProcAddr - Gets a function pointer for an OpenXR function

C Specification

Function pointers for all OpenXR functions can be obtained with the function xrGetInstanceProcAddr.

XrResult xrGetInstanceProcAddr(
    XrInstance                                  instance,
    const char*                                 name,
    PFN_xrVoidFunction*                         function);

Parameters

Parameter Descriptions
  • instance is the instance that the function pointer will be compatible with, or NULL for functions not dependent on any instance.

  • name is the name of the function to obtain.

  • function is the address of the function pointer to get.

Description

xrGetInstanceProcAddr itself is obtained in a platform- and loader- specific manner. Typically, the loader library will export this function as a function symbol, so applications can link against the loader library, or load it dynamically and look up the symbol using platform-specific APIs. Loaders must export function symbols for all core OpenXR functions. Because of this, applications that use only the core OpenXR functions have no need to use xrGetInstanceProcAddr.

Because an application can call xrGetInstanceProcAddr before creating an instance, xrGetInstanceProcAddr returns a valid function pointer when the instance parameter is XR_NULL_HANDLE and the name parameter is one of the following strings:

xrGetInstanceProcAddr returns XR_ERROR_HANDLE_INVALID if instance is NULL and name is not one of the above strings.

xrGetInstanceProcAddr returns XR_ERROR_FUNCTION_UNSUPPORTED if instance is a valid instance and the string specified in name is not the name of an OpenXR core or enabled extension function.

If name is the name of an extension function, then the result returned by xrGetInstanceProcAddr will depend upon how the instance was created. If instance was created with the related extension’s name appearing in the XrInstanceCreateInfo::enabledExtensionNames array, then xrGetInstanceProcAddr returns a valid function pointer. If the related extension’s name did not appear in the XrInstanceCreateInfo::enabledExtensionNames array during the creation of instance, then xrGetInstanceProcAddr returns XR_ERROR_FUNCTION_UNSUPPORTED. Because of this, function pointers returned by xrGetInstanceProcAddr using one XrInstance may not be valid when used with objects related to a different XrInstance.

The returned function pointer is of type PFN_xrVoidFunction, and must be cast to the type of the function being queried.

The table below defines the various use cases for xrGetInstanceProcAddr and return value (“fp” is “function pointer”) for each case.

Table 1. xrGetInstanceProcAddr behavior
instance parameter name parameter return value

*

NULL

undefined

invalid instance

*

undefined

NULL

xrEnumerateInstanceExtensionProperties

fp

NULL

xrEnumerateApiLayerProperties

fp

NULL

xrCreateInstance

fp

NULL

* (any name not covered above)

NULL

instance

core OpenXR function

fp1

instance

enabled extension function for instance

fp1

instance

* (any name not covered above)

NULL

1

The returned function pointer must only be called with a dispatchable object (the first parameter) that is instance or a child of instance.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_OUT_OF_MEMORY

  • XR_ERROR_FUNCTION_UNSUPPORTED

  • XR_ERROR_VALIDATION_FAILURE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrGetInstanceProperties(3)

Name

xrGetInstanceProperties - Gets information about the instance

C Specification

The xrGetInstanceProperties function provides information about the instance and the associated runtime.

XrResult xrGetInstanceProperties(
    XrInstance                                  instance,
    XrInstanceProperties*                       instanceProperties);

Parameters

Parameter Descriptions

Description

The instanceProperties parameter must be filled out by the runtime in response to this call, with information as defined in XrInstanceProperties.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_VALIDATION_FAILURE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrGetOpenGLESGraphicsRequirementsKHR(3)

Name

xrGetOpenGLESGraphicsRequirementsKHR - Retrieve the OpenGL ES version requirements for an instance and system

C Specification

To query OpenGL ES API version requirements for an instance and system, call:

XrResult xrGetOpenGLESGraphicsRequirementsKHR(
    XrInstance                                  instance,
    XrSystemId                                  systemId,
    XrGraphicsRequirementsOpenGLESKHR*          graphicsRequirements);

Parameters

Parameter Descriptions

Description

The xrGetOpenGLESGraphicsRequirementsKHR function identifies to the application the minimum OpenGL ES version requirement and the highest known tested OpenGL ES version. xrGetOpenGLESGraphicsRequirementsKHR has to be called prior to calling xrCreateSession.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_SYSTEM_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_FUNCTION_UNSUPPORTED

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrGetOpenGLGraphicsRequirementsKHR(3)

Name

xrGetOpenGLGraphicsRequirementsKHR - Retrieve the OpenGL version requirements for an instance and system

C Specification

To query OpenGL API version requirements for an instance and system, call:

XrResult xrGetOpenGLGraphicsRequirementsKHR(
    XrInstance                                  instance,
    XrSystemId                                  systemId,
    XrGraphicsRequirementsOpenGLKHR*            graphicsRequirements);

Parameters

Parameter Descriptions

Description

The xrGetOpenGLGraphicsRequirementsKHR function identifies to the application the minimum OpenGL version requirement and the highest known tested OpenGL version. xrGetOpenGLGraphicsRequirementsKHR has to be called prior to calling xrCreateSession.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_SYSTEM_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_FUNCTION_UNSUPPORTED

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrGetReferenceSpaceBoundsRect(3)

Name

xrGetReferenceSpaceBoundsRect - Gets the bounds rectangle of a reference space

C Specification

XR systems may have limited real world spatial ranges in which users can freely move around while remaining tracked. Applications may wish to query these boundaries and alter application behavior or content placement to ensure the user can complete the experience while remaining within the boundary. Applications can query this information using xrGetReferenceSpaceBoundsRect.

When called, xrGetReferenceSpaceBoundsRect should return the extents of a rectangle that is clear of obstacles down to the floor, allowing where the user can freely move while remaining tracked, if available for that reference space. The returned extent represents the dimensions of an axis-aligned bounding box where the XrExtent2Df::width and XrExtent2Df::height fields correspond to the X and Z axes of the provided space, with the extents centered at the origin of the space. Not all systems or spaces may support boundaries. If a runtime is unable to provide bounds for a given space, XR_SPACE_BOUNDS_UNAVAILABLE will be returned and all fields of bounds will be set to 0.

The returned extents are expressed relative to the natural origin of the provided XrReferenceSpaceType and must not incorporate any origin offsets specified by the app during calls to xrCreateReferenceSpace.

The runtime must return XR_ERROR_REFERENCE_SPACE_UNSUPPORTED if the XrReferenceSpaceType passed in createInfo is not supported by this session.

When a runtime will begin operating with updated space bounds, the runtime must queue a corresponding XrEventDataReferenceSpaceChangePending event.

XrResult xrGetReferenceSpaceBoundsRect(
    XrSession                                   session,
    XrReferenceSpaceType                        referenceSpaceType,
    XrExtent2Df*                                bounds);

Parameters

Parameter Descriptions
  • type is the XrStructureType of this structure.

  • session is a handle to an XrSession previously created with xrCreateSession.

  • referenceSpaceType is the reference space type whose bounds should be retrieved.

  • bounds is the returned space extents.

Description

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SPACE_BOUNDS_UNAVAILABLE

  • XR_SESSION_LOSS_PENDING

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_FUNCTION_UNSUPPORTED

  • XR_ERROR_REFERENCE_SPACE_UNSUPPORTED

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrGetSystem(3)

Name

xrGetSystem - Gets a system identifier

C Specification

The xrGetSystem function is defined as:

XrResult xrGetSystem(
    XrInstance                                  instance,
    const XrSystemGetInfo*                      getInfo,
    XrSystemId*                                 systemId);

Parameters

Parameter Descriptions
  • instance is the handle of the instance to get the information from.

  • getInfo is a pointer to an XrSystemGetInfo containing the application’s requests for a system.

  • systemId is the returned XrSystemId.

Description

To get an XrSystemId, an application specifies its desired form factor to xrGetSystem and gets the runtime’s XrSystemId associated with that configuration.

If the form factor is supported but temporarily unavailable, xrGetSystem must return XR_ERROR_FORM_FACTOR_UNAVAILABLE. A runtime may return success on a subsequent call for a form factor it previously returned XR_ERROR_FORM_FACTOR_UNAVAILABLE. For example, connecting or warming up hardware might cause an unavailable form factor to become available.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_FORM_FACTOR_UNAVAILABLE

  • XR_ERROR_FORM_FACTOR_UNSUPPORTED

  • XR_ERROR_VALIDATION_FAILURE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrGetSystemProperties(3)

Name

xrGetSystemProperties - Gets the properties of a particular system

C Specification

The xrGetSystemProperties function is defined as:

XrResult xrGetSystemProperties(
    XrInstance                                  instance,
    XrSystemId                                  systemId,
    XrSystemProperties*                         properties);

Parameters

Parameter Descriptions
  • instance is the instance from which systemId was retrieved.

  • systemId is the XrSystemId whose properties will be queried.

  • properties points to an instance of the XrSystemProperties structure, that will be filled with returned information.

Description

An application can call xrGetSystemProperties to retrieve information about the system such as vendor ID, system name, and graphics and tracking properties.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_OUT_OF_MEMORY

  • XR_ERROR_SYSTEM_INVALID

  • XR_ERROR_VALIDATION_FAILURE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrGetViewConfigurationProperties(3)

Name

xrGetViewConfigurationProperties - Gets information for a view configuration

C Specification

The xrGetViewConfigurationProperties function is defined as:

XrResult xrGetViewConfigurationProperties(
    XrInstance                                  instance,
    XrSystemId                                  systemId,
    XrViewConfigurationType                     viewConfigurationType,
    XrViewConfigurationProperties*              configurationProperties);

Parameters

Parameter Descriptions
  • instance is the instance from which systemId was retrieved.

  • systemId is the XrSystemId whose view configuration is being queried.

  • viewConfigurationType is the XrViewConfigurationType of the configuration to get.

  • configurationProperties is a pointer to view configuration properties to return.

Description

xrGetViewConfigurationProperties queries properties of an individual view configuration. Applications must use one of the supported view configuration types returned by xrEnumerateViewConfigurations. If viewConfigurationType is not supported by this XrInstance the runtime must return XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_SYSTEM_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrGetVisibilityMaskKHR(3)

Name

xrGetVisibilityMaskKHR - Gets visibility mask

C Specification

The function xrGetVisibilityMaskKHR is defined as:

XrResult xrGetVisibilityMaskKHR(
    XrSession                                   session,
    XrViewConfigurationType                     viewConfigurationType,
    uint32_t                                    viewIndex,
    XrVisibilityMaskTypeKHR                     visibilityMaskType,
    XrVisibilityMaskKHR*                        visibilityMask);

Parameters

Parameter Descriptions
  • session is an XrSession handle previously created with xrCreateSession.

  • viewConfigurationType is the view configuration from which to retrieve mask information.

  • viewIndex is the individual view within the view configuration from which to retrieve mask information.

  • visibilityMaskType is the type of visibility mask requested.

  • visibilityMask is an input/output struct which specifies the view mask.

Description

xrGetVisibilityMaskKHR retrieves the view mask for a given view. If a view mask for the specified view isn’t available, the returned vertex and index counts will be zero. If the input vertex or index count are less than required, XR_ERROR_SIZE_INSUFFICIENT is returned, the vertex and index count will be updated to reflect the required count, and the vertex and index array contents are undefined.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_VALIDATION_FAILURE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrGetVulkanDeviceExtensionsKHR(3)

Name

xrGetVulkanDeviceExtensionsKHR - Get list of required Vulkan device extensions for an OpenXR instance and system

C Specification

XrResult xrGetVulkanDeviceExtensionsKHR(
    XrInstance                                  instance,
    XrSystemId                                  systemId,
    uint32_t                                    namesCapacityInput,
    uint32_t*                                   namesCountOutput,
    char*                                       namesString);

Parameters

Parameter Descriptions
  • instance is an XrInstance handle previously created with xrCreateInstance.

  • systemId is an XrSystemId handle for the system which will be used to create a session.

  • namesCapacityInput is the capacity of the namesString array, or 0 to indicate a request to retrieve the required capacity.

  • namesCountOutput is a pointer to the count of characters written (including terminating \0), or a pointer to the required capacity in the case that namesCapacityInput is 0.

  • namesString is a pointer to an array of characters, but can be NULL if namesCapacityInput is 0. The format of the output is a single space (ASCII 0x20) delimited string of extension names.

  • See Buffer Size Parameters chapter for a detailed description of retrieving the required namesString size.

Description

Valid Usage (Implicit)
  • The [XR_KHR_vulkan_enable] extension must be enabled prior to calling xrGetVulkanDeviceExtensionsKHR

  • instance must be a valid XrInstance handle

  • If namesCapacityInput is not 0, namesCapacityInput must be a valid uint32_t value

  • If namesCountOutput is not NULL, namesCountOutput must be a pointer to a uint32_t value

  • If namesCapacityInput is not 0, namesString must be a pointer to an array of namesCapacityInput null-terminated UTF-8 strings

Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_SYSTEM_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_SIZE_INSUFFICIENT

  • XR_ERROR_FUNCTION_UNSUPPORTED

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrGetVulkanGraphicsDeviceKHR(3)

Name

xrGetVulkanGraphicsDeviceKHR - Retrieve the Vulkan physical device associated with an OpenXR instance and system

C Specification

To identify what graphics device needs to be used for an instance and system, call:

XrResult xrGetVulkanGraphicsDeviceKHR(
    XrInstance                                  instance,
    XrSystemId                                  systemId,
    VkInstance                                  vkInstance,
    VkPhysicalDevice*                           vkPhysicalDevice);

Parameters

Parameter Descriptions
  • instance is an XrInstance handle previously created with xrCreateInstance.

  • systemId is an XrSystemId handle for the system which will be used to create a session.

  • vkInstance is a valid Vulkan VkInstance.

  • vkPhysicalDevice is a pointer to a VkPhysicalDevice value to populate.

Description

xrGetVulkanGraphicsDeviceKHR function identifies to the application what graphics device (Vulkan VkPhysicalDevice) needs to be used. xrGetVulkanGraphicsDeviceKHR has to be called prior to calling xrCreateSession, and the VkPhysicalDevice that xrGetVulkanGraphicsDeviceKHR returns should be passed to xrCreateSession in the XrGraphicsBindingVulkanKHR.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_SYSTEM_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_FUNCTION_UNSUPPORTED

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrGetVulkanGraphicsRequirementsKHR(3)

Name

xrGetVulkanGraphicsRequirementsKHR - Retrieve the Vulkan version requirements for an instance and system

C Specification

To query Vulkan API version requirements, call:

XrResult xrGetVulkanGraphicsRequirementsKHR(
    XrInstance                                  instance,
    XrSystemId                                  systemId,
    XrGraphicsRequirementsVulkanKHR*            graphicsRequirements);

Parameters

Parameter Descriptions

Description

The xrGetVulkanGraphicsRequirementsKHR function identifies to the application the minimum Vulkan version requirement and the highest known tested Vulkan version. xrGetVulkanGraphicsRequirementsKHR has to be called prior to calling xrCreateSession.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_SYSTEM_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_FUNCTION_UNSUPPORTED

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrGetVulkanInstanceExtensionsKHR(3)

Name

xrGetVulkanInstanceExtensionsKHR - Get list of required Vulkan instance extensions for an OpenXR instance and system

C Specification

XrResult xrGetVulkanInstanceExtensionsKHR(
    XrInstance                                  instance,
    XrSystemId                                  systemId,
    uint32_t                                    namesCapacityInput,
    uint32_t*                                   namesCountOutput,
    char*                                       namesString);

Parameters

Parameter Descriptions
  • instance is an XrInstance handle previously created with xrCreateInstance.

  • systemId is an XrSystemId handle for the system which will be used to create a session.

  • namesCapacityInput is the capacity of the namesString array, or 0 to indicate a request to retrieve the required capacity.

  • namesCountOutput is a pointer to the count of characters written (including terminating \0), or a pointer to the required capacity in the case that namesCapacityInput is 0.

  • namesString is a pointer to an array of characters, but can be NULL if namesCapacityInput is 0. The format of the output is a single space (ASCII 0x20) delimited string of extension names.

  • See Buffer Size Parameters chapter for a detailed description of retrieving the required namesString size.

Description

The xrGetVulkanGraphicsDeviceKHR function identifies to the application what graphics device (Vulkan VkPhysicalDevice) needs to be used. xrGetVulkanGraphicsDeviceKHR must be called prior to calling xrCreateSession, and the VkPhysicalDevice that xrGetVulkanGraphicsDeviceKHR returns should be passed to xrCreateSession.

Valid Usage (Implicit)
  • The [XR_KHR_vulkan_enable] extension must be enabled prior to calling xrGetVulkanInstanceExtensionsKHR

  • instance must be a valid XrInstance handle

  • If namesCapacityInput is not 0, namesCapacityInput must be a valid uint32_t value

  • If namesCountOutput is not NULL, namesCountOutput must be a pointer to a uint32_t value

  • If namesCapacityInput is not 0, namesString must be a pointer to an array of namesCapacityInput null-terminated UTF-8 strings

Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_SYSTEM_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_SIZE_INSUFFICIENT

  • XR_ERROR_FUNCTION_UNSUPPORTED

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrLocateSpace(3)

Name

xrLocateSpace - Locates a space with reference to another space

C Specification

xrLocateSpace provides the physical relationship of a space relative to a base space at a specified time, if currently known by the runtime.

XrResult xrLocateSpace(
    XrSpace                                     space,
    XrSpace                                     baseSpace,
    XrTime                                      time,
    XrSpaceRelation*                            relation);

Parameters

Parameter Descriptions
  • space identifies the target space to locate.

  • baseSpace identifies the underlying space in which to locate space.

  • time is the time for which the relation should be provided.

  • relation provides a relation which transforms coordinates from baseSpace to space.

Description

For a time in the past, the runtime should relate the spaces based on the runtime’s most accurate current understanding of how the world was at that historical time.

For a time in the future, the runtime should relate the spaces based on the runtime’s most up-to-date prediction of how the world will be at that future time.

The minimum valid range of values for time are described in ../../openxr.html#prediction-time-limits. For values of time outside this range, xrLocateSpace may return a relation with no position and XR_SPACE_RELATION_POSITION_VALID_BIT unset.

Some devices improve their understanding of the world as the device is used. The relation returned by xrLocateSpace for a given space, baseSpace and time may change over time, even for spaces that track static objects, as one or both spaces adjust their origins.

During tracking loss of space relative to baseSpace, runtimes should continue to provide inferred or last-known position and orientation values. These inferred poses can, for example, be based on neck model updates, inertial dead reckoning, or a last-known position, so long as it is still reasonable for the application to use that pose. While a runtime is providing position data, it must continue to set XR_SPACE_RELATION_POSITION_VALID_BIT but it can clear XR_SPACE_RELATION_POSITION_TRACKED_BIT to indicate that the position is inferred or last-known in this way.

If the runtime has not yet observed even a last-known pose for how space and baseSpace relate (e.g. one space is an action space bound to a motion controller that has not yet been detected, or the two spaces are in disconnected fragments of the runtime’s tracked volume), the runtime should return a relation with no position and XR_SPACE_RELATION_POSITION_VALID_BIT unset.

The runtime must return a relation with both XR_SPACE_RELATION_POSITION_VALID_BIT and XR_SPACE_RELATION_POSITION_TRACKED_BIT set when relating space and baseSpace if both spaces were created relative to the same entity (e.g. two action spaces for the same action), even if the entity is currently untracked. The relation in this case is the difference in the two spaces' application-specified transforms relative to that common entity.

The runtime should return a relation with XR_SPACE_RELATION_POSITION_VALID_BIT set and XR_SPACE_RELATION_POSITION_TRACKED_BIT unset for spaces tracking two static entities in the world when their relative pose is known to the runtime. This enables applications to make use of the runtime’s latest knowledge of the world, even during tracking loss.

Valid Usage (Implicit)
  • space must be a valid XrSpace handle

  • baseSpace must be a valid XrSpace handle

  • relation must be a pointer to an XrSpaceRelation structure

  • Both of baseSpace and space must have been created, allocated, or retrieved from the same XrSession

Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SESSION_LOSS_PENDING

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_VALIDATION_FAILURE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrLocateViews(3)

Name

xrLocateViews - Gets view and projection info

C Specification

The xrLocateViews function is defined as:

XrResult xrLocateViews(
    XrSession                                   session,
    const XrViewLocateInfo*                     viewLocateInfo,
    XrViewState*                                viewState,
    uint32_t                                    viewCapacityInput,
    uint32_t*                                   viewCountOutput,
    XrView*                                     views);

Parameters

Parameter Descriptions
  • session is a handle to the provided XrSession.

  • viewLocateInfo is a pointer to a valid XrViewLocateInfo structure.

  • viewState is the output structure with the viewer state information.

  • viewCapacityInput is an input parameter which specifies the capacity of the views array. The required capacity is no more than XrSystemGraphicsProperties::maxViewCount

  • viewCountOutput is an output parameter which identifies the valid count of views.

  • views is an array of XrView.

  • See Buffer Size Parameters chapter for a detailed description of retrieving the required views size.

Description

Valid Usage
  • displayTime should be a valid time in the future.

The function xrLocateViews returns the view and projection info for a particular display time. This time is typically the XrFrameState::predictedDisplayTime for a given frame. Repeatedly calling xrLocateViews with the same time may not necessarily return the same result. Instead the prediction gets increasingly accurate as the function is called closer to the given time for which a prediction is made. This allows an application to get the predicted views as late as possible in its pipeline to get the least amount of latency and prediction error.

xrLocateViews returns an array of XrView elements, one for each view of the running session’s active view configuration, along with an XrViewState containing additional state data shared across all views for the primary viewer. The eye each view corresponds to is statically defined in XrViewConfigurationType in case the application wants to apply eye-specific rendering traits. The XrViewState and XrView member data may change on subsequent calls to xrLocateViews, and so applications must not assume it to be constant.

Valid Usage (Implicit)
  • session must be a valid XrSession handle

  • viewLocateInfo must be a pointer to a valid XrViewLocateInfo structure

  • viewState must be a pointer to an XrViewState structure

  • If viewCapacityInput is not 0, viewCapacityInput must be a valid uint32_t value

  • If viewCountOutput is not NULL, viewCountOutput must be a pointer to a uint32_t value

  • If viewCapacityInput is not 0, views must be a pointer to an array of viewCapacityInput XrView structures

Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SESSION_LOSS_PENDING

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_SIZE_INSUFFICIENT

  • XR_ERROR_VALIDATION_FAILURE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrPathToString(3)

Name

xrPathToString - Converts a semantic path to a string

C Specification

XrResult xrPathToString(
    XrInstance                                  instance,
    XrPath                                      path,
    uint32_t                                    bufferCapacityInput,
    uint32_t*                                   bufferCountOutput,
    char*                                       buffer);

Parameters

Parameter Descriptions
  • instance is an instance previously created.

  • path is the valid XrPath value to retrieve the path string for.

  • bufferCapacityInput is the capacity of the buffer, or 0 to indicate a request to retrieve the required capacity.

  • bufferCountOutput is a pointer to the count of characters written (including the terminating '\0'), or a pointer to the required capacity in the case that bufferCapacityInput is 0.

  • buffer is a pointer to an application-allocated buffer that will be filled with the semantic path string. It can be NULL if bufferCapacityInput is 0.

  • See Buffer Size Parameters chapter for a detailed description of retrieving the required buffer size.

Description

xrPathToString retrieves the path name string associated with an XrPath, in the context of a given XrInstance, in the form of a NULL terminated string placed into a caller-allocated buffer. Since the mapping between a well-formed path name string and an XrPath is bijective, there will always be exactly one string for each valid XrPath value. This can be useful if the calling application receives an XrPath value that they had not previously retrieved via xrStringToPath. During the lifetime of the given XrInstance, the path name string retrieved by this function for a given valid XrPath will not change. For invalid paths, including XR_NULL_PATH, XR_ERROR_PATH_INVALID will be returned.

Valid Usage (Implicit)
  • instance must be a valid XrInstance handle

  • If bufferCapacityInput is not 0, bufferCapacityInput must be a valid uint32_t value

  • If bufferCountOutput is not NULL, bufferCountOutput must be a pointer to a uint32_t value

  • If bufferCapacityInput is not 0, buffer must be a pointer to an array of bufferCapacityInput char values

Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_PATH_INVALID

  • XR_ERROR_SIZE_INSUFFICIENT

  • XR_ERROR_VALIDATION_FAILURE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

Unresolved directive in apispec.txt - include::xrPerfSettingsSetPerformanceLevelEXT.txt[]

xrPollEvent(3)

Name

xrPollEvent - Polls for events

C Specification

XrResult xrPollEvent(
    XrInstance                                  instance,
    XrEventDataBuffer*                          eventData);

Parameters

xrPollEvent polls for the next event and returns an event if one is available. xrPollEvent returns immediately regardless of whether an event was available. The event (if present) is unilaterally removed from the queue if a valid XrInstance is provided. On return the eventData parameter is filled with the event’s data and the type field is changed to the event’s type. Runtimes may create valid next chains depending on enabled extensions, but they must guarantee that any such chains point only to objects which fit completely within the original XrEventDataBuffer pointed to by eventData.

Description

Parameter Descriptions
Valid Usage
Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_EVENT_UNAVAILABLE

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_VALIDATION_FAILURE

Table 2. Event Descriptions
Event Description

XrEventDataEventsLost

event queue has overflowed and some events were lost

XrEventDataInstanceLossPending

application is about to lose the instance

XrEventDataInteractionProfileChanged

active input form factor for one or more top level user paths has changed

XrEventDataReferenceSpaceChangePending

runtime will begin operating with updated space bounds

XrEventDataSessionStateChanged

application has changed lifecycle state

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrReleaseSwapchainImage(3)

Name

xrReleaseSwapchainImage - Release a swapchain image

C Specification

The xrReleaseSwapchainImage function is defined as:

XrResult xrReleaseSwapchainImage(
    XrSwapchain                                 swapchain,
    const XrSwapchainImageReleaseInfo*          releaseInfo);

Parameters

Parameter Descriptions
  • swapchain is the XrSwapchain from which to release an image.

  • releaseInfo is for extensibility purposes.

Description

If the swapchain was created with the XR_SWAPCHAIN_CREATE_STATIC_IMAGE_BIT set in XrSwapchainCreateInfo::createFlags structure, this function must not have been previously called for this swapchain.

The runtime must return XR_ERROR_CALL_ORDER_INVALID if no image has been waited on by calling xrWaitSwapchainImage.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SESSION_LOSS_PENDING

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_CALL_ORDER_INVALID

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrResultToString(3)

Name

xrResultToString - Converts an XrResult to a UTF-8 string

C Specification

XrResult xrResultToString(
    XrInstance                                  instance,
    XrResult                                    value,
    char                                        buffer[XR_MAX_RESULT_STRING_SIZE]);

Parameters

Parameter Descriptions
  • instance is the handle of the instance to ask for the string or XR_NULL_HANDLE to ask the loader for the string.

  • value is the XrResult value to turn into a string.

  • buffer is the buffer that will be used to return the string in.

Description

Returns the text version of the provided XrResult value as a UTF-8 string.

In all cases the returned string must be one of:

Result String Return Values
  • The literal string defined for the provide numeric value in the core spec or extension. (e.g. the value 0 results in the string XR_SUCCESS)

  • XR_UNKNOWN_SUCCESS_ concatenated with the positive result number expressed as a decimal number.

  • XR_UNKNOWN_FAILURE_ concatenated with the negative result number expressed as a decimal number.

Valid Usage (Implicit)
  • instance must be a valid XrInstance handle

  • value must be a valid XrResult value

  • buffer must be a null-terminated UTF-8 string whose length is less than or equal to XR_MAX_RESULT_STRING_SIZE

Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_VALIDATION_FAILURE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrSessionBeginDebugUtilsLabelRegionEXT(3)

Name

xrSessionBeginDebugUtilsLabelRegionEXT - Session begin debug utils label region

C Specification

XrResult xrSessionBeginDebugUtilsLabelRegionEXT(
    XrSession                                   session,
    const XrDebugUtilsLabelEXT*                 labelInfo);

Parameters

Parameter Descriptions
  • session is the XrSession that a label region should be associated with.

  • labelInfo is the XrDebugUtilsLabelEXT containing the label information for the region that should be begun.

Description

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_SESSION_LOST

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_RUNTIME_FAILURE

The xrSessionBeginDebugUtilsLabelRegionEXT function begins a label region within session.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrSessionEndDebugUtilsLabelRegionEXT(3)

Name

xrSessionEndDebugUtilsLabelRegionEXT - Session end debug utils label region

C Specification

XrResult xrSessionEndDebugUtilsLabelRegionEXT(
    XrSession                                   session);

Parameters

Parameter Descriptions
  • session is the XrSession that a label region should be associated with.

Description

Valid Usage
Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_SESSION_LOST

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_RUNTIME_FAILURE

This function ends the last label region begun with the xrSessionBeginDebugUtilsLabelRegionEXT function within the same session.

See Also

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrSessionInsertDebugUtilsLabelEXT(3)

Name

xrSessionInsertDebugUtilsLabelEXT - Session insert debug utils label

C Specification

XrResult xrSessionInsertDebugUtilsLabelEXT(
    XrSession                                   session,
    const XrDebugUtilsLabelEXT*                 labelInfo);

Parameters

Parameter Descriptions
  • session is the XrSession that a label region should be associated with.

  • labelInfo is the XrDebugUtilsLabelEXT containing the label information for the region that should be begun.

Description

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_SESSION_LOST

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_RUNTIME_FAILURE

The xrSessionInsertDebugUtilsLabelEXT function inserts an individual label within session. The individual labels are useful for different reasons based on the type of debugging scenario. When used with something active like a profiler or debugger, it identifies a single point of time. When used with logging, the individual label identifies that a particular location has been passed at the point the log message is triggered. Because of this usage, individual labels only exist in a log until the next call to any of the label functions:

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrSetAndroidApplicationThreadKHR(3)

Name

xrSetAndroidApplicationThreadKHR - declare threads to be of a certain priority type

C Specification

To declare a thread to be of a certain XrAndroidThreadTypeKHR type call:

XrResult xrSetAndroidApplicationThreadKHR(
    XrSession                                   session,
    XrAndroidThreadTypeKHR                      threadType,
    uint32_t                                    threadId);

Parameters

Parameter Descriptions
  • session is a valid XrSession handle.

  • threadType is a classification of the declared thread allowing the XR runtime to apply the relevant priority and attributes. If such settings fail, the error XR_ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR is returned.

  • threadId is the thread id of the declared thread. If thread Id is invalid the error XR_ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR is returned.

Description

xrSetAndroidApplicationThreadKHR allows to declare an XR-critical thread and to classify it.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SESSION_LOSS_PENDING

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR

  • XR_ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_FUNCTION_UNSUPPORTED

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrSetDebugUtilsObjectNameEXT(3)

Name

xrSetDebugUtilsObjectNameEXT - Sets debug utils object name

C Specification

XrResult xrSetDebugUtilsObjectNameEXT(
    XrInstance                                  instance,
    const XrDebugUtilsObjectNameInfoEXT*        nameInfo);

Parameters

Parameter Descriptions
  • instance is the XrInstance that the object was created under.

  • nameInfo is a pointer to an instance of the XrDebugUtilsObjectNameInfoEXT structure specifying the parameters of the name to set on the object.

Description

Valid Usage
Valid Usage (Implicit)
Host Synchronization
  • Host access to nameInfo.objectHandle must be externally synchronized

Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_OUT_OF_MEMORY

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_FUNCTION_UNSUPPORTED

Applications may change the name associated with an object simply by calling xrSetDebugUtilsObjectNameEXT again with a new string. If XrDebugUtilsObjectNameInfoEXT::objectName is an empty string, then any previously set name is removed.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrSetInteractionProfileSuggestedBindings(3)

Name

xrSetInteractionProfileSuggestedBindings - Sets the application-suggested bindings for the interaction profile

C Specification

The function xrSetInteractionProfileSuggestedBindings is defined as:

XrResult xrSetInteractionProfileSuggestedBindings(
    XrSession                                   session,
    const XrInteractionProfileSuggestedBinding* suggestedBindings);

Parameters

Parameter Descriptions

Description

xrSetInteractionProfileSuggestedBindings sets an interaction profile for which the application can provide default bindings. The application can call xrSetInteractionProfileSuggestedBindings once per interaction profile that it supports.

The application can provide any number of bindings for each action.

If the provided session is running, the runtime must return XR_ERROR_SESSION_RUNNING. If the application has already called xrSetInteractionProfileSuggestedBindings on this session for this interaction profile, the runtime must return XR_ERROR_BINDINGS_DUPLICATED. See suggested bindings for more details.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_SESSION_RUNNING

  • XR_ERROR_BINDINGS_DUPLICATED

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrStopHapticFeedback(3)

Name

xrStopHapticFeedback - Stop haptic feedback

C Specification

The xrStopHapticFeedback function is defined as:

XrResult xrStopHapticFeedback(
    XrAction                                    hapticAction,
    uint32_t                                    countSubactionPaths,
    const XrPath*                               subactionPaths);

Parameters

Parameter Descriptions
  • hapticAction is the XrAction handle for the desired output action.

  • countSubactionPaths is the number of elements in the subactionPaths array. If subactionPaths is NULL, this parameter must be 0.

  • subactionPaths is an array of paths or NULL. If this array is specified, it contains one or more subaction paths that were specified when the action was created. If the array includes a subaction path that was not specified when the action was created the runtime must return XR_ERROR_PATH_INVALID. The runtime must only stop haptic output on the specified devices. If this parameter is specified, the runtime must return data that originates only on the paths specified in this array.

Description

If a haptic event from this XrAction is in progress, when this function is called the runtime must stop that event. See XrActionCreateInfo for a description of subaction paths, and the restrictions on their use.

Valid Usage (Implicit)
  • hapticAction must be a valid XrAction handle

  • If countSubactionPaths is not 0, countSubactionPaths must be a valid uint32_t value

  • If countSubactionPaths is not 0, subactionPaths must be a pointer to an array of countSubactionPaths XrPath values

Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SESSION_LOSS_PENDING

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_ACTION_TYPE_MISMATCH

  • XR_ERROR_SESSION_NOT_RUNNING

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrStringToPath(3)

Name

xrStringToPath - Converts a string to a semantic path

C Specification

The xrStringToPath function is defined as:

XrResult xrStringToPath(
    XrInstance                                  instance,
    const char*                                 pathString,
    XrPath*                                     path);

Parameters

Parameter Descriptions
  • instance is an instance previously created.

  • pathString is the path name string to retrieve the associated XrPath for.

  • path is the output parameter, which must point to an XrPath. Given a well-formed path name string, this will be populated with an opaque value that is constant for that path string during the lifetime of that instance.

Description

xrStringToPath retrieves the XrPath value for a well-formed path string. If such a value had not yet been assigned by the runtime to the provided path string in this XrInstance, one must be assigned at this point. All calls to this function with the same XrInstance and path string must retrieve the same XrPath value. Upon failure, xrStringToPath must return an appropriate XrResult, and may set the output parameter to XR_NULL_PATH. See Path Atom Type for the conditions under which an error may be returned when this function is given a valid XrInstance and a well-formed path string.

If the runtime’s resources are exhausted and it cannot create the path, a return value of XR_ERROR_PATH_COUNT_EXCEEDED must be returned. If the application specifies a string that is not a well-formed path string, XR_ERROR_PATH_FORMAT_INVALID must be returned.

A return value of XR_SUCCESS from xrStringToPath may not necessarily imply that the runtime has a component or other source of data that will be accessible through that semantic path. It only means that the path string supplied was well-formed and that the retrieved XrPath maps to the given path string within and during the lifetime of the XrInstance given.
Valid Usage (Implicit)
  • instance must be a valid XrInstance handle

  • pathString must be a null-terminated UTF-8 string

  • path must be a pointer to an XrPath value

Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_PATH_FORMAT_INVALID

  • XR_ERROR_PATH_COUNT_EXCEEDED

  • XR_ERROR_VALIDATION_FAILURE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrStructureTypeToString(3)

Name

xrStructureTypeToString - Converts an XrStructureType to a UTF-8 string

C Specification

The xrStructureTypeToString function is defined as follows:

XrResult xrStructureTypeToString(
    XrInstance                                  instance,
    XrStructureType                             value,
    char                                        buffer[XR_MAX_STRUCTURE_NAME_SIZE]);

Parameters

Parameter Descriptions
  • instance is the handle of the instance to ask for the string

  • value is the XrStructureType value to turn into a string.

  • buffer is the buffer that will be used to return the string in.

Description

Returns the text version of the provided XrStructureType value as a UTF-8 string.

In all cases the returned string must be one of:

Structure Type String Return Values
  • The literal string defined for the provide numeric value in the core spec or extension. (e.g. the value of XR_TYPE_INSTANCE_CREATE_INFO results in the string XR_TYPE_INSTANCE_CREATE_INFO)

  • XR_UNKNOWN_STRUCTURE_TYPE_ concatenated with the structure type number expressed as a decimal number.

Valid Usage (Implicit)
  • instance must be a valid XrInstance handle

  • value must be a valid XrStructureType value

  • buffer must be a null-terminated UTF-8 string whose length is less than or equal to XR_MAX_STRUCTURE_NAME_SIZE

Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_VALIDATION_FAILURE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrSubmitDebugUtilsMessageEXT(3)

Name

xrSubmitDebugUtilsMessageEXT - Submits debug utils message

C Specification

XrResult                                    xrSubmitDebugUtilsMessageEXT(
    XrInstance                                  instance,
    XrDebugUtilsMessageSeverityFlagsEXT         messageSeverity,
    XrDebugUtilsMessageTypeFlagsEXT             messageTypes,
    const XrDebugUtilsMessengerCallbackDataEXT* callbackData);

Parameters

Parameter Descriptions

Description

Valid Usage
Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

On failure, this command returns
  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_FUNCTION_UNSUPPORTED

The application can also produce a debug message, and submit it into the OpenXR messaging system.

The call will propagate through the layers and generate callback(s) as indicated by the message’s flags. The parameters are passed on to the callback in addition to the userData value that was defined at the time the messenger was created.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrSyncActionData(3)

Name

xrSyncActionData - Updates the current state of input actions

C Specification

The xrSyncActionData function is defined as:

XrResult xrSyncActionData(
    XrSession                                   session,
    uint32_t                                    countActionSets,
    const XrActiveActionSet*                    actionSets);

Parameters

Parameter Descriptions
  • session is a handle to the XrSession that all provided action set handles belong to.

  • countActionSets is an integer specifying the number of valid elements in the actionSets array.

  • actionSets is a pointer to an array of one or more XrActiveActionSet structures, all from session, that should be synchronized.

Description

xrSyncActionData updates the current state of input actions. Repeated input action state queries between subsequent synchronization calls must return the same values. This call must be called with an array containing the XrActiveActionSet structures, that reference action sets which belong to a single, running session, that should be updated during this synchronization. Any XrActionSet that has been created in this session but was not passed to xrSyncActionData will not be updated and all action state queries will return that the action is inactive.

If session is not running, the runtime must return XR_ERROR_SESSION_NOT_RUNNING. If session is not focused, the runtime must return XR_SESSION_NOT_FOCUSED, and all actions in the session will be inactive.

Parameter Descriptions
  • session is a handle to the XrSession that all provided action set handles belong to.

  • countActionSets is an integer specifying the number of valid elements in the actionSets array.

  • actionSets is a pointer to an array of one or more XrActiveActionSet structures, all from session, that should be synchronized.

Valid Usage (Implicit)
  • session must be a valid XrSession handle

  • countActionSets must be a valid uint32_t value

  • actionSets must be a pointer to an array of countActionSets valid XrActiveActionSet structures

  • countActionSets must be greater than 0

Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SESSION_LOSS_PENDING

  • XR_SESSION_NOT_FOCUSED

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_SESSION_NOT_RUNNING

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

Unresolved directive in apispec.txt - include::xrThermalGetTemperatureTrendEXT.txt[]

xrWaitFrame(3)

Name

xrWaitFrame - Frame timing function

C Specification

The xrWaitFrame function is defined as:

XrResult xrWaitFrame(
    XrSession                                   session,
    const XrFrameWaitInfo*                      frameWaitInfo,
    XrFrameState*                               frameState);

Parameters

Parameter Descriptions

Description

If a frame submitted to xrEndFrame is consumed by the compositor before its target display time, a subsequent call to xrWaitFrame must block the caller until the start of the next rendering interval after the frame’s target display time as determined by the runtime.

If a frame submitted to xrEndFrame misses its target display time, a subsequent call to xrWaitFrame must block the caller until that frame is consumed by the compositor, at which point it must return immediately.

If no frame has been submitted to xrEndFrame since any prior call to xrWaitFrame, a subsequent call to xrWaitFrame must block the caller until the start of the next rendering interval time as determined by the runtime.

The runtime may dynamically adjust the start time of the rendering interval relative to the display hardware’s refresh cycle to minimize graphics processor contention between the application and the compositor.

xrWaitFrame must be callable from any thread, including a different thread than xrBeginFrame/xrEndFrame are being called from.

Calling xrWaitFrame must be externally synchronized by the application, concurrent calls may result in undefined behavior.

The runtime must return XR_ERROR_SESSION_NOT_RUNNING if session is not in the XR_SESSION_STATE_RUNNING, XR_SESSION_STATE_VISIBLE or XR_SESSION_STATE_FOCUSED XrSessionState.

Valid Usage (Implicit)
  • session must be a valid XrSession handle

  • If frameWaitInfo is not NULL, frameWaitInfo must be a pointer to a valid XrFrameWaitInfo structure

  • frameState must be a pointer to an XrFrameState structure

Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_SESSION_LOSS_PENDING

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_SESSION_NOT_RUNNING

  • XR_ERROR_VALIDATION_FAILURE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

xrWaitSwapchainImage(3)

Name

xrWaitSwapchainImage - Wait for a swapchain image to be available

C Specification

The xrWaitSwapchainImage function is defined as:

XrResult xrWaitSwapchainImage(
    XrSwapchain                                 swapchain,
    const XrSwapchainImageWaitInfo*             waitInfo);

Parameters

Parameter Descriptions
  • swapchain is the swapchain from which to wait for an image.

  • waitInfo is a pointer to an XrSwapchainImageWaitInfo struct.

Description

Before an application can begin writing to a swapchain image, it must first wait on the image to avoid writing to it before the compositor has finished reading from it. xrWaitSwapchainImage will implicitly wait on the oldest acquired swapchain image which has not yet been successfully waited on. Once a swapchain image has been successfully waited on, it must be released before waiting on the next acquired swapchain image.

This function may block for longer than the timeout specified in XrSwapchainImageWaitInfo due to scheduling or contention.

If the timeout expires without the image becoming available for writing, XR_TIMEOUT_EXPIRED is returned. If xrWaitSwapchainImage returns XR_TIMEOUT_EXPIRED, the next call to xrWaitSwapchainImage will wait on the same image index again until the function succeeds with XR_SUCCESS. Note that this is not an error code; XR_SUCCEEDED(XR_TIMEOUT_EXPIRED) is true.

The runtime must return XR_ERROR_CALL_ORDER_INVALID if no image has been acquired by calling xrAcquireSwapchainImage.

Valid Usage (Implicit)
Return Codes
On success, this command returns
  • XR_SUCCESS

  • XR_TIMEOUT_EXPIRED

  • XR_SESSION_LOSS_PENDING

On failure, this command returns
  • XR_ERROR_INSTANCE_LOST

  • XR_ERROR_SESSION_LOST

  • XR_ERROR_RUNTIME_FAILURE

  • XR_ERROR_HANDLE_INVALID

  • XR_ERROR_VALIDATION_FAILURE

  • XR_ERROR_CALL_ORDER_INVALID

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

Object Handles

XrAction(3)

Name

XrAction - Opaque handle to an action

C Specification

XR_DEFINE_HANDLE(XrAction)

Description

Action handles are used to refer to individual actions when retrieving action data, creating action spaces, or sending haptic events.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrActionSet(3)

Name

XrActionSet - Opaque handle to an action set

C Specification

XR_DEFINE_HANDLE(XrActionSet)

Description

Action sets are application-defined collections of actions. They are enabled or disabled by the application via xrSyncActionData depending on the current application context. For example, a game may have one set of actions that apply to controlling a character and another set for navigating a menu system. When these actions are grouped into two XrActionSet handles they can be selectively enabled and disabled using a single function call.

Actions are passed a handle to their XrActionSet when they are created.

Action sets are created by calling xrCreateActionSet:

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrDebugUtilsMessengerEXT(3)

Name

XrDebugUtilsMessengerEXT - Callback for debug data

C Specification

XR_DEFINE_HANDLE(XrDebugUtilsMessengerEXT)

Description

XrDebugUtilsMessengerEXT represents a callback function and associated filters registered with the runtime.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrInstance(3)

Name

XrInstance - Opaque handle to an instance object

C Specification

XR_DEFINE_HANDLE(XrInstance)

Description

An OpenXR instance is an object that allows an OpenXR application to communicate with an OpenXR runtime. The application accomplishes this communication by calling xrCreateInstance and receiving a handle to the resulting XrInstance object.

The XrInstance object stores and tracks OpenXR-related application state, without storing any such state in the application’s global address space. This allows the application to create multiple instances as well as safely encapsulate the application’s OpenXR state since this object is opaque to the application. OpenXR runtimes may limit the number of simultaneous XrInstance objects that may be created and used, but they must support the creation and usage of at least one XrInstance object per process.

Physically, this state may be stored in any of the OpenXR loader, OpenXR API layers or the OpenXR runtime components. The exact storage and distribution of this saved state is implementation-dependent, except where indicated by this specification.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrSession(3)

Name

XrSession - Opaque handle to a session object

C Specification

XR_DEFINE_HANDLE(XrSession)

Description

A session represents an application’s intention to display XR content to the user. An application makes its XR content eligible to be displayed by beginning a session with xrBeginSession, causing it to enter the running state. It may then hide its XR content for some period by ending its session with xrEndSession, causing it to leave the running state.

Only running sessions may become focused sessions that receive XR input. When a session is not running, the application must not submit frames. This is important because without a running session, the runtime no longer has to spend resources on sub-systems (tracking etc.) that are no longer needed by the application.

A session may be running but not currently visible, as another running session may take precedence. The XrEventDataSessionStateChanged event indicates changes to visibility or input focus states. Runtimes each establish their own policy for when an application has the right to make its running session visible in the XR display.

An application must set the current view configuration and supported view configurations before calling xrBeginSession.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrSpace(3)

Name

XrSpace - Opaque handle to a space

C Specification

Across both virtual reality and augmented reality, XR applications have a core need to map the location of virtual objects to the corresponding real-world locations where they will be rendered. Spaces allow applications to explicitly create and specify the frames of reference in which they choose to track the real world, and then determine how those frames of reference move relative to one another over time.

XR_DEFINE_HANDLE(XrSpace)

Description

Spaces are represented by XrSpace handles, which the application creates and then uses in API calls. Whenever an application calls a function that returns coordinates, it provides an XrSpace to specify the frame of reference in which those coordinates will be expressed. Similarly, when providing coordinates to a function, the application specifies which XrSpace the runtime should use to interpret those coordinates.

OpenXR defines a set of well-known reference spaces that applications use to bootstrap their spatial reasoning. These reference spaces are: VIEW, LOCAL and STAGE. Each reference space has a well-defined meaning, which establishes where its origin is positioned and how its axes are oriented.

Runtimes whose tracking systems improve their understanding of the world over time may track spaces independently. For example, even though a LOCAL space and a STAGE space each map their origin to a static position in the world, a runtime with an inside-out tracking system may introduce slight adjustments to the origin of each space on a continuous basis to keep each origin in place.

Spaces like the STAGE space may be reconfigured by the user, causing their origin to jump instantaneously. When a discontinuity in the origin of a space occurs, runtimes should delay representing these changes to the application until the next call to xrPollEvent. This allows applications to cleanly detect the change in key poses before and after the discontinuity.

Beyond well-known reference spaces, runtimes expose other independently-tracked spaces, such as a pose action space that tracks the pose of a motion controller over time.

When one or both spaces are tracking a dynamic object, passing in an updated time to xrLocateSpace each frame will result in an updated relative pose. For example, the relationship of the left hand’s pose action space to the STAGE reference space will change each frame as the user’s hand moves relative to the stage’s predefined origin on the floor. In other XR APIs, it is common to report the "pose" of an object relative to some presumed underlying global space. This API is careful to not explicitly define such an underlying global space, because it does not apply to all systems. Some systems will support no STAGE space, while others may support a STAGE space that switches between various physical stages with dynamic availability. To satisfy this wide variability, "poses" are always described as the relationship between two spaces.

Some devices improve their understanding of the world as the device is used. The relation returned by xrLocateSpace in later frames may change over time, even for spaces that track static objects, as either the target space or base space adjusts its origin.

Composition layers submitted by the application include an XrSpace for the runtime to use to position that layer over time. Composition layers whose XrSpace is relative to the VIEW reference space are implicitly "head-locked", even if they may not be "display-locked" for non-head-mounted form factors.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrSwapchain(3)

Name

XrSwapchain - Opaque handle to a swapchain object

C Specification

XR_DEFINE_HANDLE(XrSwapchain)

Description

Normal XR applications will want to present rendered images to the user. To allow this, the runtime provides images organized in swapchains for the application to render into. The runtime must allow applications to create multiple swapchains.

Swapchain image format support by the runtime is specified by the xrEnumerateSwapchainFormats function. Runtimes should support R8G8B8A8 and R8G8B8A8 sRGB formats if possible.

Swapchain images can be 2D or 2D Array.

Rendering operations involving composition of submitted layers should be assumed to be internally performed by the runtime in linear color space. Images submitted in sRGB color space must be created using an API-specific sRGB format (e.g. DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, GL_SRGBA, VK_FORMAT_R8G8B8A8_SRGB) to apply automatic sRGB-to-linear conversion when read by the runtime. All other formats will be treated as linear values.

Note

DXGI resources will be created with their associated TYPELESS format, but the runtime will use the application-specified format for reading the data.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

Structures

XrActionCreateInfo(3)

Name

XrActionCreateInfo - XrAction creation info

C Specification

The XrActionCreateInfo structure is defined as:

typedef struct XrActionCreateInfo {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    char                        actionName[XR_MAX_ACTION_NAME_SIZE];
    XrActionType                actionType;
    uint32_t                    countSubactionPaths;
    const XrPath*               subactionPaths;
    char                        localizedActionName[XR_MAX_LOCALIZED_ACTION_NAME_SIZE];
} XrActionCreateInfo;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • actionName is an array containing a NULL terminated string with the name of this action.

  • actionType is the XrActionType of the action to be created.

  • countSubactionPaths is the number of elements in the subactionPaths array. If subactionPaths is NULL, this parameter must be 0.

  • subactionPaths is an array of XrPath or NULL. If this array is specified, it contains one or more subaction paths that the application intends to query action state for.

  • localizedActionName is an array containing a NULL terminated UTF-8 string that can be presented to the user as a description of the action. This string should be in the system’s current active locale.

Description

Subaction paths are a mechanism that enables applications to use the same action name and handle on multiple devices. Applications can query action state using subaction paths that differentiate data coming from each device. This allows the runtime to group logically equivalent actions together in system UI. For instance, an application could create a single pick_up action with the /user/hand/left and /user/hand/right subaction paths and use the subaction paths to independently query the state of pick_up_with_left_hand and pick_up_with_right_hand.

Applications can create actions with or without the subactionPaths set to a list of paths. If this list of paths is omitted (i.e. subactionPaths is set to NULL, and countSubactionPaths is set to 0), the application is opting out of filtering action results by subaction paths and any call to get action data must also omit subaction paths.

If subactionPaths is specified and any of the following conditions are not satisfied, the runtime must return XR_ERROR_PATH_INVALID:

  • Each path provided is one of:

    • /user/head

    • /user/hand/left

    • /user/hand/right

    • /user/gamepad

    • /user

  • No path appears in the list more than once

Including /user in the list of subaction paths creates an 'other' bucket for action data to be filtered into. When /user is included in the list passed to xrGetActionState* the runtime must include data for all devices which are not included in the other subaction paths into the /user bucket. Extensions may append additional top level user paths to the above list.

The runtime must return XR_ERROR_PATH_INVALID in the following circumstances:

  • The application specified subaction paths at action creation and the application called xrGetActionState* or a haptic function with an empty subaction path array.

  • The application called xrGetActionState* or a haptic function with a subaction path that was not specified when the action was created.

If actionName or localizedActionName are empty strings, the runtime must return XR_ERROR_NAME_INVALID. If actionName or localizedActionName are duplicates of the corresponding field for any existing action in the specified action set, the runtime must return XR_ERROR_NAME_DUPLICATED. If actionName contains characters which are not allowed in a single level of a well-formed path string, the runtime must return XR_ERROR_PATH_FORMAT_INVALID.

Valid Usage (Implicit)
  • type must be XR_TYPE_ACTION_CREATE_INFO

  • next must be NULL

  • actionName must be a null-terminated UTF-8 string whose length is less than or equal to XR_MAX_ACTION_NAME_SIZE

  • actionType must be a valid XrActionType value

  • If countSubactionPaths is not 0, countSubactionPaths must be a valid uint32_t value

  • If countSubactionPaths is not 0, subactionPaths must be a pointer to an array of countSubactionPaths XrPath values

  • localizedActionName must be a null-terminated UTF-8 string whose length is less than or equal to XR_MAX_LOCALIZED_ACTION_NAME_SIZE

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrActionSetCreateInfo(3)

Name

XrActionSetCreateInfo - XrActionSet creation info

C Specification

The XrActionSetCreateInfo is defined as:

typedef struct XrActionSetCreateInfo {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    char                        actionSetName[XR_MAX_ACTION_SET_NAME_SIZE];
    char                        localizedActionSetName[XR_MAX_LOCALIZED_ACTION_SET_NAME_SIZE];
    uint32_t                    priority;
} XrActionSetCreateInfo;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • actionSetName is an array containing a NULL terminated non-empty string with the name of this action set.

  • localizedActionSetName is an array containing a NULL terminated UTF-8 string that can be presented to the user as a description of the action set. This string should be presented in the system’s current active locale.

  • priority defines which action sets' actions are active on a given input source when actions on multiple active action sets are bound to the same input source. Larger priority numbers take precedence over smaller priority numbers.

Description

When multiple actions are bound to the same input source, the priority of each action set determines which bindings are suppressed. Runtimes must ignore bindings from action sets with a lower priority number if those specific bindings are also present in active actions within a higher priority action set. If multiple action sets with the same priority are bound to the same input source and that is the highest priority number, runtimes must process all those bindings at the same time.

Two actions are considered to be bound to the same input source if they use the same identifier and optional location path segments, even if they have different component segments.

When runtimes are ignoring bindings because of priority, they must treat the binding to that input source as though they do not exist. That means the isActive field must be false when retrieving action data, and that the runtime must not provide any visual, haptic, or other feedback related to the binding of that action to that input source. Other actions in the same action set which are bound to input sources that do not collide are not affected and are processed as normal.

If actionSetName or localizedActionSetName are empty strings, the runtime must return XR_ERROR_NAME_INVALID. If actionSetName or localizedActionSetName are duplicates of the corresponding field for any existing action set in the specified session, the runtime must return XR_ERROR_NAME_DUPLICATED. If actionSetName contains characters which are not allowed in a single level of a well-formed path string, the runtime must return XR_ERROR_PATH_FORMAT_INVALID.

Valid Usage (Implicit)
  • type must be XR_TYPE_ACTION_SET_CREATE_INFO

  • next must be NULL

  • actionSetName must be a null-terminated UTF-8 string whose length is less than or equal to XR_MAX_ACTION_SET_NAME_SIZE

  • localizedActionSetName must be a null-terminated UTF-8 string whose length is less than or equal to XR_MAX_LOCALIZED_ACTION_SET_NAME_SIZE

  • priority must be a valid uint32_t value

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrActionSpaceCreateInfo(3)

Name

XrActionSpaceCreateInfo - Creation info for an action space

C Specification

The XrActionSpaceCreateInfo structure is defined as:

typedef struct XrActionSpaceCreateInfo {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    XrPath                      subactionPath;
    XrPosef                     poseInActionSpace;
} XrActionSpaceCreateInfo;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • subactionPath is XR_NULL_PATH or an XrPath that was specified when the action was created as valid to filter on. If this parameter is set, the runtime must create a space that is relative to only that subaction’s pose binding.

  • poseInActionSpace is an XrPosef defining the position and orientation of the new space’s origin within the natural reference frame of the pose action.

Description

Valid Usage (Implicit)
  • type must be XR_TYPE_ACTION_SPACE_CREATE_INFO

  • next must be NULL

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrActionStateBoolean(3)

Name

XrActionStateBoolean - Boolean action state

C Specification

The XrActionStateBoolean structure is defined as:

typedef struct XrActionStateBoolean {
    XrStructureType       type;
    void* XR_MAY_ALIAS    next;
    XrBool32              currentState;
    XrBool32              changedSinceLastSync;
    XrTime                lastChangeTime;
    XrBool32              isActive;
} XrActionStateBoolean;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • currentState is the current state of the action.

  • changedSinceLastSync is XR_TRUE if the value of currentState is different than it was before the most recent call to xrSyncActionData. This parameter can be combined with currentState to detect rising and falling edges since the previous call to xrSyncActionData. E.g. if both changedSinceLastSync and currentState are true then a rising edge (XR_FALSE to XR_TRUE) has taken place.

  • lastChangeTime is the XrTime in nanoseconds since this action’s value last changed.

  • isActive is XR_TRUE if and only if there exists an input source that is contributing to the current state of this action.

Description

See XrActionCreateInfo for a description of subaction paths, and the restrictions on their use.

Valid Usage (Implicit)
  • type must be XR_TYPE_ACTION_STATE_BOOLEAN

  • next must be NULL

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrActionStatePose(3)

Name

XrActionStatePose - Pose action metadata

C Specification

The XrActionStatePose structure is defined as:

typedef struct XrActionStatePose {
    XrStructureType       type;
    void* XR_MAY_ALIAS    next;
    XrBool32              isActive;
} XrActionStatePose;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • isActive is XR_TRUE if and only if there exists an input source that is being tracked by this pose action.

Description

Valid Usage (Implicit)
  • type must be XR_TYPE_ACTION_STATE_POSE

  • next must be NULL

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrActionStateVector1f(3)

Name

XrActionStateVector1f - Floating point action state

C Specification

The XrActionStateVector1f structure is defined as:

typedef struct XrActionStateVector1f {
    XrStructureType       type;
    void* XR_MAY_ALIAS    next;
    float                 currentState;
    XrBool32              changedSinceLastSync;
    XrTime                lastChangeTime;
    XrBool32              isActive;
} XrActionStateVector1f;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • currentState is the current state of the Action.

  • changedSinceLastSync is XR_TRUE if the value of currentState is different than it was before the most recent call to xrSyncActionData.

  • lastChangeTime is the XrTime in nanoseconds since this action’s value last changed.

  • isActive is XR_TRUE if and only if there exists an input source that is contributing to the current state of this action.

Description

Valid Usage (Implicit)
  • type must be XR_TYPE_ACTION_STATE_VECTOR1F

  • next must be NULL

  • currentState must be a valid float value

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrActionStateVector2f(3)

Name

XrActionStateVector2f - 2d float vector action state

C Specification

The XrActionStateVector2f structure is defined as:

typedef struct XrActionStateVector2f {
    XrStructureType       type;
    void* XR_MAY_ALIAS    next;
    XrVector2f            currentState;
    XrBool32              changedSinceLastSync;
    XrTime                lastChangeTime;
    XrBool32              isActive;
} XrActionStateVector2f;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • currentState is the current XrVector2f state of the Action.

  • changedSinceLastSync is XR_TRUE if the value of currentState is different than it was before the most recent call to xrSyncActionData.

  • lastChangeTime is the XrTime in nanoseconds since this action’s value last changed.

  • isActive is XR_TRUE if and only if there exists an input source that is contributing to the current state of this action.

Description

Valid Usage (Implicit)
  • type must be XR_TYPE_ACTION_STATE_VECTOR2F

  • next must be NULL

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrActionSuggestedBinding(3)

Name

XrActionSuggestedBinding - Suggested binding for a single action

C Specification

The XrActionSuggestedBinding structure is defined as:

typedef struct XrActionSuggestedBinding {
    XrAction    action;
    XrPath      binding;
} XrActionSuggestedBinding;

Members

Member Descriptions
  • action is the XrAction handle for an action

  • binding is the XrPath of a binding for the action specified in action. This path is any top level user path plus input source path, for example /user/hand/right/input/trigger/click. See suggested bindings for more details.

Description

Valid Usage (Implicit)
  • action must be a valid XrAction handle

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrActiveActionSet(3)

Name

XrActiveActionSet - Describes an active action set

C Specification

The XrActiveActionSet structure is defined as:

typedef struct XrActiveActionSet {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    XrActionSet                 actionSet;
    XrPath                      subactionPath;
} XrActiveActionSet;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • actionSet is the handle of the action set to activate.

  • subactionPath is the handle of a subaction path that was declared when one or more actions in the action set was created or XR_PATH_NULL if the actions in this action set were not declared with subaction paths. If the application wants to activate the action set on more than one subaction path, it can include additional XrActiveActionSet structs with the other subactionPaths.

Description

This structure defines a single active action set and subaction path combination. Applications provide a list of these structures via the xrSyncActionData function.

Valid Usage (Implicit)
  • type must be XR_TYPE_ACTIVE_ACTION_SET

  • next must be NULL

  • actionSet must be a valid XrActionSet handle

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrApiLayerProperties(3)

Name

XrApiLayerProperties - Structure specifying layer properties

C Specification

The XrApiLayerProperties structure is defined as:

typedef struct XrApiLayerProperties {
    XrStructureType       type;
    void* XR_MAY_ALIAS    next;
    char                  layerName[XR_MAX_API_LAYER_NAME_SIZE];
    uint32_t              specVersion;
    uint32_t              implementationVersion;
    char                  description[XR_MAX_API_LAYER_DESCRIPTION_SIZE];
} XrApiLayerProperties;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • layerName is a string specifying the name of the API layer. Use this name in the XrInstanceCreateInfo::enabledApiLayerNames array to enable this API layer for an instance.

  • specVersion is the API version the API layer was written to, encoded as described in the API Version Numbers and Semantics section.

  • implementationVersion is the version of this API layer. It is an integer, increasing with backward compatible changes.

  • description is a string providing additional details that can be used by the application to identify the API layer.

Description

Valid Usage (Implicit)
  • type must be XR_TYPE_API_LAYER_PROPERTIES

  • next must be NULL

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrApplicationInfo(3)

Name

XrApplicationInfo - Structure specifying application info

C Specification

The XrApplicationInfo structure is defined as:

typedef struct XrApplicationInfo {
    char        applicationName[XR_MAX_APPLICATION_NAME_SIZE];
    uint32_t    applicationVersion;
    char        engineName[XR_MAX_ENGINE_NAME_SIZE];
    uint32_t    engineVersion;
    uint32_t    apiVersion;
} XrApplicationInfo;

Members

Member Descriptions
  • applicationName is a string containing the name of the application.

  • applicationVersion is an unsigned integer variable containing the developer-supplied version number of the application.

  • engineName is a string containing the name of the engine (if any) used to create the application. May be empty to indicate no specified engine.

  • engineVersion is an unsigned integer variable containing the developer-supplied version number of the engine used to create the application. May be zero to indicate no specified engine.

  • apiVersion is the version of this API against which the application will run, encoded as described in the API Version Numbers and Semantics section. If the runtime does not support the requested apiVersion it must return XR_ERROR_DRIVER_INCOMPATIBLE. apiVersion must be zero, or otherwise it must be a version that the runtime supports, or supports an effective substitute for.

Description

Valid Usage (Implicit)
  • applicationName must be a null-terminated UTF-8 string whose length is less than or equal to XR_MAX_APPLICATION_NAME_SIZE

  • applicationVersion must be a valid uint32_t value

  • engineName must be a null-terminated UTF-8 string whose length is less than or equal to XR_MAX_ENGINE_NAME_SIZE

  • engineVersion must be a valid uint32_t value

  • apiVersion must be a valid uint32_t value

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrBaseInStructure(3)

Name

XrBaseInStructure - Convenience type for iterating (read only)

C Specification

The XrBaseInStructure structure is defined as:

typedef struct XrBaseInStructure {
    XrStructureType                    type;
    const struct XrBaseInStructure*    next;
} XrBaseInStructure;

Members

Member Descriptions
  • type is the XrStructureType of this structure. This base structure itself has no associated XrStructureType value.

  • next is NULL or a pointer to an extension-specific structure.

Description

XrBaseInStructure can be used to facilitate iterating through a read-only structure pointer chain.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrBaseOutStructure(3)

Name

XrBaseOutStructure - Convenience type for iterating (mutable)

C Specification

The XrBaseOutStructure structure is defined as:

typedef struct XrBaseOutStructure {
    XrStructureType               type;
    struct XrBaseOutStructure*    next;
} XrBaseOutStructure;

Members

Member Descriptions
  • type is the XrStructureType of this structure. This base structure itself has no associated XrStructureType value.

  • next is NULL or a pointer to an extension-specific structure.

Description

XrBaseOutStructure can be used to facilitate iterating through a structure pointer chain that returns data back to the application.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrColor4f(3)

Name

XrColor4f - Color Vector

C Specification

The XrColor4f structure is defined as:

typedef struct XrColor4f {
    float    r;
    float    g;
    float    b;
    float    a;
} XrColor4f;

Members

Member Descriptions
  • r is the red component of the color.

  • g is the green component of the color.

  • b is the blue component of the color.

  • a is the alpha component of the color.

Description

Unless otherwise specified, colors are encoded as linear (not with sRGB nor other gamma compression) values with individual components being in the range of 0.0 through 1.0, and without the RGB components being premultiplied by the alpha component.

See Also

No cross-references are available

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrCompositionLayerBaseHeader(3)

Name

XrCompositionLayerBaseHeader - Composition layer base header

C Specification

The XrCompositionLayerBaseHeader structure is defined as:

typedef struct XrCompositionLayerBaseHeader {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    XrCompositionLayerFlags     layerFlags;
    XrSpace                     space;
} XrCompositionLayerBaseHeader;

Members

Member Descriptions
  • type is the XrStructureType of this structure. This base structure itself has no associated XrStructureType value.

  • next is NULL or a pointer to an extension-specific structure.

  • layerFlags is a bitmask of XrCompositionLayerFlagBits describing flags to apply to the layer.

  • space is the XrSpace in which the layer will be kept stable over time.

Description

All composition layer structures begin with the elements described in the XrCompositionLayerBaseHeader. The XrCompositionLayerBaseHeader struct is not intended to be directly used, but forms a basis for defining current and future structures containing composition layer information. The XrFrameEndInfo structure contains an array of pointers to these polymorphic header structures. All composition layer type pointers must be type-castable as an XrCompositionLayerBaseHeader pointer.

Valid Usage (Implicit)
  • type must be one of the following XrStructureType values: XR_TYPE_COMPOSITION_LAYER_PROJECTION, XR_TYPE_COMPOSITION_LAYER_QUAD, XR_TYPE_COMPOSITION_LAYER_CUBE_KHR, XR_TYPE_COMPOSITION_LAYER_CYLINDER_KHR, XR_TYPE_COMPOSITION_LAYER_EQUIRECT_KHR

  • next must be NULL

  • layerFlags must be 0 or a valid combination of XrCompositionLayerFlagBits values

  • space must be a valid XrSpace handle

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrCompositionLayerCubeKHR(3)

Name

XrCompositionLayerCubeKHR - Cube map layer composition info

C Specification

The XrCompositionLayerCubeKHR structure is defined as:

typedef struct XrCompositionLayerCubeKHR {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    XrCompositionLayerFlags     layerFlags;
    XrSpace                     space;
    XrEyeVisibility             eyeVisibility;
    XrSwapchain                 swapchain;
    uint32_t                    imageArrayIndex;
    XrQuaternionf               orientation;
    XrVector3f                  offset;
} XrCompositionLayerCubeKHR;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • layerFlags is any flags to apply to this layer.

  • space is the XrSpace in which the orientation of the cube layer is evaluated over time.

  • eye is the eye represented by this layer.

  • swapchain is the swapchain.

  • imageArrayIndex is the image array index, with 0 meaning the first or only array element.

  • orientation is the orientation of the environment map in the space.

  • offset is an offsetting vector which must be added to the direction vector. {0,0,0} indicates the default behavior of no offset.

Description

XrCompositionLayerCubeKHR contains the information needed to render a cube map when calling xrEndFrame. XrCompositionLayerCubeKHR is an alias type for the base struct XrCompositionLayerBaseHeader used in XrFrameEndInfo.

Valid Usage (Implicit)

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrCompositionLayerCylinderKHR(3)

Name

XrCompositionLayerCylinderKHR - Cylindrical layer composition info

C Specification

The XrCompositionLayerCylinderKHR structure is defined as:

typedef struct XrCompositionLayerCylinderKHR {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    XrCompositionLayerFlags     layerFlags;
    XrSpace                     space;
    XrEyeVisibility             eyeVisibility;
    XrSwapchainSubImage         subImage;
    XrPosef                     pose;
    float                       radius;
    float                       centralAngle;
    float                       aspectRatio;
} XrCompositionLayerCylinderKHR;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • layerFlags specifies options for the layer.

  • space is the XrSpace in which the pose of the cylinder layer is evaluated over time.

  • eye is the eye represented by this layer.

  • subImage identifies the image XrSwapchainSubImage to use.

  • pose is an XrPosef defining the position and orientation of the center point of the view of the cylinder within the reference frame of the space.

  • radius is the radius of the cylinder.

  • centralAngle is the angle of the visible section of the cylinder, based at 0 radians, in the range of [0, 2*Pi). It grows symmetrically around the 0 radian angle.

  • aspectRatio is the ratio of the visible cylinder section width / height. The height of the cylinder is given by: (cylinder radius * cylinder angle) / aspectRatio.

Description

XrCompositionLayerCylinderKHR contains the information needed to render a texture onto a cylinder when calling xrEndFrame. XrCompositionLayerCylinderKHR is an alias type for the base struct XrCompositionLayerBaseHeader used in XrFrameEndInfo.

Valid Usage (Implicit)

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrCompositionLayerDepthInfoKHR(3)

Name

XrCompositionLayerDepthInfoKHR - Depth map layer info

C Specification

When submitting depth buffers along with projection layers, add the XrCompositionLayerDepthInfoKHR to the next chain for all XrCompositionLayerProjectionView structures in the given layer.

The XrCompositionLayerDepthInfoKHR structure is defined as:

typedef struct XrCompositionLayerDepthInfoKHR {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    XrSwapchainSubImage         subImage;
    float                       minDepth;
    float                       maxDepth;
    float                       nearZ;
    float                       farZ;
} XrCompositionLayerDepthInfoKHR;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • subImage identifies the depth image XrSwapchainSubImage to be associated with the color swapchain. The contained imageRect specifies the valid portion of the depth image to use, in pixels. The contained imageArrayIndex is the depth image array index, with 0 meaning the first or only array element.

  • minDepth and maxDepth are the range of depth values the depthSwapchain could have, in the range of [0.0,1.0]. This is akin to min and max values of OpenGL’s glDepthRange, but with the requirement here that maxDepth >= minDepth.

  • nearZ is the positive distance in meters of the minDepth value in the depth swapchain. Apps may use a nearZ that is greater than farZ to indicate depth values are reversed. nearZ can be infinite.

  • farZ is the positive distance in meters of the maxDepth value in the depth swapchain. farZ can be infinite. Apps must not use the same value as nearZ.

Description

XrCompositionLayerDepthInfoKHR contains the information needed to specify an extra layer with depth information. When submitting depth buffers along with projection layers, add the XrCompositionLayerDepthInfoKHR to the next chain for all XrCompositionLayerProjectionView structures in the given layer.

Valid Usage (Implicit)

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrCompositionLayerEquirectKHR(3)

Name

XrCompositionLayerEquirectKHR - Equirectangular layer composition info

C Specification

The XrCompositionLayerEquirectKHR structure is defined as:

typedef struct XrCompositionLayerEquirectKHR {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    XrCompositionLayerFlags     layerFlags;
    XrSpace                     space;
    XrEyeVisibility             eyeVisibility;
    XrSwapchainSubImage         subImage;
    XrPosef                     pose;
    XrVector3f                  offset;
    XrVector2f                  scale;
    XrVector2f                  bias;
} XrCompositionLayerEquirectKHR;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • layerFlags specifies options for the layer.

  • space is the XrSpace in which the pose of the equirect layer is evaluated over time.

  • eye is the eye represented by this layer.

  • subImage identifies the image XrSwapchainSubImage to use.

  • pose is an XrPosef defining the position and orientation of the center point of the view of the equirect layer within the reference frame of the space.

  • offset is an XrOffset2Df indicating the center of projection for this swapchain.

  • scale is an XrVector2f indicating a scale of the texture coordinates after the mapping to 2D.

  • bias is an XrVector2f indicating a bias of the texture coordinates after the mapping to 2D.

Description

XrCompositionLayerEquirectKHR contains the information needed to render an equirectangular image onto a sphere when calling xrEndFrame. XrCompositionLayerEquirectKHR is an alias type for the base struct XrCompositionLayerBaseHeader used in XrFrameEndInfo.

Valid Usage (Implicit)

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrCompositionLayerProjection(3)

Name

XrCompositionLayerProjection - Composition layer for projection

C Specification

The XrCompositionLayerProjection structure is defined as:

typedef struct XrCompositionLayerProjection {
    XrStructureType                            type;
    const void* XR_MAY_ALIAS                   next;
    XrCompositionLayerFlags                    layerFlags;
    XrSpace                                    space;
    uint32_t                                   viewCount;
    const XrCompositionLayerProjectionView*    views;
} XrCompositionLayerProjection;

Members

Member Descriptions

Description

Note

Because a runtime may reproject the layer over time, a projection layer should specify an XrSpace in which to maximize stability of the layer content. For example, a projection layer containing world-locked content should use a XrSpace which is also world-locked, such as the LOCAL or STAGE reference spaces. In the case that the projection layer should be head-locked, such as a heads up display, the VIEW reference space would provide the highest quality layer reprojection.

Valid Usage (Implicit)
  • type must be XR_TYPE_COMPOSITION_LAYER_PROJECTION

  • next must be NULL

  • layerFlags must be 0 or a valid combination of XrCompositionLayerFlagBits values

  • space must be a valid XrSpace handle

  • viewCount must be a valid uint32_t value

  • views must be a pointer to an array of viewCount valid XrCompositionLayerProjectionView structures

  • viewCount must be greater than 0

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrCompositionLayerProjectionView(3)

Name

XrCompositionLayerProjectionView - Projection layer element

C Specification

The XrCompositionLayerProjectionView structure is defined as:

typedef struct XrCompositionLayerProjectionView {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    XrPosef                     pose;
    XrFovf                      fov;
    XrSwapchainSubImage         subImage;
} XrCompositionLayerProjectionView;

Members

Member Descriptions

Description

The count and order of view poses submitted with XrCompositionLayerProjection must be the same order as that returned by xrLocateViews. The XrCompositionLayerProjectionView::pose and XrCompositionLayerProjectionView::fov should almost always derive from XrView::pose and XrView::fov as found in the xrLocateViews::views array. However, applications may submit an XrCompositionLayerProjectionView which has a different view or FOV than that from xrLocateViews. In this case, the runtime will map the view and FOV to the system display appropriately. In the case that two submitted views within a single layer overlap, they are composited in view array order. In the case that submitted projection layers overlap, they are composited in layer array order.

Valid Usage (Implicit)

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrCompositionLayerQuad(3)

Name

XrCompositionLayerQuad - Quad composition layer

C Specification

The XrCompositionLayerQuad structure defined as:

typedef struct XrCompositionLayerQuad {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    XrCompositionLayerFlags     layerFlags;
    XrSpace                     space;
    XrEyeVisibility             eyeVisibility;
    XrSwapchainSubImage         subImage;
    XrPosef                     pose;
    XrVector2f                  size;
} XrCompositionLayerQuad;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • layerFlags is a bitmask of XrCompositionLayerFlagBits describing flags to apply to the layer.

  • space is the XrSpace in which the pose of the quad layer is evaluated over time.

  • eyeVisibility is the XrEyeVisibility for this layer.

  • subImage is the image layer XrSwapchainSubImage to use.

  • pose is an XrPosef defining the position and orientation of the quad in the reference frame of the space.

  • size is the x and y size of the quad.

Description

The XrCompositionLayerQuad layer is useful for user interface elements or 2D content rendered into the virtual world. The layer’s XrSwapchainSubImage::swapchain image is applied to a quad in the virtual world space. Only front face of the quad surface is visible; the back face is not visible and must not be drawn by the runtime. A quad layer has no thickness; it is a two-dimensional object positioned and oriented in 3D space. The position of a quad refers to the center of the quad within the given XrSpace. The orientation of the quad refers to the orientation of the normal vector from the front face. The size of a quad refers to the quad’s size in the x-y plane of the given XrSpace’s coordinate system. A quad with a position of {0,0,0}, rotation of {0,0,0,1} (no rotation), and a size of {1,1} refers to a 1 meter x 1 meter quad centered at {0,0,0} with its front face normal vector coinciding with the +z axis.

Valid Usage (Implicit)

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrDebugUtilsLabelEXT(3)

Name

XrDebugUtilsLabelEXT - Debug Utils Label

C Specification

typedef struct XrDebugUtilsLabelEXT {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    const char*                 labelName;
} XrDebugUtilsLabelEXT;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • labelName is a NULL terminated UTF-8 string specifying the label name.

Description

Valid Usage (Implicit)

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrDebugUtilsMessengerCallbackDataEXT(3)

Name

XrDebugUtilsMessengerCallbackDataEXT - Debug utils messenger callback data

C Specification

typedef struct XrDebugUtilsMessengerCallbackDataEXT {
    XrStructureType                   type;
    const void* XR_MAY_ALIAS          next;
    const char*                       messageId;
    const char*                       functionName;
    const char*                       message;
    uint32_t                          objectCount;
    XrDebugUtilsObjectNameInfoEXT*    objects;
    uint32_t                          sessionLabelCount;
    XrDebugUtilsLabelEXT*             sessionLabels;
} XrDebugUtilsMessengerCallbackDataEXT;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • messageId is a NULL terminated string that identifies the message in a unique way. If the callback is triggered by a validation layer, this string corresponds the Valid Usage ID (VUID) that can be used to jump to the appropriate location in the OpenXR specification. This value may be NULL if no unique message identifier is associated with the message.

  • functionName is a NULL terminated string that identifies the OpenXR function that was executing at the time the message callback was triggered. This value may be NULL in cases where it is difficult to determine the originating OpenXR function.

  • message is a NULL terminated string detailing the trigger conditions.

  • objectCount is a count of items contained in the objects array. This may be 0.

  • objects is a pointer to an array of XrDebugUtilsObjectNameInfoEXT objects related to the detected issue. The array is roughly in order or importance, but the 0th element is always guaranteed to be the most important object for this message.

  • sessionLabelCount is a count of items contained in the sessionLabels array. This may be 0.

  • sessionLabels is a pointer to an array of XrDebugUtilsLabelEXT objects related to the detected issue. The array is roughly in order or importance, but the 0th element is always guaranteed to be the most important object for this message.

  • sessionLabels is NULL or a pointer to an array of XrDebugUtilsLabelEXT active in the current XrSession at the time the callback was triggered. Refer to Session Labels for more information.

Description

Valid Usage (Implicit)
  • The [XR_EXT_debug_utils] extension must be enabled prior to using XrDebugUtilsMessengerCallbackDataEXT

  • type must be XR_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT

  • next must be NULL

  • messageId must be a null-terminated UTF-8 string

  • functionName must be a null-terminated UTF-8 string

  • message must be a null-terminated UTF-8 string

  • If objectCount is not 0, objectCount must be a valid uint32_t value

  • If sessionLabelCount is not 0, sessionLabelCount must be a valid uint32_t value

An XrDebugUtilsMessengerCallbackDataEXT is a messenger object that handles passing along debug messages to a provided debug callback.

Note

This structure should only be considered valid during the lifetime of the triggered callback.

The labels listed inside sessionLabels are organized in time order, with the most recently generated label appearing first, and the oldest label appearing last.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrDebugUtilsMessengerCreateInfoEXT(3)

Name

XrDebugUtilsMessengerCreateInfoEXT - Debug utils messenger create info

C Specification

typedef struct XrDebugUtilsMessengerCreateInfoEXT {
    XrStructureType                         type;
    const void* XR_MAY_ALIAS                next;
    XrDebugUtilsMessageSeverityFlagsEXT     messageSeverities;
    XrDebugUtilsMessageTypeFlagsEXT         messageTypes;
    PFN_xrDebugUtilsMessengerCallbackEXT    userCallback;
    void* XR_MAY_ALIAS                      userData;
} XrDebugUtilsMessengerCreateInfoEXT;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • messageSeverities is a bitmask of XrDebugUtilsMessageSeverityFlagBitsEXT specifying which severity of event(s) that will cause this callback to be called.

  • messageTypes is a combination of XrDebugUtilsMessageTypeFlagBitsEXT specifying which type of event(s) will cause this callback to be called.

  • userCallback is the application defined callback function to call.

  • userData is arbitrary user data to be passed to the callback.

Description

Valid Usage
  • userCallback must be a valid PFN_xrDebugUtilsMessengerCallbackEXT

Valid Usage (Implicit)

For each XrDebugUtilsMessengerEXT that is created the XrDebugUtilsMessengerCreateInfoEXT::messageSeverities and XrDebugUtilsMessengerCreateInfoEXT::messageTypes determine when that XrDebugUtilsMessengerCreateInfoEXT::userCallback is called. The process to determine if the user’s userCallback is triggered when an event occurs is as follows:

The callback will come directly from the component that detected the event, unless some other layer intercepts the calls for its own purposes (filter them in a different way, log to a system error log, etc.).

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrDebugUtilsObjectNameInfoEXT(3)

Name

XrDebugUtilsObjectNameInfoEXT - Debug utils object name info

C Specification

typedef struct XrDebugUtilsObjectNameInfoEXT {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    XrObjectType                objectType;
    uint64_t                    objectHandle;
    const char*                 objectName;
} XrDebugUtilsObjectNameInfoEXT;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • objectType is an XrObjectType specifying the type of the object to be named.

  • objectHandle is the object to be named.

  • objectName is a NULL terminated UTF-8 string specifying the name to apply to objectHandle.

Description

Valid Usage
  • If objectType is XR_OBJECT_TYPE_UNKNOWN, objectHandle must not be XR_NULL_HANDLE

  • If objectType is not XR_OBJECT_TYPE_UNKNOWN, objectHandle must be XR_NULL_HANDLE or an OpenXR handle of the type associated with objectType

Valid Usage (Implicit)
  • The [XR_EXT_debug_utils] extension must be enabled prior to using XrDebugUtilsObjectNameInfoEXT

  • type must be XR_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT

  • next must be NULL

  • objectType must be a valid XrObjectType value

  • objectHandle must be a valid uint64_t value

  • If objectName is not NULL, objectName must be a null-terminated UTF-8 string

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrEventDataBaseHeader(3)

Name

XrEventDataBaseHeader - Base header for an event

C Specification

The XrEventDataBaseHeader is defined as:

typedef struct XrEventDataBaseHeader {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
} XrEventDataBaseHeader;

Members

Parameter Descriptions
  • type is the XrStructureType of this structure. This base structure itself has no associated XrStructureType value.

  • next is NULL or a pointer to an extension-specific structure.

Description

The XrEventDataBaseHeader is a generic structure used to identify the common event data elements.

Upon receipt, the XrEventDataBaseHeader pointer should be type-cast to a pointer of the appropriate event data based on the type parameter.

Valid Usage (Implicit)
  • type must be one of the following XrStructureType values: XR_TYPE_EVENT_DATA_EVENTS_LOST, XR_TYPE_EVENT_DATA_INSTANCE_LOSS_PENDING, XR_TYPE_EVENT_DATA_SESSION_STATE_CHANGED, XR_TYPE_EVENT_DATA_REFERENCE_SPACE_CHANGE_PENDING, XR_TYPE_EVENT_DATA_INTERACTION_PROFILE_CHANGED, XR_TYPE_EVENT_DATA_VISIBILITY_MASK_CHANGED_KHR, XR_TYPE_EVENT_DATA_PERF_SETTINGS_EXT

  • next must be NULL

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrEventDataBuffer(3)

Name

XrEventDataBuffer - Event buffer

C Specification

The XrEventDataBuffer is a structure passed to xrPollEvent large enough to contain any returned event data element. The maximum size is specified by XR_MAX_EVENT_DATA_SIZE.

It is sufficient to clear the type and next parameters of an XrEventDataBuffer when passing it as an input to xrPollEvent.

An XrEventDataBuffer may be type-cast to an XrEventDataBaseHeader pointer or a pointer to any other appropriate event data based on the type parameter.

typedef struct XrEventDataBuffer {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    uint8_t                     varying[4000];
} XrEventDataBuffer;

Members

Parameter Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • varying is a fixed sized output buffer big enough to hold returned data elements for all specified event data types.

Description

Valid Usage (Implicit)
  • type must be XR_TYPE_EVENT_DATA_BUFFER

  • next must be NULL

  • Any given element of varying must be a valid uint8_t value

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrEventDataEventsLost(3)

Name

XrEventDataEventsLost - Event indicating events were lost

C Specification

The XrEventDataEventsLost is defined as:

typedef struct XrEventDataEventsLost {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    uint32_t                    lostEventCount;
} XrEventDataEventsLost;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • lostEventCount is the number of events which have overflowed since the last call to xrPollEvent.

Description

Receiving the XrEventDataEventsLost event structure indicates that the event queue overflowed and some events were removed at the position within the queue at which this event was found.

Valid Usage (Implicit)
  • type must be XR_TYPE_EVENT_DATA_EVENTS_LOST

  • next must be NULL

  • lostEventCount must be a valid uint32_t value

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrEventDataInstanceLossPending(3)

Name

XrEventDataInstanceLossPending - Event indicating instance loss will occur

C Specification

typedef struct XrEventDataInstanceLossPending {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    XrTime                      lossTime;
} XrEventDataInstanceLossPending;

Members

Receiving the XrEventDataInstanceLossPending event structure indicates that the application is about to lose the indicated XrInstance at the indicated lossTime in the future. The application should call xrDestroyInstance and relinquish any instance-specific resources. This typically occurs to make way for a replacement of the underlying runtime, such as via a software update.

Description

After the application has destroyed all of its instances and their children and waited past the specified time, it may then re-try xrCreateInstance in a loop waiting for whatever maintenance the runtime is performing to complete. The runtime will return XR_ERROR_INSTANCE_LOST from xrCreateInstance as long as it is unable to create the instance. Once the runtime has returned and is able to continue, it must resume returning XR_SUCCESS from xrCreateInstance if valid data is passed in.

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • lossTime is the absolute time at which the indicated instance will be considered lost and become unusable.

Valid Usage (Implicit)
  • type must be XR_TYPE_EVENT_DATA_INSTANCE_LOSS_PENDING

  • next must be NULL

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrEventDataInteractionProfileChanged(3)

Name

XrEventDataInteractionProfileChanged - Notifies the application than the active interaction profile has changed

C Specification

The XrEventDataInteractionProfileChanged structure is defined as:

typedef struct XrEventDataInteractionProfileChanged {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
} XrEventDataInteractionProfileChanged;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

Description

The XrEventDataInteractionProfileChanged event is sent to the application to notify it that the active input form factor for one or more top level user paths has changed. This event must only be sent for interaction profiles that the application indicated its support for via xrSetInteractionProfileSuggestedBindings. This event must only be sent for running sessions.

The application can call xrGetCurrentInteractionProfile if it wants to change its own behavior based on the active hardware.

Valid Usage (Implicit)
  • type must be XR_TYPE_EVENT_DATA_INTERACTION_PROFILE_CHANGED

  • next must be NULL

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

Unresolved directive in apispec.txt - include::XrEventDataPerfSettingsEXT.txt[]

XrEventDataReferenceSpaceChangePending(3)

Name

XrEventDataReferenceSpaceChangePending - Notifies the application that a reference space is changing

C Specification

The XrEventDataReferenceSpaceChangePending event is sent to the application to notify it that the origin (and perhaps the bounds) of a reference space is changing. This may occur due to the user recentering the space explicitly, or the runtime otherwise switching to a different space definition.

The reference space change must only take effect for xrLocateSpace or xrLocateViews calls whose XrTime parameter is greater than or equal to the changeTime provided in that event. Runtimes should provide a changeTime to apps that allows for a deep render pipeline to present frames that are already in flight using the previous definition of the space. Runtimes should choose a changeTime that is midway between the displayTime of future frames to avoid threshold issues with apps that calculate future frame times using displayPeriod.

The pose provided here must only describe the change in the natural origin of the reference space and must not incorporate any origin offsets specified by the app during calls to xrCreateReferenceSpace. If the runtime does not know the relationship between the new and the previous space, poseValid must be false, and the position and orientation of the pose are undefined.

typedef struct XrEventDataReferenceSpaceChangePending {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    XrReferenceSpaceType        referenceSpaceType;
    XrTime                      changeTime;
    XrBool32                    poseValid;
    XrPosef                     poseInPreviousSpace;
} XrEventDataReferenceSpaceChangePending;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • referenceSpaceType is the XrReferenceSpaceType that is changing.

  • changeTime is the target XrTime after which xrLocateSpace or xrLocateViews will return values that respect this change.

  • poseValid is true if the runtime can determine the pose of the new space in the previous space before the change.

  • poseInPreviousSpace is an XrPosef defining the position and orientation of the new reference space’s natural origin within the natural reference frame of its previous space.

Description

Valid Usage (Implicit)
  • type must be XR_TYPE_EVENT_DATA_REFERENCE_SPACE_CHANGE_PENDING

  • next must be NULL

  • referenceSpaceType must be a valid XrReferenceSpaceType value

See Also

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrEventDataSessionStateChanged(3)

Name

XrEventDataSessionStateChanged - Event indicating session state changed

C Specification

The XrEventDataSessionStateChanged structure is defined as:

typedef struct XrEventDataSessionStateChanged {
     XrStructureType            type;
    const void* XR_MAY_ALIAS    next;
    XrSession                   session;
    XrSessionState              state;
    XrTime                      time;
} XrEventDataSessionStateChanged;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • session is the XrSession which has changed state.

  • state is the current XrSessionState of the session.

  • time is an XrTime which indicates the time of the state change.

Description

Receiving the XrEventDataSessionStateChanged event structure indicates that the application has changed lifecycle state.

Valid Usage (Implicit)
  • type must be XR_TYPE_EVENT_DATA_SESSION_STATE_CHANGED

  • next must be NULL

  • session must be a valid XrSession handle

  • state must be a valid XrSessionState value

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrEventDataVisibilityMaskChangedKHR(3)

Name

XrEventDataVisibilityMaskChangedKHR - Visibility Mask

C Specification

The XrEventDataVisibilityMaskChangedKHR struct specifies an event which indicates that a given view mask has changed. The application should respond to the event by calling xrGetVisibilityMaskKHR to retrieve the updated mask. This event is per-view, so if the masks for multiple views in a configuration change then multiple instances of this event will be sent to the application, one per view.

typedef struct XrEventDataVisibilityMaskChangedKHR {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    XrViewConfigurationType     viewConfigurationType;
    uint32_t                    viewIndex;
} XrEventDataVisibilityMaskChangedKHR;

Members

Member Descriptions
  • type is the type of this struct

  • next is NULL or a pointer to an extension-specific structure.

  • viewConfigurationType is the view configuration whose mask has changed.

  • viewIndex is the individual view within the view configuration to which the change refers.

Description

Valid Usage (Implicit)

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrExtensionProperties(3)

Name

XrExtensionProperties - Returns properties of available instance extensions

C Specification

The XrExtensionProperties structure is defined as:

typedef struct XrExtensionProperties {
    XrStructureType       type;
    void* XR_MAY_ALIAS    next;
    char                  extensionName[XR_MAX_EXTENSION_NAME_SIZE];
    uint32_t              specVersion;
} XrExtensionProperties;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • extensionName is a NULL terminated string specifying the name of the extension.

  • specVersion is the version of this extension. It is an integer, incremented with backward compatible changes.

Description

Valid Usage (Implicit)
  • type must be XR_TYPE_EXTENSION_PROPERTIES

  • next must be NULL

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrExtent2Df(3)

Name

XrExtent2Df - Extent in two dimensions

C Specification

A two-dimensional floating-point extent is defined by the structure:

typedef struct XrExtent2Df {
    float    width;
    float    height;
} XrExtent2Df;

Members

Member Descriptions
  • width the floating-point width of the extent.

  • height the floating-point height of the extent.

Description

This structure is used for component values that may be fractional (floating-point). If used to represent physical distances, values must be in meters.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrExtent2Di(3)

Name

XrExtent2Di - Extent in two dimensions

C Specification

A two-dimensional integer extent is defined by the structure:

typedef struct XrExtent2Di {
    int32_t    width;
    int32_t    height;
} XrExtent2Di;

Members

Member Descriptions
  • width the integer width of the extent.

  • height the integer height of the extent.

Description

This variant is for representing discrete values such as texels. For representing physical distances, the floating-point variant must be used instead.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrFovf(3)

Name

XrFovf - Field of view

C Specification

Field of view (FoV) is defined by the structure:

typedef struct XrFovf {
    float    angleLeft;
    float    angleRight;
    float    angleUp;
    float    angleDown;
} XrFovf;

Members

Member Descriptions
  • angleLeft is the angle of the left side of the field of view. For a symmetric field of view this value is negative.

  • angleRight is the angle of the right side of the field of view.

  • angleUp is the angle of the top part of the field of view.

  • angleDown is the angle of the bottom part of the field of view. For a symmetric field of view this value is negative.

Description

Angles to the right of the center and upwards from the center are positive, and angles to the left of the center and down from the center are negative. The total horizontal field of view is angleRight minus angleLeft, and the total vertical field of view is angleUp minus angleDown. For a symmetric FoV, angleRight and angleUp will have positive values, angleLeft will be -angleRight, and angleDown will be -angleUp.

The angles must be specified in radians.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrFrameBeginInfo(3)

Name

XrFrameBeginInfo - Begin frame information

C Specification

The XrFrameBeginInfo structure is defined as:

typedef struct XrFrameBeginInfo {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
} XrFrameBeginInfo;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

Description

Because this structure only exists to support extension-specific structures, xrBeginFrame will accept a NULL argument for frameBeginInfo for applications that are not using any relevant extensions.

Valid Usage (Implicit)
  • type must be XR_TYPE_FRAME_BEGIN_INFO

  • next must be NULL

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrFrameEndInfo(3)

Name

XrFrameEndInfo - End frame information

C Specification

The XrFrameEndInfo structure is defined as:

typedef struct XrFrameEndInfo {
    XrStructureType                               type;
    const void* XR_MAY_ALIAS                      next;
    XrTime                                        displayTime;
    XrEnvironmentBlendMode                        environmentBlendMode;
    uint32_t                                      layerCount;
    const XrCompositionLayerBaseHeader* const*    layers;
} XrFrameEndInfo;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • displayTime is the XrTime at which this frame should be displayed.

  • environmentBlendMode is the XrEnvironmentBlendMode value representing the desired environment blend mode for this frame.

  • layerCount is the number of composition layers in this frame. The maximum supported layer count is identified by XrSystemGraphicsProperties::maxLayerCount. If layerCount is greater than the maximum supported layer count then XR_ERROR_LAYER_LIMIT_EXCEEDED is returned. The runtime must support at least XR_MIN_COMPOSITION_LAYERS_SUPPORTED layers.

  • layers is a pointer to an array of XrCompositionLayerBaseHeader pointers.

Description

Valid Usage (Implicit)
  • type must be XR_TYPE_FRAME_END_INFO

  • next must be NULL

  • environmentBlendMode must be a valid XrEnvironmentBlendMode value

  • If layerCount is not 0, layerCount must be a valid uint32_t value

  • If layerCount is not 0, layers must be a pointer to an array of layerCount valid XrCompositionLayerBaseHeader structures

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrFrameState(3)

Name

XrFrameState - Frame prediction structure

C Specification

The XrFrameState structure is defined as:

typedef struct XrFrameState {
    XrStructureType       type;
    void* XR_MAY_ALIAS    next;
    XrTime                predictedDisplayTime;
    XrDuration            predictedDisplayPeriod;
} XrFrameState;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • predictedDisplayTime is the anticipated display XrTime for the next application-generated frame.

  • predictedDisplayPeriod is the XrDuration of the display period for the next application-generated frame, for use in predicting display times beyond the next one.

Description

XrFrameState describes the time at which the next frame submitted to xrEndFrame will be displayed to the user. predictedDisplayTime must refer to the midpoint of the interval during which the frame is displayed. The runtime may report a different predictedDisplayPeriod from the hardware’s refresh cycle when interpolating submitted frames.

Valid Usage (Implicit)
  • type must be XR_TYPE_FRAME_STATE

  • next must be NULL

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrFrameWaitInfo(3)

Name

XrFrameWaitInfo - Wait frame information structure

C Specification

The XrFrameWaitInfo structure is defined as:

typedef struct XrFrameWaitInfo {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
} XrFrameWaitInfo;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

Description

Because this structure only exists to support extension-specific structures, xrWaitFrame will accept a NULL argument for frameWaitInfo for applications that are not using any relevant extensions.

Valid Usage (Implicit)
  • type must be XR_TYPE_FRAME_WAIT_INFO

  • next must be NULL

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrGraphicsBindingD3D10KHR(3)

Name

XrGraphicsBindingD3D10KHR - The graphics binding structure to be passed at session creation to use D3D10

C Specification

The XrGraphicsBindingD3D10KHR structure is defined as:

typedef struct XrGraphicsBindingD3D10KHR {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    ID3D10Device*               device;
} XrGraphicsBindingD3D10KHR;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • device is a pointer to a valid ID3D10Device to use.

Description

When creating a D3D10-backed XrSession, the application will provide a pointer to an XrGraphicsBindingD3D10KHR in the next chain of the XrSessionCreateInfo.

Valid Usage (Implicit)

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrGraphicsBindingD3D11KHR(3)

Name

XrGraphicsBindingD3D11KHR - The graphics binding structure to be passed at session creation to use D3D11

C Specification

The XrGraphicsBindingD3D11KHR structure is defined as:

typedef struct XrGraphicsBindingD3D11KHR {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    ID3D11Device*               device;
} XrGraphicsBindingD3D11KHR;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • device is a pointer to a valid ID3D11Device to use.

Description

When creating a D3D11-backed XrSession, the application will provide a pointer to an XrGraphicsBindingD3D11KHR in the next chain of the XrSessionCreateInfo.

Valid Usage (Implicit)

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrGraphicsBindingD3D12KHR(3)

Name

XrGraphicsBindingD3D12KHR - The graphics binding structure to be passed at session creation to use D3D12

C Specification

The XrGraphicsBindingD3D12KHR structure is defined as:

typedef struct XrGraphicsBindingD3D12KHR {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    ID3D12Device*               device;
    ID3D12CommandQueue*         queue;
} XrGraphicsBindingD3D12KHR;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • device is a pointer to a valid ID3D12Device to use.

  • queue is a pointer to a valid ID3D12CommandQueue to use.

Description

When creating a D3D12-backed XrSession, the application will provide a pointer to an XrGraphicsBindingD3D12KHR in the next chain of the XrSessionCreateInfo.

Valid Usage (Implicit)
  • The [XR_KHR_D3D12_enable] extension must be enabled prior to using XrGraphicsBindingD3D12KHR

  • type must be XR_TYPE_GRAPHICS_BINDING_D3D12_KHR

  • next must be NULL

  • device must be a pointer to an ID3D12Device value

  • queue must be a pointer to an ID3D12CommandQueue value

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrGraphicsBindingOpenGLESAndroidKHR(3)

Name

XrGraphicsBindingOpenGLESAndroidKHR - The graphics binding structure to be passed at session creation to use OpenGL ES on Android

C Specification

The XrGraphicsBindingOpenGLESAndroidKHR structure is defined as:

typedef struct XrGraphicsBindingOpenGLESAndroidKHR {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    EGLDisplay                  display;
    EGLConfig                   config;
    EGLContext                  context;
} XrGraphicsBindingOpenGLESAndroidKHR;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • display is a valid Android OpenGL ES EGLDisplay.

  • config is a valid Android OpenGL ES EGLConfig.

  • context is a valid Android OpenGL ES EGLContext.

Description

When creating an OpenGL ES-backed XrSession on Android, the application will provide a pointer to an XrGraphicsBindingOpenGLESAndroidKHR in the next chain of the XrSessionCreateInfo.

The required window system configuration define to expose this structure type is XR_USE_PLATFORM_ANDROID.

Valid Usage (Implicit)
  • The [XR_KHR_opengl_es_enable] extension must be enabled prior to using XrGraphicsBindingOpenGLESAndroidKHR

  • type must be XR_TYPE_GRAPHICS_BINDING_OPENGL_ES_ANDROID_KHR

  • next must be NULL

  • display must be a valid EGLDisplay value

  • config must be a valid EGLConfig value

  • context must be a valid EGLContext value

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrGraphicsBindingOpenGLWaylandKHR(3)

Name

XrGraphicsBindingOpenGLWaylandKHR - The graphics binding structure to be passed at session creation to use OpenGL on Wayland

C Specification

The XrGraphicsBindingOpenGLWaylandKHR structure is defined as:

typedef struct XrGraphicsBindingOpenGLWaylandKHR {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    struct wl_display*          display;
} XrGraphicsBindingOpenGLWaylandKHR;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • display is a valid Wayland wl_display.

Description

When creating an OpenGL-backed XrSession on any Linux/Unix platform that utilizes the Wayland protocol with its compositor, the application will provide a pointer to an XrGraphicsBindingOpenGLWin32KHR in the next chain of the XrSessionCreateInfo.

The required window system configuration define to expose this structure type is XR_USE_PLATFORM_WAYLAND.

Valid Usage (Implicit)

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrGraphicsBindingOpenGLWin32KHR(3)

Name

XrGraphicsBindingOpenGLWin32KHR - The graphics binding structure to be passed at session creation to use OpenGL on Windows

C Specification

The XrGraphicsBindingOpenGLWin32KHR structure is defined as:

typedef struct XrGraphicsBindingOpenGLWin32KHR {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    HDC                         hDC;
    HGLRC                       hGLRC;
} XrGraphicsBindingOpenGLWin32KHR;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • hDC is a valid Windows HW device context handle.

  • hGLRC is a valid Windows OpenGL rendering context handle.

Description

When creating an OpenGL-backed XrSession on Microsoft Windows, the application will provide a pointer to an XrGraphicsBindingOpenGLWin32KHR in the next chain of the XrSessionCreateInfo.

The required window system configuration define to expose this structure type is XR_USE_PLATFORM_WIN32.

Valid Usage (Implicit)

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrGraphicsBindingOpenGLXcbKHR(3)

Name

XrGraphicsBindingOpenGLXcbKHR - The graphics binding structure to be passed at session creation to use OpenGL on X11 via XCB

C Specification

The XrGraphicsBindingOpenGLXcbKHR structure is defined as:

typedef struct XrGraphicsBindingOpenGLXcbKHR {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    xcb_connection_t*           connection;
    uint32_t                    screen_number;
    xcb_glx_fbconfig_t          fbconfigid;
    xcb_visualid_t              visualid;
    xcb_glx_drawable_t          glxDrawable;
    xcb_glx_context_t           glxContext;
} XrGraphicsBindingOpenGLXcbKHR;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • connection is a valid xcb_connection_t.

  • screen_number is an index indicating which screen should be used for rendering.

  • fbconfigid is a valid XCB OpenGL GLX xcb_glx_fbconfig_t.

  • visualid is a valid XCB OpenGL GLX xcb_visualid_t.

  • glxDrawable is a valid XCB OpenGL GLX xcb_glx_drawable_t.

  • glxContext is a valid XCB OpenGL GLX xcb_glx_context_t.

Description

When creating an OpenGL-backed XrSession on any Linux/Unix platform that utilizes X11 and GLX, via the Xlib library, the application will provide a pointer to an XrGraphicsBindingOpenGLXcbKHR in the next chain of the XrSessionCreateInfo.

The required window system configuration define to expose this structure type is XR_USE_PLATFORM_XCB.

Valid Usage (Implicit)
  • The [XR_KHR_opengl_enable] extension must be enabled prior to using XrGraphicsBindingOpenGLXcbKHR

  • type must be XR_TYPE_GRAPHICS_BINDING_OPENGL_XCB_KHR

  • next must be NULL

  • connection must be a pointer to an xcb_connection_t value

  • screen_number must be a valid uint32_t value

  • fbconfigid must be a valid xcb_glx_fbconfig_t value

  • visualid must be a valid xcb_visualid_t value

  • glxDrawable must be a valid xcb_glx_drawable_t value

  • glxContext must be a valid xcb_glx_context_t value

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrGraphicsBindingOpenGLXlibKHR(3)

Name

XrGraphicsBindingOpenGLXlibKHR - The graphics binding structure to be passed at session creation to use OpenGL on X11 via Xlib

C Specification

The XrGraphicsBindingOpenGLXlibKHR structure is defined as:

typedef struct XrGraphicsBindingOpenGLXlibKHR {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    Display*                    xDisplay;
    uint32_t                    visualid;
    GLXFBConfig                 glxFBConfig;
    GLXDrawable                 glxDrawable;
    GLXContext                  glxContext;
} XrGraphicsBindingOpenGLXlibKHR;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • xDisplay is a valid X11 Display.

  • visualid is a valid X11 visual identifier.

  • glxFBConfig is a valid X11 OpenGL GLX GLXFBConfig.

  • glxDrawable is a valid X11 OpenGL GLX GLXDrawable.

  • glxContext is a valid X11 OpenGL GLX GLXContext.

Description

When creating an OpenGL-backed XrSession on any Linux/Unix platform that utilizes X11 and GLX, via the Xlib library, the application will provide a pointer to an XrGraphicsBindingOpenGLXlibKHR in the next chain of the XrSessionCreateInfo.

The required window system configuration define to expose this structure type is XR_USE_PLATFORM_XLIB.

Valid Usage (Implicit)
  • The [XR_KHR_opengl_enable] extension must be enabled prior to using XrGraphicsBindingOpenGLXlibKHR

  • type must be XR_TYPE_GRAPHICS_BINDING_OPENGL_XLIB_KHR

  • next must be NULL

  • xDisplay must be a pointer to a Display value

  • visualid must be a valid uint32_t value

  • glxFBConfig must be a valid GLXFBConfig value

  • glxDrawable must be a valid GLXDrawable value

  • glxContext must be a valid GLXContext value

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrGraphicsBindingVulkanKHR(3)

Name

XrGraphicsBindingVulkanKHR - The graphics binding structure to be passed at session creation to use Vulkan

C Specification

The XrGraphicsBindingVulkanKHR structure is defined as:

typedef struct XrGraphicsBindingVulkanKHR {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    VkInstance                  instance;
    VkPhysicalDevice            physicalDevice;
    VkDevice                    device;
    uint32_t                    queueFamilyIndex;
    uint32_t                    queueIndex;
} XrGraphicsBindingVulkanKHR;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • instance is a valid Vulkan VkInstance.

  • physicalDevice is a valid Vulkan VkPhysicalDevice.

  • device is a valid Vulkan VkDevice.

  • queueFamilyIndex is a valid queue family index on device.

  • queueIndex is a valid queue index on device to be used for synchronization.

Description

When creating a Vulkan-backed XrSession, the application will provide a pointer to an XrGraphicsBindingVulkanKHR in the next chain of the XrSessionCreateInfo.

Valid Usage
Valid Usage (Implicit)
  • The [XR_KHR_vulkan_enable] extension must be enabled prior to using XrGraphicsBindingVulkanKHR

  • type must be XR_TYPE_GRAPHICS_BINDING_VULKAN_KHR

  • next must be NULL

  • instance must be a valid VkInstance value

  • physicalDevice must be a valid VkPhysicalDevice value

  • device must be a valid VkDevice value

  • queueFamilyIndex must be a valid uint32_t value

  • queueIndex must be a valid uint32_t value

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrGraphicsRequirementsD3D10KHR(3)

Name

XrGraphicsRequirementsD3D10KHR - D3D10 feature level and LUID requirements

C Specification

The XrGraphicsRequirementsD3D10KHR structure is defined as:

typedef struct XrGraphicsRequirementsD3D10KHR {
    XrStructureType         type;
    void* XR_MAY_ALIAS      next;
    LUID                    adapterLuid;
    D3D10_FEATURE_LEVEL1    minFeatureLevel;
} XrGraphicsRequirementsD3D10KHR;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • adapterLuid identifies what graphics device needs to be used.

  • minFeatureLevel is the minimum feature level that the D3D10 device must be initialized with.

Description

Valid Usage (Implicit)
  • The [XR_KHR_D3D10_enable] extension must be enabled prior to using XrGraphicsRequirementsD3D10KHR

  • type must be XR_TYPE_GRAPHICS_REQUIREMENTS_D3D10_KHR

  • next must be NULL

  • adapterLuid must be a valid LUID value

  • minFeatureLevel must be a valid D3D10_FEATURE_LEVEL1 value

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrGraphicsRequirementsD3D11KHR(3)

Name

XrGraphicsRequirementsD3D11KHR - D3D11 feature level and LUID requirements

C Specification

The XrGraphicsRequirementsD3D11KHR structure is defined as:

typedef struct XrGraphicsRequirementsD3D11KHR {
    XrStructureType       type;
    void* XR_MAY_ALIAS    next;
    LUID                  adapterLuid;
    D3D_FEATURE_LEVEL     minFeatureLevel;
} XrGraphicsRequirementsD3D11KHR;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • adapterLuid identifies what graphics device needs to be used.

  • minFeatureLevel is the minimum feature level that the D3D11 device must be initialized with.

Description

Valid Usage (Implicit)
  • The [XR_KHR_D3D11_enable] extension must be enabled prior to using XrGraphicsRequirementsD3D11KHR

  • type must be XR_TYPE_GRAPHICS_REQUIREMENTS_D3D11_KHR

  • next must be NULL

  • adapterLuid must be a valid LUID value

  • minFeatureLevel must be a valid D3D_FEATURE_LEVEL value

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrGraphicsRequirementsD3D12KHR(3)

Name

XrGraphicsRequirementsD3D12KHR - D3D12 feature level and LUID requirements

C Specification

The XrGraphicsRequirementsD3D12KHR structure is defined as:

typedef struct XrGraphicsRequirementsD3D12KHR {
    XrStructureType       type;
    void* XR_MAY_ALIAS    next;
    LUID                  adapterLuid;
    D3D_FEATURE_LEVEL     minFeatureLevel;
} XrGraphicsRequirementsD3D12KHR;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • adapterLuid identifies what graphics device needs to be used.

  • minFeatureLevel is the minimum feature level that the D3D12 device must be initialized with.

Description

Valid Usage (Implicit)
  • The [XR_KHR_D3D12_enable] extension must be enabled prior to using XrGraphicsRequirementsD3D12KHR

  • type must be XR_TYPE_GRAPHICS_REQUIREMENTS_D3D12_KHR

  • next must be NULL

  • adapterLuid must be a valid LUID value

  • minFeatureLevel must be a valid D3D_FEATURE_LEVEL value

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrGraphicsRequirementsOpenGLESKHR(3)

Name

XrGraphicsRequirementsOpenGLESKHR - OpenGL ES API version requirements

C Specification

The XrGraphicsRequirementsOpenGLESKHR structure is defined as:

typedef struct XrGraphicsRequirementsOpenGLESKHR {
    XrStructureType       type;
    void* XR_MAY_ALIAS    next;
    uint32_t              minApiVersionSupported;
    uint32_t              maxApiVersionSupported;
} XrGraphicsRequirementsOpenGLESKHR;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • minApiVersionSupported is the minimum version of OpenGL ES that the runtime supports. Uses XR_MAKE_VERSION on major and minor API version, ignoring any patch version component.

  • maxApiVersionSupported is the maximum version of OpenGL ES that the runtime has been tested on and is known to support. Newer OpenGL ES versions might work if they are compatible. Uses XR_MAKE_VERSION on major and minor API version, ignoring any patch version component.

Description

XrGraphicsRequirementsOpenGLESKHR is populated by xrGetOpenGLESGraphicsRequirementsKHR with the runtime’s OpenGL ES API version requirements.

Valid Usage (Implicit)

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrGraphicsRequirementsOpenGLKHR(3)

Name

XrGraphicsRequirementsOpenGLKHR - OpenGL API version requirements

C Specification

The XrGraphicsRequirementsOpenGLKHR structure is defined as:

typedef struct XrGraphicsRequirementsOpenGLKHR {
    XrStructureType       type;
    void* XR_MAY_ALIAS    next;
    uint32_t              minApiVersionSupported;
    uint32_t              maxApiVersionSupported;
} XrGraphicsRequirementsOpenGLKHR;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • minApiVersionSupported is the minimum version of OpenGL that the runtime supports. Uses XR_MAKE_VERSION on major and minor API version, ignoring any patch version component.

  • maxApiVersionSupported is the maximum version of OpenGL that the runtime has been tested on and is known to support. Newer OpenGL versions might work if they are compatible. Uses XR_MAKE_VERSION on major and minor API version, ignoring any patch version component.

Description

XrGraphicsRequirementsOpenGLKHR is populated by xrGetOpenGLGraphicsRequirementsKHR with the runtime’s OpenGL API version requirements.

Valid Usage (Implicit)
  • The [XR_KHR_opengl_enable] extension must be enabled prior to using XrGraphicsRequirementsOpenGLKHR

  • type must be XR_TYPE_GRAPHICS_REQUIREMENTS_OPENGL_KHR

  • next must be NULL

  • minApiVersionSupported must be a valid uint32_t value

  • maxApiVersionSupported must be a valid uint32_t value

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrGraphicsRequirementsVulkanKHR(3)

Name

XrGraphicsRequirementsVulkanKHR - Vulkan API version requirements

C Specification

The XrGraphicsRequirementsVulkanKHR structure is defined as:

typedef struct XrGraphicsRequirementsVulkanKHR {
    XrStructureType       type;
    void* XR_MAY_ALIAS    next;
    uint32_t              minApiVersionSupported;
    uint32_t              maxApiVersionSupported;
} XrGraphicsRequirementsVulkanKHR;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • minApiVersionSupported is the minimum version of Vulkan that the runtime supports. Uses XR_MAKE_VERSION on major and minor API version, ignoring any patch version component.

  • maxApiVersionSupported is the maximum version of Vulkan that the runtime has been tested on and is known to support. Newer Vulkan versions might work if they are compatible. Uses XR_MAKE_VERSION on major and minor API version, ignoring any patch version component.

Description

XrGraphicsRequirementsVulkanKHR is populated by xrGetVulkanGraphicsRequirementsKHR with the runtime’s Vulkan API version requirements.

Valid Usage (Implicit)
  • The [XR_KHR_vulkan_enable] extension must be enabled prior to using XrGraphicsRequirementsVulkanKHR

  • type must be XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN_KHR

  • next must be NULL

  • minApiVersionSupported must be a valid uint32_t value

  • maxApiVersionSupported must be a valid uint32_t value

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrHapticBaseHeader(3)

Name

XrHapticBaseHeader - Base header for haptic feedback

C Specification

The XrHapticBaseHeader structure is defined as:

typedef struct XrHapticBaseHeader {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
} XrHapticBaseHeader;

Members

Member Descriptions
  • type is the XrStructureType of this structure. This base structure itself has no associated XrStructureType value.

  • next is NULL or a pointer to an extension-specific structure.

Description

Valid Usage (Implicit)
  • type must be XR_TYPE_HAPTIC_VIBRATION

  • next must be NULL

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrHapticVibration(3)

Name

XrHapticVibration - Base header for haptic feedback

C Specification

The XrHapticVibration structure is defined as:

typedef struct XrHapticVibration {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    XrDuration                  duration;
    float                       frequency;
    float                       amplitude;
} XrHapticVibration;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • duration is the number of nanoseconds the vibration should last. If XR_MIN_HAPTIC_DURATION is specified, the runtime must produce a short haptics pulse of minimal supported duration for the haptic device.

  • frequency is the frequency of the vibration in Hz. If XR_FREQUENCY_UNSPECIFIED is specified, it is left to the runtime to decide the optimal frequency value to use.

  • amplitude is the amplitude of the vibration between 0.0 and 1.0.

Description

The XrHapticVibration is used in calls to xrApplyHapticFeedback that trigger vibration output actions.

The duration, and frequency parameters may be clamped to implementation-dependent ranges.

Valid Usage (Implicit)
  • type must be XR_TYPE_HAPTIC_VIBRATION

  • next must be NULL

  • If frequency is not 0, frequency must be a valid float value

  • amplitude must be a valid float value

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrInstanceCreateInfo(3)

Name

XrInstanceCreateInfo - Structure specifying params of a newly created instance

C Specification

The XrInstanceCreateInfo structure is defined as:

typedef struct XrInstanceCreateInfo {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    XrInstanceCreateFlags       createFlags;
    XrApplicationInfo           applicationInfo;
    uint32_t                    enabledApiLayerCount;
    const char* const*          enabledApiLayerNames;
    uint32_t                    enabledExtensionCount;
    const char* const*          enabledExtensionNames;
} XrInstanceCreateInfo;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • createFlags is a bitmask of XrInstanceCreateFlags that identifies options that apply to the creation.

  • applicationInfo is an instance of XrApplicationInfo. This information helps runtimes recognize behavior inherent to classes of applications. XrApplicationInfo is defined in detail below.

  • enabledApiLayerCount is the number of global API layers to enable.

  • enabledApiLayerNames is a pointer to an array of enabledApiLayerCount strings containing the names of API layers to enable for the created instance. See the API Layers And Extensions section for further details.

  • enabledExtensionCount is the number of global extensions to enable.

  • enabledExtensionNames is a pointer to an array of enabledExtensionCount strings containing the names of extensions to enable.

Description

Valid Usage (Implicit)
  • type must be XR_TYPE_INSTANCE_CREATE_INFO

  • Each next member of any structure (including this one) in the next chain must be either NULL or a pointer to a valid instance of XrDebugUtilsMessengerCreateInfoEXT or XrInstanceCreateInfoAndroidKHR

  • Each type member in the next chain must be unique

  • createFlags must be 0 or a valid combination of XrInstanceCreateFlagBits values

  • applicationInfo must be a valid XrApplicationInfo structure

  • If enabledApiLayerCount is not 0, enabledApiLayerCount must be a valid uint32_t value

  • If enabledApiLayerCount is not 0, enabledApiLayerNames must be a pointer to an array of enabledApiLayerCount null-terminated UTF-8 strings

  • If enabledExtensionCount is not 0, enabledExtensionCount must be a valid uint32_t value

  • If enabledExtensionCount is not 0, enabledExtensionNames must be a pointer to an array of enabledExtensionCount null-terminated UTF-8 strings

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrInstanceCreateInfoAndroidKHR(3)

Name

XrInstanceCreateInfoAndroidKHR - Creates an OpenXR Instance

C Specification

The XrInstanceCreateInfoAndroidKHR structure is defined as:

typedef struct XrInstanceCreateInfoAndroidKHR {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    void* XR_MAY_ALIAS          applicationVM;
    void* XR_MAY_ALIAS          applicationActivity;
} XrInstanceCreateInfoAndroidKHR;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • applicationVM is a pointer to the application virtual machine.

  • applicationActivity is a pointer to the application Activity.

Description

XrInstanceCreateInfoAndroidKHR contains additional Android specific information needed when calling xrCreateInstance. The XrInstanceCreateInfoAndroidKHR struct must be provided as the next pointer in the XrInstanceCreateInfo struct when calling xrCreateInstance.

Valid Usage (Implicit)

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrInstanceProperties(3)

Name

XrInstanceProperties - Contains information about the instance

C Specification

The XrInstanceProperties structure is defined as:

typedef struct XrInstanceProperties {
    XrStructureType       type;
    void* XR_MAY_ALIAS    next;
    uint32_t              runtimeVersion;
    char                  runtimeName[XR_MAX_RUNTIME_NAME_SIZE];
} XrInstanceProperties;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • runtimeVersion is the current version of the runtime in the format of XR_MAKE_VERSION.

  • runtimeName is the name of the runtime.

Description

Valid Usage (Implicit)
  • type must be XR_TYPE_INSTANCE_PROPERTIES

  • next must be NULL

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrInteractionProfileInfo(3)

Name

XrInteractionProfileInfo - Receives active interaction profile for a top level path

C Specification

The XrInteractionProfileInfo structure is defined as:

typedef struct XrInteractionProfileInfo {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    XrPath                      interactionProfile;
} XrInteractionProfileInfo;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • interactionProfile is the XrPath of the interaction profile path for the topLevelUserPath used to retrieve this info, or XR_PATH_NULL if there is no active interaction profile at that top level user path.

Description

The runtime must only include interaction profiles that the application has provided bindings for via xrSetInteractionProfileSuggestedBindings or XR_PATH_NULL. If the runtime is rebinding an interaction profile provided by the application to a device that the application did not provide bindings for, it must return the interaction profile path that it is emulating. If the runtime is unable to provide input because it cannot emulate any of the application-provided interaction profiles, it must return XR_PATH_NULL.

Valid Usage (Implicit)
  • type must be XR_TYPE_INTERACTION_PROFILE_INFO

  • next must be NULL

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrInteractionProfileSuggestedBinding(3)

Name

XrInteractionProfileSuggestedBinding - Suggested bindings for a interaction profile

C Specification

The XrInteractionProfileSuggestedBinding structure is defined as:

typedef struct XrInteractionProfileSuggestedBinding {
    XrStructureType                    type;
    const void* XR_MAY_ALIAS           next;
    XrPath                             interactionProfile;
    uint32_t                           countSuggestedBindings;
    const XrActionSuggestedBinding*    suggestedBindings;
} XrInteractionProfileSuggestedBinding;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • interactionProfile is the XrPath of an interaction profile.

  • countSuggestedBindings is the number of suggested bindings in the array pointed to by suggestedBindings.

  • suggestedBindings is a pointer to an array of XrActionSuggestedBinding structures that define all of the application’s suggested bindings for the specified interaction profile.

Description

Valid Usage (Implicit)
  • type must be XR_TYPE_INTERACTION_PROFILE_SUGGESTED_BINDING

  • next must be NULL

  • countSuggestedBindings must be a valid uint32_t value

  • suggestedBindings must be a pointer to an array of countSuggestedBindings valid XrActionSuggestedBinding structures

  • countSuggestedBindings must be greater than 0

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrOffset2Df(3)

Name

XrOffset2Df - Float offset in two dimensions

C Specification

A floating-point offset is defined by the structure:

typedef struct XrOffset2Df {
    float    x;
    float    y;
} XrOffset2Df;

Members

Member Descriptions
  • x the floating-point offset in the x direction.

  • y the floating-point offset in the y direction.

Description

This structure is used for component values that may be fractional (floating-point). If used to represent physical distances, values must be in meters.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrOffset2Di(3)

Name

XrOffset2Di - Offset in two dimensions

C Specification

An integer offset is defined by the structure:

typedef struct XrOffset2Di {
    int32_t    x;
    int32_t    y;
} XrOffset2Di;

Members

Member Descriptions
  • x the integer offset in the x direction.

  • y the integer offset in the y direction.

Description

This variant is for representing discrete values such as texels. For representing physical distances, the floating-point variant must be used instead.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrPosef(3)

Name

XrPosef - Location and orientation in a space.

C Specification

A pose is defined by the XrPosef structure:

typedef struct XrPosef {
    XrQuaternionf    orientation;
    XrVector3f       position;
} XrPosef;

Members

Member Descriptions
  • orientation is an XrQuaternionf representing the orientation within a space.

  • position is an XrVector3f representing position within a space.

A construct representing a position and orientation within a space,

Description

with position expressed in meters, and orientation represented as a unit quaternion.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrQuaternionf(3)

Name

XrQuaternionf - Unit Quaternion

C Specification

Rotation is represented by a unit quaternion defined by the XrQuaternionf structure:

typedef struct XrQuaternionf {
    float    x;
    float    y;
    float    z;
    float    w;
} XrQuaternionf;

Members

Member Descriptions
  • x is the x coordinate of the quaternion.

  • y is the y coordinate of the quaternion.

  • z is the z coordinate of the quaternion.

  • w is the w coordinate of the quaternion.

Description

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrRect2Df(3)

Name

XrRect2Df - Rect in two dimensions

C Specification

A rectangle with floating-point values is defined by the structure:

typedef struct XrRect2Df {
    XrOffset2Df    offset;
    XrExtent2Df    extent;
} XrRect2Df;

Members

Member Descriptions
  • offset is the XrOffset2Df specifying the rectangle offset.

  • extent is the XrExtent2Df specifying the rectangle extent.

Description

This structure is used for component values that may be fractional (floating-point).

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrRect2Di(3)

Name

XrRect2Di - Rect in two dimensions

C Specification

A rectangle with integer values is defined by the structure:

typedef struct XrRect2Di {
    XrOffset2Di    offset;
    XrExtent2Di    extent;
} XrRect2Di;

Members

Member Descriptions
  • offset is the XrOffset2Di specifying the integer rectangle offset.

  • extent is the XrExtent2Di specifying the integer rectangle extent.

Description

This variant is for representing discrete values such as texels. For representing physical distances, the floating-point variant must be used instead.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrReferenceSpaceCreateInfo(3)

Name

XrReferenceSpaceCreateInfo - Creation info for a reference space

C Specification

The XrReferenceSpaceCreateInfo structure is defined as:

typedef struct XrReferenceSpaceCreateInfo {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    XrReferenceSpaceType        referenceSpaceType;
    XrPosef                     poseInReferenceSpace;
} XrReferenceSpaceCreateInfo;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • referenceSpaceType is the chosen XrReferenceSpaceType.

  • poseInReferenceSpace is an XrPosef defining the position and orientation of the new space’s origin within the natural reference frame of the reference space.

Description

Valid Usage (Implicit)
  • type must be XR_TYPE_REFERENCE_SPACE_CREATE_INFO

  • next must be NULL

  • referenceSpaceType must be a valid XrReferenceSpaceType value

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrSessionBeginInfo(3)

Name

XrSessionBeginInfo - Struct containing session begin info

C Specification

The XrSessionBeginInfo structure is defined as:

typedef struct XrSessionBeginInfo {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    XrViewConfigurationType     primaryViewConfigurationType;
} XrSessionBeginInfo;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • primaryViewConfigurationType is the XrViewConfigurationType to use during this session to provide images for the form factor’s primary displays.

Description

Valid Usage (Implicit)
  • type must be XR_TYPE_SESSION_BEGIN_INFO

  • next must be NULL

  • primaryViewConfigurationType must be a valid XrViewConfigurationType value

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrSessionCreateInfo(3)

Name

XrSessionCreateInfo - Creates a session

C Specification

The XrSessionCreateInfo structure is defined as:

typedef struct XrSessionCreateInfo {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    XrSessionCreateFlags        createFlags;
    XrSystemId                  systemId;
} XrSessionCreateInfo;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or is a pointer to an extension-specific structure. Note that in most cases one graphics API extension specific struct needs to be in this next chain.

  • createFlags identifies XrSessionCreateFlags that apply to the creation.

  • systemId is the XrSystemId representing the system of devices to be used by this session.

Description

Valid Usage
  • systemId must be a valid XrSystemId or XR_ERROR_SYSTEM_INVALID will be returned.

  • next, unless otherwise specified via an extension, must contain exactly one graphics API binding structure (a structure whose name begins with "XrGraphicsBinding") or XR_ERROR_GRAPHICS_DEVICE_INVALID will be returned.

Valid Usage (Implicit)

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrSpaceRelation(3)

Name

XrSpaceRelation - Contains info about space relationships

C Specification

The XrSpaceRelation structure is defined as:

typedef struct XrSpaceRelation {
    XrStructureType         type;
    void* XR_MAY_ALIAS      next;
    XrSpaceRelationFlags    relationFlags;
    XrTime                  time;
    XrPosef                 pose;
    XrVector3f              linearVelocity;
    XrVector3f              angularVelocity;
    XrVector3f              linearAcceleration;
    XrVector3f              angularAcceleration;
} XrSpaceRelation;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • relationFlags is a bitfield, with bit masks defined in XrSpaceRelationFlagBits, to indicate which members contain valid data. If none of the bits are set, no other fields in this structure should be considered to be valid or meaningful.

  • time is the XrTime for which the other fields have been populated, possibly through prediction or interpolation.

  • pose is an XrPosef defining the position and rotation of the origin of xrLocateSpace::space within the reference frame of xrLocateSpace::baseSpace.

  • linearVelocity is the positional velocity of the origin of xrLocateSpace::space within the reference frame of xrLocateSpace::baseSpace, in units of meters per second.

  • angularVelocity is the angular velocity of the origin of xrLocateSpace::space within the reference frame of xrLocateSpace::baseSpace, expressed within the reference frame of xrLocateSpace::space. It is represented as a 3D angular velocity vector, with units of radians per second, suitable for integration or conversion to other formats through use of the “exponential map” construct.

  • linearAcceleration is the positional acceleration of the origin of xrLocateSpace::space within the reference frame of xrLocateSpace::baseSpace, in units of meters per second per second.

  • angularAcceleration is the angular acceleration of the origin of xrLocateSpace::space within the reference frame of xrLocateSpace::baseSpace, expressed within the reference frame of xrLocateSpace::space. It is represented as a 3D vector, with units of radians per second per second.

Description

Valid Usage (Implicit)
  • type must be XR_TYPE_SPACE_RELATION

  • next must be NULL

  • relationFlags must be 0 or a valid combination of XrSpaceRelationFlagBits values

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrSwapchainCreateInfo(3)

Name

XrSwapchainCreateInfo - Creation info for a swapchain

C Specification

The XrSwapchainCreateInfo structure is defined as:

typedef struct XrSwapchainCreateInfo {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    XrSwapchainCreateFlags      createFlags;
    XrSwapchainUsageFlags       usageFlags;
    int64_t                     format;
    uint32_t                    sampleCount;
    uint32_t                    width;
    uint32_t                    height;
    uint32_t                    faceCount;
    uint32_t                    arraySize;
    uint32_t                    mipCount;
} XrSwapchainCreateInfo;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • createFlags is a bitmask of XrSwapchainCreateFlagBits describing additional properties of the swapchain.

  • usageFlags is a bitmask of XrSwapchainUsageFlagBits describing the intended usage of the swapchain’s images. The usage flags define how the corresponding graphics API objects are created. A mismatch may result in swapchain images that do not support the application’s usage.

  • format is a graphics API-specific texture format identifier. For example, if the graphics API specified in xrCreateSession is Vulkan, then this format is a Vulkan format such as VK_FORMAT_R8G8B8A8_SRGB. The format identifies the format that the runtime will interpret the texture as upon submission. Valid formats are indicated by xrEnumerateSwapchainFormats.

  • sampleCount is the number of sub-data element samples in the image.

  • width is the width of the image.

  • height is the height of the image.

  • faceCount is the number of faces, which can be either 6 (for cubemaps) or 1.

  • arraySize is the number of array layers in the image.

  • mipCount describes the number of levels of detail available for minified sampling of the image.

Description

Valid Usage (Implicit)
  • type must be XR_TYPE_SWAPCHAIN_CREATE_INFO

  • next must be NULL

  • createFlags must be 0 or a valid combination of XrSwapchainCreateFlagBits values

  • usageFlags must be a valid combination of XrSwapchainUsageFlagBits values

  • usageFlags must not be 0

  • format must be a valid int64_t value

  • sampleCount must be a valid uint32_t value

  • width must be a valid uint32_t value

  • height must be a valid uint32_t value

  • faceCount must be a valid uint32_t value

  • arraySize must be a valid uint32_t value

  • mipCount must be a valid uint32_t value

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrSwapchainImageAcquireInfo(3)

Name

XrSwapchainImageAcquireInfo - Describes a swapchain image acquisition

C Specification

The XrSwapchainImageAcquireInfo structure is available for extensibility purposes. It is defined as:

typedef struct XrSwapchainImageAcquireInfo {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
} XrSwapchainImageAcquireInfo;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

Description

Valid Usage (Implicit)
  • type must be XR_TYPE_SWAPCHAIN_IMAGE_ACQUIRE_INFO

  • next must be NULL

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrSwapchainImageBaseHeader(3)

Name

XrSwapchainImageBaseHeader - Image base header for a swapchain image

C Specification

The XrSwapchainImageBaseHeader structure is defined as follows:

typedef struct XrSwapchainImageBaseHeader {
    XrStructureType       type;
    void* XR_MAY_ALIAS    next;
} XrSwapchainImageBaseHeader;

Members

Member Descriptions
  • type is the XrStructureType of this structure. This base structure itself has no associated XrStructureType value.

  • next is NULL or a pointer to an extension-specific structure.

Description

The XrSwapchainImageBaseHeader is a base structure that can be overridden by a graphics API-specific XrSwapchainImage* child structure.

Valid Usage (Implicit)
  • type must be one of the following XrStructureType values: XR_TYPE_SWAPCHAIN_IMAGE_OPEN_GLKHR, XR_TYPE_SWAPCHAIN_IMAGE_OPEN_GLESKHR, XR_TYPE_SWAPCHAIN_IMAGE_VULKAN_KHR, XR_TYPE_SWAPCHAIN_IMAGE_KHR, XR_TYPE_SWAPCHAIN_IMAGE_KHR, XR_TYPE_SWAPCHAIN_IMAGE_KHR

  • next must be NULL

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrSwapchainImageD3D10KHR(3)

Name

XrSwapchainImageD3D10KHR - D3D10-specific swapchain image structure

C Specification

The XrSwapchainImageD3D10KHR structure is defined as:

typedef struct XrSwapchainImageD3D10KHR {
     XrStructureType      type;
    void* XR_MAY_ALIAS    next;
    ID3D10Texture2D*      texture;
} XrSwapchainImageD3D10KHR;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • texture is a pointer to a valid ID3D10Texture2D to use.

Description

If a given session was created with XrGraphicsBindingD3D10KHR, the following conditions must apply.

The OpenXR runtime must interpret the top-left corner of the swapchain image as the coordinate origin unless specified otherwise by extension functionality.

The OpenXR runtime must interpret the swapchain images in a clip space of positive Y pointing up, near Z plane at 0, and far Z plane at 1.

Valid Usage (Implicit)

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrSwapchainImageD3D11KHR(3)

Name

XrSwapchainImageD3D11KHR - D3D11-specific swapchain image structure

C Specification

The XrSwapchainImageD3D11KHR structure is defined as:

typedef struct XrSwapchainImageD3D11KHR {
     XrStructureType      type;
    void* XR_MAY_ALIAS    next;
    ID3D11Texture2D*      texture;
} XrSwapchainImageD3D11KHR;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • texture is a pointer to a valid ID3D11Texture2D to use.

Description

If a given session was created with XrGraphicsBindingD3D11KHR, the following conditions must apply.

The OpenXR runtime must interpret the top-left corner of the swapchain image as the coordinate origin unless specified otherwise by extension functionality.

The OpenXR runtime must interpret the swapchain images in a clip space of positive Y pointing up, near Z plane at 0, and far Z plane at 1.

Valid Usage (Implicit)

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrSwapchainImageD3D12KHR(3)

Name

XrSwapchainImageD3D12KHR - D3D12-specific swapchain image structure

C Specification

The XrSwapchainImageD3D12KHR structure is defined as:

typedef struct XrSwapchainImageD3D12KHR {
     XrStructureType      type;
    void* XR_MAY_ALIAS    next;
    ID3D12Resource*       texture;
} XrSwapchainImageD3D12KHR;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • texture is a pointer to a valid ID3D12Texture2D to use.

Description

If a given session was created with XrGraphicsBindingD3D12KHR, the following conditions must apply.

The OpenXR runtime must interpret the top-left corner of the swapchain image as the coordinate origin unless specified otherwise by extension functionality.

The OpenXR runtime must interpret the swapchain images in a clip space of positive Y pointing up, near Z plane at 0, and far Z plane at 1.

Valid Usage (Implicit)

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrSwapchainImageOpenGLESKHR(3)

Name

XrSwapchainImageOpenGLESKHR - OpenGL ES-specific swapchain image structure

C Specification

The XrSwapchainImageOpenGLESKHR structure is defined as:

typedef struct XrSwapchainImageOpenGLESKHR {
    XrStructureType       type;
    void* XR_MAY_ALIAS    next;
    uint32_t              image;
} XrSwapchainImageOpenGLESKHR;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • image is an index indicating the current OpenGL ES swapchain image to use.

Description

If a given session was created with a XrGraphicsBindingOpenGLES*KHR, the following conditions must apply.

The OpenXR runtime must interpret the bottom-left corner of the swapchain image as the coordinate origin unless specified otherwise by extension functionality.

The OpenXR runtime must interpret the swapchain images in a clip space of positive Y pointing up, near Z plane at -1, and far Z plane at 1.

Valid Usage (Implicit)

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrSwapchainImageOpenGLKHR(3)

Name

XrSwapchainImageOpenGLKHR - OpenGL-specific swapchain image structure

C Specification

The XrSwapchainImageOpenGLKHR structure is defined as:

typedef struct XrSwapchainImageOpenGLKHR {
    XrStructureType       type;
    void* XR_MAY_ALIAS    next;
    uint32_t              image;
} XrSwapchainImageOpenGLKHR;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • image is an index indicating the current OpenGL swapchain image to use.

Description

If a given session was created with a XrGraphicsBindingOpenGL*KHR, the following conditions must apply.

The OpenXR runtime must interpret the bottom-left corner of the swapchain image as the coordinate origin unless specified otherwise by extension functionality.

The OpenXR runtime must interpret the swapchain images in a clip space of positive Y pointing up, near Z plane at -1, and far Z plane at 1.

Valid Usage (Implicit)

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrSwapchainImageReleaseInfo(3)

Name

XrSwapchainImageReleaseInfo - Describes a swapchain image release

C Specification

The XrSwapchainImageReleaseInfo structure is intended for extensibility purposes. It is defined as as:

typedef struct XrSwapchainImageReleaseInfo {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
} XrSwapchainImageReleaseInfo;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

Description

Valid Usage (Implicit)
  • type must be XR_TYPE_SWAPCHAIN_IMAGE_RELEASE_INFO

  • next must be NULL

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrSwapchainImageVulkanKHR(3)

Name

XrSwapchainImageVulkanKHR - Vulkan-specific swapchain image structure

C Specification

The XrSwapchainImageVulkanKHR structure is defined as:

typedef struct XrSwapchainImageVulkanKHR {
    XrStructureType       type;
    void* XR_MAY_ALIAS    next;
    VkImage               image;
} XrSwapchainImageVulkanKHR;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • image is a valid Vulkan VkImage to use.

Description

If a given session was created with XrGraphicsBindingVulkanKHR, the following conditions must apply.

The OpenXR runtime must interpret the top-left corner of the swapchain image as the coordinate origin unless specified otherwise by extension functionality.

The OpenXR runtime must interpret the swapchain images in a clip space of positive Y pointing down, near Z plane at 0, and far Z plane at 1.

Valid Usage (Implicit)

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrSwapchainImageWaitInfo(3)

Name

XrSwapchainImageWaitInfo - Describes a swapchain image wait operation

C Specification

The XrSwapchainImageWaitInfo structure describes a swapchain image wait operation. It is defined as:

typedef struct XrSwapchainImageWaitInfo {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    XrDuration                  timeout;
} XrSwapchainImageWaitInfo;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • timeout indicates how many nanoseconds the call should block waiting for the image to become available for writing.

Description

Valid Usage (Implicit)
  • type must be XR_TYPE_SWAPCHAIN_IMAGE_WAIT_INFO

  • next must be NULL

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrSwapchainSubImage(3)

Name

XrSwapchainSubImage - Composition layer data

C Specification

The XrSwapchainSubImage structure is defined as:

typedef struct XrSwapchainSubImage {
    XrSwapchain    swapchain;
    XrRect2Di      imageRect;
    uint32_t       imageArrayIndex;
} XrSwapchainSubImage;

Members

Member Descriptions
  • swapchain is the XrSwapchain to be displayed.

  • imageRect is an XrRect2Di representing the valid portion of the image to use, in pixels. Note that the compositor may bleed in pixels from outside the bounds in some cases, for instance due to mipmapping.

  • imageArrayIndex is the image array index, with 0 meaning the first or only array element.

Description

Valid Usage (Implicit)
  • swapchain must be a valid XrSwapchain handle

  • imageArrayIndex must be a valid uint32_t value

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrSystemGetInfo(3)

Name

XrSystemGetInfo - Specifies desired attributes of the system

C Specification

The XrSystemGetInfo structure is defined as:

typedef struct XrSystemGetInfo {
    XrStructureType       type;
    void* XR_MAY_ALIAS    next;
    XrFormFactor          formFactor;
} XrSystemGetInfo;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • formFactor is the XrFormFactor requested by the application.

Description

The XrSystemGetInfo structure specifies attributes about a system as desired by an application.

Valid Usage (Implicit)
  • type must be XR_TYPE_SYSTEM_GET_INFO

  • next must be NULL

  • formFactor must be a valid XrFormFactor value

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrSystemGraphicsProperties(3)

Name

XrSystemGraphicsProperties - Graphics-related properties of a particular system

C Specification

The XrSystemGraphicsProperties structure is defined as:

typedef struct XrSystemGraphicsProperties {
    uint32_t    maxSwapchainImageHeight;
    uint32_t    maxSwapchainImageWidth;
    uint32_t    maxViewCount;
    uint32_t    maxLayerCount;
} XrSystemGraphicsProperties;

Members

Member Descriptions
  • maxSwapchainImageHeight is the maximum swapchain image pixel height supported by this system.

  • maxSwapchainImageWidth is the maximum swapchain image pixel width supported by this system.

  • maxViewCount is maximum number of views possibly required by xrLocateViews.

  • maxLayerCount is the maximum number of composition layers supported by this system.

Description

Valid Usage (Implicit)
  • maxSwapchainImageHeight must be a valid uint32_t value

  • maxSwapchainImageWidth must be a valid uint32_t value

  • maxViewCount must be a valid uint32_t value

  • maxLayerCount must be a valid uint32_t value

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrSystemProperties(3)

Name

XrSystemProperties - Properties of a particular system

C Specification

The XrSystemProperties structure is defined as:

typedef struct XrSystemProperties {
    XrStructureType               type;
    void* XR_MAY_ALIAS            next;
    XrSystemId                    systemId;
    uint32_t                      vendorId;
    char                          systemName[XR_MAX_SYSTEM_NAME_SIZE];
    XrSystemGraphicsProperties    graphicsProperties;
    XrSystemTrackingProperties    trackingProperties;
} XrSystemProperties;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • vendorId is a unique identifier for the vendor of the system.

  • systemId is the XrSystemId identifying the system.

  • systemName is a string containing the name of the system.

  • graphicsProperties is an XrSystemGraphicsProperties struct specifying the system graphics properties.

  • trackingProperties is an XrSystemTrackingProperties struct specifying system tracking properties.

Description

Valid Usage (Implicit)
  • type must be XR_TYPE_SYSTEM_PROPERTIES

  • next must be NULL

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrSystemTrackingProperties(3)

Name

XrSystemTrackingProperties - Tracking-related properties of a particular system

C Specification

The XrSystemTrackingProperties structure is defined as:

typedef struct XrSystemTrackingProperties {
    XrBool32    orientationTracking;
    XrBool32    positionTracking;
} XrSystemTrackingProperties;

Members

Member Descriptions
  • orientationTracking is set to XR_TRUE to indicate the system supports orientational tracking of the view pose(s), XR_FALSE otherwise.

  • positionTracking is set to XR_TRUE to indicate the system supports positional tracking of the view pose(s), XR_FALSE otherwise.

Description

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrVector2f(3)

Name

XrVector2f - Two-dimensional vector

C Specification

A two-dimensional vector is defined by the XrVector2f structure:

typedef struct XrVector2f {
    float    x;
    float    y;
} XrVector2f;

Members

Member Descriptions
  • x is the x coordinate of the vector.

  • y is the y coordinate of the vector.

Description

If used to represent physical distances (rather than e.g. normalized direction) and not otherwise specified, values must be in meters.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrVector3f(3)

Name

XrVector3f - Three-dimensional vector

C Specification

A three-dimensional vector is defined by the XrVector3f structure:

typedef struct XrVector3f {
    float    x;
    float    y;
    float    z;
} XrVector3f;

Members

Member Descriptions
  • x is the x coordinate of the vector.

  • y is the y coordinate of the vector.

  • z is the z coordinate of the vector.

Description

If used to represent physical distances (rather than e.g. velocity or angular velocity) and not otherwise specified, values must be in meters.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrVector4f(3)

Name

XrVector4f - Four-dimensional vector

C Specification

A four-dimensional or homogeneous vector is defined by the XrVector4f structure:

typedef struct XrVector4f {
    float    x;
    float    y;
    float    z;
    float    w;
} XrVector4f;

Members

Member Descriptions
  • x is the x coordinate of the vector.

  • y is the y coordinate of the vector.

  • z is the z coordinate of the vector.

  • w is the w coordinate of the vector.

Description

If used to represent physical distances, x, y, and z values must be in meters.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrView(3)

Name

XrView - Struct containing view projection state

C Specification

The XrView structure is defined as:

typedef struct XrView {
    XrStructureType       type;
    void* XR_MAY_ALIAS    next;
    XrPosef               pose;
    XrFovf                fov;
} XrView;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • pose is an XrPosef defining the location and orientation of the view in the space specified by the xrLocateViews function.

  • fov is the XrFovf for the four sides of the projection.

Description

The XrView structure contains view pose and projection state necessary to render a single view in the view configuration.

Valid Usage (Implicit)
  • type must be XR_TYPE_VIEW

  • next must be NULL

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrViewConfigurationProperties(3)

Name

XrViewConfigurationProperties - Detailed configuration properties for an XrViewConfigurationProperties

C Specification

The XrViewConfigurationProperties structure is defined as:

typedef struct XrViewConfigurationProperties {
    XrStructureType            type;
    void* XR_MAY_ALIAS         next;
    XrViewConfigurationType    viewConfigurationType;
    XrBool32                   fovMutable;
} XrViewConfigurationProperties;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • viewConfigurationType is the XrViewConfigurationType of the configuration.

  • fovMutable indicates if the view field of view can be modified by the application.

Description

Valid Usage (Implicit)
  • type must be XR_TYPE_VIEW_CONFIGURATION_PROPERTIES

  • next must be NULL

  • viewConfigurationType must be a valid XrViewConfigurationType value

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrViewConfigurationView(3)

Name

XrViewConfigurationView - Individual view configuration

C Specification

Each XrViewConfigurationView specifies properties related to rendering of an individual view within a view configuration.

The XrViewConfigurationView structure is defined as:

typedef struct XrViewConfigurationView {
    XrStructureType       type;
    void* XR_MAY_ALIAS    next;
    uint32_t              recommendedImageRectWidth;
    uint32_t              maxImageRectWidth;
    uint32_t              recommendedImageRectHeight;
    uint32_t              maxImageRectHeight;
    uint32_t              recommendedSwapchainSampleCount;
    uint32_t              maxSwapchainSampleCount;
} XrViewConfigurationView;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • recommendedImageRectWidth is the optimal width of imageRect to use when rendering this view into a swapchain.

  • maxImageRectWidth is the maximum width of imageRect supported when rendering this view into a swapchain.

  • recommendedImageRectHeight is the optimal height of imageRect to use when rendering this view into a swapchain.

  • maxImageRectHeight is the maximum height of imageRect supported when rendering this view into a swapchain.

  • recommendedSwapchainSampleCount is the recommended number of sub-data element samples to create for each swapchain image that will be rendered into for this view.

  • maxSwapchainSampleCount is the maximum number of sub-data element samples supported for swapchain images that will be rendered into for this view.

Description

See XrSwapchainSubImage for more information about imageRect values, and XrSwapchainCreateInfo for more information about creating swapchains appropriately sized to support those imageRect values.

The array of XrViewConfigurationView returned by the runtime must adhere to the rules defined in XrViewConfigurationType, such as the count and association to the left and right eyes.

Valid Usage (Implicit)
  • type must be XR_TYPE_VIEW_CONFIGURATION_VIEW

  • next must be NULL

  • recommendedImageRectWidth must be a valid uint32_t value

  • maxImageRectWidth must be a valid uint32_t value

  • recommendedImageRectHeight must be a valid uint32_t value

  • maxImageRectHeight must be a valid uint32_t value

  • recommendedSwapchainSampleCount must be a valid uint32_t value

  • maxSwapchainSampleCount must be a valid uint32_t value

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrViewLocateInfo(3)

Name

XrViewLocateInfo - Struct containing view locate information

C Specification

The XrViewLocateInfo structure is defined as:

typedef struct XrViewLocateInfo {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    XrTime                      displayTime;
    XrSpace                     space;
} XrViewLocateInfo;

Members

Member Descriptions
  • displayTime is the time for which the view poses are predicted.

  • space is the XrSpace in which the pose in each XrView is expressed.

Description

The XrViewLocateInfo structure contains the display time and space used to locate the view XrView structures.

Valid Usage (Implicit)
  • type must be XR_TYPE_VIEW_LOCATE_INFO

  • next must be NULL

  • space must be a valid XrSpace handle

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrViewState(3)

Name

XrViewState - Struct containing additional view state

C Specification

The XrViewState structure is defined as:

typedef struct XrViewState {
    XrStructureType       type;
    void* XR_MAY_ALIAS    next;
    XrViewStateFlags      viewStateFlags;
} XrViewState;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • viewStateFlags is a bitmask of XrViewStateFlagBits indicating state that spans all views.

Description

The XrViewState contains additional view state from xrLocateViews common to all views of the active view configuration.

Valid Usage (Implicit)
  • type must be XR_TYPE_VIEW_STATE

  • next must be NULL

  • viewStateFlags must be 0 or a valid combination of XrViewStateFlagBits values

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrVisibilityMaskKHR(3)

Name

XrVisibilityMaskKHR - Visibility Mask

C Specification

The XrVisibilityMaskKHR struct is an input/output struct which specifies the view mask. Upon input to xrGetVisibilityMaskKHR, vertexCount and indexCount refer to the capacity of the vertices and indices members, respectively. Upon return from xrGetVisibilityMaskKHR, vertexCount and indexCount refer to the required capacity of the vertices and indices parameters respectively.

typedef struct XrVisibilityMaskKHR {
    XrStructureType       type;
    void* XR_MAY_ALIAS    next;
    uint32_t              vertexCount;
    XrVector2f*           vertices;
    uint32_t              indexCount;
    uint32_t*             indices;
} XrVisibilityMaskKHR;

Members

Member Descriptions
  • type is the type of this struct

  • next is NULL or a pointer to an extension-specific structure.

  • vertexCount is the count of vertices.

  • vertices is an array of vertices that specify coordinates in texture UV space.

  • indexCount is the count of indices.

  • indices is an array of indices into the vertices array.

Description

Valid Usage (Implicit)
  • The [XR_KHR_visibility_mask] extension must be enabled prior to using XrVisibilityMaskKHR

  • type must be XR_TYPE_VISIBILITY_MASK_KHR

  • next must be NULL

  • vertexCount must be a valid uint32_t value

  • vertices must be a pointer to an XrVector2f structure

  • indexCount must be a valid uint32_t value

  • indices must be a pointer to a uint32_t value

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrVulkanSwapchainFormatListCreateInfoKHR(3)

Name

XrVulkanSwapchainFormatListCreateInfoKHR - A list of Vulkan view formats

C Specification

typedef struct XrVulkanSwapchainFormatListCreateInfoKHR {
    XrStructureType             type;
    const void* XR_MAY_ALIAS    next;
    uint32_t                    viewFormatCount;
    const VkFormat*             viewFormats;
} XrVulkanSwapchainFormatListCreateInfoKHR;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to an extension-specific structure.

  • viewFormatCount is the number of view formats passed in viewFormats.

  • viewFormats is an array of VkFormat.

Description

Valid Usage (Implicit)
  • The [XR_KHR_vulkan_swapchain_format_list] extension must be enabled prior to using XrVulkanSwapchainFormatListCreateInfoKHR

  • type must be XR_TYPE_VULKAN_SWAPCHAIN_FORMAT_LIST_CREATE_INFO_KHR

  • next must be NULL

  • If viewFormatCount is not 0, viewFormatCount must be a valid uint32_t value

  • If viewFormatCount is not 0, viewFormats must be a pointer to an array of viewFormatCount VkFormat values

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

Enumerations

XrActionType(3)

Name

XrActionType - XrAction type

C Specification

The XrActionType parameter takes one of the following values:

typedef enum XrActionType {
    XR_INPUT_ACTION_TYPE_BOOLEAN = 1,
    XR_INPUT_ACTION_TYPE_VECTOR1F = 2,
    XR_INPUT_ACTION_TYPE_VECTOR2F = 3,
    XR_INPUT_ACTION_TYPE_POSE = 4,
    XR_OUTPUT_ACTION_TYPE_VIBRATION = 100,
    XR_ACTION_TYPE_MAX_ENUM = 0x7FFFFFFF
} XrActionType;

Description

Enumerant Descriptions
  • XR_INPUT_ACTION_TYPE_BOOLEAN. The action can be passed to xrGetActionStateBoolean to retrieve a single boolean value.

  • XR_INPUT_ACTION_TYPE_VECTOR1F. The action can be passed to xrGetActionStateVector1f to retrieve a 1D float vector.

  • XR_INPUT_ACTION_TYPE_VECTOR2F. The action can be passed to xrGetActionStateVector2f to retrieve a 2D float vector.

  • XR_INPUT_ACTION_TYPE_POSE. The action can can be passed to xrCreateActionSpace to create a space.

  • XR_OUTPUT_ACTION_TYPE_VIBRATION. The action can be passed to xrApplyHapticFeedback to send a haptic event to the runtime.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrAndroidThreadTypeKHR(3)

Name

XrAndroidThreadTypeKHR - Enum describing Android thread types

C Specification

The possible thread types are specified by the XrAndroidThreadTypeKHR enumeration:

typedef enum XrAndroidThreadTypeKHR {
    XR_ANDROID_THREAD_TYPE_APPLICATION_MAIN_KHR = 1,
    XR_ANDROID_THREAD_TYPE_APPLICATION_WORKER_KHR = 2,
    XR_ANDROID_THREAD_TYPE_RENDERER_MAIN_KHR = 3,
    XR_ANDROID_THREAD_TYPE_RENDERER_WORKER_KHR = 4,
    XR_ANDROID_THREAD_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
} XrAndroidThreadTypeKHR;

Description

Enumerants
  • XR_ANDROID_THREAD_TYPE_APPLICATION_MAIN_KHR
    hints the XR runtime that the thread is doing background CPU tasks

  • XR_ANDROID_THREAD_TYPE_APPLICATION_WORKER_KHR
    hints the XR runtime that the thread is doing time critical CPU tasks

  • XR_ANDROID_THREAD_TYPE_RENDERER_MAIN_KHR
    hints the XR runtime that the thread is doing background graphics device tasks

  • XR_ANDROID_THREAD_TYPE_RENDERER_WORKER_KHR
    hints the XR runtime that the thread is doing time critical graphics device tasks

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrEnvironmentBlendMode(3)

Name

XrEnvironmentBlendMode - Environment blend modes

C Specification

The possible blend modes are specified by the XrEnvironmentBlendMode enumeration:

typedef enum XrEnvironmentBlendMode {
    XR_ENVIRONMENT_BLEND_MODE_OPAQUE = 1,
    XR_ENVIRONMENT_BLEND_MODE_ADDITIVE = 2,
    XR_ENVIRONMENT_BLEND_MODE_ALPHA_BLEND = 3,
    XR_ENVIRONMENT_BLEND_MODE_MAX_ENUM = 0x7FFFFFFF
} XrEnvironmentBlendMode;

Description

Enumerant Descriptions
  • XR_ENVIRONMENT_BLEND_MODE_OPAQUE. The composition layers will be displayed with no view of the physical world behind them. The composited image will be interpreted as an RGB image, ignoring the composited alpha channel. This is the typical mode for VR experiences, although this mode can also be supported on devices that support video passthrough.

  • XR_ENVIRONMENT_BLEND_MODE_ADDITIVE. The composition layers will be additively blended with the real world behind the display. The composited image will be interpreted as an RGB image, ignoring the composited alpha channel during the additive blending. This will cause black composited pixels to appear transparent. This is the typical mode for an AR experience on a see-through headset with an additive display, although this mode can also be supported on devices that support video passthrough.

  • XR_ENVIRONMENT_BLEND_MODE_ALPHA_BLEND. The composition layers will be alpha-blended with the real world behind the display. The composited image will be interpreted as an RGBA image, with the composited alpha channel determining each pixel’s level of blending with the real world behind the display. This is the typical mode for an AR experience on a phone or headset that supports video passthrough.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrEyeVisibility(3)

Name

XrEyeVisibility - Eye visibility selector

C Specification

The XrEyeVisibility enum selects which of the viewer’s eyes to display a layer to:

typedef enum XrEyeVisibility {
    XR_EYE_VISIBILITY_BOTH = 0,
    XR_EYE_VISIBILITY_LEFT = 1,
    XR_EYE_VISIBILITY_RIGHT = 2,
    XR_EYE_VISIBILITY_MAX_ENUM = 0x7FFFFFFF
} XrEyeVisibility;

Description

Enumerant Descriptions
  • XR_EYE_VISIBILITY_BOTH displays the layer to both eyes.

  • XR_EYE_VISIBILITY_LEFT displays the layer to the viewer’s physical left eye.

  • XR_EYE_VISIBILITY_RIGHT displays the layer to the viewer’s physical right eye.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrFormFactor(3)

Name

XrFormFactor - Supported form factors

C Specification

typedef enum XrFormFactor {
    XR_FORM_FACTOR_HEAD_MOUNTED_DISPLAY = 1,
    XR_FORM_FACTOR_HANDHELD_DISPLAY = 2,
    XR_FORM_FACTOR_MAX_ENUM = 0x7FFFFFFF
} XrFormFactor;

Description

The predefined form factors which may be supported by OpenXR runtimes are:

Enumerant Descriptions
  • XR_FORM_FACTOR_HEAD_MOUNTED_DISPLAY. The tracked display is attached to the user’s head. The user cannot touch the display itself. A VR headset would be an example of this form factor.

  • XR_FORM_FACTOR_HANDHELD_DISPLAY. The tracked display is held in the user’s hand, independent from the user’s head. The user may be able to touch the display, allowing for screen-space UI. A mobile phone running an AR experience using pass-through video would be an example of this form factor.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrObjectType(3)

Name

XrObjectType - Specify an enumeration to track object handle types

C Specification

typedef enum XrObjectType {
    XR_OBJECT_TYPE_UNKNOWN = 0,
    XR_OBJECT_TYPE_INSTANCE = 1,
    XR_OBJECT_TYPE_SESSION = 2,
    XR_OBJECT_TYPE_SWAPCHAIN = 3,
    XR_OBJECT_TYPE_SPACE = 4,
    XR_OBJECT_TYPE_ACTION_SET = 5,
    XR_OBJECT_TYPE_ACTION = 6,
    XR_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000019000,
    XR_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
} XrObjectType;

Description

The XrObjectType enumeration defines values, each of which corresponds to a specific OpenXR handle type. These values can be used to associate debug information with a particular type of object through one or more extensions.

The following table defines XrObjectType and OpenXR Handle relationships:

XrObjectType OpenXR Handle Type

XR_OBJECT_TYPE_UNKNOWN

Unknown/Undefined Handle

XR_OBJECT_TYPE_INSTANCE

XrInstance

XR_OBJECT_TYPE_SESSION

XrSession

XR_OBJECT_TYPE_SWAPCHAIN

XrSwapchain

XR_OBJECT_TYPE_SPACE

XrSpace

XR_OBJECT_TYPE_ACTION_SET

XrActionSet

XR_OBJECT_TYPE_ACTION

XrAction

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

Unresolved directive in apispec.txt - include::XrPerfSettingsDomainEXT.txt[] Unresolved directive in apispec.txt - include::XrPerfSettingsLevelEXT.txt[] Unresolved directive in apispec.txt - include::XrPerfSettingsNotificationLevelEXT.txt[] Unresolved directive in apispec.txt - include::XrPerfSettingsSubDomainEXT.txt[]

XrReferenceSpaceType(3)

Name

XrReferenceSpaceType - Reference space types

C Specification

An XrSpace handle for a reference space is created using xrCreateReferenceSpace, by specifying the chosen reference space type and a pose within the natural reference frame defined for that reference space type.

Runtimes implement well-known reference spaces from XrReferenceSpaceType if they support tracking of that kind:

typedef enum XrReferenceSpaceType {
    XR_REFERENCE_SPACE_TYPE_VIEW = 1,
    XR_REFERENCE_SPACE_TYPE_LOCAL = 2,
    XR_REFERENCE_SPACE_TYPE_STAGE = 3,
    XR_REFERENCE_SPACE_TYPE_MAX_ENUM = 0x7FFFFFFF
} XrReferenceSpaceType;

Description

Available reference space types are indicated by xrEnumerateReferenceSpaces. Note that other spaces can be created as well, such as pose action spaces created by xrCreateActionSpace, which are not enumerated by that API.

Enumerant Descriptions
  • XR_REFERENCE_SPACE_TYPE_VIEW. The VIEW space tracks the view origin used to generate view transforms for the primary viewer (or centroid of view origins if stereo), with +Y up, +X to the right, and -Z forward. This space points in the forward direction for the viewer without incorporating the user’s eye orientation, and is not gravity-aligned.

    VIEW space is primarily useful when projecting from the user’s perspective into another space to obtain a targeting ray, or when rendering small head-locked content such as a reticle. Content rendered in VIEW space will stay at a fixed point on head-mounted displays and may be uncomfortable to view if too large. To obtain the ideal view and projection transforms to use each frame for rendering world content, applications should call xrLocateViews instead of using this space.

  • XR_REFERENCE_SPACE_TYPE_LOCAL. The LOCAL reference space establishes a world-locked origin, gravity-aligned to exclude pitch and roll, with +Y up, +X to the right, and -Z forward. This space locks in both its initial position and orientation, which the runtime may define to be either the initial position at app launch or some other calibrated zero position.

    LOCAL space is useful when an app needs to render seated-scale content that is not positioned relative to the physical floor.

    When a user needs to recenter LOCAL space, a runtime may offer some system-level recentering interaction that is transparent to the application, but which causes the current leveled head space to become the new LOCAL space. When such a recentering occurs, the runtime must queue the XrEventDataReferenceSpaceChangePending event, with the recentered LOCAL space origin only taking effect for xrLocateSpace or xrLocateViews calls whose XrTime parameter is greater than or equal to the changeTime provided in that event.

    When views, controllers or other spaces experience tracking loss relative to the LOCAL space, runtimes should continue to provide inferred or last-known position and orientation values. These inferred poses can, for example, be based on neck model updates, inertial dead reckoning, or a last-known position, so long as it is still reasonable for the application to use that pose. While a runtime is providing position data, it must continue to set XR_SPACE_RELATION_POSITION_VALID_BIT and XR_VIEW_STATE_POSITION_VALID_BIT but it can clear XR_SPACE_RELATION_POSITION_TRACKED_BIT and XR_VIEW_STATE_POSITION_TRACKED_BIT to indicate that the position is inferred or last-known in this way.

    When tracking is recovered, runtimes should snap the pose of other spaces back into position relative to the LOCAL space’s original origin.

  • XR_REFERENCE_SPACE_TYPE_STAGE. The STAGE reference space is a runtime-defined flat, rectangular space that is empty and can be walked around on. The origin is on the floor at the center of the rectangle, with +Y up, and the X and Z axes aligned with the rectangle edges. The runtime may not be able to locate spaces relative to the STAGE reference space if the user has not yet defined one within the runtime-specific UI. Apps can use xrGetReferenceSpaceBoundsRect to determine the extents of the STAGE reference space’s XZ bounds rectangle, if defined.

    STAGE space is useful when an app needs to render standing-scale content (no bounds) or room-scale content (with bounds) that is relative to the physical floor.

    When the user redefines the origin or bounds of the current STAGE space, or the runtime otherwise switches to a new STAGE definition, the runtime must queue the XrEventDataReferenceSpaceChangePending event, with the new STAGE space origin only taking effect for xrLocateSpace or xrLocateViews calls whose XrTime parameter is greater than or equal to the changeTime provided in that event.

    When views, controllers or other spaces experience tracking loss relative to the STAGE space, runtimes should continue to provide inferred or last-known position and orientation values. These inferred poses can, for example, be based on neck model updates, inertial dead reckoning, or a last-known position, so long as it is still reasonable for the application to use that pose. While a runtime is providing position data, it must continue to set XR_SPACE_RELATION_POSITION_VALID_BIT and XR_VIEW_STATE_POSITION_VALID_BIT but it can clear XR_SPACE_RELATION_POSITION_TRACKED_BIT and XR_VIEW_STATE_POSITION_TRACKED_BIT to indicate that the position is inferred or last-known in this way.

    When tracking is recovered, runtimes should snap the pose of other spaces back into position relative to the STAGE space’s original origin.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrResult(3)

Name

XrResult - Result codes

C Specification

typedef enum XrResult {
    XR_SUCCESS = 0,
    XR_TIMEOUT_EXPIRED = 1,
    XR_SESSION_VISIBILITY_UNAVAILABLE = 2,
    XR_SESSION_LOSS_PENDING = 3,
    XR_EVENT_UNAVAILABLE = 4,
    XR_STATE_UNAVAILABLE = 5,
    XR_STATE_TYPE_UNAVAILABLE = 6,
    XR_SPACE_BOUNDS_UNAVAILABLE = 7,
    XR_SESSION_NOT_FOCUSED = 8,
    XR_FRAME_DISCARDED = 9,
    XR_ERROR_VALIDATION_FAILURE = -1,
    XR_ERROR_RUNTIME_FAILURE = -2,
    XR_ERROR_OUT_OF_MEMORY = -3,
    XR_ERROR_RUNTIME_VERSION_INCOMPATIBLE = -4,
    XR_ERROR_DRIVER_INCOMPATIBLE = -5,
    XR_ERROR_INITIALIZATION_FAILED = -6,
    XR_ERROR_FUNCTION_UNSUPPORTED = -7,
    XR_ERROR_EXTENSION_NOT_PRESENT = -9,
    XR_ERROR_LIMIT_REACHED = -10,
    XR_ERROR_SIZE_INSUFFICIENT = -11,
    XR_ERROR_HANDLE_INVALID = -12,
    XR_ERROR_INSTANCE_LOST = -13,
    XR_ERROR_SESSION_RUNNING = -14,
    XR_ERROR_SESSION_NOT_RUNNING = -16,
    XR_ERROR_SESSION_LOST = -17,
    XR_ERROR_SYSTEM_INVALID = -18,
    XR_ERROR_PATH_INVALID = -19,
    XR_ERROR_PATH_COUNT_EXCEEDED = -20,
    XR_ERROR_PATH_FORMAT_INVALID = -21,
    XR_ERROR_LAYER_INVALID = -22,
    XR_ERROR_LAYER_LIMIT_EXCEEDED = -23,
    XR_ERROR_SWAPCHAIN_RECT_INVALID = -25,
    XR_ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED = -26,
    XR_ERROR_ACTION_TYPE_MISMATCH = -27,
    XR_ERROR_REFERENCE_SPACE_UNSUPPORTED = -31,
    XR_ERROR_FILE_ACCESS_ERROR = -32,
    XR_ERROR_FILE_CONTENTS_INVALID = -33,
    XR_ERROR_FORM_FACTOR_UNSUPPORTED = -34,
    XR_ERROR_FORM_FACTOR_UNAVAILABLE = -35,
    XR_ERROR_API_LAYER_NOT_PRESENT = -36,
    XR_ERROR_CALL_ORDER_INVALID = -37,
    XR_ERROR_GRAPHICS_DEVICE_INVALID = -38,
    XR_ERROR_POSE_INVALID = -39,
    XR_ERROR_INDEX_OUT_OF_RANGE = -40,
    XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED = -41,
    XR_ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED = -42,
    XR_ERROR_BINDINGS_DUPLICATED = -43,
    XR_ERROR_NAME_DUPLICATED = -44,
    XR_ERROR_NAME_INVALID = -45,
    XR_ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR = -1000003000,
    XR_ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR = -1000003001,
    XR_ERROR_DEBUG_UTILS_MESSENGER_INVALID_EXT = -1000019000,
    XR_RESULT_MAX_ENUM = 0x7FFFFFFF
} XrResult;

Description

All return codes in the API are reported via XrResult return values.

Some common suffixes shared across many of the return codes are defined below:

  • _INVALID: The specified handle, atom or value is formatted incorrectly, or the specified handle was never created or has been destroyed.

  • _UNSUPPORTED: The specified handle, atom, enumerant or value is formatted correctly but cannot be used for the lifetime of this function’s parent handle.

  • _UNAVAILABLE: The specified handle, atom, enumerant or value is supported by this function’s parent handle but not at this moment.

See Also

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrSessionState(3)

Name

XrSessionState - Session lifecycle state

C Specification

The XrSessionState enumerates the possible session lifecycle states:

typedef enum XrSessionState {
    XR_SESSION_STATE_UNKNOWN = 0,
    XR_SESSION_STATE_IDLE = 1,
    XR_SESSION_STATE_READY = 2,
    XR_SESSION_STATE_RUNNING = 3,
    XR_SESSION_STATE_VISIBLE = 4,
    XR_SESSION_STATE_FOCUSED = 5,
    XR_SESSION_STATE_STOPPING = 6,
    XR_SESSION_STATE_LOSS_PENDING = 7,
    XR_SESSION_STATE_EXITING = 8,
    XR_SESSION_STATE_MAX_ENUM = 0x7FFFFFFF
} XrSessionState;

Description

Enumerant Descriptions
  • XR_SESSION_STATE_UNKNOWN. An unknown state. The runtime must not return this value in an XrEventDataSessionStateChanged event.

  • XR_SESSION_STATE_IDLE. The initial state after calling xrCreateSession or returned to after calling xrEndSession.

  • XR_SESSION_STATE_READY. The application is ready to call xrBeginSession.

  • XR_SESSION_STATE_RUNNING. The application should run the xrWaitFrame/xrBeginFrame/xrEndFrame loop.

  • XR_SESSION_STATE_VISIBLE. The application should render everything except input avatars.

  • XR_SESSION_STATE_FOCUSED. The application should render everything and process input.

  • XR_SESSION_STATE_STOPPING. The application should exit the render loop and call xrEndSession.

  • XR_SESSION_STATE_LOSS_PENDING. The session is in the process of being lost.

  • XR_SESSION_STATE_EXITING. The application should end its XR experience and not automatically restart it.

The XR_SESSION_STATE_UNKNOWN state must not be returned by the runtime, and is only defined to avoid 0 being a valid state.

Receiving the XR_SESSION_STATE_IDLE state indicates that the runtime considers the session is idle. Applications in this state should minimize resource consumption but continue to call xrPollEvent at some reasonable cadence.

Receiving the XR_SESSION_STATE_READY state indicates that the runtime desires the application to prepare rendering resources, call xrBeginSession, and start its rendering loop. The rendering loop should consist of some sequence of xrWaitFrame/xrBeginFrame/xrEndFrame calls. An application should avoid heavy GPU work until reaching the XR_SESSION_STATE_VISIBLE state to avoid contention with other applications which may still possibly be running.

Receiving the XR_SESSION_STATE_RUNNING state indicates that the runtime has detected the applications rendering loop and properly synchronized it with the display’s refresh cycle. Achieving synchronization prior to entering the XR_SESSION_STATE_VISIBLE state facilitates switching between applications on a display frame boundary.

Receiving the XR_SESSION_STATE_VISIBLE state indicates that the session is visible. This can occur in many cases, one typical example is when a user switches from one OpenXR application to the current one. Applications that become visible should respond by simulating and submitting frames. Applications that lose visibility should stop submitting frames in order to give CPU and GPU precedence to any other applications that need it. This is a temporary event and usually indicates that either the user or the runtime process has determine the session should be placed on the back burner but may be brought back into visibility shortly.

Receiving the XR_SESSION_STATE_FOCUSED state indicates the application is able to receive user input. If a session is focused it receives all input from a user. On the other hand, if a session does not have focus, it may receive no user input. The runtime must guarantee that at most one application has input focus at any given time. An application may be visible but not have focus, for example when the runtime is composing a modal pop-up on top of the application’s rendered frames. It is important for apps to continue rendering when visible even when they do not have focus. Applications should only render input avatars (depictions of hands or other tracked objects controlled by the user) when in the XR_SESSION_STATE_FOCUSED state. The runtime must not render input avatars when an application is focused.

Receiving the XR_SESSION_STATE_STOPPING state indicates that the runtime has determined that the application should halt its rendering loop. A possible reason for this would be to minimize contention between multiple applications. Applications should exit their rendering loop and call xrEndSession when in this state.

Receiving the XR_SESSION_STATE_EXITING state indicates the runtime wishes the application to terminate its XR experience, typically due to a user request via a runtime user interface. Applications should gracefully end their process when in this state.

Receiving the XR_SESSION_STATE_LOSS_PENDING state indicates the runtime is no longer able to operate with the current session, for example due to the loss of a display hardware connection. An application should call xrDestroySession and may end its process or decide to poll xrGetSystem at some reasonable cadence to get a new XrSystemId, and re-initialize all graphics resources related to the new system, and then create a new session using xrCreateSession. After the event is queued, subsequent calls to functions that accept XrSession parameters must no longer return any success code other than XR_SESSION_LOSS_PENDING for the given XrSession handle. The XR_SESSION_LOSS_PENDING success result is returned for an unspecified grace period of time, and the functions that return it simulate success in their behavior. If the runtime has no reasonable way to successfully complete a given function (e.g. xrCreateSwapchain) when a lost session is pending, or if the runtime is not able to provide the app a grace period, the runtime may return XR_ERROR_SESSION_LOST. Thereafter, functions which accept XrSession parameters for the lost session may return XR_ERROR_SESSION_LOST to indicate that the function failed and the given session was lost. The XrSession handle and child handles are henceforth unusable and should be destroyed by the application in order to immediately free up resources associated with those handles.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrStructureType(3)

Name

XrStructureType - Values for type members of structs

C Specification

typedef enum XrStructureType {
    XR_TYPE_UNKNOWN = 0,
    XR_TYPE_API_LAYER_PROPERTIES = 1,
    XR_TYPE_EXTENSION_PROPERTIES = 2,
    XR_TYPE_INSTANCE_CREATE_INFO = 3,
    XR_TYPE_SYSTEM_GET_INFO = 4,
    XR_TYPE_SYSTEM_PROPERTIES = 5,
    XR_TYPE_VIEW_LOCATE_INFO = 6,
    XR_TYPE_VIEW = 7,
    XR_TYPE_SESSION_CREATE_INFO = 8,
    XR_TYPE_SWAPCHAIN_CREATE_INFO = 9,
    XR_TYPE_SESSION_BEGIN_INFO = 10,
    XR_TYPE_VIEW_STATE = 11,
    XR_TYPE_FRAME_END_INFO = 12,
    XR_TYPE_HAPTIC_VIBRATION = 13,
    XR_TYPE_EVENT_DATA_BUFFER = 16,
    XR_TYPE_EVENT_DATA_INSTANCE_LOSS_PENDING = 17,
    XR_TYPE_EVENT_DATA_SESSION_STATE_CHANGED = 18,
    XR_TYPE_ACTION_STATE_BOOLEAN = 23,
    XR_TYPE_ACTION_STATE_VECTOR1F = 24,
    XR_TYPE_ACTION_STATE_VECTOR2F = 25,
    XR_TYPE_ACTION_STATE_POSE = 27,
    XR_TYPE_ACTION_SET_CREATE_INFO = 28,
    XR_TYPE_ACTION_CREATE_INFO = 29,
    XR_TYPE_INSTANCE_PROPERTIES = 32,
    XR_TYPE_FRAME_WAIT_INFO = 33,
    XR_TYPE_COMPOSITION_LAYER_PROJECTION = 35,
    XR_TYPE_COMPOSITION_LAYER_QUAD = 36,
    XR_TYPE_REFERENCE_SPACE_CREATE_INFO = 37,
    XR_TYPE_ACTION_SPACE_CREATE_INFO = 38,
    XR_TYPE_SPACE_RELATION = 39,
    XR_TYPE_EVENT_DATA_REFERENCE_SPACE_CHANGE_PENDING = 40,
    XR_TYPE_VIEW_CONFIGURATION_VIEW = 41,
    XR_TYPE_FRAME_STATE = 44,
    XR_TYPE_VIEW_CONFIGURATION_PROPERTIES = 45,
    XR_TYPE_FRAME_BEGIN_INFO = 46,
    XR_TYPE_COMPOSITION_LAYER_PROJECTION_VIEW = 48,
    XR_TYPE_EVENT_DATA_EVENTS_LOST = 49,
    XR_TYPE_INTERACTION_PROFILE_SUGGESTED_BINDING = 51,
    XR_TYPE_EVENT_DATA_INTERACTION_PROFILE_CHANGED = 52,
    XR_TYPE_INTERACTION_PROFILE_INFO = 53,
    XR_TYPE_ACTIVE_ACTION_SET = 54,
    XR_TYPE_SWAPCHAIN_IMAGE_ACQUIRE_INFO = 55,
    XR_TYPE_SWAPCHAIN_IMAGE_WAIT_INFO = 56,
    XR_TYPE_SWAPCHAIN_IMAGE_RELEASE_INFO = 57,
    XR_TYPE_COMPOSITION_LAYER_CUBE_KHR = 1000006000,
    XR_TYPE_INSTANCE_CREATE_INFO_ANDROID_KHR = 1000008000,
    XR_TYPE_COMPOSITION_LAYER_DEPTH_INFO_KHR = 1000010000,
    XR_TYPE_VULKAN_SWAPCHAIN_FORMAT_LIST_CREATE_INFO_KHR = 1000014000,
    XR_TYPE_EVENT_DATA_PERF_SETTINGS_EXT = 1000015000,
    XR_TYPE_COMPOSITION_LAYER_CYLINDER_KHR = 1000017000,
    XR_TYPE_COMPOSITION_LAYER_EQUIRECT_KHR = 1000018000,
    XR_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000019000,
    XR_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000019001,
    XR_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000019002,
    XR_TYPE_DEBUG_UTILS_LABEL_EXT = 1000019003,
    XR_TYPE_GRAPHICS_BINDING_OPENGL_WIN32_KHR = 1000023000,
    XR_TYPE_GRAPHICS_BINDING_OPENGL_XLIB_KHR = 1000023001,
    XR_TYPE_GRAPHICS_BINDING_OPENGL_XCB_KHR = 1000023002,
    XR_TYPE_GRAPHICS_BINDING_OPENGL_WAYLAND_KHR = 1000023003,
    XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_KHR = 1000023004,
    XR_TYPE_GRAPHICS_REQUIREMENTS_OPENGL_KHR = 1000023005,
    XR_TYPE_GRAPHICS_BINDING_OPENGL_ES_ANDROID_KHR = 1000024001,
    XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_ES_KHR = 1000024002,
    XR_TYPE_GRAPHICS_REQUIREMENTS_OPENGL_ES_KHR = 1000024003,
    XR_TYPE_GRAPHICS_BINDING_VULKAN_KHR = 1000025000,
    XR_TYPE_SWAPCHAIN_IMAGE_VULKAN_KHR = 1000025001,
    XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN_KHR = 1000025002,
    XR_TYPE_GRAPHICS_BINDING_D3D10_KHR = 1000026000,
    XR_TYPE_SWAPCHAIN_IMAGE_D3D10_KHR = 1000026001,
    XR_TYPE_GRAPHICS_REQUIREMENTS_D3D10_KHR = 1000026002,
    XR_TYPE_GRAPHICS_BINDING_D3D11_KHR = 1000027000,
    XR_TYPE_SWAPCHAIN_IMAGE_D3D11_KHR = 1000027001,
    XR_TYPE_GRAPHICS_REQUIREMENTS_D3D11_KHR = 1000027002,
    XR_TYPE_GRAPHICS_BINDING_D3D12_KHR = 1000028000,
    XR_TYPE_SWAPCHAIN_IMAGE_D3D12_KHR = 1000028001,
    XR_TYPE_GRAPHICS_REQUIREMENTS_D3D12_KHR = 1000028002,
    XR_TYPE_VISIBILITY_MASK_KHR = 1000031000,
    XR_TYPE_EVENT_DATA_VISIBILITY_MASK_CHANGED_KHR = 1000031001,
    XR_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
} XrStructureType;

Description

Most structures containing type members have a value of type matching the type of the structure, as described more fully in Valid Usage for Structure Types.

Note that all extension enums begin at the extension enum base of 110 (base 10). Each extension is assigned a block of 1000 enums, starting at the enum base and arranged by the extension’s index.

See Also

XrActionCreateInfo, XrActionSetCreateInfo, XrActionSpaceCreateInfo, XrActionStateBoolean, XrActionStatePose, XrActionStateVector1f, XrActionStateVector2f, XrActiveActionSet, XrApiLayerProperties, XrBaseInStructure, XrBaseOutStructure, XrCompositionLayerBaseHeader, XrCompositionLayerCubeKHR, XrCompositionLayerCylinderKHR, XrCompositionLayerDepthInfoKHR, XrCompositionLayerEquirectKHR, XrCompositionLayerProjection, XrCompositionLayerProjectionView, XrCompositionLayerQuad, XrDebugUtilsLabelEXT, XrDebugUtilsMessengerCallbackDataEXT, XrDebugUtilsMessengerCreateInfoEXT, XrDebugUtilsObjectNameInfoEXT, XrEventDataBaseHeader, XrEventDataBuffer, XrEventDataEventsLost, XrEventDataInstanceLossPending, XrEventDataInteractionProfileChanged, XrEventDataPerfSettingsEXT, XrEventDataReferenceSpaceChangePending, XrEventDataSessionStateChanged, XrEventDataVisibilityMaskChangedKHR, XrExtensionProperties, XrFrameBeginInfo, XrFrameEndInfo, XrFrameState, XrFrameWaitInfo, XrGraphicsBindingD3D10KHR, XrGraphicsBindingD3D11KHR, XrGraphicsBindingD3D12KHR, XrGraphicsBindingOpenGLESAndroidKHR, XrGraphicsBindingOpenGLWaylandKHR, XrGraphicsBindingOpenGLWin32KHR, XrGraphicsBindingOpenGLXcbKHR, XrGraphicsBindingOpenGLXlibKHR, XrGraphicsBindingVulkanKHR, XrGraphicsRequirementsD3D10KHR, XrGraphicsRequirementsD3D11KHR, XrGraphicsRequirementsD3D12KHR, XrGraphicsRequirementsOpenGLESKHR, XrGraphicsRequirementsOpenGLKHR, XrGraphicsRequirementsVulkanKHR, XrHapticBaseHeader, XrHapticVibration, XrInstanceCreateInfo, XrInstanceCreateInfoAndroidKHR, XrInstanceProperties, XrInteractionProfileInfo, XrInteractionProfileSuggestedBinding, XrReferenceSpaceCreateInfo, XrSessionBeginInfo, XrSessionCreateInfo, XrSpaceRelation, XrSwapchainCreateInfo, XrSwapchainImageAcquireInfo, XrSwapchainImageBaseHeader, XrSwapchainImageD3D10KHR, XrSwapchainImageD3D11KHR, XrSwapchainImageD3D12KHR, XrSwapchainImageOpenGLESKHR, XrSwapchainImageOpenGLKHR, XrSwapchainImageReleaseInfo, XrSwapchainImageVulkanKHR, XrSwapchainImageWaitInfo, XrSystemGetInfo, XrSystemProperties, XrView, XrViewConfigurationProperties, XrViewConfigurationView, XrViewLocateInfo, XrViewState, XrVisibilityMaskKHR, XrVulkanSwapchainFormatListCreateInfoKHR, xrStructureTypeToString

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrViewConfigurationType(3)

Name

XrViewConfigurationType - Supported view configuration type

C Specification

typedef enum XrViewConfigurationType {
    XR_VIEW_CONFIGURATION_TYPE_PRIMARY_MONO = 1,
    XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO = 2,
    XR_VIEW_CONFIGURATION_TYPE_MAX_ENUM = 0x7FFFFFFF
} XrViewConfigurationType;

Description

The application selects its primary view configuration type when calling xrBeginSession, and that configuration remains constant for the lifetime of the session, until xrEndSession is called.

The number of views and the semantic meaning of each view index within a given view configuration is well-defined, specified below for all core view configurations. The predefined primary view configuration types are:

Enumerant Descriptions
  • XR_VIEW_CONFIGURATION_TYPE_PRIMARY_MONO. One view representing the form factor’s one primary display. For example, an AR phone’s screen. This configuration requires one element in XrViewConfigurationProperties and one projection in each XrCompositionLayerProjection layer.

  • XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO. Two views representing the form factor’s two primary displays, which map to a left-eye and right-eye view. This configuration requires two views in XrViewConfigurationProperties and two views in each XrCompositionLayerProjection layer. View index 0 must represent the left eye and view index 1 must represent the right eye.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrVisibilityMaskTypeKHR(3)

Name

XrVisibilityMaskTypeKHR - Visibility Mask Type

C Specification

XrVisibilityMaskTypeKHR identifies the different types of mask specification that is supported. The application may request a view mask in any of the formats identified by these types.

typedef enum XrVisibilityMaskTypeKHR {
    XR_VISIBILITY_MASK_TYPE_HIDDEN_TRIANGLE_MESH_KHR = 1,
    XR_VISIBILITY_MASK_TYPE_VISIBLE_TRIANGLE_MESH_KHR = 2,
    XR_VISIBILITY_MASK_TYPE_LINE_LOOP_KHR = 3,
    XR_VISIBILITY_MASK_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
} XrVisibilityMaskTypeKHR;

Description

Enumerant Descriptions
  • XR_VISIBILITY_MASK_TYPE_HIDDEN_TRIANGLE_MESH_KHR refers to a two dimensional triangle mesh on the view surface which may not be drawn to by the application. XrVisibilityMaskKHR refers to a set of triangles identified by vertices and vertex indices. The index count will thus be a multiple of three. The triangle vertices will be returned in counter-clockwise order as viewed from the user perspective.

  • XR_VISIBILITY_MASK_TYPE_VISIBLE_TRIANGLE_MESH_KHR refers to a two dimensional triangle mesh on the view surface which should be drawn to by the application. XrVisibilityMaskKHR refers to a set of triangles identified by vertices and vertex indices. The index count will thus be a multiple of three. The triangle vertices will be returned in counter-clockwise order as viewed from the user perspective.

  • XR_VISIBILITY_MASK_TYPE_LINE_LOOP_KHR refers to a single multi-segmented line loop on the view surface which encompasses the view area which should be drawn by the application. It is the border that exists between the visible and hidden meshes identified by XR_VISIBILITY_MASK_TYPE_HIDDEN_TRIANGLE_MESH_KHR and XR_VISIBILITY_MASK_TYPE_VISIBLE_TRIANGLE_MESH_KHR. The line is counter-clockwise, contiguous, and non-self crossing, with the last point implicitly connecting to the first point. There is one vertex per point, the index count will equal the vertex count, and the indices will refer to the vertices.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

Flags

XrCompositionLayerFlags(3)

Name

XrCompositionLayerFlags - Composition layer flags

C Specification

The XrCompositionLayerFlagBits bitfield is specified as:

// Flag bits for XrCompositionLayerFlags
static const XrCompositionLayerFlags XR_COMPOSITION_LAYER_CORRECT_CHROMATIC_ABERRATION_BIT = 0x00000001;
static const XrCompositionLayerFlags XR_COMPOSITION_LAYER_BLEND_TEXTURE_SOURCE_ALPHA_BIT = 0x00000002;

Description

XrCompositionLayerFlags specify options for individual composition layers.

Flag Descriptions
  • XR_COMPOSITION_LAYER_CORRECT_CHROMATIC_ABERRATION_BIT enables optical chromatic aberration correction for the layer when not done by default.

  • XR_COMPOSITION_LAYER_BLEND_TEXTURE_SOURCE_ALPHA_BIT enables the layer’s texture alpha channel.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

Unresolved directive in apispec.txt - include::XrDebugUtilsMessageSeverityFlagsEXT.txt[] Unresolved directive in apispec.txt - include::XrDebugUtilsMessageTypeFlagsEXT.txt[]

XrInputSourceLocalizedNameFlags(3)

Name

XrInputSourceLocalizedNameFlags - Input source localized name flags

C Specification

The xrGetInputSourceLocalizedName::whichComponents parameter takes bitwise-OR of any of the following values:

// Flag bits for XrInputSourceLocalizedNameFlags
static const XrInputSourceLocalizedNameFlags XR_INPUT_SOURCE_LOCALIZED_NAME_USER_PATH_BIT = 0x00000001;
static const XrInputSourceLocalizedNameFlags XR_INPUT_SOURCE_LOCALIZED_NAME_INTERACTION_PROFILE_BIT = 0x00000002;
static const XrInputSourceLocalizedNameFlags XR_INPUT_SOURCE_LOCALIZED_NAME_COMPONENT_BIT = 0x00000004;

Description

Flag Descriptions
  • XR_INPUT_SOURCE_LOCALIZED_NAME_USER_PATH_BIT indicates that the runtime must include the user path portion of the string in the result, if available. E.g. Left Hand.

  • XR_INPUT_SOURCE_LOCALIZED_NAME_INTERACTION_PROFILE_BIT indicates that the runtime must include the interaction profile portion of the string in the result, if available. E.g. Vive Controller.

  • XR_INPUT_SOURCE_LOCALIZED_NAME_COMPONENT_BIT indicates that the runtime must include the input component portion of the string in the result, if available. E.g. Trigger.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrInstanceCreateFlags(3)

Name

XrInstanceCreateFlags - Instance Creation Flags

C Specification

The XrInstanceCreateFlags include:

// Flag bits for XrInstanceCreateFlags

Description

There are currently no instance creation flags. This is reserved for future use.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrSessionCreateFlags(3)

Name

XrSessionCreateFlags - Session Creation Flags

C Specification

The XrSessionCreateFlags include:

// Flag bits for XrSessionCreateFlags

Description

There are currently no session creation flags. This is reserved for future use.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrSpaceRelationFlags(3)

Name

XrSpaceRelationFlags - Space relation flags

C Specification

The relationFlags member is a bitwise-OR of zero or more of the following flags:

// Flag bits for XrSpaceRelationFlags
static const XrSpaceRelationFlags XR_SPACE_RELATION_ORIENTATION_VALID_BIT = 0x00000001;
static const XrSpaceRelationFlags XR_SPACE_RELATION_POSITION_VALID_BIT = 0x00000002;
static const XrSpaceRelationFlags XR_SPACE_RELATION_LINEAR_VELOCITY_VALID_BIT = 0x00000004;
static const XrSpaceRelationFlags XR_SPACE_RELATION_ANGULAR_VELOCITY_VALID_BIT = 0x00000008;
static const XrSpaceRelationFlags XR_SPACE_RELATION_LINEAR_ACCELERATION_VALID_BIT = 0x00000010;
static const XrSpaceRelationFlags XR_SPACE_RELATION_ANGULAR_ACCELERATION_VALID_BIT = 0x00000020;
static const XrSpaceRelationFlags XR_SPACE_RELATION_ORIENTATION_TRACKED_BIT = 0x00000040;
static const XrSpaceRelationFlags XR_SPACE_RELATION_POSITION_TRACKED_BIT = 0x00000080;

Description

where the flags have the following meaning:

Flag Descriptions
  • XR_SPACE_RELATION_ORIENTATION_VALID_BIT indicates that the pose field’s orientation field contains valid data. For space relations tracking a device with its own inertial tracking, XR_SPACE_RELATION_ORIENTATION_TRACKED_BIT should remain set when this bit is set.

  • XR_SPACE_RELATION_POSITION_VALID_BIT indicates that the pose field’s position field contains valid data. When a space relation loses tracking, runtimes should continue to provide valid but untracked position values that are inferred or last-known, so long as it’s still meaningful for the application to use that position, clearing XR_SPACE_RELATION_POSITION_TRACKED_BIT until positional tracking is recovered.

  • XR_SPACE_RELATION_LINEAR_VELOCITY_VALID_BIT indicates that the linearVelocity field contains valid data.

  • XR_SPACE_RELATION_ANGULAR_VELOCITY_VALID_BIT indicates that the angularVelocity field contains valid data.

  • XR_SPACE_RELATION_LINEAR_ACCELERATION_VALID_BIT indicates that the linearAcceleration field contains valid data.

  • XR_SPACE_RELATION_ANGULAR_ACCELERATION_VALID_BIT indicates that the angularAcceleration field contains valid data.

  • XR_SPACE_RELATION_ORIENTATION_TRACKED_BIT indicates that the pose field’s orientation field represents an actively tracked orientation. For a space relation tracking a device with its own inertial tracking, this bit should remain set when XR_SPACE_RELATION_ORIENTATION_VALID_BIT is set. For a space relation tracking an object whose orientation is no longer known during tracking loss (e.g. an observed QR code), runtimes should continue to provide valid but untracked orientation values, so long as it’s still meaningful for the application to use that orientation.

  • XR_SPACE_RELATION_POSITION_TRACKED_BIT indicates that the pose field’s position field represents an actively tracked position. When a space relation loses tracking, runtimes should continue to provide valid but untracked position values that are inferred or last-known, e.g. based on neck model updates, inertial dead reckoning, or a last-known position, so long as it’s still meaningful for the application to use that position.

See Also

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrSwapchainCreateFlags(3)

Name

XrSwapchainCreateFlags - Swapchain creation flags

C Specification

The createFlags are a combination of the following:

// Flag bits for XrSwapchainCreateFlags
static const XrSwapchainCreateFlags XR_SWAPCHAIN_CREATE_PROTECTED_CONTENT_BIT = 0x00000001;
static const XrSwapchainCreateFlags XR_SWAPCHAIN_CREATE_STATIC_IMAGE_BIT = 0x00000002;

Description

Flag Descriptions
  • XR_SWAPCHAIN_CREATE_PROTECTED_CONTENT_BIT indicates that the swapchain’s images will be protected from CPU access, using a mechanism such as Vulkan protected memory.

  • XR_SWAPCHAIN_CREATE_STATIC_IMAGE_BIT indicates that the application will acquire and release only one image to this swapchain over its entire lifetime. When this flag is present, runtimes should allocate fewer images than for regular swapchains to reduce memory use.

A runtime may implement any of these, but is not required to.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrSwapchainUsageFlags(3)

Name

XrSwapchainUsageFlags - Swapchain usage flags

C Specification

XrSwapchainUsageFlags Specify the intended usage of the swapchain images. When images are created, the runtime needs to know how the images are used in a way that requires more information than simply the image format. The XrSwapchainCreateInfo passed to xrCreateSwapchain should match the intended usage or else undefined behavior may result when the application works with the images.

Flags include:

// Flag bits for XrSwapchainUsageFlags
static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_COLOR_ATTACHMENT_BIT = 0x00000001;
static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000002;
static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_UNORDERED_ACCESS_BIT = 0x00000004;
static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_TRANSFER_SRC_BIT = 0x00000008;
static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_TRANSFER_DST_BIT = 0x00000010;
static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_SAMPLED_BIT = 0x00000020;
static const XrSwapchainUsageFlags XR_SWAPCHAIN_USAGE_MUTABLE_FORMAT_BIT = 0x00000040;

Description

Flag Descriptions
  • XR_SWAPCHAIN_USAGE_COLOR_ATTACHMENT_BIT indicates that the image may be a color rendering target.

  • XR_SWAPCHAIN_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT indicates that the image may be a depth/stencil rendering target.

  • XR_SWAPCHAIN_USAGE_UNORDERED_ACCESS_BIT indicates that the image may be used as data source.

  • XR_SWAPCHAIN_USAGE_TRANSFER_SRC_BIT indicates that the image may be the source of a copy operation.

  • XR_SWAPCHAIN_USAGE_TRANSFER_DST_BIT indicates that the image may be the destination of a copy operation.

  • XR_SWAPCHAIN_USAGE_SAMPLED_BIT indicates that the image may sampled by a shader.

  • XR_SWAPCHAIN_USAGE_MUTABLE_FORMAT_BIT indicates that the image format may be reinterpreted.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrViewStateFlags(3)

Name

XrViewStateFlags - View state flags

C Specification

The XrViewStateFlags specifies the validity and quality of the corresponding XrView array returned by xrLocateViews.

Flags include:

// Flag bits for XrViewStateFlags
static const XrViewStateFlags XR_VIEW_STATE_ORIENTATION_VALID_BIT = 0x00000001;
static const XrViewStateFlags XR_VIEW_STATE_POSITION_VALID_BIT = 0x00000002;
static const XrViewStateFlags XR_VIEW_STATE_ORIENTATION_TRACKED_BIT = 0x00000004;
static const XrViewStateFlags XR_VIEW_STATE_POSITION_TRACKED_BIT = 0x00000008;

Description

Flag Descriptions
  • XR_VIEW_STATE_ORIENTATION_VALID_BIT indicates whether all XrView orientations contain valid data. XR_VIEW_STATE_ORIENTATION_TRACKED_BIT should generally remain set when this bit is set for views on a tracked headset or handheld device.

  • XR_VIEW_STATE_POSITION_VALID_BIT indicates whether all XrView positions contain valid data. When a view loses tracking, runtimes should continue to provide valid but untracked view position values that are inferred or last-known, so long as it’s still meaningful for the application to render content using that position, clearing XR_VIEW_STATE_POSITION_TRACKED_BIT until tracking is recovered.

  • XR_VIEW_STATE_ORIENTATION_TRACKED_BIT indicates whether all XrView orientations represent an actively tracked orientation. This bit should generally remain set when XR_VIEW_STATE_ORIENTATION_VALID_BIT is set for views on a tracked headset or handheld device.

  • XR_VIEW_STATE_POSITION_TRACKED_BIT indicates whether all XrView positions represent an actively tracked position. When a view loses tracking, runtimes should continue to provide valid but untracked view position values that are inferred or last-known, e.g. based on neck model updates, inertial dead reckoning, or a last-known position, so long as it’s still meaningful for the application to render content using that position.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

Function Pointer Types

PFN_xrDebugUtilsMessengerCallbackEXT(3)

Name

PFN_xrDebugUtilsMessengerCallbackEXT - Type of callback function invoked by the debug utils

C Specification

typedef XrBool32 (XRAPI_PTR *PFN_xrDebugUtilsMessengerCallbackEXT)(
            XrDebugUtilsMessageSeverityFlagsEXT              messageSeverity,
            XrDebugUtilsMessageTypeFlagsEXT                  messageTypes,
            const XrDebugUtilsMessengerCallbackDataEXT*      callbackData,
            void*                                            userData);

Parameters

Parameter Descriptions

Description

The callback must not call xrDestroyDebugUtilsMessengerEXT.

The callback returns an XrBool32 that indicates to the calling layer the application’s desire to abort the call. A value of XR_TRUE indicates that the application wants to abort this call. If the application returns XR_FALSE, the function must not be aborted. Applications should always return XR_FALSE so that they see the same behavior with and without validation layers enabled.

If the application returns XR_TRUE from its callback and the OpenXR call being aborted returns an XrResult, the layer will return XR_ERROR_VALIDATION_FAILURE.

The object pointed to by callbackData (and any pointers in it recursively) must be valid during the lifetime of the triggered callback. It may become invalid afterwards.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

PFN_xrVoidFunction(3)

Name

PFN_xrVoidFunction - Dummy function pointer type returned by queries

C Specification

typedef void (XRAPI_PTR *PFN_xrVoidFunction)(void);

Parameters

Parameter Descriptions
  • no parameters.

Description

PFN_xrVoidFunction is a dummy pointer returned by queries, specifically those to xrGetInstanceProcAddr.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

OpenXR Scalar types

XrBool32(3)

Name

XrBool32 - Boolean value

C Specification

typedef uint32_t XrBool32;

Description

Boolean values used by OpenXR are of type XrBool32 and are 32-bits wide as suggested by the name. The only valid values are the following:

Enumerant Descriptions
  • XR_TRUE represents a true value.

  • XR_FALSE represents a false value.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrDuration(3)

Name

XrDuration - Bounded range of time

C Specification

typedef int64_t XrDuration;

Description

The difference between two timepoints is a duration, and thus the difference between two XrTime values is an XrDuration value.

Functions that refer to durations use XrDuration as opposed to XrTime.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrFlags64(3)

Name

XrFlags64 - OpenXR bitmasks

C Specification

A collection of flags is represented by a bitmask using the type XrFlags64:

typedef uint64_t XrFlags64;

Description

Bitmasks are passed to many functions and structures to compactly represent options and are stored in memory defined by the XrFlags64 type. But the API does not use the XrFlags64 type directly. Instead, a Xr*Flags type is used which is an alias of the XrFlags64 type. The API also defines a set of constant bit definitions used to set the bitmasks.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrPath(3)

Name

XrPath - A semantic path

C Specification

XR_DEFINE_ATOM(XrPath)

Description

The XrPath is an atom that connects an application with a single path, within the context of a single instance. There is a bijective mapping between well-formed path strings and atoms in use. This atom is used — in place of the path name string it corresponds to — to retrieve state and perform other operations.

As an XrPath is only shorthand for a well-formed path string, they have no explicit life cycle.

Lifetime is implicitly managed by the XrInstance. An XrPath must not be used unless it is received at execution time from the runtime in the context of a particular XrInstance. Therefore, with the exception of XR_NULL_PATH, XrPath values must not be specified as constant values in applications: the corresponding path string should be used instead. During the lifetime of a given XrInstance, the XrPath associated with that instance with any given well-formed path must not vary, and similarly the well-formed path string that corresponds to a given XrPath in that instance must not vary. An XrPath that is received from one XrInstance may not be used with another. Such an invalid use may be detected and result in an error being returned, or it may result in undefined behavior.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrSystemId(3)

Name

XrSystemId - Identifier for a system

C Specification

XR_DEFINE_ATOM(XrSystemId)

Description

An XrSystemId is an opaque atom used by the runtime to identify a system. The value XR_NULL_SYSTEM_ID is considered an invalid system.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XrTime(3)

Name

XrTime - Basic type for time

C Specification

typedef int64_t XrTime;

Description

XrTime is a base value type to represent time, as a 64 bit integer. Unless specified otherwise, XrTime denotes a time-point relative to some runtime-determined constant epoch, rather than a duration, or a time-point with some moving epoch such as function call time, vsync time, etc.

Time may be represented by the runtime with a standardized epoch (e.g. 12:00:00 January 1, 1970 as of runtime start), or an arbitrary epoch may be used (e.g. time since runtime start). Time overflows after 264 nanoseconds have occurred since the epoch. A single runtime must use the same epoch for all simultaneous applications. Time must be represented the same regardless of multiple processors or threads present in the system.

The period precision of time reported by the runtime is runtime-dependent, and may change. One nanosecond is the finest possible period precision. A runtime may, for example, report time progression with only microsecond-level granularity.

Time must not be assumed to correspond to a system clock time.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

C Macro Definitions

XR_CURRENT_API_VERSION(3)

Name

XR_CURRENT_API_VERSION - Version of the OpenXR API

C Specification

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

Description

XR_CURRENT_API_VERSION is the current version of the OpenXR API.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XR_DEFINE_ATOM(3)

Name

XR_DEFINE_ATOM - Macro to define a atom type

C Specification

#if !defined(XR_DEFINE_ATOM)
    #define XR_DEFINE_ATOM(object) typedef uint64_t object;
#endif

Description

Parameter Descriptions
  • object is the name of the resulting C type.

XR_DEFINE_ATOM defines an atom type, which is an opaque 64 bit integer.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XR_DEFINE_HANDLE(3)

Name

XR_DEFINE_HANDLE - Macro to define a handle type

C Specification

#if !defined(XR_DEFINE_HANDLE)
#if (XR_PTR_SIZE == 8)
    #define XR_DEFINE_HANDLE(object) typedef struct object##_T* object;
#else
    #define XR_DEFINE_HANDLE(object) typedef uint64_t object;
#endif
#endif

Description

Parameter Descriptions
  • object is the name of the resulting C type.

XR_DEFINE_HANDLE defines a handle type, which is an opaque 64 bit value, which may be implemented as an opaque, distinct pointer type on platforms with 64 bit pointers.

For further details, see Handles.

See Also

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XR_FAILED(3)

Name

XR_FAILED - Failure convenience macro

C Specification

#define XR_FAILED(result) ((result) < 0)

Description

way.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XR_FREQUENCY_UNSPECIFIED(3)

Name

XR_FREQUENCY_UNSPECIFIED - Runtime should determine optimal frequency for haptic pulse

C Specification

XR_FREQUENCY_UNSPECIFIED is used to indicate that the application wants the runtime to decide what the optimal frequency is for the haptic pulse.

#define XR_FREQUENCY_UNSPECIFIED 0

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XR_HEADER_VERSION(3)

Name

XR_HEADER_VERSION - Version of the OpenXR header

C Specification

// Version of this file
#define XR_HEADER_VERSION 43

Description

XR_HEADER_VERSION is the version number of the openxr.h header. This value is currently kept synchronized with the release number of the Specification. However, it is not guaranteed to remain synchronized, since most Specification updates have no effect on openxr.h.

Document Notes

For more information, see the OpenXR Specification at URL

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

XR_INFINITE_DURATION(3)