This extension provides a mechanism to load a GLTF model for controllers. An application can render the controller model using the real time pose input from controller’s grip action pose and animate controller parts representing the user’s interactions, such as pressing a button, or pulling a trigger.
This extension supports any controller interaction profile that supports subpathname:/grip/pose. The returned controller model represents the physical controller held in the user’s hands, and it may be different from the current interaction profile.
| Modifier and Type | Field and Description |
|---|---|
| public static final int | XR_ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT
Extends |
| public static final int | XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT
XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT |
| public static final String | XR_MSFT_CONTROLLER_MODEL_EXTENSION_NAME
The extension name. |
| public static final int | XR_MSFT_controller_model_SPEC_VERSION
The extension specification version. |
| public static final long | XR_NULL_CONTROLLER_MODEL_KEY_MSFT
API Constants |
| public static final int | XR_TYPE_CONTROLLER_MODEL_KEY_STATE_MSFT
Extends |
| public static final int | XR_TYPE_CONTROLLER_MODEL_NODE_PROPERTIES_MSFT
Extends |
| public static final int | XR_TYPE_CONTROLLER_MODEL_NODE_STATE_MSFT
Extends |
| public static final int | XR_TYPE_CONTROLLER_MODEL_PROPERTIES_MSFT
Extends |
| public static final int | XR_TYPE_CONTROLLER_MODEL_STATE_MSFT
Extends |
| Access | Constructor and Description |
|---|---|
| protected |
| Modifier and Type | Method and Description |
|---|---|
| public static int | nxrGetControllerModelKeyMSFT(XrSession session, long topLevelUserPath, long controllerModelKeyState)
Unsafe version of: |
| public static int | nxrGetControllerModelPropertiesMSFT(XrSession session, long modelKey, long properties)
Unsafe version of: |
| public static int | nxrGetControllerModelStateMSFT(XrSession session, long modelKey, long state)
Unsafe version of: |
| public static int | nxrLoadControllerModelMSFT(XrSession session, long modelKey, int
the capacity of the bufferCapacityInput, long bufferCountOutput, long buffer)buffer array, or 0 to indicate a request to retrieve the required capacity.Unsafe version of: |
| public static int | xrGetControllerModelKeyMSFT(XrSession
the specified session, long XrSession.the top level user path corresponding to the controller render model being queried (e.g. pathname:/user/hand/left or pathname:/user/hand/right). topLevelUserPath, XrControllerModelKeyStateMSFT a pointer to the controllerModelKeyState)XrControllerModelKeyStateMSFT to write the model key state to.Retrieve the model key for the controller. |
| public static int | xrGetControllerModelPropertiesMSFT(XrSession
the specified session, long XrSession.a valid model key obtained from modelKey, XrControllerModelPropertiesMSFT XrControllerModelKeyStateMSFTan properties)XrControllerModelPropertiesMSFT returning the properties of the controller modelGet controller model properties. |
| public static int | xrGetControllerModelStateMSFT(XrSession
the specified session, long XrSession.the model key corresponding to the controller model being queried. modelKey, XrControllerModelStateMSFT a pointer to state)XrControllerModelNodeStateMSFT returns the current controller model state.Get controller model state. |
| public static int | xrLoadControllerModelMSFT(XrSession
the specified session, long XrSession.the model key corresponding to the controller render model being queried. modelKey, IntBuffer filled in by the runtime with the count of elements in bufferCountOutput, ByteBuffer buffer array, or returns the required capacity in the case that bufferCapacityInput is insufficient.a pointer to an application-allocated array of the model for the device that will be filled with the buffer)uint8_t values by the runtime. It can be NULL if bufferCapacityInput is 0.Load controller render model. |
| XR_ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT | back to summary |
|---|---|
| public static final int XR_ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT Extends | |
| XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT | back to summary |
|---|---|
| public static final int XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT | |
| XR_MSFT_CONTROLLER_MODEL_EXTENSION_NAME | back to summary |
|---|---|
| public static final String XR_MSFT_CONTROLLER_MODEL_EXTENSION_NAME The extension name. | |
| XR_MSFT_controller_model_SPEC_VERSION | back to summary |
|---|---|
| public static final int XR_MSFT_controller_model_SPEC_VERSION The extension specification version. | |
| XR_NULL_CONTROLLER_MODEL_KEY_MSFT | back to summary |
|---|---|
| public static final long XR_NULL_CONTROLLER_MODEL_KEY_MSFT API Constants | |
| XR_TYPE_CONTROLLER_MODEL_KEY_STATE_MSFT | back to summary |
|---|---|
| public static final int XR_TYPE_CONTROLLER_MODEL_KEY_STATE_MSFT Extends Enum values: | |
| XR_TYPE_CONTROLLER_MODEL_NODE_PROPERTIES_MSFT | back to summary |
|---|---|
| public static final int XR_TYPE_CONTROLLER_MODEL_NODE_PROPERTIES_MSFT Extends Enum values: | |
| XR_TYPE_CONTROLLER_MODEL_NODE_STATE_MSFT | back to summary |
|---|---|
| public static final int XR_TYPE_CONTROLLER_MODEL_NODE_STATE_MSFT Extends Enum values: | |
| XR_TYPE_CONTROLLER_MODEL_PROPERTIES_MSFT | back to summary |
|---|---|
| public static final int XR_TYPE_CONTROLLER_MODEL_PROPERTIES_MSFT Extends Enum values: | |
| XR_TYPE_CONTROLLER_MODEL_STATE_MSFT | back to summary |
|---|---|
| public static final int XR_TYPE_CONTROLLER_MODEL_STATE_MSFT Extends Enum values: | |
| MSFTControllerModel | back to summary |
|---|---|
| protected MSFTControllerModel() | |
| nxrGetControllerModelKeyMSFT | back to summary |
|---|---|
| public static int nxrGetControllerModelKeyMSFT(XrSession session, long topLevelUserPath, long controllerModelKeyState) Unsafe version of: | |
| nxrGetControllerModelPropertiesMSFT | back to summary |
|---|---|
| public static int nxrGetControllerModelPropertiesMSFT(XrSession session, long modelKey, long properties) Unsafe version of: | |
| nxrGetControllerModelStateMSFT | back to summary |
|---|---|
| public static int nxrGetControllerModelStateMSFT(XrSession session, long modelKey, long state) Unsafe version of: | |
| nxrLoadControllerModelMSFT | back to summary |
|---|---|
| public static int nxrLoadControllerModelMSFT(XrSession session, long modelKey, int bufferCapacityInput, long bufferCountOutput, long buffer) Unsafe version of:
| |
| xrGetControllerModelKeyMSFT | back to summary |
|---|---|
| public static int xrGetControllerModelKeyMSFT(XrSession session, long topLevelUserPath, XrControllerModelKeyStateMSFT controllerModelKeyState) Retrieve the model key for the controller. C Specification
The
Valid Usage (Implicit)
Return Codes
See Also
| |
| xrGetControllerModelPropertiesMSFT | back to summary |
|---|---|
| public static int xrGetControllerModelPropertiesMSFT(XrSession session, long modelKey, XrControllerModelPropertiesMSFT properties) Get controller model properties. C SpecificationThe
DescriptionThe runtime must return the same data in If the input Valid Usage (Implicit)
Return Codes
See Also
| |
| xrGetControllerModelStateMSFT | back to summary |
|---|---|
| public static int xrGetControllerModelStateMSFT(XrSession session, long modelKey, XrControllerModelStateMSFT state) Get controller model state. C SpecificationThe
DescriptionThe runtime may return different state for a model key after each call to If the input Valid Usage (Implicit)
Return Codes
See Also
| |
| xrLoadControllerModelMSFT | back to summary |
|---|---|
| public static int xrLoadControllerModelMSFT(XrSession session, long modelKey, IntBuffer bufferCountOutput, ByteBuffer buffer) Load controller render model. C SpecificationThe
DescriptionThe If the input Valid Usage (Implicit)
Return Codes
| |