One Logo Pool Ball
RealityFoundation · IOS API REFERENCE

LowLevelMesh.Descriptor

struct · iOS 18.0+ · SDK 27.1

struct Descriptor

An object that describes the data format and layout of the buffers in a low-level mesh.

Members (18)

get · iOS 18.0+

indexCapacity

TypeScript
get indexCapacity(): Promise<number>
Swift declaration
var indexCapacity: Int

The number of indices to allocate space for. You can specify ranges of indices to display dynamically with ``LowLevelMesh/parts``.

set · iOS 18.0+

indexCapacity

TypeScript
setIndexCapacity(value: number): Promise<void>
Swift declaration
var indexCapacity: Int

The number of indices to allocate space for. You can specify ranges of indices to display dynamically with ``LowLevelMesh/parts``.

get · iOS 18.0+

vertexLayouts

TypeScript
get vertexLayouts(): Promise<Array<LowLevelMesh_Layout>>
Swift declaration
var vertexLayouts: [LowLevelMesh.Layout] { get set }

The list of layouts. You assign a layout for each vertex attribute with ``LowLevelMesh/Attribute/layoutIndex``.

set · iOS 18.0+

vertexLayouts

TypeScript
setVertexLayouts(value: Array<LowLevelMesh_Layout>): Promise<void>
Swift declaration
var vertexLayouts: [LowLevelMesh.Layout] { get set }

The list of layouts. You assign a layout for each vertex attribute with ``LowLevelMesh/Attribute/layoutIndex``.

init · iOS 27.0+

init

TypeScript
static initVertexCapacityVertexAttributesVertexLayoutsIndexCapacityIndexTypeInstanceCapacity(vertexCapacity?: number, vertexAttributes?: Array<LowLevelMesh_Attribute>, vertexLayouts?: Array<LowLevelMesh_Layout>, indexCapacity?: number, indexType?: _Metal_MTLIndexType, instanceCapacity?: number): Promise<LowLevelMesh_Descriptor>
Swift declaration
init(vertexCapacity: Int = 0, vertexAttributes: [LowLevelMesh.Attribute] = [Attribute](), vertexLayouts: [LowLevelMesh.Layout] = [Layout](), indexCapacity: Int = 0, indexType: MTLIndexType = MTLIndexType.uint32, instanceCapacity: Int = 0)

Creates a descriptor for a low-level mesh. To create a new ``LowLevelMesh``, first create a `Descriptor` object and set its property values, then use that `Descriptor` with ``LowLevelMesh/init(descriptor:)``. - Parameters: - vertexCapacity: The maximum number of vertices the system can store in the mesh. - vertexAttributes: The attributes of the vertices. - vertexLayouts: The layouts for the vertex buffers. - indexCapacity: The maximum number of vertices the system can store in a single buffer. - indexType: The index type to use for the mesh. - instanceCapacity: The maximum number of instances the mesh supports.

init · iOS 18.0+

init

TypeScript
static initVertexCapacityVertexAttributesVertexLayoutsIndexCapacityIndexType(vertexCapacity?: number, vertexAttributes?: Array<LowLevelMesh_Attribute>, vertexLayouts?: Array<LowLevelMesh_Layout>, indexCapacity?: number, indexType?: _Metal_MTLIndexType): Promise<LowLevelMesh_Descriptor>
Swift declaration
init(vertexCapacity: Int = 0, vertexAttributes: [LowLevelMesh.Attribute] = [Attribute](), vertexLayouts: [LowLevelMesh.Layout] = [Layout](), indexCapacity: Int = 0, indexType: MTLIndexType = MTLIndexType.uint32)

Creates a descriptor for a low-level mesh. To create a new ``LowLevelMesh``, first create a `Descriptor` object and set its property values, then use that `Descriptor` with ``LowLevelMesh/init(descriptor:)``. - Parameters: - vertexCapacity: The maximum number of vertices the system can store in the mesh. - vertexAttributes: The attributes of the vertices. - vertexLayouts: The layouts for the vertex buffers. - indexCapacity: The maximum number of vertices the system can store in a single buffer. - indexType: The index type to use for the mesh.

get · iOS 18.0+

vertexCapacity

TypeScript
get vertexCapacity(): Promise<number>
Swift declaration
var vertexCapacity: Int

The number of vertices to allocate space for.

set · iOS 18.0+

vertexCapacity

TypeScript
setVertexCapacity(value: number): Promise<void>
Swift declaration
var vertexCapacity: Int

The number of vertices to allocate space for.

get · iOS 27.0+

instanceCapacity

TypeScript
get instanceCapacity(): Promise<number>
Swift declaration
var instanceCapacity: Int

The maximum number of instances the mesh supports. Use this when using vertex attributes with a per-instance step rate.

set · iOS 27.0+

instanceCapacity

TypeScript
setInstanceCapacity(value: number): Promise<void>
Swift declaration
var instanceCapacity: Int

The maximum number of instances the mesh supports. Use this when using vertex attributes with a per-instance step rate.

get · iOS 18.0+

vertexAttributes

TypeScript
get vertexAttributes(): Promise<Array<LowLevelMesh_Attribute>>
Swift declaration
var vertexAttributes: [LowLevelMesh.Attribute]

An array that describes the vertex input attributes to a vertex function.

set · iOS 18.0+

vertexAttributes

TypeScript
setVertexAttributes(value: Array<LowLevelMesh_Attribute>): Promise<void>
Swift declaration
var vertexAttributes: [LowLevelMesh.Attribute]

An array that describes the vertex input attributes to a vertex function.

get · iOS 18.0+

vertexBufferCount

TypeScript
get vertexBufferCount(): Promise<number>
Swift declaration
var vertexBufferCount: Int { get }

The number of buffers this descriptor uses. This value derives from the maximum `bufferIndex` each layout specifies in ``vertexLayouts``.

get · iOS 18.0+

maxVertexBufferCount

TypeScript
static get maxVertexBufferCount(): Promise<number>
Swift declaration
static let maxVertexBufferCount: Int

The maximum number of separate buffers the system supports. For optimal performance, most applications use one buffer.

get · iOS 27.0+

allowsPrimitiveRestart

TypeScript
get allowsPrimitiveRestart(): Promise<boolean>
Swift declaration
var allowsPrimitiveRestart: Bool

When true, primitive-restart index values (0xFFFF for .uint16, 0xFFFFFFFF for .uint32) are permitted in the index buffer. Every part must then use a strip topology (.triangleStrip or .lineStrip); any other topology is rejected.

set · iOS 27.0+

allowsPrimitiveRestart

TypeScript
setAllowsPrimitiveRestart(value: boolean): Promise<void>
Swift declaration
var allowsPrimitiveRestart: Bool

When true, primitive-restart index values (0xFFFF for .uint16, 0xFFFFFFFF for .uint32) are permitted in the index buffer. Every part must then use a strip topology (.triangleStrip or .lineStrip); any other topology is rejected.

get · iOS 18.0+

indexType

TypeScript
get indexType(): Promise<_Metal_MTLIndexType>
Swift declaration
var indexType: MTLIndexType

The data type of the indices that the index buffer stores.

set · iOS 18.0+

indexType

TypeScript
setIndexType(value: _Metal_MTLIndexType): Promise<void>
Swift declaration
var indexType: MTLIndexType

The data type of the indices that the index buffer stores.

Skipped declarations

No declarations were skipped in this snapshot.

All RealityFoundation types →