C Specification

The XrRenderModelCreateInfoEXT structure is defined as:

// Provided by XR_EXT_render_model
typedef struct XrRenderModelCreateInfoEXT {
    XrStructureType       type;
    const void*           next;
    XrRenderModelIdEXT    renderModelId;
    uint32_t              gltfExtensionCount;
    const char* const*    gltfExtensions;
} XrRenderModelCreateInfoEXT;

Members

Member Descriptions
  • type is the XrStructureType of this structure.

  • next is NULL or a pointer to the next structure in a structure chain. No such structures are defined in core OpenXR or this extension.

  • renderModelId is an XrRenderModelIdEXT to identify the render model to be created.

  • gltfExtensionCount is the count of strings in the gltfExtensions array. It must be 0 if gltfExtensions is NULL.

  • gltfExtensions is an optional array of strings that represents a list of glTF extensions the application supports.

Description

The XrRenderModelCreateInfoEXT structure describes the information necessary to create an XrRenderModelEXT handle.

The input renderModelId value must be obtained from the same XrSession used in xrCreateRenderModelEXT. If the renderModelId value does not match one retrieved from the relevant XrSession, the runtime must return error XR_ERROR_RENDER_MODEL_ID_INVALID_EXT.

Note: There is a chance that a renderModelId value incorrectly retained from another session may have the same numerical value as one retrieved from the current XrSession. In such instances, the runtime is unable to distinguish between the two IDs. As a result, the runtime may mistakenly accept the ID and return a success code, even though it represents an invalid usage. Applications should be prepared to handle unexpected behaviors or outcomes stemming from this scenario.

The application can create multiple XrRenderModelEXT handles using the same ID. The runtime must return the same render model states and asset UUID to these handles if they also share the same list of extensions, since they are sharing the same underlying render model ID. If the list of extensions differs, the runtime may expose a different number of animatable nodes, different asset data and UUID, etc.

The runtime must return XR_ERROR_RENDER_MODEL_GLTF_EXTENSION_REQUIRED_EXT if the runtime is unable to return a glTF asset that only requires extensions found in the application’s list of supported glTF extensions.

Related extensions may require the application to support certain glTF extensions, in which case this error code indicates a failure to satisfy the requirement.

Alternately, related extensions may require the runtime to support providing base glTF assets without any required glTF extensions, in which case this error must not be returned by xrCreateRenderModelEXT in association with render model IDs retrieved from such extensions. See https://registry.khronos.org/OpenXR/specs/1.1/html/xrspec.html#ext_render_model-choice-gltf-exts.

The order of gltfExtensions array represents the preferences from the application when multiple extensions are specified. The runtime may select or modify the retrieved glTF assets based on this array of extensions to optimize the glTF asset for this application.

Successful creation of this handle implies that the runtime is ready to report a fixed number and sequence of animatable node states for an asset satisfying the application’s criteria, and that asset data, with node names, meeting the criteria may be available during this session. The asset data and node names may still be unavailable at the time the XrRenderModelEXT handle is returned.

Valid Usage (Implicit)

See Also

Document Notes

For more information, see the OpenXR Specification

This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.

Copyright 2014-2025 The Khronos Group Inc.