C Specification

The XrSceneSubmeshDataANDROID structure is defined as:

// Provided by XR_ANDROID_scene_meshing
typedef struct XrSceneSubmeshDataANDROID {
    XrStructureType    type;
    const void*        next;
    XrUuid             submeshId;
    uint32_t           vertexCapacityInput;
    uint32_t           vertexCountOutput;
    XrVector3f*        vertexPositions;
    XrVector3f*        vertexNormals;
    uint8_t*           vertexSemantics;
    uint32_t           indexCapacityInput;
    uint32_t           indexCountOutput;
    uint32_t*          indices;
} XrSceneSubmeshDataANDROID;

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.

  • submeshId is an XrUuid identifying the submesh.

  • vertexCapacityInput is the capacity of vertexPositions, vertexNormals and vertexSemantics, or 0 to retrieve the required capacity.

  • vertexCountOutput is a pointer to the count of vertexPositions, vertexNormals, and vertexSemantics written, or a pointer to the required capacity in the case that vertexCapacityInput is insufficient.

  • vertexPositions is an array of XrVector3f to which the runtime will output the vertex positions of the submesh.

  • vertexNormals is an array of XrVector3f to which the runtime will output the vertex normals of the submesh. This field can be left NULL if the application created a tracker with normals disabled.

  • vertexSemantics is an array of uint8_t to which the runtime will output the vertex semantics of the submesh. This field can be left NULL if the application created a tracker with XR_SCENE_MESH_SEMANTIC_LABEL_SET_NONE_ANDROID semantic label set.

  • indexCapacityInput is the capacity of indices, or 0 to retrieve the required capacity.

  • indexCountOutput is a pointer to the count of indices written, or a pointer to the required capacity in the case that vertexCapacityInput is insufficient.

  • indices is an array of uint32_t to which the runtime will output the indices of the submesh.

  • See Buffer Size Parameters chapter for a detailed description of retrieving the required vertexPositions, vertexNormals, vertexSemantics, and indices size.

Description

Valid Usage (Implicit)
  • The XR_ANDROID_scene_meshing extension must be enabled prior to using XrSceneSubmeshDataANDROID

  • type must be XR_TYPE_SCENE_SUBMESH_DATA_ANDROID

  • next must be NULL or a valid pointer to the next structure in a structure chain

  • If vertexCapacityInput is not 0, vertexPositions must be a pointer to an array of vertexCapacityInput XrVector3f structures

  • If vertexCapacityInput is not 0, vertexNormals must be a pointer to an array of vertexCapacityInput XrVector3f structures

  • If vertexCapacityInput is not 0, vertexSemantics must be a pointer to an array of vertexCapacityInput uint8_t values

  • If indexCapacityInput is not 0, indices must be a pointer to an array of indexCapacityInput uint32_t values

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-2026 The Khronos Group Inc.