Safe Haskell | None |
---|---|
Language | Haskell2010 |
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 #
:: 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
-
session
must be a validSession
handle -
controllerModelKeyState
must be a pointer to anControllerModelKeyStateMSFT
structure
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
session
is the specifiedSession
.
modelKey
is the model key corresponding to the controller render model being queried.bufferCapacityInput
is the capacity of thebuffer
array, or 0 to indicate a request to retrieve the required capacity.bufferCountOutput
filled in by the runtime with the count of elements inbuffer
array, or returns the required capacity in the case thatbufferCapacityInput
is 0.buffer
is a pointer to an application-allocated array of the model for the device that will be filled with theuint8_t
values by the runtime. It can beNULL
ifbufferCapacityInput
is 0.- See
Buffer Size Parameters
chapter for a detailed description of retrieving the required
buffer
size.
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
-
session
must be a validSession
handle -
bufferCountOutput
must be a pointer to auint32_t
value - If
bufferCapacityInput
is not0
,buffer
must be a pointer to an array ofbufferCapacityInput
uint8_t
values
Return Codes
See Also
https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#XrControllerModelKeyMSFT,
Session
getControllerModelPropertiesMSFT Source #
:: 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
-
session
must be a validSession
handle -
properties
must be a pointer to anControllerModelPropertiesMSFT
structure
Return Codes
See Also
https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html#XrControllerModelKeyMSFT,
ControllerModelPropertiesMSFT
, Session
getControllerModelStateMSFT Source #
:: 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
-
session
must be a validSession
handle -
state
must be a pointer to anControllerModelStateMSFT
structure
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
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
-
type
must beTYPE_CONTROLLER_MODEL_KEY_STATE_MSFT
-
next
must beNULL
or 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
ControllerModelKeyStateMSFT | |
|
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
-
type
must beTYPE_CONTROLLER_MODEL_NODE_PROPERTIES_MSFT
-
next
must beNULL
or a valid pointer to the next structure in a structure chain -
parentNodeName
must be a null-terminated UTF-8 string whose length is less than or equal to XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT -
nodeName
must 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
ControllerModelNodePropertiesMSFT | |
|
Instances
data ControllerModelPropertiesMSFT Source #
XrControllerModelPropertiesMSFT - Describes the properties of a controller model
Parameter Descriptions
type
is theStructureType
of this structure.
next
isNULL
or a pointer to the next structure in a structure chain.nodeCapacityInput
is the capacity of thenodeProperties
array, or 0 to indicate a request to retrieve the required capacity.nodeCountOutput
filled in by the runtime with the count of elements innodeProperties
array, or returns the required capacity in the case thatnodeCapacityInput
is 0.nodeProperties
is a pointer to an application-allocated array that will be filled with theControllerModelNodePropertiesMSFT
values. It can beNULL
ifnodeCapacityInput
is 0.- See
Buffer Size Parameters
chapter for a detailed description of retrieving the required
nodeProperties
size.
Valid Usage (Implicit)
- The @@
extension must be enabled prior to using
ControllerModelPropertiesMSFT
-
type
must beTYPE_CONTROLLER_MODEL_PROPERTIES_MSFT
-
next
must beNULL
or a valid pointer to the next structure in a structure chain - If
nodeCapacityInput
is not0
,nodeProperties
must be a pointer to an array ofnodeCapacityInput
ControllerModelNodePropertiesMSFT
structures
See Also
ControllerModelNodePropertiesMSFT
,
StructureType
,
getControllerModelPropertiesMSFT
, loadControllerModelMSFT
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
-
type
must beTYPE_CONTROLLER_MODEL_NODE_STATE_MSFT
-
next
must beNULL
or a valid pointer to the next structure in a structure chain
See Also
ControllerModelStateMSFT
, Posef
,
StructureType
,
getControllerModelStateMSFT
Instances
data ControllerModelStateMSFT Source #
XrControllerModelStateMSFT - Describes the state of a controller model
Parameter Descriptions
type
is theStructureType
of this structure.
next
isNULL
or a pointer to the next structure in a structure chain.nodeCapacityInput
is the capacity of thenodeStates
array, or 0 to indicate a request to retrieve the required capacity.nodeCountOutput
filled in by the runtime with the count of elements innodeStates
array, or returns the required capacity in the case thatnodeCapacityInput
is 0.nodeStates
is a pointer to an application-allocated array that will be filled with theControllerModelNodeStateMSFT
values. It can beNULL
ifsourceCapacityInput
is 0.- See
Buffer Size Parameters
chapter for a detailed description of retrieving the required
nodeStates
size.
Valid Usage (Implicit)
- The @@
extension must be enabled prior to using
ControllerModelStateMSFT
-
type
must beTYPE_CONTROLLER_MODEL_STATE_MSFT
-
next
must beNULL
or a valid pointer to the next structure in a structure chain - If
nodeCapacityInput
is not0
,nodeStates
must be a pointer to an array ofnodeCapacityInput
ControllerModelNodeStateMSFT
structures
See Also
ControllerModelNodeStateMSFT
,
StructureType
,
getControllerModelStateMSFT
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