Class MSFTCompositionLayerReprojection
This extension enables an application to provide additional reprojection information for a projection composition layer to help the runtime produce better hologram stability and visual quality.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intExtendsXrResult.static final StringThe extension name.static final intThe extension specification version.static final intXrReprojectionModeMSFT - Describes the reprojection mode of a composition layerstatic final intXrReprojectionModeMSFT - Describes the reprojection mode of a composition layerstatic final intXrReprojectionModeMSFT - Describes the reprojection mode of a composition layerstatic final intXrReprojectionModeMSFT - Describes the reprojection mode of a composition layerstatic final intExtendsXrStructureType.static final intExtendsXrStructureType. -
Method Summary
Modifier and TypeMethodDescriptionstatic intnxrEnumerateReprojectionModesMSFT(org.lwjgl.openxr.XrInstance instance, long systemId, int viewConfigurationType, int modeCapacityInput, long modeCountOutput, long modes) Unsafe version of:EnumerateReprojectionModesMSFTstatic intxrEnumerateReprojectionModesMSFT(org.lwjgl.openxr.XrInstance instance, long systemId, int viewConfigurationType, IntBuffer modeCountOutput, @Nullable IntBuffer modes) Queries the supported reprojection modes.
-
Field Details
-
XR_MSFT_composition_layer_reprojection_SPEC_VERSION
public static final int XR_MSFT_composition_layer_reprojection_SPEC_VERSIONThe extension specification version.- See Also:
-
XR_MSFT_COMPOSITION_LAYER_REPROJECTION_EXTENSION_NAME
The extension name.- See Also:
-
XR_TYPE_COMPOSITION_LAYER_REPROJECTION_INFO_MSFT
public static final int XR_TYPE_COMPOSITION_LAYER_REPROJECTION_INFO_MSFTExtendsXrStructureType.Enum values:
- See Also:
-
XR_TYPE_COMPOSITION_LAYER_REPROJECTION_PLANE_OVERRIDE_MSFT
public static final int XR_TYPE_COMPOSITION_LAYER_REPROJECTION_PLANE_OVERRIDE_MSFTExtendsXrStructureType.Enum values:
- See Also:
-
XR_ERROR_REPROJECTION_MODE_UNSUPPORTED_MSFT
public static final int XR_ERROR_REPROJECTION_MODE_UNSUPPORTED_MSFTExtendsXrResult.- See Also:
-
XR_REPROJECTION_MODE_DEPTH_MSFT
public static final int XR_REPROJECTION_MODE_DEPTH_MSFTXrReprojectionModeMSFT - Describes the reprojection mode of a composition layerDescription
REPROJECTION_MODE_DEPTH_MSFTindicates the corresponding layer may benefit from per-pixel depth reprojection provided byXrCompositionLayerDepthInfoKHRto the projection layer. This mode is typically used for world-locked content that should remain physically stationary as the user walks around.REPROJECTION_MODE_PLANAR_FROM_DEPTH_MSFTindicates the corresponding layer may benefit from planar reprojection and the plane can be calculated from the corresponding depth information provided byXrCompositionLayerDepthInfoKHRto the projection layer. This mode works better when the application knows the content is mostly placed on a plane.REPROJECTION_MODE_PLANAR_MANUAL_MSFTindicates that the corresponding layer may benefit from planar reprojection. The application can customize the plane by chaining anXrCompositionLayerReprojectionPlaneOverrideMSFTstructure to the same layer. The app can also omit the plane override, indicating the runtime should use the default reprojection plane settings. This mode works better when the application knows the content is mostly placed on a plane, or when it cannot afford to submit depth information.REPROJECTION_MODE_ORIENTATION_ONLY_MSFTindicates the layer should be stabilized only for changes to orientation, ignoring positional changes. This mode works better for body-locked content that should follow the user as they walk around, such as 360-degree video.
When the application passes
REPROJECTION_MODE_DEPTH_MSFTorREPROJECTION_MODE_PLANAR_FROM_DEPTH_MSFTmode, it should also provide the depth buffer for the corresponding layer usingXrCompositionLayerDepthInfoKHRinXR_KHR_composition_layer_depthextension. However, if the application does not submit this depth buffer, the runtime must apply a runtime defined fallback reprojection mode, and must not fail theEndFramefunction because of this missing depth.When the application passes
REPROJECTION_MODE_PLANAR_MANUAL_MSFTorREPROJECTION_MODE_ORIENTATION_ONLY_MSFTmode, it should avoid providing a depth buffer for the corresponding layer usingXrCompositionLayerDepthInfoKHRinXR_KHR_composition_layer_depthextension. However, if the application does submit this depth buffer, the runtime must not fail theEndFramefunction because of this unused depth data.See Also
XrCompositionLayerReprojectionInfoMSFT,EnumerateReprojectionModesMSFT- See Also:
-
XR_REPROJECTION_MODE_PLANAR_FROM_DEPTH_MSFT
public static final int XR_REPROJECTION_MODE_PLANAR_FROM_DEPTH_MSFTXrReprojectionModeMSFT - Describes the reprojection mode of a composition layerDescription
REPROJECTION_MODE_DEPTH_MSFTindicates the corresponding layer may benefit from per-pixel depth reprojection provided byXrCompositionLayerDepthInfoKHRto the projection layer. This mode is typically used for world-locked content that should remain physically stationary as the user walks around.REPROJECTION_MODE_PLANAR_FROM_DEPTH_MSFTindicates the corresponding layer may benefit from planar reprojection and the plane can be calculated from the corresponding depth information provided byXrCompositionLayerDepthInfoKHRto the projection layer. This mode works better when the application knows the content is mostly placed on a plane.REPROJECTION_MODE_PLANAR_MANUAL_MSFTindicates that the corresponding layer may benefit from planar reprojection. The application can customize the plane by chaining anXrCompositionLayerReprojectionPlaneOverrideMSFTstructure to the same layer. The app can also omit the plane override, indicating the runtime should use the default reprojection plane settings. This mode works better when the application knows the content is mostly placed on a plane, or when it cannot afford to submit depth information.REPROJECTION_MODE_ORIENTATION_ONLY_MSFTindicates the layer should be stabilized only for changes to orientation, ignoring positional changes. This mode works better for body-locked content that should follow the user as they walk around, such as 360-degree video.
When the application passes
REPROJECTION_MODE_DEPTH_MSFTorREPROJECTION_MODE_PLANAR_FROM_DEPTH_MSFTmode, it should also provide the depth buffer for the corresponding layer usingXrCompositionLayerDepthInfoKHRinXR_KHR_composition_layer_depthextension. However, if the application does not submit this depth buffer, the runtime must apply a runtime defined fallback reprojection mode, and must not fail theEndFramefunction because of this missing depth.When the application passes
REPROJECTION_MODE_PLANAR_MANUAL_MSFTorREPROJECTION_MODE_ORIENTATION_ONLY_MSFTmode, it should avoid providing a depth buffer for the corresponding layer usingXrCompositionLayerDepthInfoKHRinXR_KHR_composition_layer_depthextension. However, if the application does submit this depth buffer, the runtime must not fail theEndFramefunction because of this unused depth data.See Also
XrCompositionLayerReprojectionInfoMSFT,EnumerateReprojectionModesMSFT- See Also:
-
XR_REPROJECTION_MODE_PLANAR_MANUAL_MSFT
public static final int XR_REPROJECTION_MODE_PLANAR_MANUAL_MSFTXrReprojectionModeMSFT - Describes the reprojection mode of a composition layerDescription
REPROJECTION_MODE_DEPTH_MSFTindicates the corresponding layer may benefit from per-pixel depth reprojection provided byXrCompositionLayerDepthInfoKHRto the projection layer. This mode is typically used for world-locked content that should remain physically stationary as the user walks around.REPROJECTION_MODE_PLANAR_FROM_DEPTH_MSFTindicates the corresponding layer may benefit from planar reprojection and the plane can be calculated from the corresponding depth information provided byXrCompositionLayerDepthInfoKHRto the projection layer. This mode works better when the application knows the content is mostly placed on a plane.REPROJECTION_MODE_PLANAR_MANUAL_MSFTindicates that the corresponding layer may benefit from planar reprojection. The application can customize the plane by chaining anXrCompositionLayerReprojectionPlaneOverrideMSFTstructure to the same layer. The app can also omit the plane override, indicating the runtime should use the default reprojection plane settings. This mode works better when the application knows the content is mostly placed on a plane, or when it cannot afford to submit depth information.REPROJECTION_MODE_ORIENTATION_ONLY_MSFTindicates the layer should be stabilized only for changes to orientation, ignoring positional changes. This mode works better for body-locked content that should follow the user as they walk around, such as 360-degree video.
When the application passes
REPROJECTION_MODE_DEPTH_MSFTorREPROJECTION_MODE_PLANAR_FROM_DEPTH_MSFTmode, it should also provide the depth buffer for the corresponding layer usingXrCompositionLayerDepthInfoKHRinXR_KHR_composition_layer_depthextension. However, if the application does not submit this depth buffer, the runtime must apply a runtime defined fallback reprojection mode, and must not fail theEndFramefunction because of this missing depth.When the application passes
REPROJECTION_MODE_PLANAR_MANUAL_MSFTorREPROJECTION_MODE_ORIENTATION_ONLY_MSFTmode, it should avoid providing a depth buffer for the corresponding layer usingXrCompositionLayerDepthInfoKHRinXR_KHR_composition_layer_depthextension. However, if the application does submit this depth buffer, the runtime must not fail theEndFramefunction because of this unused depth data.See Also
XrCompositionLayerReprojectionInfoMSFT,EnumerateReprojectionModesMSFT- See Also:
-
XR_REPROJECTION_MODE_ORIENTATION_ONLY_MSFT
public static final int XR_REPROJECTION_MODE_ORIENTATION_ONLY_MSFTXrReprojectionModeMSFT - Describes the reprojection mode of a composition layerDescription
REPROJECTION_MODE_DEPTH_MSFTindicates the corresponding layer may benefit from per-pixel depth reprojection provided byXrCompositionLayerDepthInfoKHRto the projection layer. This mode is typically used for world-locked content that should remain physically stationary as the user walks around.REPROJECTION_MODE_PLANAR_FROM_DEPTH_MSFTindicates the corresponding layer may benefit from planar reprojection and the plane can be calculated from the corresponding depth information provided byXrCompositionLayerDepthInfoKHRto the projection layer. This mode works better when the application knows the content is mostly placed on a plane.REPROJECTION_MODE_PLANAR_MANUAL_MSFTindicates that the corresponding layer may benefit from planar reprojection. The application can customize the plane by chaining anXrCompositionLayerReprojectionPlaneOverrideMSFTstructure to the same layer. The app can also omit the plane override, indicating the runtime should use the default reprojection plane settings. This mode works better when the application knows the content is mostly placed on a plane, or when it cannot afford to submit depth information.REPROJECTION_MODE_ORIENTATION_ONLY_MSFTindicates the layer should be stabilized only for changes to orientation, ignoring positional changes. This mode works better for body-locked content that should follow the user as they walk around, such as 360-degree video.
When the application passes
REPROJECTION_MODE_DEPTH_MSFTorREPROJECTION_MODE_PLANAR_FROM_DEPTH_MSFTmode, it should also provide the depth buffer for the corresponding layer usingXrCompositionLayerDepthInfoKHRinXR_KHR_composition_layer_depthextension. However, if the application does not submit this depth buffer, the runtime must apply a runtime defined fallback reprojection mode, and must not fail theEndFramefunction because of this missing depth.When the application passes
REPROJECTION_MODE_PLANAR_MANUAL_MSFTorREPROJECTION_MODE_ORIENTATION_ONLY_MSFTmode, it should avoid providing a depth buffer for the corresponding layer usingXrCompositionLayerDepthInfoKHRinXR_KHR_composition_layer_depthextension. However, if the application does submit this depth buffer, the runtime must not fail theEndFramefunction because of this unused depth data.See Also
XrCompositionLayerReprojectionInfoMSFT,EnumerateReprojectionModesMSFT- See Also:
-
-
Method Details
-
nxrEnumerateReprojectionModesMSFT
public static int nxrEnumerateReprojectionModesMSFT(org.lwjgl.openxr.XrInstance instance, long systemId, int viewConfigurationType, int modeCapacityInput, long modeCountOutput, long modes) Unsafe version of:EnumerateReprojectionModesMSFT- Parameters:
modeCapacityInput- the capacity of the array, or 0 to indicate a request to retrieve the required capacity.
-
xrEnumerateReprojectionModesMSFT
public static int xrEnumerateReprojectionModesMSFT(org.lwjgl.openxr.XrInstance instance, long systemId, int viewConfigurationType, IntBuffer modeCountOutput, @Nullable IntBuffer modes) Queries the supported reprojection modes.C Specification
First, the application uses
EnumerateReprojectionModesMSFTto inspect what reprojection mode the view configuration supports.The
EnumerateReprojectionModesMSFTfunction returns the supported reprojection modes of the view configuration.XrResult xrEnumerateReprojectionModesMSFT( XrInstance instance, XrSystemId systemId, XrViewConfigurationType viewConfigurationType, uint32_t modeCapacityInput, uint32_t* modeCountOutput, XrReprojectionModeMSFT* modes);Valid Usage (Implicit)
- The
XR_MSFT_composition_layer_reprojectionextension must be enabled prior to callingEnumerateReprojectionModesMSFT instancemust be a validXrInstancehandleviewConfigurationTypemust be a validXrViewConfigurationTypevaluemodeCountOutputmust be a pointer to auint32_tvalue- If
modeCapacityInputis not 0,modesmust be a pointer to an array ofmodeCapacityInputXrReprojectionModeMSFTvalues
Return Codes
- On success, this command returns
- On failure, this command returns
A system may support different sets of reprojection modes for different view configuration types.
- Parameters:
instance- the instance from whichsystemIdwas retrieved.systemId- theXrSystemIdwhose reprojection modes will be enumerated.viewConfigurationType- theXrViewConfigurationTypeto enumerate.modeCountOutput- a pointer to the count of the array, or a pointer to the required capacity in the case thatmodeCapacityInputis insufficient.modes- a pointer to an application-allocated array that will be filled with theXrReprojectionModeMSFTvalues that are supported by the runtime. It can beNULLifmodeCapacityInputis 0.
- The
-