Skip to main content

Abstract Class: VertexArray

Defined in: modules/core/src/adapter/resources/vertex-array.ts:28

Stores attribute bindings. Makes it easy to share a render pipeline and use separate vertex arrays.

Note

Backend-specific attribute accessor metadata is no longer stored in the shared base class. WebGL derives and caches that information in its own implementation, while WebGPU only tracks the logical buffer bindings it needs to rebind at draw time.

Extends

Constructors

Constructor

new VertexArray(device, props): VertexArray

Defined in: modules/core/src/adapter/resources/vertex-array.ts:52

Creates a backend-agnostic vertex-array container.

Parameters

device

Device

The device that owns the vertex array.

props

VertexArrayProps

Vertex-array initialization properties.

Returns

VertexArray

Overrides

Resource.constructor

Properties

attributes

attributes: (Buffer | TypedArray | null)[]

Defined in: modules/core/src/adapter/resources/vertex-array.ts:45

Buffers or constants indexed by backend-defined buffer slot or attribute location.


destroyed

destroyed: boolean = false

Defined in: modules/core/src/adapter/resources/resource.ts:131

Whether this resource has been destroyed

Inherited from

Resource.destroyed


device

abstract readonly device: Device

Defined in: modules/core/src/adapter/resources/resource.ts:124

The device that this resource is associated with

Inherited from

Resource.device


handle

abstract readonly handle: unknown

Defined in: modules/core/src/adapter/resources/resource.ts:126

The handle for the underlying resource, e.g. WebGL object or WebGPU handle

Inherited from

Resource.handle


id

id: string

Defined in: modules/core/src/adapter/resources/resource.ts:118

props.id, for debugging.

Inherited from

Resource.id


indexBuffer

indexBuffer: Buffer | null = null

Defined in: modules/core/src/adapter/resources/vertex-array.ts:43

Index buffer


maxVertexAttributes

readonly maxVertexAttributes: number

Defined in: modules/core/src/adapter/resources/vertex-array.ts:40

Max number of vertex attributes


props

readonly props: Required<Props>

Defined in: modules/core/src/adapter/resources/resource.ts:120

The props that this resource was created with

Inherited from

Resource.props


userData

readonly userData: Record<string, unknown> = {}

Defined in: modules/core/src/adapter/resources/resource.ts:122

User data object, reserved for the application

Inherited from

Resource.userData


defaultProps

static defaultProps: Required<VertexArrayProps>

Defined in: modules/core/src/adapter/resources/vertex-array.ts:29

Default properties for resource

Overrides

Resource.defaultProps

Accessors

[toStringTag]

Get Signature

get [toStringTag](): string

Defined in: modules/core/src/adapter/resources/vertex-array.ts:35

Returns

string

Overrides

Resource.[toStringTag]


isHandleBorrowed

Get Signature

get isHandleBorrowed(): boolean

Defined in: modules/core/src/adapter/resources/resource.ts:147

Whether luma.gl may only reference the opaque externally owned resource handle.

Returns

boolean

Inherited from

Resource.isHandleBorrowed


ownsHandle

Get Signature

get ownsHandle(): boolean

Defined in: modules/core/src/adapter/resources/resource.ts:140

Whether luma.gl created and owns the underlying resource handle.

Returns

boolean

Inherited from

Resource.ownsHandle

Methods

attachResource()

attachResource(resource): void

Defined in: modules/core/src/adapter/resources/resource.ts:200

Attaches a resource. Attached resources are auto destroyed when this resource is destroyed Called automatically when sub resources are auto created but can be called by application

Parameters

resource

Resource<ResourceProps>

Returns

void

Inherited from

Resource.attachResource


bindBeforeRender()

abstract bindBeforeRender(renderPass): void

Defined in: modules/core/src/adapter/resources/vertex-array.ts:64

Applies any backend-specific bindings required before a draw call.

Parameters

renderPass

RenderPass

Returns

void


delete()

delete(): this

Defined in: modules/core/src/adapter/resources/resource.ts:181

Returns

this

Deprecated

Use destroy()

Inherited from

Resource.delete


destroy()

destroy(): void

Defined in: modules/core/src/adapter/resources/resource.ts:173

destroy can be called on any resource to release it before it is garbage collected.

Returns

void

Inherited from

Resource.destroy


destroyAttachedResource()

destroyAttachedResource(resource): void

Defined in: modules/core/src/adapter/resources/resource.ts:214

Destroys a resource (only if owned), and removes from the owned (auto-destroy) list for this resource.

Parameters

resource

Resource<ResourceProps>

Returns

void

Inherited from

Resource.destroyAttachedResource


destroyAttachedResources()

destroyAttachedResources(): void

Defined in: modules/core/src/adapter/resources/resource.ts:221

Destroy all owned resources. Make sure the resources are no longer needed before calling.

Returns

void

Inherited from

Resource.destroyAttachedResources


detachResource()

detachResource(resource): void

Defined in: modules/core/src/adapter/resources/resource.ts:207

Detach an attached resource. The resource will no longer be auto-destroyed when this resource is destroyed.

Parameters

resource

Resource<ResourceProps>

Returns

void

Inherited from

Resource.detachResource


getBufferSlot()

getBufferSlot(bufferName): number | null

Defined in: modules/core/src/adapter/resources/vertex-array.ts:69

Returns the backend-defined slot for a logical buffer name, if known.

Parameters

bufferName

string

Returns

number | null


getDrawValidationError()

getDrawValidationError(): string | null

Defined in: modules/core/src/adapter/resources/vertex-array.ts:74

Returns a draw-blocking validation error, or null if this vertex array can be drawn.

Returns

string | null


getProps()

getProps(): object

Defined in: modules/core/src/adapter/resources/resource.ts:190

Combines a map of user props and default props, only including props from defaultProps

Returns

object

returns a map of overridden default props

Inherited from

Resource.getProps


setBuffer()

abstract setBuffer(bufferSlot, buffer): void

Defined in: modules/core/src/adapter/resources/vertex-array.ts:61

Sets one backend-defined buffer slot or attribute location.

Parameters

bufferSlot

number

buffer

Buffer | null

Returns

void


setConstantWebGL()

setConstantWebGL(location, value): void

Defined in: modules/core/src/adapter/resources/vertex-array.ts:81

Parameters

location

number

value

TypedArray | null

Returns

void

Deprecated

Set constant attributes (WebGL only)


setIndexBuffer()

abstract setIndexBuffer(indices): void

Defined in: modules/core/src/adapter/resources/vertex-array.ts:59

Sets the index buffer used for indexed rendering.

Parameters

indices

Buffer | null

Returns

void


toJSON()

toJSON(): string

Defined in: modules/core/src/adapter/resources/resource.ts:113

Compact serialization for assertion diffs and structured debug logs.

Returns

string

Inherited from

Resource.toJSON


toString()

toString(): string

Defined in: modules/core/src/adapter/resources/resource.ts:108

Returns

string

Inherited from

Resource.toString


unbindAfterRender()

abstract unbindAfterRender(renderPass): void

Defined in: modules/core/src/adapter/resources/vertex-array.ts:66

Clears any backend-specific bindings after a draw call.

Parameters

renderPass

RenderPass

Returns

void