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