Class: WebGLUtils
Defined in: utils/WebGLUtils.ts:4
Low-level WebGL 2 helper methods for context, shader, buffer, texture, and blending management
Constructors
Constructor
new WebGLUtils():
WebGLUtils
Returns
WebGLUtils
Methods
configureVertexFloatAttribute()
staticconfigureVertexFloatAttribute(gl,target,buffer,index,size,type,options?):void
Defined in: utils/WebGLUtils.ts:161
Binds a buffer to a vertex attribute as a floating-point attribute
Parameters
gl
WebGL2RenderingContext
The WebGL 2 rendering context
target
number
Buffer binding target
buffer
WebGLBuffer
The buffer containing attribute data
index
number
Attribute location index
size
number
Number of components per vertex attribute
type
number
Data type (e.g. gl.FLOAT)
options?
Optional normalized, stride, offset, and divisor settings
divisor?
number
normalized?
boolean
offset?
number
stride?
number
Returns
void
configureVertexIntAttribute()
staticconfigureVertexIntAttribute(gl,target,buffer,index,size,type,options?):void
Defined in: utils/WebGLUtils.ts:199
Binds a buffer to a vertex attribute as an integer attribute
Parameters
gl
WebGL2RenderingContext
The WebGL 2 rendering context
target
number
Buffer binding target
buffer
WebGLBuffer
The buffer containing attribute data
index
number
Attribute location index
size
number
Number of components per vertex attribute
type
number
Data type (e.g. gl.UNSIGNED_INT)
options?
Optional stride, offset, and divisor settings
divisor?
number
offset?
number
stride?
number
Returns
void
createBuffer()
staticcreateBuffer(gl):WebGLBuffer
Defined in: utils/WebGLUtils.ts:107
Creates a new WebGL buffer
Parameters
gl
WebGL2RenderingContext
The WebGL 2 rendering context
Returns
WebGLBuffer
Throws
If buffer creation fails
createDataTexture()
staticcreateDataTexture(gl,internalformat,width,height,format,type,data?):WebGLTexture
Defined in: utils/WebGLUtils.ts:228
Creates an immutable 2D data texture with nearest-neighbor filtering and clamp-to-edge wrapping
Parameters
gl
WebGL2RenderingContext
The WebGL 2 rendering context
internalformat
number
Internal texture format (e.g. gl.RGBA32F)
width
number
Texture width in texels
height
number
Texture height in texels
format
number
Pixel data format (e.g. gl.RGBA)
type
number
Pixel data type (e.g. gl.FLOAT)
data?
Optional initial pixel data
Returns
WebGLTexture
createVertexArray()
staticcreateVertexArray(gl):WebGLVertexArrayObject
Defined in: utils/WebGLUtils.ts:142
Creates a new vertex array object (VAO)
Parameters
gl
WebGL2RenderingContext
The WebGL 2 rendering context
Returns
WebGLVertexArrayObject
Throws
If VAO creation fails
disableAlphaBlending()
staticdisableAlphaBlending(gl):void
Defined in: utils/WebGLUtils.ts:393
Disables blending and restores the default blend state
Parameters
gl
WebGL2RenderingContext
The WebGL 2 rendering context
Returns
void
enableAlphaBlending()
staticenableAlphaBlending(gl):void
Defined in: utils/WebGLUtils.ts:373
Enables premultiplied-alpha blending (Porter-Duff "over" operator)
Parameters
gl
WebGL2RenderingContext
The WebGL 2 rendering context
Returns
void
getUniformLocation()
staticgetUniformLocation(gl,program,name):WebGLUniformLocation
Defined in: utils/WebGLUtils.ts:89
Returns the location of a uniform variable in a shader program
Parameters
gl
WebGL2RenderingContext
The WebGL 2 rendering context
program
WebGLProgram
The shader program
name
string
The uniform name as declared in the shader
Returns
WebGLUniformLocation
Throws
If the uniform is not found
init()
staticinit(canvas,contextAttributes?):WebGL2RenderingContext
Defined in: utils/WebGLUtils.ts:12
Initializes a WebGL 2 rendering context on the given canvas
Parameters
canvas
HTMLCanvasElement
The canvas element
contextAttributes?
WebGLContextAttributes
Optional WebGL context attributes
Returns
WebGL2RenderingContext
Throws
If the browser does not support WebGL 2.0
loadBuffer()
staticloadBuffer(gl,target,buffer,data,options?):void
Defined in: utils/WebGLUtils.ts:355
Uploads typed array data into a region of an existing buffer
Parameters
gl
WebGL2RenderingContext
The WebGL 2 rendering context
target
number
Buffer binding target
buffer
WebGLBuffer
The target buffer
data
IntArray | UintArray | Float32Array<ArrayBufferLike>
The data to upload
options?
Optional element offset within the buffer
offset?
number
Returns
void
loadDataTexture()
staticloadDataTexture(gl,texture,width,height,format,type,data):void
Defined in: utils/WebGLUtils.ts:276
Uploads new pixel data into an existing immutable 2D data texture
Parameters
gl
WebGL2RenderingContext
The WebGL 2 rendering context
texture
WebGLTexture
The target texture
width
number
Texture width in texels
height
number
Texture height in texels
format
number
Pixel data format (e.g. gl.RGBA)
type
number
Pixel data type (e.g. gl.FLOAT)
data
The pixel data to upload
Returns
void
loadImageTextureFromUrl()
staticloadImageTextureFromUrl(gl,url,options?):Promise<WebGLTexture>
Defined in: utils/WebGLUtils.ts:297
Loads an image from a URL and creates a WebGL texture from it
Parameters
gl
WebGL2RenderingContext
The WebGL 2 rendering context
url
string
The image URL
options?
Optional mipmap generation flag and abort signal
mipmap?
boolean
signal?
AbortSignal
Returns
Promise<WebGLTexture>
loadProgram()
staticloadProgram(gl,vertexShaderSource,fragmentShaderSource):WebGLProgram
Defined in: utils/WebGLUtils.ts:35
Compiles vertex and fragment shaders, links them into a program, and returns the linked program
The individual shaders are flagged for deletion after linking.
Parameters
gl
WebGL2RenderingContext
The WebGL 2 rendering context
vertexShaderSource
string
GLSL source for the vertex shader
fragmentShaderSource
string
GLSL source for the fragment shader
Returns
WebGLProgram
Throws
If shader compilation or program linking fails
resizeBuffer()
staticresizeBuffer(gl,target,buffer,size,usage):void
Defined in: utils/WebGLUtils.ts:124
Allocates (or re-allocates) storage for a buffer, discarding previous contents
Parameters
gl
WebGL2RenderingContext
The WebGL 2 rendering context
target
number
Buffer binding target (e.g. gl.ARRAY_BUFFER)
buffer
WebGLBuffer
The buffer to resize
size
number
New size in bytes
usage
number
Usage hint (e.g. gl.STATIC_DRAW)
Returns
void