| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
OpenXR.Extensions.XR_MSFT_controller_model
Description
Name
XR_MSFT_controller_model - instance extension
Specification
See XR_MSFT_controller_model in the main specification for complete information.
Registered Extension Number
56
Revision
2
Extension and Version Dependencies
- Requires OpenXR 1.0
See Also
MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT,
 NULL_CONTROLLER_MODEL_KEY_MSFT,
 https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#XrControllerModelKeyMSFT,
 ControllerModelKeyStateMSFT, ControllerModelNodePropertiesMSFT,
 ControllerModelNodeStateMSFT, ControllerModelPropertiesMSFT,
 ControllerModelStateMSFT, getControllerModelKeyMSFT,
 getControllerModelPropertiesMSFT, getControllerModelStateMSFT,
 loadControllerModelMSFT
Document Notes
For more information, see the OpenXR Specification
This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.
Synopsis
- getControllerModelKeyMSFT :: forall io. MonadIO io => Session -> ("topLevelUserPath" ::: Path) -> io ControllerModelKeyStateMSFT
- loadControllerModelMSFT :: forall io. MonadIO io => Session -> ControllerModelKeyMSFT -> io ("buffer" ::: Vector Word8)
- getControllerModelPropertiesMSFT :: forall io. MonadIO io => Session -> ControllerModelKeyMSFT -> io ControllerModelPropertiesMSFT
- getControllerModelStateMSFT :: forall io. MonadIO io => Session -> ControllerModelKeyMSFT -> io ControllerModelStateMSFT
- newtype ControllerModelKeyMSFT = ControllerModelKeyMSFT Word64
- data ControllerModelKeyStateMSFT = ControllerModelKeyStateMSFT {}
- data ControllerModelNodePropertiesMSFT = ControllerModelNodePropertiesMSFT {}
- data ControllerModelPropertiesMSFT = ControllerModelPropertiesMSFT {}
- data ControllerModelNodeStateMSFT = ControllerModelNodeStateMSFT {}
- data ControllerModelStateMSFT = ControllerModelStateMSFT {}
- type MSFT_controller_model_SPEC_VERSION = 2
- pattern MSFT_controller_model_SPEC_VERSION :: forall a. Integral a => a
- type MSFT_CONTROLLER_MODEL_EXTENSION_NAME = "XR_MSFT_controller_model"
- pattern MSFT_CONTROLLER_MODEL_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
- type MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT = 64
- pattern MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT :: forall a. Integral a => a
- type NULL_CONTROLLER_MODEL_KEY_MSFT = 0
- pattern NULL_CONTROLLER_MODEL_KEY_MSFT :: forall a. Integral a => a
Documentation
getControllerModelKeyMSFT Source #
Arguments
| :: forall io. MonadIO io | |
| => Session | 
 | 
| -> ("topLevelUserPath" ::: Path) | 
 | 
| -> io ControllerModelKeyStateMSFT | 
xrGetControllerModelKeyMSFT - Retrieve the model key for the controller
Valid Usage (Implicit)
-  The @@
     extension must be enabled prior to calling
     getControllerModelKeyMSFT
-  sessionmust be a validSessionhandle
- 
     controllerModelKeyStatemust be a pointer to anControllerModelKeyStateMSFTstructure
Return Codes
See Also
ControllerModelKeyStateMSFT,
 https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#XrPath,
 Session
loadControllerModelMSFT :: forall io. MonadIO io => Session -> ControllerModelKeyMSFT -> io ("buffer" ::: Vector Word8) Source #
xrLoadControllerModelMSFT - Load controller render model
Parameter Descriptions
- sessionis the specified- Session.
- modelKeyis the model key corresponding to the controller render model being queried.
- bufferCapacityInputis the capacity of the- bufferarray, or 0 to indicate a request to retrieve the required capacity.
- bufferCountOutputfilled in by the runtime with the count of elements in- bufferarray, or returns the required capacity in the case that- bufferCapacityInputis 0.
- bufferis a pointer to an application-allocated array of the model for the device that will be filled with the- uint8_tvalues by the runtime. It can be- NULLif- bufferCapacityInputis 0.
- See
     Buffer Size Parameters
     chapter for a detailed description of retrieving the required
     buffersize.
Description
The loadControllerModelMSFT function may be a slow operation and
 therefore should be invoked from a non-timing critical thread.
If the input modelKey is invalid, i.e. it is
 NULL_CONTROLLER_MODEL_KEY_MSFT or not a key
 returned from ControllerModelKeyStateMSFT, the runtime must return
 ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT.
Valid Usage (Implicit)
-  The @@
     extension must be enabled prior to calling
     loadControllerModelMSFT
-  sessionmust be a validSessionhandle
- 
     bufferCountOutputmust be a pointer to auint32_tvalue
-  If
     bufferCapacityInputis not0,buffermust be a pointer to an array ofbufferCapacityInputuint8_tvalues
