CPU-side backing buffer used to populate this texture.
The concrete type depends on the implementation (e.g., Uint32Array,
Float32Array, or a view over an ArrayBuffer). This buffer is
uploaded to the GPU when updated.
The ArrayBufferView class used for the CPU-side buffer.
Size in bytes of a single texel in the data texture.
Enables internal event emission for this data texture.
Human-readable description of the data stored in this texture.
Intended for debugging UIs and diagnostics (e.g., displayed above inspectors). Subclasses or owners should populate this with a concise explanation of the layout and semantic meaning (e.g., “mesh matrices (Mat4, row-major), indexed by meshId”).
Number of individual elements (e.g., floats, uint32s) stored per logical item in this data texture.
Number of individual elements (e.g., floats, uint32s) stored per texel in the data texture.
Texture format (e.g., gl.RGBA, gl.RGBA_INTEGER).
The WebGL2 rendering context.
Texture height in texels.
Texture internal format (e.g., gl.RGBA8, gl.RGBA32UI, gl.RGBA32F).
Size in bytes of a single logical item stored in the data texture.
Duration (in milliseconds) of the last upload to GPU.
This value is 0 until the first upload occurs.
Maximum number of logical items that can be stored in this texture.
The value of numItems never exceeds this limit.
Emitted when the CPU-side buffer for this texture has changed and been uploaded to the GPU.
This event is intended for debugging tools and monitoring UIs; it is only emitted when debugging is enabled.
ReadonlypassNumber of texels occupied by a single logical item in the data texture.
InternaltextureThe underlying WebGL texture object.
This is the GPU resource that is bound and sampled/loaded by shaders.
Texture data type (e.g., gl.UNSIGNED_BYTE, gl.UNSIGNED_INT, gl.FLOAT).
Texture width in texels.
Static ReadonlyitemNumber of allocated primitives (across all portions).
Number of primitives currently drawable (post-uploadChanges).
ProtectedcancelCancels any pending uploads.
Checks if a new portion of the given size fits (ignores culling).
Number of items to allocate.
Allocates a portion belonging to a given renderPass bin.
Number of items in the portion.
Mesh index for the portion.
Render pass bin.
Frees a previously allocated portion.
Portion handle.
Frees GPU resources and clears internal state.
Gets the total capacity in bytes of the data texture.
Gets the meshIndex and offset for a primitive index.
The offset is the index of the primitive within its mesh. For example, for a triangle mesh, the offset will be 0 for the first triangle, 1 for the second triangle, and so on. This allows the vertex shader to determine which vertices to use when rendering the primitive.
Primitive index.
Gets the first/count for a renderPass bin.
Render pass bin.
Gets the used capacity in bytes of the data texture.
Gets the visibility of a portion.
Portion handle.
ProtectednotifyInternalNotifies listeners that the data texture has been updated.
Sets the mesh-level visibility of a portion.
Portion handle.
Whether the portion is visible at the mesh level.
Sets the object-level visibility of a portion.
Portion handle.
Whether the portion is visible at the object level.
Changes a portion's renderPass bin.
Portion handle.
New render pass bin.
Uploads current CPU buffer if dirty; rebuilds runs when necessary.
Internal algorithm:
True if any uploads occurred, false otherwise.
StaticdecodeDecode linear address → (x, y) for a given width.
StaticencodeEncode (x, y) → linear address for a 2D table with known width.
GPU data texture mapping each primitive to its owning mesh for a given render pass.
PrimitiveMeshIndexTextureis a GPU-resident table used by the renderer to efficiently determine, for each primitive (triangle, line, or point), which mesh it belongs to and its offset within that mesh.Structure
uint32values:meshIndexandoffset.