@bloopjs/toodle / backends/IRenderBackend / IRenderBackend
Interface: IRenderBackend
Defined in: backends/IRenderBackend.ts:39
The render backend interface abstracts WebGPU and WebGL differences.
Implementations handle GPU-specific operations like texture management, shader creation, and frame lifecycle.
Properties
atlasSize
readonlyatlasSize:Size
Defined in: backends/IRenderBackend.ts:47
Size of the default texture atlas
defaultAtlasId
readonlydefaultAtlasId:string
Defined in: backends/IRenderBackend.ts:50
Default atlas ID (always "default")
limits
readonlylimits:object
Defined in: backends/IRenderBackend.ts:44
Engine limits (texture size, instance count, etc.)
instanceBufferFields
instanceBufferFields:
number
Maximum number of instance buffer fields - 16 minus the vertex locations used by the engine
instanceBufferSize
instanceBufferSize:
number
Maximum size of instance buffer
instanceCount
instanceCount:
number
Maximum number of rendered instances in the scene per frame
maxTextLength
maxTextLength:
number=256
Maximum length of a single piece of text
shaderCount
shaderCount:
number=32
Maximum number of vfx shaders
textureArrayLayers
textureArrayLayers:
number=64
Maximum number of layers in a texture array
textureSize
textureSize:
number
Maximum dimensions of a single texture
uniformBufferSize
uniformBufferSize:
number
Maximum size of uniforms buffer
zIndex
zIndex:
number=32
Maximum number of unique z-indexes in the scene
type
readonlytype:BackendType
Defined in: backends/IRenderBackend.ts:41
The type of backend ("webgpu" or "webgl2")
Methods
createQuadShader()
createQuadShader(
opts):IBackendShader
Defined in: backends/IRenderBackend.ts:107
Create a quad shader for instanced rendering.
Parameters
opts
Returns
createTextureAtlas()
createTextureAtlas(
id,options?):ITextureAtlas
Defined in: backends/IRenderBackend.ts:89
Create a new texture atlas.
Parameters
id
string
Unique identifier for this atlas
options?
Atlas configuration (format, layers, size)
Returns
destroy()
destroy():
void
Defined in: backends/IRenderBackend.ts:117
Clean up GPU resources.
Returns
void
destroyTextureAtlas()
destroyTextureAtlas(
id):void
Defined in: backends/IRenderBackend.ts:102
Destroy a texture atlas and free GPU resources.
Parameters
id
string
Atlas identifier
Returns
void
endFrame()
endFrame():
void
Defined in: backends/IRenderBackend.ts:64
End the current frame and submit to GPU. WebGPU: Ends render pass and submits command buffer WebGL: Flushes pending operations
Returns
void
getTextureAtlas()
getTextureAtlas(
id?):null|ITextureAtlas
Defined in: backends/IRenderBackend.ts:96
Get a texture atlas by ID.
Parameters
id?
string
Atlas identifier or defaults to "default"
Returns
null | ITextureAtlas
The atlas, or null if not found
resize()
resize(
width,height):void
Defined in: backends/IRenderBackend.ts:112
Handle canvas resize.
Parameters
width
number
height
number
Returns
void
startFrame()
startFrame(
clearColor,loadOp):void
Defined in: backends/IRenderBackend.ts:57
Begin a new frame. WebGPU: Creates command encoder and render pass WebGL: Clears the canvas if loadOp is "clear"
Parameters
clearColor
loadOp
"load" | "clear"
Returns
void
updateEngineUniform()
updateEngineUniform(
uniform):void
Defined in: backends/IRenderBackend.ts:70
Update engine uniforms (view-projection matrix, resolution). Called once per frame before shader processing.
Parameters
uniform
Returns
void
uploadAtlas()
uploadAtlas(
atlas,layerIndex,atlasId?):Promise<void>
Defined in: backends/IRenderBackend.ts:78
Upload a CPU texture atlas to a GPU texture array layer.
Parameters
atlas
The CPU-side atlas data to upload
layerIndex
number
Which layer in the texture array to upload to
atlasId?
string
Which atlas to upload to (default: "default")
Returns
Promise<void>