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.