Return Codes
See Also
https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#XrControllerModelKeyMSFT,
 Session
getControllerModelPropertiesMSFT Source #
Arguments
| :: forall io. MonadIO io | |
| => Session | 
 | 
| -> ControllerModelKeyMSFT | 
 | 
| -> io ControllerModelPropertiesMSFT | 
xrGetControllerModelPropertiesMSFT - Get controller model properties
Parameter Descriptions
Description
The runtime must return the same data in
 ControllerModelPropertiesMSFT for a valid modelKey. Therefore, the
 application can cache the returned ControllerModelPropertiesMSFT
 using modelKey and reuse the data for each frame.
If the input modelKey is invalid, i.e. it is
 NULL_CONTROLLER_MODEL_KEY_MSFT or not a key
 returned from ControllerModelKeyStateMSFT, the runtime must return
 ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT.
Valid Usage (Implicit)
-  The
     @@ extension must be enabled prior to calling
     getControllerModelPropertiesMSFT
- 
     sessionmust be a validSessionhandle
- 
     propertiesmust be a pointer to anControllerModelPropertiesMSFTstructure
Return Codes
See Also
https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#XrControllerModelKeyMSFT,
 ControllerModelPropertiesMSFT, Session
getControllerModelStateMSFT Source #
Arguments
| :: forall io. MonadIO io | |
| => Session | 
 | 
| -> ControllerModelKeyMSFT | 
 | 
| -> io ControllerModelStateMSFT | 
xrGetControllerModelStateMSFT - Get controller model state
Parameter Descriptions
Description
The runtime may return different state for a model key after each call
 to syncActions, which represents the latest state
 of the user interactions.
If the input modelKey is invalid, i.e. it is
 NULL_CONTROLLER_MODEL_KEY_MSFT or not a key
 returned from ControllerModelKeyStateMSFT, the runtime must return
 ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT.
Valid Usage (Implicit)
-  The @@
     extension must be enabled prior to calling
     getControllerModelStateMSFT
-  sessionmust be a validSessionhandle
-  statemust be a pointer to anControllerModelStateMSFTstructure
Return Codes
See Also
https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#XrControllerModelKeyMSFT,
 ControllerModelStateMSFT, Session
newtype ControllerModelKeyMSFT Source #
XrControllerModelKeyMSFT - Controller renderable model key
Description
The controller model key used to retrieve the data for the renderable controller model and associated properties and state.
See Also
NULL_CONTROLLER_MODEL_KEY_MSFT,
 ControllerModelKeyStateMSFT, getControllerModelPropertiesMSFT,
 getControllerModelStateMSFT, loadControllerModelMSFT
Constructors
| ControllerModelKeyMSFT Word64 | 
Instances
data ControllerModelKeyStateMSFT Source #
XrControllerModelKeyStateMSFT - The model key state for a controller
Parameter Descriptions
Description
The modelKey value for the session represents a unique controller
 model that can be retrieved from loadControllerModelMSFT function.
 Therefore, the application can use modelKey to cache the returned
 data from loadControllerModelMSFT for the session.
A modelKey value of
 NULL_CONTROLLER_MODEL_KEY_MSFT, represents
 an invalid model key and indicates there is no controller model yet
 available. The application should keep calling
 getControllerModelKeyMSFT because the model may become available at
 a later point.
Valid Usage (Implicit)
-  The @@
     extension must be enabled prior to using
     ControllerModelKeyStateMSFT
-  typemust beTYPE_CONTROLLER_MODEL_KEY_STATE_MSFT
-  nextmust beNULLor a valid pointer to the next structure in a structure chain
See Also
https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#XrControllerModelKeyMSFT,
 StructureType,
 getControllerModelKeyMSFT
Constructors
| ControllerModelKeyStateMSFT | |
| Fields 
 | |
Instances
data ControllerModelNodePropertiesMSFT Source #
XrControllerModelNodePropertiesMSFT - Describes the controller model node properties
Parameter Descriptions
Description
The node can be located in the glTF node hierarchy by finding the
 node(s) with the matching node name and parent node name. If the
 parentNodeName is empty, the matching will be solely based on the
 nodeName.
If there are multiple nodes in the glTF file matches the condition above, the first matching node using depth-first traversal in the glTF scene should be animated and the rest should be ignored.
The runtime must not return any nodeName or parentName that
 doesn’t match any gltTF nodes in the corresponding controller model.
Valid Usage (Implicit)
-  The
     @@ extension must be enabled prior to using
     ControllerModelNodePropertiesMSFT
-  typemust beTYPE_CONTROLLER_MODEL_NODE_PROPERTIES_MSFT
-  nextmust beNULLor a valid pointer to the next structure in a structure chain
- 
     parentNodeNamemust be a null-terminated UTF-8 string whose length is less than or equal to XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT
- 
     nodeNamemust be a null-terminated UTF-8 string whose length is less than or equal to XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT
