Class: AbstractBatchRenderer


Renderer dedicated to drawing and batching sprites.

This is the default batch renderer. It buffers objects with texture-based geometries and renders them in batches. It uploads multiple textures to the GPU to reduce to the number of draw calls.

new PIXI.AbstractBatchRenderer (renderer) protected

This will hook onto the renderer's contextChange and prerender signals.

Name Type Description
renderer PIXI.Renderer

The renderer this works for.



_shader PIXI.Shader protected

This shader is generated by this.shaderGenerator.

It is generated specifically to handle the required number of textures being batched together.

geometryClass object protected

The class that represents the geometry of objects that are going to be batched with this.

Default Value:
  • PIXI.BatchGeometry

MAX_TEXTURES number readonly

Maximum number of textures that can be uploaded to the GPU under the current context. It is initialized properly in this.contextChange.


The renderer this manager works for.

shaderGenerator PIXI.BatchShaderGenerator protected

This is used to generate a shader that can color each vertex based on a aTextureId attribute that points to an texture in uSampler.

This enables the objects with different textures to be drawn in the same draw call.

You can customize your shader by creating your custom shader generator.

size number

The number of bufferable objects before a flush occurs automatically.

Default Value:

state PIXI.State readonly

The WebGL state in which this renderer will work.

vertexSize number readonly

Size of data being buffered per vertex in the attribute buffers (in floats). By default, the batch-renderer plugin uses 6:

aVertexPosition 2
aTextureCoords 2
aColor 1
aTextureId 1


contextChange ()

Handles the contextChange signal.

It calculates this.MAX_TEXTURES and allocating the packed-geometry object pool.

Destroys this AbstractBatchRenderer. It cannot be used again.

Renders the content now and empties the current batch.

Handles the prerender signal.

It ensures that flushes start from the first geometry object again.

packInterleavedGeometry (element, attributeBuffer, indexBuffer, aIndex, iIndex)

Takes the four batching parameters of element, interleaves and pushes them into the batching attribute/index buffers given.

It uses these properties: vertexData uvs, textureId and indicies. It also uses the "tint" of the base-texture, if present.

Name Type Description
element PIXI.Sprite

element being rendered

attributeBuffer PIXI.ViewableBuffer

attribute buffer.

indexBuffer Uint16Array

index buffer

aIndex number

number of floats already in the attribute buffer

iIndex number

number of indices already in indexBuffer

Buffers the "batchable" object. It need not be rendered immediately.

Name Type Description
sprite PIXI.Sprite

the sprite to render when using this spritebatch

Starts a new sprite batch.

Stops and flushes the current batch.