Parameters used to create a BufferBinding

interface BufferBindingParams {
    label?: string;
    name?: string;
    visibility?: MaterialShadersType[];
    useStruct?: boolean;
    access?: BufferBindingMemoryAccessType;
    struct?: Record<string, Input>;
    usage?: BufferUsageKeys[];
    bindingType?: BufferBindingType;
    childrenBindings?: BufferBindingChildrenBinding[];
    minOffset?: number;
    offset?: number;
    parent?: BufferBinding;
    buffer?: Buffer;
}

Hierarchy (view full)

Properties

label?: string

Binding label

name?: string

Binding name/key

visibility?: MaterialShadersType[]

Binding variables shaders visibility as an array of shaders types names

useStruct?: boolean

Whether this BufferBinding should use structured WGSL variables

BufferBinding memory access types (read only or read/write)

struct?: Record<string, Input>

Object containing one or multiple inputs describing the structure of the BufferBinding

usage?: BufferUsageKeys[]

Allowed usages for the BufferBinding#buffer as an array of buffer usages names

bindingType?: BufferBindingType

The binding type of the BufferBinding

childrenBindings?: BufferBindingChildrenBinding[]

Optional array of BufferBindingChildrenBinding to add to this BufferBinding to create complex Struct objects containing Struct BufferBinding children.

minOffset?: number

The minimum GPUDevice buffer offset alignment.

offset?: number

Optional offset of the BufferBinding in the parent BufferBinding (as an index - not in bytes).

parent?: BufferBinding

The optional parent BufferBinding that will actually handle the GPUBuffer.

buffer?: Buffer

Optional already existing Buffer to use instead of creating a new one. Allow to reuse an already created Buffer but with different read or visibility values, or with a different WGSL struct.