See Also
ControllerModelPropertiesMSFT,
 StructureType,
 getControllerModelPropertiesMSFT, loadControllerModelMSFT
Constructors
| ControllerModelNodePropertiesMSFT | |
| Fields 
 | |
Instances
data ControllerModelPropertiesMSFT Source #
XrControllerModelPropertiesMSFT - Describes the properties of a controller model
Parameter Descriptions
- typeis the- StructureTypeof this structure.
- nextis- NULLor a pointer to the next structure in a structure chain.
- nodeCapacityInputis the capacity of the- nodePropertiesarray, or 0 to indicate a request to retrieve the required capacity.
- nodeCountOutputfilled in by the runtime with the count of elements in- nodePropertiesarray, or returns the required capacity in the case that- nodeCapacityInputis 0.
- nodePropertiesis a pointer to an application-allocated array that will be filled with the- ControllerModelNodePropertiesMSFTvalues. It can be- NULLif- nodeCapacityInputis 0.
- See
     Buffer Size Parameters
     chapter for a detailed description of retrieving the required
     nodePropertiessize.
Valid Usage (Implicit)
-  The @@
     extension must be enabled prior to using
     ControllerModelPropertiesMSFT
-  typemust beTYPE_CONTROLLER_MODEL_PROPERTIES_MSFT
-  nextmust beNULLor a valid pointer to the next structure in a structure chain
-  If
     nodeCapacityInputis not0,nodePropertiesmust be a pointer to an array ofnodeCapacityInputControllerModelNodePropertiesMSFTstructures
See Also
ControllerModelNodePropertiesMSFT,
 StructureType,
 getControllerModelPropertiesMSFT, loadControllerModelMSFT
Constructors
| ControllerModelPropertiesMSFT | |
Instances
data ControllerModelNodeStateMSFT Source #
XrControllerModelNodeStateMSFT - Describes the state of a node in a controller model
Parameter Descriptions
Description
The state is corresponding to the glTF node identified by the nodeName
 and nodeParentName of the node property at the same array index in the
 nodeProperties in ControllerModelPropertiesMSFT.
The nodePose is based on the user’s interaction on the controller at
 the latest syncActions, represented as the
 Posef of the node in it’s parent node space.
Valid Usage (Implicit)
-  The @@
     extension must be enabled prior to using
     ControllerModelNodeStateMSFT
-  typemust beTYPE_CONTROLLER_MODEL_NODE_STATE_MSFT
-  nextmust beNULLor a valid pointer to the next structure in a structure chain
See Also
ControllerModelStateMSFT, Posef,
 StructureType,
 getControllerModelStateMSFT
Constructors
| ControllerModelNodeStateMSFT | |
Instances
data ControllerModelStateMSFT Source #
XrControllerModelStateMSFT - Describes the state of a controller model
Parameter Descriptions
- typeis the- StructureTypeof this structure.
- nextis- NULLor a pointer to the next structure in a structure chain.
- nodeCapacityInputis the capacity of the- nodeStatesarray, or 0 to indicate a request to retrieve the required capacity.
- nodeCountOutputfilled in by the runtime with the count of elements in- nodeStatesarray, or returns the required capacity in the case that- nodeCapacityInputis 0.
- nodeStatesis a pointer to an application-allocated array that will be filled with the- ControllerModelNodeStateMSFTvalues. It can be- NULLif- sourceCapacityInputis 0.
- See
     Buffer Size Parameters
     chapter for a detailed description of retrieving the required
     nodeStatessize.
Valid Usage (Implicit)
-  The @@
     extension must be enabled prior to using
     ControllerModelStateMSFT
-  typemust beTYPE_CONTROLLER_MODEL_STATE_MSFT
-  nextmust beNULLor a valid pointer to the next structure in a structure chain
-  If
     nodeCapacityInputis not0,nodeStatesmust be a pointer to an array ofnodeCapacityInputControllerModelNodeStateMSFTstructures
See Also
ControllerModelNodeStateMSFT,
 StructureType,
 getControllerModelStateMSFT
Constructors
| ControllerModelStateMSFT | |
Instances
type MSFT_controller_model_SPEC_VERSION = 2 Source #
pattern MSFT_controller_model_SPEC_VERSION :: forall a. Integral a => a Source #
type MSFT_CONTROLLER_MODEL_EXTENSION_NAME = "XR_MSFT_controller_model" Source #
pattern MSFT_CONTROLLER_MODEL_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #
type MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT = 64 Source #
pattern MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT :: forall a. Integral a => a Source #
type NULL_CONTROLLER_MODEL_KEY_MSFT = 0 Source #
pattern NULL_CONTROLLER_MODEL_KEY_MSFT :: forall a. Integral a => a Source #
XR_NULL_CONTROLLER_MODEL_KEY_MSFT - The value representing an invalid model key
Description
NULL_CONTROLLER_MODEL_KEY_MSFT defines an invalid model key value.
See Also
https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#XrControllerModelKeyMSFT