PIXI.BufferSystem
class BufferSystem implements PIXI.ISystem
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.
Constructor
new PIXI.BufferSystem(renderer: PIXI.Renderer) → {}
Name | Type | Description |
---|---|---|
renderer | PIXI.Renderer |
The renderer this System works for. |
Summary
Properties from BufferSystem
{ [key: number]: PIXI.Buffer } |
Cache keeping track of the base bound buffer bases |
{ [key: number]: PIXI.Buffer } |
Cache for all buffers by id, used in case renderer gets destroyed or for profiling |
Methods from BufferSystem
void |
|
void |
Binds an uniform buffer to at the given index. |
void |
|
void |
|
void |
|
void |
|
void |
Sets up the renderer context and necessary buffers. |
GLBuffer |
|
Public Properties
boundBufferBases: { [key: number]: PIXI.Buffer }
Cache keeping track of the base bound buffer bases
managedBuffers: { [key: number]: PIXI.Buffer }
Cache for all buffers by id, used in case renderer gets destroyed or for profiling
Public Methods
bind(buffer: PIXI.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 |
Type | Description |
---|---|
void |
bindBufferBase(buffer: PIXI.Buffer, index: number) → {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. |
Type | Description |
---|---|
void |
bindBufferRange(buffer: PIXI.Buffer, index: number, offset: number) → {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 |
Type | Description |
---|---|
void |
dispose(buffer: PIXI.Buffer, contextLost: boolean) → {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 |
Type | Description |
---|---|
void |
disposeAll(contextLost: boolean) → {void}
dispose all WebGL resources of all managed buffers
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
contextLost | boolean |
<optional> |
false |
If context was lost, we suppress |
Type | Description |
---|---|
void |
update(buffer: PIXI.Buffer) → {void}
Will ensure the data in the buffer is uploaded to the GPU.
Name | Type | Description |
---|---|---|
buffer | PIXI.Buffer |
the buffer to update |
Type | Description |
---|---|
void |
Protected Methods
protected contextChange() → {void}
Sets up the renderer context and necessary buffers.
Type | Description |
---|---|
void |
protected createGLBuffer(buffer: PIXI.Buffer) → {GLBuffer}
creates and attaches a GLBuffer object tied to the current context.
Name | Type | Description |
---|---|---|
buffer | PIXI.Buffer |
Type | Description |
---|---|
GLBuffer |