Skip to content
This is the alpha v4 version website. Looking for the v3 documentation?

LabelProgram

Defined in: packages/sigma/src/rendering/nodes/labels/base.ts:32

Base class for label program implementations.

Label programs render text labels using WebGL (SDF-based rendering). Unlike node/edge programs, labels are processed per-character.

Visibility is handled by processing only visible labels each frame (determined by LabelGrid), so all characters in the buffer are rendered.

The DataType generic allows reuse by both node labels (LabelDisplayData) and edge labels (EdgeLabelDisplayData) via EdgeLabelProgram.

Extends

Extended by

Type Parameters

Uniform

Uniform extends string = string

N

N extends Attributes = Attributes

E

E extends Attributes = Attributes

G

G extends Attributes = Attributes

DataType

DataType extends LabelDataBase = LabelDisplayData

Constructors

Constructor

new LabelProgram<Uniform, N, E, G, DataType>(gl, _pickingBuffer, renderer): LabelProgram<Uniform, N, E, G, DataType>

Defined in: packages/sigma/src/rendering/program.ts:105

Parameters

gl

WebGL2RenderingContext

_pickingBuffer

WebGLFramebuffer | null

renderer

Sigma<N, E, G>

Returns

LabelProgram<Uniform, N, E, G, DataType>

Inherited from

Program.constructor

Properties

array

array: Float32Array

Defined in: packages/sigma/src/rendering/program.ts:74

Inherited from

Program.array


ATTRIBUTES

ATTRIBUTES: ProgramAttributeSpecification[]

Defined in: packages/sigma/src/rendering/program.ts:65

Inherited from

Program.ATTRIBUTES


ATTRIBUTES_ITEMS_COUNT

ATTRIBUTES_ITEMS_COUNT: number

Defined in: packages/sigma/src/rendering/program.ts:70

Inherited from

Program.ATTRIBUTES_ITEMS_COUNT


capacity

capacity: number = 0

Defined in: packages/sigma/src/rendering/program.ts:76

Inherited from

Program.capacity


CONSTANT_ATTRIBUTES

CONSTANT_ATTRIBUTES: ProgramAttributeSpecification[]

Defined in: packages/sigma/src/rendering/program.ts:67

Inherited from

Program.CONSTANT_ATTRIBUTES


CONSTANT_DATA

CONSTANT_DATA: number[][]

Defined in: packages/sigma/src/rendering/program.ts:68

Inherited from

Program.CONSTANT_DATA


constantArray

constantArray: Float32Array

Defined in: packages/sigma/src/rendering/program.ts:75

Inherited from

Program.constantArray


FRAGMENT_SHADER_SOURCE

FRAGMENT_SHADER_SOURCE: string

Defined in: packages/sigma/src/rendering/program.ts:63

Inherited from

Program.FRAGMENT_SHADER_SOURCE


isInstanced

isInstanced: boolean

Defined in: packages/sigma/src/rendering/program.ts:91

Inherited from

Program.isInstanced


METHOD

METHOD: number

Defined in: packages/sigma/src/rendering/program.ts:66

Inherited from

Program.METHOD


normalProgram

normalProgram: ProgramInfo

Defined in: packages/sigma/src/rendering/program.ts:88

Inherited from

Program.normalProgram


pickProgram

pickProgram: ProgramInfo<string> | null = null

Defined in: packages/sigma/src/rendering/program.ts:89

Inherited from

Program.pickProgram


renderer

renderer: Sigma<N, E, G>

Defined in: packages/sigma/src/rendering/program.ts:73

Inherited from

Program.renderer


STRIDE

STRIDE: number

Defined in: packages/sigma/src/rendering/program.ts:71

Inherited from

Program.STRIDE


UNIFORMS

UNIFORMS: readonly Uniform[]

Defined in: packages/sigma/src/rendering/program.ts:64

Inherited from

Program.UNIFORMS


VERTEX_SHADER_SOURCE

VERTEX_SHADER_SOURCE: string

Defined in: packages/sigma/src/rendering/program.ts:62

