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

DataTexture

Defined in: packages/sigma/src/rendering/data-texture.ts:31

Base class for GPU data textures.

The texture is a 2D RGBA32F texture where each item uses TEXELS_PER_ITEM texels. The texture uses a 2D layout (width × height) to stay within WebGL maximum texture dimension limits.

Item indices are allocated via a free-list strategy for efficient add/remove operations without compaction.

Extended by

Constructors

Constructor

new DataTexture(gl, texelsPerItem, initialCapacity?): DataTexture

Defined in: packages/sigma/src/rendering/data-texture.ts:51

Parameters

gl

WebGL2RenderingContext

texelsPerItem

number

initialCapacity?

number = INITIAL_CAPACITY

Returns

DataTexture

Methods

allocate()

allocate(key): number

Defined in: packages/sigma/src/rendering/data-texture.ts:138

Allocates a texture index for an item. Returns existing index if item already allocated.

Parameters

key

string | number

Returns

number


bind()

bind(textureUnit): void

Defined in: packages/sigma/src/rendering/data-texture.ts:255

Binds the texture to a texture unit.

Parameters

textureUnit

number

Returns

void


clear()

clear(): void

Defined in: packages/sigma/src/rendering/data-texture.ts:306

Clears all item allocations (but keeps the texture).

Returns

void


free()

free(key): void

Defined in: packages/sigma/src/rendering/data-texture.ts:165

Frees an item’s texture index for reuse.

Parameters

key

string | number

Returns

void


getCapacity()

getCapacity(): number

Defined in: packages/sigma/src/rendering/data-texture.ts:271

Gets the current capacity (max items).

Returns

number


getCount()

getCount(): number

Defined in: packages/sigma/src/rendering/data-texture.ts:292

Gets the number of allocated items.

Returns

number


getIndex()

getIndex(key): number

Defined in: packages/sigma/src/rendering/data-texture.ts:185

Gets the texture index for an item. Returns -1 if item not found.

Parameters

key

string | number

Returns

number


getTexelsPerItem()

getTexelsPerItem(): number

Defined in: packages/sigma/src/rendering/data-texture.ts:285

Gets the number of texels per item.

Returns

number


getTexture()

getTexture(): WebGLTexture | null

Defined in: packages/sigma/src/rendering/data-texture.ts:264

Gets the WebGL texture object.

Returns

WebGLTexture | null


getTextureWidth()

getTextureWidth(): number

Defined in: packages/sigma/src/rendering/data-texture.ts:278

Gets the texture width (needed for 2D coordinate calculation in shaders).

Returns

number


has()

has(key): boolean

Defined in: packages/sigma/src/rendering/data-texture.ts:192

Checks if an item has been allocated.

Parameters

key

string | number

Returns

boolean


isDirty()

isDirty(): boolean

Defined in: packages/sigma/src/rendering/data-texture.ts:299

Checks if there are pending changes to upload.

Returns

boolean


kill()

kill(): void

Defined in: packages/sigma/src/rendering/data-texture.ts:319

Destroys the texture and clears all data.

Returns

void


upload()

upload(): void

Defined in: packages/sigma/src/rendering/data-texture.ts:209

Uploads dirty data to the GPU texture. With 2D layout and multiple texels per item, uploads affected rows.

Returns

void