Skip to content

@bloopjs/toodle


@bloopjs/toodle / backends/webgl2/WebGLTextShader / WebGLTextShader

Class: WebGLTextShader ​

Defined in: backends/webgl2/WebGLTextShader.ts:22

WebGL 2 text shader for MSDF font rendering.

Unlike WebGPU which batches all text into storage buffers, WebGL renders each TextNode separately since WebGL2 doesn't support firstInstance.

Implements ​

Constructors ​

Constructor ​

new WebGLTextShader(backend, pipeline): WebGLTextShader

Defined in: backends/webgl2/WebGLTextShader.ts:47

Parameters ​

backend ​

WebGLBackend

pipeline ​

WebGLFontPipeline

Returns ​

WebGLTextShader

Properties ​

code ​

readonly code: string = fragmentShader

Defined in: backends/webgl2/WebGLTextShader.ts:24

The final compiled shader code (for debugging)

Implementation of ​

ITextShader.code


font ​

readonly font: MsdfFont

Defined in: backends/webgl2/WebGLTextShader.ts:25

The font used by this text shader

Implementation of ​

ITextShader.font


label ​

readonly label: "text" = "text"

Defined in: backends/webgl2/WebGLTextShader.ts:23

Debug label for the shader

Implementation of ​

ITextShader.label


maxCharCount ​

readonly maxCharCount: number

Defined in: backends/webgl2/WebGLTextShader.ts:26

Maximum number of characters that can be rendered per text node

Implementation of ​

ITextShader.maxCharCount

Methods ​

destroy() ​

destroy(): void

Defined in: backends/webgl2/WebGLTextShader.ts:270

Returns ​

void


endFrame() ​

endFrame(): void

Defined in: backends/webgl2/WebGLTextShader.ts:245

Cleanup after frame. Called once per frame after all processBatch calls.

Returns ​

void

Implementation of ​

ITextShader.endFrame


processBatch() ​

processBatch(nodes): number

Defined in: backends/webgl2/WebGLTextShader.ts:102

Process a batch of nodes and issue draw calls.

Parameters ​

nodes ​

SceneNode[]

The nodes to render

Returns ​

number

Number of draw calls issued

Implementation of ​

ITextShader.processBatch


startFrame() ​

startFrame(uniform): void

Defined in: backends/webgl2/WebGLTextShader.ts:98

Prepare for a new frame. Called once per frame before any processBatch calls.

Parameters ​

uniform ​

EngineUniform

Engine uniforms (view-projection, resolution)

Returns ​

void

Implementation of ​

ITextShader.startFrame