Class: BufferSystem

PIXI.BufferSystem

System plugin to the renderer to manage buffers.

WebGL uses Buffers as a way to store objects to the GPU. This system makes working with them a lot easier.

Buffers are used in three main places in WebGL

  • geometry information
  • Uniform information (via uniform buffer objects - a WebGL 2 only feature)
  • Transform feedback information. (WebGL 2 only feature)

This system will handle the binding of buffers to the GPU as well as uploading them. With this system, you never need to work directly with GPU buffers, but instead work with the PIXI.Buffer class.

new PIXI.BufferSystem (renderer)

Name Type Description
renderer PIXI.Renderer

The renderer this System works for.

Implements

Members

boundBufferBases { [key: number]: PIXI.Buffer } readonly

Cache keeping track of the base bound buffer bases

managedBuffers { [key: number]: PIXI.Buffer } readonly

Cache for all buffers by id, used in case renderer gets destroyed or for profiling

Methods

bind (buffer) void

This binds specified buffer. On first run, it will create the webGL buffers for the context too

Name Type Description
buffer PIXI.Buffer

the buffer to bind to the renderer

bindBufferBase (buffer, index) void

Binds an uniform buffer to at the given index.

A cache is used so a buffer will not be bound again if already bound.

Name Type Description
buffer PIXI.Buffer

the buffer to bind

index number

the base index to bind it to.

bindBufferRange (buffer, index, offset) void

Binds a buffer whilst also binding its range. This will make the buffer start from the offset supplied rather than 0 when it is read.

Name Type Attributes Description
buffer PIXI.Buffer

the buffer to bind

index number <optional>

the base index to bind at, defaults to 0

offset number <optional>

the offset to bind at (this is blocks of 256). 0 = 0, 1 = 256, 2 = 512 etc

dispose (buffer, contextLost) void

Disposes buffer

Name Type Attributes Default Description
buffer PIXI.Buffer

buffer with data

contextLost boolean <optional>
false

If context was lost, we suppress deleteVertexArray

disposeAll (contextLost) void

dispose all WebGL resources of all managed buffers

Name Type Attributes Default Description
contextLost boolean <optional>
false

If context was lost, we suppress gl.delete calls

update (buffer) void

Will ensure the data in the buffer is uploaded to the GPU.

Name Type Description
buffer PIXI.Buffer

the buffer to update

contextChange () void protected

Sets up the renderer context and necessary buffers.

createGLBuffer (buffer) GLBuffer protected

creates and attaches a GLBuffer object tied to the current context.

Name Type Description
buffer PIXI.Buffer
Returns:
Type Description
GLBuffer