Skip to content
sigma.js sigma.js
v4.0.6 Docs Examples GitHub 12.2K

DataTexture

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

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.

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

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

WebGL2RenderingContext

number

number = INITIAL_CAPACITY

DataTexture

allocate(key): number

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

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

string | number

number


bind(textureUnit): void

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

Binds the texture to a texture unit.

number

void


clear(): void

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

Clears all item allocations (but keeps the texture).

void


free(key): void

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

Frees an item’s texture index for reuse.

string | number

void


getCapacity(): number

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

Gets the current capacity (max items).

number


getCount(): number

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

Gets the number of allocated items.

number


getHighWaterMark(): number

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

Highest index ever allocated + 1. Unlike getCount, this spans freed holes, so it bounds every live item’s row (what a per-row gl_VertexID pass must cover).

number


getIndex(key): number

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

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

string | number

number


getTexelsPerItem(): number

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

Gets the number of texels per item.

number


getTexture(): WebGLTexture | null

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

Gets the WebGL texture object.

WebGLTexture | null


getTextureHeight(): number

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

Gets the texture height (needed to cover the full texture when rendering into it).

number


getTextureWidth(): number

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

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

number


has(key): boolean

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

Checks if an item has been allocated.

string | number

boolean


isDirty(): boolean

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

Checks if there are pending changes to upload.

boolean


kill(): void

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

Destroys the texture and clears all data.

void


restore(): void

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

Recreates the GPU texture after a context loss, re-uploading the CPU-side data.

void


upload(): void

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

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

void