Skip to main content

Class: DynamicBuffer

Defined in: modules/core/dist/dynamic/dynamic-buffer/dynamic-buffer.d.ts:45

Optional convenience wrapper around an immutable core Buffer.

DynamicBuffer keeps a stable application object while allowing the backing GPU buffer to be replaced on resize. Engine classes such as Model and Material resolve it to the current backing buffer at draw time and invalidate cached bindings when generation changes.

Constructors​

Constructor​

new DynamicBuffer(device, props): DynamicBuffer

Defined in: modules/core/dist/dynamic/dynamic-buffer/dynamic-buffer.d.ts:81

Creates a dynamic buffer and its initial backing Buffer.

Parameters​

device​

Device

props​

DynamicBufferProps

Returns​

DynamicBuffer

Properties​

debugData​

debugData: ArrayBuffer

Defined in: modules/core/dist/dynamic/dynamic-buffer/dynamic-buffer.d.ts:65

Optional CPU-side mirror of recent writes and readbacks for debugging.


destroyed​

destroyed: boolean

Defined in: modules/core/dist/dynamic/dynamic-buffer/dynamic-buffer.d.ts:59

Whether destroy has been called.


device​

readonly device: Device

Defined in: modules/core/dist/dynamic/dynamic-buffer/dynamic-buffer.d.ts:47

Device that owns the backing buffer.


generation​

generation: number

Defined in: modules/core/dist/dynamic/dynamic-buffer/dynamic-buffer.d.ts:61

Monotonic version that increments whenever the backing buffer is replaced.


id​

readonly id: string

Defined in: modules/core/dist/dynamic/dynamic-buffer/dynamic-buffer.d.ts:49

Application-provided or generated identifier.


isReady​

isReady: boolean

Defined in: modules/core/dist/dynamic/dynamic-buffer/dynamic-buffer.d.ts:57

Dynamic buffers are synchronously ready after construction.


props​

readonly props: Readonly<DynamicBufferProps>

Defined in: modules/core/dist/dynamic/dynamic-buffer/dynamic-buffer.d.ts:55

Normalized buffer props reused when the backing buffer is recreated.


ready​

readonly ready: Promise<Buffer>

Defined in: modules/core/dist/dynamic/dynamic-buffer/dynamic-buffer.d.ts:51

Ready promise provided for compatibility with other dynamic resources.


updateTimestamp​

updateTimestamp: number

Defined in: modules/core/dist/dynamic/dynamic-buffer/dynamic-buffer.d.ts:63

Last update timestamp for writes, reads that populate debug data, or resize operations.


usage​

readonly usage: number

Defined in: modules/core/dist/dynamic/dynamic-buffer/dynamic-buffer.d.ts:53

Usage flags applied to every backing buffer created by this wrapper.

Accessors​

[toStringTag]​

Get Signature​

get [toStringTag](): string

Defined in: modules/core/dist/dynamic/dynamic-buffer/dynamic-buffer.d.ts:75

String tag used by Object.prototype.toString.

Returns​

string


buffer​

Get Signature​

get buffer(): Buffer

Defined in: modules/core/dist/dynamic/dynamic-buffer/dynamic-buffer.d.ts:71

Current immutable core buffer backing this dynamic wrapper.

Returns​

Buffer


byteLength​

Get Signature​

get byteLength(): number

Defined in: modules/core/dist/dynamic/dynamic-buffer/dynamic-buffer.d.ts:73

Current byte length of the backing buffer.

Returns​

number

Methods​

destroy()​

destroy(): void

Defined in: modules/core/dist/dynamic/dynamic-buffer/dynamic-buffer.d.ts:145

Destroys the current backing buffer and clears debug data.

Returns​

void


ensureSize()​

ensureSize(byteLength, options?): boolean

Defined in: modules/core/dist/dynamic/dynamic-buffer/dynamic-buffer.d.ts:132

Grows the backing buffer when the requested size exceeds the current size.

Parameters​

byteLength​

number

Minimum required byte length.

options?​
preserveData?​

boolean

Copies existing bytes when growth is required.

Returns​

boolean

true when the backing buffer grew.


getBinding()​

getBinding(range?): Binding

Defined in: modules/core/dist/dynamic/dynamic-buffer/dynamic-buffer.d.ts:140

Returns the current backing buffer or a range binding over it.

Parameters​

range?​

Optional byte range for uniform/storage buffer bindings.

offset?​

number

size?​

number

Returns​

Binding


mapAndReadAsync()​

mapAndReadAsync<T>(callback, byteOffset?, byteLength?): Promise<T>

Defined in: modules/core/dist/dynamic/dynamic-buffer/dynamic-buffer.d.ts:111

Maps the current backing buffer for reading.

Type Parameters​

T​

T

Parameters​

callback​

BufferMapCallback<T>

Callback invoked with the mapped range.

byteOffset?​

number

Byte offset of the mapped range.

byteLength?​

number

Byte length of the mapped range.

Returns​

Promise<T>


mapAndWriteAsync()​

mapAndWriteAsync(callback, byteOffset?, byteLength?): Promise<void>

Defined in: modules/core/dist/dynamic/dynamic-buffer/dynamic-buffer.d.ts:96

Maps the current backing buffer for writing and mirrors the written range when debug data is enabled.

Parameters​

callback​

BufferMapCallback<void | Promise<void>>

Callback invoked with the mapped range.

byteOffset?​

number

Byte offset of the mapped range.

byteLength?​

number

Byte length of the mapped range.

Returns​

Promise<void>


readAsync()​

readAsync(byteOffset?, byteLength?): Promise<Uint8Array<ArrayBufferLike>>

Defined in: modules/core/dist/dynamic/dynamic-buffer/dynamic-buffer.d.ts:103

Reads bytes from the current backing buffer.

Parameters​

byteOffset?​

number

Source byte offset in the backing buffer.

byteLength?​

number

Number of bytes to read.

Returns​

Promise<Uint8Array<ArrayBufferLike>>


resize()​

resize(options): boolean

Defined in: modules/core/dist/dynamic/dynamic-buffer/dynamic-buffer.d.ts:120

Replaces the backing buffer with a new size.

Parameters​

options​
byteLength​

number

New backing buffer byte length.

copyByteLength?​

number

Maximum number of bytes to copy when preserving data.

preserveData?​

boolean

Copies bytes from the old buffer into the new buffer.

Returns​

boolean

true when a new backing buffer was created.


toJSON()​

toJSON(): string

Defined in: modules/core/dist/dynamic/dynamic-buffer/dynamic-buffer.d.ts:79

Compact serialization for assertion diffs and structured debug logs.

Returns​

string


toString()​

toString(): string

Defined in: modules/core/dist/dynamic/dynamic-buffer/dynamic-buffer.d.ts:77

Human-readable debug string.

Returns​

string


write()​

write(data, byteOffset?): void

Defined in: modules/core/dist/dynamic/dynamic-buffer/dynamic-buffer.d.ts:88

Writes bytes into the current backing buffer.

Parameters​

data​

ArrayBuffer | SharedArrayBuffer | ArrayBufferView<ArrayBufferLike>

Bytes or typed-array view to upload.

byteOffset?​

number

Destination byte offset in the backing buffer.

Returns​

void