Inherited from

Program.VERTEX_SHADER_SOURCE


VERTICES

VERTICES: number

Defined in: packages/sigma/src/rendering/program.ts:61

Inherited from

Program.VERTICES


verticesCount

verticesCount: number = 0

Defined in: packages/sigma/src/rendering/program.ts:77

Inherited from

Program.verticesCount

Methods

drawWebGL()

drawWebGL(method, __namedParameters): void

Defined in: packages/sigma/src/rendering/nodes/labels/base.ts:141

Render all characters in the buffer. Since we only process visible labels, all buffered characters should be rendered.

Parameters

method

number

__namedParameters

ProgramInfo

Returns

void

Overrides

Program.drawWebGL


ensureGlyphsReady()?

optional ensureGlyphsReady(texts, fontKey?): void

Defined in: packages/sigma/src/rendering/nodes/labels/base.ts:43

Ensure all glyphs for the given texts are generated and available. Optional — implementations may provide this for glyph caching.

Parameters

texts

string[]

fontKey?

string

Returns

void


getDefinition()

abstract getDefinition(): ProgramDefinition<Uniform> | InstancedProgramDefinition<Uniform>

Defined in: packages/sigma/src/rendering/program.ts:103

Returns

ProgramDefinition<Uniform> | InstancedProgramDefinition<Uniform>

Inherited from

Program.getDefinition


getLabelAtPosition()

getLabelAtPosition(x, y): string | null

Defined in: packages/sigma/src/rendering/nodes/labels/base.ts:112

Get the label at a given screen position.

Uses the cached screen-space bounds for efficient hit testing.

Parameters

x

number

y

number

Returns

string | null


hasNothingToRender()

hasNothingToRender(): boolean

Defined in: packages/sigma/src/rendering/nodes/labels/base.ts:133

Check if there’s nothing to render.

Returns

boolean

Overrides

Program.hasNothingToRender


invalidateBuffers()

invalidateBuffers(): void

Defined in: packages/sigma/src/rendering/program.ts:377

Mark GPU buffers as needing re-upload. Call this after modifying the array data outside of reallocate.

Returns

void

Inherited from

Program.invalidateBuffers


kill()

kill(): void

Defined in: packages/sigma/src/rendering/nodes/labels/base.ts:72

Returns

void

Overrides

Program.kill


measureLabel()?

optional measureLabel(text, fontSize, fontKey?): object

Defined in: packages/sigma/src/rendering/nodes/labels/base.ts:55

Measure a label using the same glyph metrics as rendering. Optional — only available when the implementation uses an SDF atlas.

Parameters

text

string

fontSize

number

fontKey?

string

Returns

object

height

height: number

width

width: number


processLabel()

processLabel(_labelKey, offset, data): number

Defined in: packages/sigma/src/rendering/nodes/labels/base.ts:80

Process a label and write its character data to the GPU buffer.

Parameters

_labelKey

string

offset

number

data

DataType

Returns

number


reallocate()

reallocate(characterCount): void

Defined in: packages/sigma/src/rendering/nodes/labels/base.ts:157

Reallocate buffers if needed and set the character count for this frame. Only reallocates GPU buffers when capacity is exceeded.

Parameters

characterCount

number

Number of characters to render this frame

Returns

void

Overrides

Program.reallocate


registerFont()?

optional registerFont(family, weight?, style?): string

Defined in: packages/sigma/src/rendering/nodes/labels/base.ts:49

Register a font for use in labels. Optional — implementations may provide this for multi-font support.

Parameters

family

string

weight?

string

style?

string

Returns

string


render()

render(params, offset?, count?): void

Defined in: packages/sigma/src/rendering/program.ts:537

Parameters

params

RenderParams

offset?

number

count?

number

Returns

void

Inherited from

Program.render


setUniforms()

abstract setUniforms(params, programInfo): void

Defined in: packages/sigma/src/rendering/program.ts:420

Parameters

params

RenderParams

programInfo

ProgramInfo

Returns

void

Inherited from

Program.setUniforms