Skip to content

@tmrw-realityos/charm


@tmrw-realityos/charm / WebGPUShader

Class: WebGPUShader

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:38

Constructors

new WebGPUShader()

new WebGPUShader(id, backend, vertexSource?, fragmentSource?, computeSource?): WebGPUShader

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:61

Parameters

id

string

backend

WebGPUBackend

vertexSource?

string

fragmentSource?

string

computeSource?

string

Returns

WebGPUShader

Properties

id

id: string = ""

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:54


index

index: number = -1

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:55


quadBindGroup?

optional quadBindGroup: GPUBindGroup

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:52


vertexInputs

vertexInputs: Map<string, number>

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:57


vertexInputsMask

vertexInputsMask: number = 0

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:58


wgslReflects_

wgslReflects_: WgslReflect[]

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:53

Accessors

pipeLineLayout

Get Signature

get pipeLineLayout(): GPUPipelineLayout

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:135

Returns

GPUPipelineLayout

Methods

bindResources()

bindResources(groupIndex, data, renderPass?): GPUBindGroup

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:483

Parameters

groupIndex

number

data

BindDataEntry[]

renderPass?

GPURenderPassEncoder

Returns

GPUBindGroup


checkBindGroupCompatibility()

checkBindGroupCompatibility(index, bindGroupLabel): boolean

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:200

If a bind group doesnt match a shader, use this method to compare The bindgroup must be created using the context.createSimpleBindGroup

Parameters

index

number

bindGroupLabel

string

Returns

boolean


createBindGroupLayoutDescriptors()

createBindGroupLayoutDescriptors(): GPUBindGroupLayoutDescriptor[]

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:226

Extracts groups from the shader code and creates a GPUBindGroupLayoutDescriptor that will be used by the pipeline

Returns

GPUBindGroupLayoutDescriptor[]


extractVertexInputs()

extractVertexInputs(): void

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:342

Returns

void


getBindGroupInfo()

getBindGroupInfo(index): string[]

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:149

Returns an array of strings showing every element in the bind group layout Helps debugs missmatch between bindgroup and pipeline layout

Parameters

index

number

Returns

string[]


getBindGroupLayoutDescriptors()

getBindGroupLayoutDescriptors(): GPUBindGroupLayoutDescriptor[]

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:143

Returns

GPUBindGroupLayoutDescriptor[]


getBindGroupLayouts()

getBindGroupLayouts(): GPUBindGroupLayout[]

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:139

Returns

GPUBindGroupLayout[]


getBindGroupSimple()

getBindGroupSimple(index): string

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:173

Returns a string with very similar structure as in the context.createSimpleBindGroup. Useful for debugging. It can be used to create bindgroups but you can already do that with bindGroupLayoutDescriptors

Parameters

index

number

Returns

string


getComputeModule()

getComputeModule(): undefined | GPUShaderModule

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:382

Returns

undefined | GPUShaderModule


getComputePipeline()

getComputePipeline(): GPUComputePipeline

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:477

Returns

GPUComputePipeline


getFragmentModule()

getFragmentModule(): undefined | GPUShaderModule

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:378

Returns

undefined | GPUShaderModule


getPipeline()

getPipeline(v): GPURenderPipeline

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:466

Parameters

v

PipelineInfo

Returns

GPURenderPipeline


getPipelineDescriptor()

getPipelineDescriptor(desc): GPURenderPipelineDescriptor

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:412

Parameters

desc

IPipelineSimpleDescriptor = {}

Returns

GPURenderPipelineDescriptor


getQuadPipeline()

getQuadPipeline(): GPURenderPipeline

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:526

Returns

GPURenderPipeline


getResourceBindingByName()

getResourceBindingByName(name): undefined | VariableInfo

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:386

Parameters

name

string

Returns

undefined | VariableInfo


getVertexModule()

getVertexModule(): undefined | GPUShaderModule

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:374

Returns

undefined | GPUShaderModule


reflectCode()

reflectCode(code): WgslReflect

Defined in: packages/charm/src/graphics/WebGPU/WebGPUShader.ts:331

Parameters

code

string

Returns

WgslReflect