Class: GraphicsPipeline

Phaser.Renderer.WebGL.Pipelines. GraphicsPipeline

The Graphics Pipeline is the rendering pipeline used by Phaser in WebGL when drawing primitive geometry objects, such as the Graphics Game Object, or the Shape Game Objects such as Arc, Line, Rectangle and Star. It handles the preperation and batching of related vertices.

Prior to Phaser v3.50 the functions of this pipeline were merged with the TextureTintPipeline.

The fragment shader it uses can be found in shaders/src/Graphics.frag. The vertex shader it uses can be found in shaders/src/Graphics.vert.

The default shader attributes for this pipeline are:

inPosition (vec2) inColor (vec4, normalized)

The default shader uniforms for this pipeline are:

uProjectionMatrix (mat4)


new GraphicsPipeline(config)

Parameters:
Name Type Description
config Phaser.Types.Renderer.WebGL.WebGLPipelineConfig

The configuration options for this pipeline.

Since: 3.50.0
Source: src/renderer/webgl/pipelines/GraphicsPipeline.js (Line 17)

Extends

Members


active :boolean

Indicates if the current pipeline is active, or not.

Toggle this property to enable or disable a pipeline from rendering anything.

Type:
  • boolean
Since: 3.10.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 225)

bytes :Uint8Array

Uint8 view to the vertexData ArrayBuffer. Used for uploading vertex buffer resources to the GPU.

Type:
  • Uint8Array
Since: 3.0.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 198)

calcMatrix :Phaser.GameObjects.Components.TransformMatrix

A temporary Transform Matrix, re-used internally during batching by the Shape Game Objects.

Type:
Since: 3.50.0
Source: src/renderer/webgl/pipelines/GraphicsPipeline.js (Line 70)

config :Phaser.Types.Renderer.WebGL.WebGLPipelineConfig

The configuration object that was used to create this pipeline.

Treat this object as 'read only', because changing it post-creation will not impact this pipeline in any way. However, it is used internally for cloning and post-boot set-up.

Type:
Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 353)

currentRenderTarget :Phaser.Renderer.WebGL.RenderTarget

A reference to the currently bound Render Target instance from the WebGLPipeline.renderTargets array.

Type:
Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 290)

currentShader :Phaser.Renderer.WebGL.WebGLShader

A reference to the currently bound WebGLShader instance from the WebGLPipeline.shaders array.

For lots of pipelines, this is the only shader, so it is a quick way to reference it without an array look-up.

Type:
Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 314)

currentUnit :number

Holds the most recently assigned texture unit.

Treat this value as read-only.

Type:
  • number
Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 236)

forceZero :boolean

Some pipelines require the forced use of texture zero (like the light pipeline).

This property should be set when that is the case.

Type:
  • boolean
Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 247)

game :Phaser.Game

The Phaser Game instance to which this pipeline is bound.

Type:
Since: 3.0.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 74)

gl :WebGLRenderingContext

The WebGL context this WebGL Pipeline uses.

Type:
  • WebGLRenderingContext
Since: 3.0.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 104)

<readonly> hasBooted :boolean

Indicates if this pipeline has booted or not.

A pipeline boots only when the Game instance itself, and all associated systems, is fully ready.

Type:
  • boolean
Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 258)

height :number

Height of the current viewport.

Type:
  • number
Since: 3.0.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 131)

<readonly> isPostFX :boolean

Indicates if this is a Post FX Pipeline, or not.

Type:
  • boolean
Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 271)

<nullable> manager :Phaser.Renderer.WebGL.PipelineManager

A reference to the WebGL Pipeline Manager.

This is initially undefined and only set when this pipeline is added to the manager.

Type:
Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 92)

name :string

Name of the pipeline. Used for identification and setting from Game Objects.

Type:
  • string
Since: 3.0.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 65)

projectionHeight :number

The cached height of the Projection matrix.

Type:
  • number
Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 344)

projectionMatrix :Phaser.Math.Matrix4

The Projection matrix, used by shaders as 'uProjectionMatrix' uniform.

Type:
Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 326)

projectionWidth :number

The cached width of the Projection matrix.

Type:
  • number
Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 335)

renderer :Phaser.Renderer.WebGL.WebGLRenderer

The WebGL Renderer instance to which this pipeline is bound.

Type:
Since: 3.0.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 83)

renderTargets :Array.<Phaser.Renderer.WebGL.RenderTarget>

An array of RenderTarget instances that belong to this pipeline.

Type:
Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 281)

shaders :Array.<Phaser.Renderer.WebGL.WebGLShader>

An array of all the WebGLShader instances that belong to this pipeline.

Shaders manage their own attributes and uniforms, but share the same vertex data buffer, which belongs to this pipeline.

Shaders are set in a call to the setShadersFromConfig method, which happens automatically, but can also be called at any point in your game. See the method documentation for details.

Type:
Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 299)

topology :GLenum

The primitive topology which the pipeline will use to submit draw calls.

Defaults to GL_TRIANGLES if not otherwise set in the config.

Type:
  • GLenum
Since: 3.0.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 187)

<readonly> vertexBuffer :WebGLBuffer

The WebGLBuffer that holds the vertex data.

Created from the vertexData ArrayBuffer. If vertices are set in the config, a STATIC_DRAW buffer is created. If not, a DYNAMIC_DRAW buffer is created.

Type:
  • WebGLBuffer
Since: 3.0.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 174)

vertexCapacity :number

The total number of vertices that this pipeline batch can hold before it will flush.

This defaults to renderer batchSize * 6, where batchSize is defined in the Renderer Game Config.

Type:
  • number
Since: 3.0.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 150)

vertexCount :number

The current number of vertices that have been added to the pipeline batch.

Type:
  • number
Since: 3.0.0
Inherited From:
Default Value:
  • 0
Source: src/renderer/webgl/WebGLPipeline.js (Line 140)

<readonly> vertexData :ArrayBuffer

Raw byte buffer of vertices.

Either set via the config object vertices property, or generates a new Array Buffer of size vertexCapacity * vertexSize.

Type:
  • ArrayBuffer
Since: 3.0.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 161)

vertexViewF32 :Float32Array

Float32 view of the array buffer containing the pipeline's vertices.

Type:
  • Float32Array
Since: 3.0.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 207)

vertexViewU32 :Uint32Array

Uint32 view of the array buffer containing the pipeline's vertices.

Type:
  • Uint32Array
Since: 3.0.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 216)

view :HTMLCanvasElement

The canvas which this WebGL Pipeline renders to.

Type:
  • HTMLCanvasElement
Since: 3.0.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 113)

width :number

Width of the current viewport.

Type:
  • number
Since: 3.0.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 122)

Methods


addListener(event, fn [, context])

Add a listener for a given event.

Parameters:
Name Type Argument Default Description
event string | symbol

The event name.

fn function

The listener function.

context * <optional>
this

The context to invoke the listener with.

Since: 3.0.0
Inherited From:
Source: src/events/EventEmitter.js (Line 111)
Returns:

this.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

batchFillPath(path, currentMatrix, parentMatrix)

Adds the given path to the vertex batch for rendering.

It works by taking the array of path data and then passing it through Earcut, which creates a list of polygons. Each polygon is then added to the batch.

The path is always automatically closed because it's filled.

Parameters:
Name Type Description
path Array.<Phaser.Types.Math.Vector2Like>

Collection of points that represent the path.

currentMatrix Phaser.GameObjects.Components.TransformMatrix

The current transform.

parentMatrix Phaser.GameObjects.Components.TransformMatrix

The parent transform.

Since: 3.50.0
Source: src/renderer/webgl/pipelines/GraphicsPipeline.js (Line 289)

batchFillRect(x, y, width, height, currentMatrix, parentMatrix)

Pushes a filled rectangle into the vertex batch.

Rectangle factors in the given transform matrices before adding to the batch.

Parameters:
Name Type Description
x number

Horizontal top left coordinate of the rectangle.

y number

Vertical top left coordinate of the rectangle.

width number

Width of the rectangle.

height number

Height of the rectangle.

currentMatrix Phaser.GameObjects.Components.TransformMatrix

The current transform.

parentMatrix Phaser.GameObjects.Components.TransformMatrix

The parent transform.

Since: 3.50.0
Source: src/renderer/webgl/pipelines/GraphicsPipeline.js (Line 156)

batchFillTriangle(x0, y0, x1, y1, x2, y2, currentMatrix, parentMatrix)

Pushes a filled triangle into the vertex batch.

Triangle factors in the given transform matrices before adding to the batch.

Parameters:
Name Type Description
x0 number

Point 0 x coordinate.

y0 number

Point 0 y coordinate.

x1 number

Point 1 x coordinate.

y1 number

Point 1 y coordinate.

x2 number

Point 2 x coordinate.

y2 number

Point 2 y coordinate.

currentMatrix Phaser.GameObjects.Components.TransformMatrix

The current transform.

parentMatrix Phaser.GameObjects.Components.TransformMatrix

The parent transform.

Since: 3.50.0
Source: src/renderer/webgl/pipelines/GraphicsPipeline.js (Line 203)

batchLine(ax, ay, bx, by, aLineWidth, bLineWidth, index, closePath, currentMatrix, parentMatrix)

Creates a line out of 4 quads and adds it to the vertex batch based on the given line values.

Parameters:
Name Type Description
ax number

x coordinate of the start of the line.

ay number

y coordinate of the start of the line.

bx number

x coordinate of the end of the line.

by number

y coordinate of the end of the line.

aLineWidth number

Width of the start of the line.

bLineWidth number

Width of the end of the line.

index number

If this line is part of a multi-line draw, the index of the line in the draw.

closePath boolean

Does this line close a multi-line path?

currentMatrix Phaser.GameObjects.Components.TransformMatrix

The current transform.

parentMatrix Phaser.GameObjects.Components.TransformMatrix

The parent transform.

Since: 3.50.0
Source: src/renderer/webgl/pipelines/GraphicsPipeline.js (Line 410)

batchQuad(x0, y0, x1, y1, x2, y2, x3, y3, tintTL, tintTR, tintBL, tintBR)

Adds the vertices data into the batch and flushes if full.

Assumes 6 vertices in the following arrangement:

0----3
|\  B|
| \  |
|  \ |
| A \|
|    \
1----2

Where tx0/ty0 = 0, tx1/ty1 = 1, tx2/ty2 = 2 and tx3/ty3 = 3

Parameters:
Name Type Description
x0 number

The top-left x position.

y0 number

The top-left y position.

x1 number

The bottom-left x position.

y1 number

The bottom-left y position.

x2 number

The bottom-right x position.

y2 number

The bottom-right y position.

x3 number

The top-right x position.

y3 number

The top-right y position.

tintTL number

The top-left tint color value.

tintTR number

The top-right tint color value.

tintBL number

The bottom-left tint color value.

tintBR number

The bottom-right tint color value.

Since: 3.50.0
Inherited From:
Overrides:
Source: src/renderer/webgl/pipelines/GraphicsPipeline.js (Line 552)
Returns:

true if this method caused the batch to flush, otherwise false.

Type
boolean

batchStrokePath(path, lineWidth, pathOpen, currentMatrix, parentMatrix)

Adds the given path to the vertex batch for rendering.

It works by taking the array of path data and calling batchLine for each section of the path.

The path is optionally closed at the end.

Parameters:
Name Type Description
path Array.<Phaser.Types.Math.Vector2Like>

Collection of points that represent the path.

lineWidth number

The width of the line segments in pixels.

pathOpen boolean

Indicates if the path should be closed or left open.

currentMatrix Phaser.GameObjects.Components.TransformMatrix

The current transform.

parentMatrix Phaser.GameObjects.Components.TransformMatrix

The parent transform.

Since: 3.50.0
Source: src/renderer/webgl/pipelines/GraphicsPipeline.js (Line 362)

batchStrokeTriangle(x0, y0, x1, y1, x2, y2, lineWidth, currentMatrix, parentMatrix)

Pushes a stroked triangle into the vertex batch.

Triangle factors in the given transform matrices before adding to the batch.

The triangle is created from 3 lines and drawn using the batchStrokePath method.

Parameters:
Name Type Description
x0 number

Point 0 x coordinate.

y0 number

Point 0 y coordinate.

x1 number

Point 1 x coordinate.

y1 number

Point 1 y coordinate.

x2 number

Point 2 x coordinate.

y2 number

Point 2 y coordinate.

lineWidth number

The width of the line in pixels.

currentMatrix Phaser.GameObjects.Components.TransformMatrix

The current transform.

parentMatrix Phaser.GameObjects.Components.TransformMatrix

The parent transform.

Since: 3.50.0
Source: src/renderer/webgl/pipelines/GraphicsPipeline.js (Line 246)

batchTri(x1, y1, x2, y2, x3, y3, tintTL, tintTR, tintBL)

Adds the vertices data into the batch and flushes if full.

Assumes 3 vertices in the following arrangement:

0
|\
| \
|  \
|   \
|    \
1-----2
Parameters:
Name Type Description
x1 number

The bottom-left x position.

y1 number

The bottom-left y position.

x2 number

The bottom-right x position.

y2 number

The bottom-right y position.

x3 number

The top-right x position.

y3 number

The top-right y position.

tintTL number

The top-left tint color value.

tintTR number

The top-right tint color value.

tintBL number

The bottom-left tint color value.

Since: 3.50.0
Inherited From:
Overrides:
Source: src/renderer/webgl/pipelines/GraphicsPipeline.js (Line 609)
Returns:

true if this method caused the batch to flush, otherwise false.

Type
boolean

batchVert(x, y, tint)

Adds a single vertex to the current vertex buffer and increments the vertexCount property by 1.

This method is called directly by batchTri and batchQuad.

It does not perform any batch limit checking itself, so if you need to call this method directly, do so in the same way that batchQuad does, for example.

Parameters:
Name Type Description
x number

The vertex x position.

y number

The vertex y position.

tint number

The tint color value.

Since: 3.50.0
Overrides:
Source: src/renderer/webgl/pipelines/GraphicsPipeline.js (Line 522)

bind( [currentShader])

This method is called every time the Pipeline Manager makes this pipeline the currently active one.

It binds the resources and shader needed for this pipeline, including setting the vertex buffer and attribute pointers.

Parameters:
Name Type Argument Description
currentShader Phaser.Renderer.WebGL.WebGLShader <optional>

The shader to set as being current.

Since: 3.0.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 813)
Fires:
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

bindRenderTarget( [target] [, unit])

Activates the given Render Target texture and binds it to the requested WebGL texture slot.

Parameters:
Name Type Argument Default Description
target Phaser.Renderer.WebGL.RenderTarget <optional>

The Render Target to activate and bind.

unit number <optional>
0

The WebGL texture ID to activate. Defaults to gl.TEXTURE0.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1487)
Returns:

This WebGL Pipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

bindTexture( [target] [, unit])

Activates the given WebGL Texture and binds it to the requested texture slot.

Parameters:
Name Type Argument Default Description
target WebGLTexture <optional>

The WebGLTexture to activate and bind.

unit number <optional>
0

The WebGL texture ID to activate. Defaults to gl.TEXTURE0.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1463)
Returns:

This WebGL Pipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

boot()

Called when the Game has fully booted and the Renderer has finished setting up.

By this stage all Game level systems are now in place. You can perform any final tasks that the pipeline may need, that relies on game systems such as the Texture Manager being ready.

Since: 3.11.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 367)
Fires:

destroy()

Destroys all shader instances, removes all object references and nulls all external references.

Since: 3.50.0
Overrides:
Source: src/renderer/webgl/pipelines/GraphicsPipeline.js (Line 658)
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

drawFillRect(x, y, width, height, color, alpha [, texture] [, flipUV])

Pushes a filled rectangle into the vertex batch.

The dimensions are run through Math.floor before the quad is generated.

Rectangle has no transform values and isn't transformed into the local space.

Used for directly batching untransformed rectangles, such as Camera background colors.

Parameters:
Name Type Argument Default Description
x number

Horizontal top left coordinate of the rectangle.

y number

Vertical top left coordinate of the rectangle.

width number

Width of the rectangle.

height number

Height of the rectangle.

color number

Color of the rectangle to draw.

alpha number

Alpha value of the rectangle to draw.

texture WebGLTexture <optional>

WebGLTexture that will be assigned to the current batch if a flush occurs.

flipUV boolean <optional>
true

Flip the vertical UV coordinates of the texture before rendering?

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1393)

emit(event [, args])

Calls each of the listeners registered for a given event.

Parameters:
Name Type Argument Description
event string | symbol

The event name.

args * <optional>
<repeatable>

Additional arguments that will be passed to the event handler.

Since: 3.0.0
Inherited From:
Source: src/events/EventEmitter.js (Line 86)
Returns:

true if the event had listeners, else false.

Type
boolean

eventNames()

Return an array listing the events for which the emitter has registered listeners.

Since: 3.0.0
Inherited From:
Source: src/events/EventEmitter.js (Line 55)
Returns:
Type
Array.<(string|symbol)>

flush( [isPostFlush])

Uploads the vertex data and emits a draw call for the current batch of vertices.

Parameters:
Name Type Argument Default Description
isPostFlush boolean <optional>
false

Was this flush invoked as part of a post-process, or not?

Since: 3.0.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 985)
Fires:
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

getShaderByName(name)

Searches all shaders in this pipeline for one matching the given name, then returns it.

Parameters:
Name Type Description
name string

The index of the shader to set.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 557)
Returns:

The WebGLShader instance, if found.

Type
Phaser.Renderer.WebGL.WebGLShader

listenerCount(event)

Return the number of listeners listening to a given event.

Parameters:
Name Type Description
event string | symbol

The event name.

Since: 3.0.0
Inherited From:
Source: src/events/EventEmitter.js (Line 75)
Returns:

The number of listeners.

Type
number

listeners(event)

Return the listeners registered for a given event.

Parameters:
Name Type Description
event string | symbol

The event name.

Since: 3.0.0
Inherited From:
Source: src/events/EventEmitter.js (Line 64)
Returns:

The registered listeners.

Type
Array.<function()>

off(event [, fn] [, context] [, once])

Remove the listeners of a given event.

Parameters:
Name Type Argument Description
event string | symbol

The event name.

fn function <optional>

Only remove the listeners that match this function.

context * <optional>

Only remove the listeners that have this context.

once boolean <optional>

Only remove one-time listeners.

Since: 3.0.0
Inherited From:
Source: src/events/EventEmitter.js (Line 151)
Returns:

this.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

on(event, fn [, context])

Add a listener for a given event.

Parameters:
Name Type Argument Default Description
event string | symbol

The event name.

fn function

The listener function.

context * <optional>
this

The context to invoke the listener with.

Since: 3.0.0
Inherited From:
Source: src/events/EventEmitter.js (Line 98)
Returns:

this.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

onActive(currentShader)

By default this is an empty method hook that you can override and use in your own custom pipelines.

This method is called every time the Pipeline Manager makes this the active pipeline. It is called at the end of the WebGLPipeline.bind method, after the current shader has been set. The current shader is passed to this hook.

For example, if a display list has 3 Sprites in it that all use the same pipeline, this hook will only be called for the first one, as the 2nd and 3rd Sprites do not cause the pipeline to be changed.

If you need to listen for that event instead, use the onBind hook.

Parameters:
Name Type Description
currentShader Phaser.Renderer.WebGL.WebGLShader

The shader that was set as current.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1037)

onAfterFlush( [isPostFlush])

By default this is an empty method hook that you can override and use in your own custom pipelines.

This method is called immediately after this pipeline has finished flushing its batch.

It is called after the gl.drawArrays call.

You can perform additional post-render effects, but be careful not to call flush on this pipeline from within this method, or you'll cause an infinite loop.

To apply changes pre-render, see onBeforeFlush.

Parameters:
Name Type Argument Default Description
isPostFlush boolean <optional>
false

Was this flush invoked as part of a post-process, or not?

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1202)

onBatch( [gameObject])

By default this is an empty method hook that you can override and use in your own custom pipelines.

This method is called every time the batchQuad or batchTri methods are called. If this was as a result of a Game Object, then the Game Object reference is passed to this hook too.

This hook is called after the quad (or tri) has been added to the batch, so you can safely call 'flush' from within this.

Note that Game Objects may call batchQuad or batchTri multiple times for a single draw, for example the Graphics Game Object.

Parameters:
Name Type Argument Description
gameObject Phaser.GameObjects.GameObject <optional>

The Game Object that invoked this pipeline, if any.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1091)

onBeforeFlush( [isPostFlush])

By default this is an empty method hook that you can override and use in your own custom pipelines.

This method is called every time this pipeline is asked to flush its batch.

It is called immediately before the gl.bufferData and gl.drawArrays calls are made, so you can perform any final pre-render modifications. To apply changes post-render, see onAfterFlush.

Parameters:
Name Type Argument Default Description
isPostFlush boolean <optional>
false

Was this flush invoked as part of a post-process, or not?

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1185)

onBind( [gameObject])

By default this is an empty method hook that you can override and use in your own custom pipelines.

This method is called every time a Game Object asks the Pipeline Manager to use this pipeline, even if the pipeline is already active.

Unlike the onActive method, which is only called when the Pipeline Manager makes this pipeline active, this hook is called for every Game Object that requests use of this pipeline, allowing you to perform per-object set-up, such as loading shader uniform data.

Parameters:
Name Type Argument Description
gameObject Phaser.GameObjects.GameObject <optional>

The Game Object that invoked this pipeline, if any.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1058)

onBoot()

This method is called once when this pipeline has finished being set-up at the end of the boot process. By the time this method is called, all of the shaders are ready and configured.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 493)

once(event, fn [, context])

Add a one-time listener for a given event.

Parameters:
Name Type Argument Default Description
event string | symbol

The event name.

fn function

The listener function.

context * <optional>
this

The context to invoke the listener with.

Since: 3.0.0
Inherited From:
Source: src/events/EventEmitter.js (Line 124)
Returns:

this.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

onDraw(renderTarget)

This method is only used by Post FX Pipelines and those that extend from them.

This method is called every time the postBatch method is called and is passed a reference to the current render target.

At the very least a Post FX Pipeline should call this.bindAndDraw(renderTarget), however, you can do as much additional processing as you like in this method if you override it from within your own pipelines.

Parameters:
Name Type Description
renderTarget Phaser.Renderer.WebGL.RenderTarget

The Render Target.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 951)

onPostBatch( [gameObject])

By default this is an empty method hook that you can override and use in your own custom pipelines.

This method is called immediately after a Game Object has been added to the batch.

Parameters:
Name Type Argument Description
gameObject Phaser.GameObjects.GameObject <optional>

The Game Object that invoked this pipeline, if any.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1126)

onPostRender()

By default this is an empty method hook that you can override and use in your own custom pipelines.

This method is called once per frame, after all rendering has happened and snapshots have been taken.

It is called at the very end of the rendering process, once all Cameras, for all Scenes, have been rendered.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1170)

onPreBatch( [gameObject])

By default this is an empty method hook that you can override and use in your own custom pipelines.

This method is called immediately before a Game Object is about to add itself to the batch.

Parameters:
Name Type Argument Description
gameObject Phaser.GameObjects.GameObject <optional>

The Game Object that invoked this pipeline, if any.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1112)

onPreRender()

By default this is an empty method hook that you can override and use in your own custom pipelines.

This method is called once per frame, right before anything has been rendered, but after the canvas has been cleared. If this pipeline has a render target, it will also have been cleared by this point.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1140)

onRebind()

By default this is an empty method hook that you can override and use in your own custom pipelines.

This method is called when the Pipeline Manager needs to rebind this pipeline. This happens after a pipeline has been cleared, usually when passing control over to a 3rd party WebGL library, like Spine, and then returing to Phaser again.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1077)

onRender(scene, camera)

By default this is an empty method hook that you can override and use in your own custom pipelines.

This method is called once per frame, by every Camera in a Scene that wants to render.

It is called at the start of the rendering process, before anything has been drawn to the Camera.

Parameters:
Name Type Description
scene Phaser.Scene

The Scene being rendered.

camera Phaser.Cameras.Scene2D.Camera

The Scene Camera being rendered with.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1153)

onResize(width, height)

This method is called once when this pipeline has finished being set-up at the end of the boot process. By the time this method is called, all of the shaders are ready and configured. It's also called if the renderer changes size.

Parameters:
Name Type Description
width number

The new width of this WebGL Pipeline.

height number

The new height of this WebGL Pipeline.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 505)

postBatch( [gameObject])

This method is called as a result of the WebGLPipeline.batchQuad method, right after a quad belonging to a Game Object has been added to the batch. When this is called, the renderer has just performed a flush.

It calls the onDraw hook followed by the onPostBatch hook, which can be used to perform additional Post FX Pipeline processing.

Parameters:
Name Type Argument Description
gameObject Phaser.GameObjects.GameObject | Phaser.Cameras.Scene2D.Camera <optional>

The Game Object or Camera that invoked this pipeline, if any.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 927)
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

preBatch( [gameObject])

This method is called as a result of the WebGLPipeline.batchQuad method, right before a quad belonging to a Game Object is about to be added to the batch. When this is called, the renderer has just performed a flush. It will bind the current render target, if any are set and finally call the onPreBatch hook.

Parameters:
Name Type Argument Description
gameObject Phaser.GameObjects.GameObject | Phaser.Cameras.Scene2D.Camera <optional>

The Game Object or Camera that invoked this pipeline, if any.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 902)
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

rebind()

This method is called every time the Pipeline Manager rebinds this pipeline.

It resets all shaders this pipeline uses, setting their attributes again.

Since: 3.0.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 844)
Fires:
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

removeAllListeners( [event])

Remove all listeners, or those of the specified event.

Parameters:
Name Type Argument Description
event string | symbol <optional>

The event name.

Since: 3.0.0
Inherited From:
Source: src/events/EventEmitter.js (Line 165)
Returns:

this.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

removeListener(event [, fn] [, context] [, once])

Remove the listeners of a given event.

Parameters:
Name Type Argument Description
event string | symbol

The event name.

fn function <optional>

Only remove the listeners that match this function.

context * <optional>

Only remove the listeners that have this context.

once boolean <optional>

Only remove one-time listeners.

Since: 3.0.0
Inherited From:
Source: src/events/EventEmitter.js (Line 137)
Returns:

this.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

resize(width, height)

Resizes the properties used to describe the viewport.

This method is called automatically by the renderer during its resize handler.

Parameters:
Name Type Description
width number

The new width of this WebGL Pipeline.

height number

The new height of this WebGL Pipeline.

Since: 3.0.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 701)
Fires:
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

set1f(name, x [, shader])

Sets a 1f uniform value based on the given name on the currently set shader.

The current shader is bound, before the uniform is set, making it active within the WebGLRenderer. This means you can safely call this method from a location such as a Scene create or update method. However, when working within a Shader file directly, use the WebGLShader method equivalent instead, to avoid the program being set.

Parameters:
Name Type Argument Description
name string

The name of the uniform to set.

x number

The new value of the float uniform.

shader Phaser.Renderer.WebGL.WebGLShader <optional>

The shader to set the value on. If not given, the currentShader is used.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1523)
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

set1fv(name, arr [, shader])

Sets a 1fv uniform value based on the given name on the currently set shader.

The current shader is bound, before the uniform is set, making it active within the WebGLRenderer. This means you can safely call this method from a location such as a Scene create or update method. However, when working within a Shader file directly, use the WebGLShader method equivalent instead, to avoid the program being set.

Parameters:
Name Type Argument Description
name string

The name of the uniform to set.

arr Array.<number> | Float32Array

The new value to be used for the uniform variable.

shader Phaser.Renderer.WebGL.WebGLShader <optional>

The shader to set the value on. If not given, the currentShader is used.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1637)
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

set1i(name, x [, shader])

Sets a 1i uniform value based on the given name on the currently set shader.

The current shader is bound, before the uniform is set, making it active within the WebGLRenderer. This means you can safely call this method from a location such as a Scene create or update method. However, when working within a Shader file directly, use the WebGLShader method equivalent instead, to avoid the program being set.

Parameters:
Name Type Argument Description
name string

The name of the uniform to set.

x number

The new value of the int uniform.

shader Phaser.Renderer.WebGL.WebGLShader <optional>

The shader to set the value on. If not given, the currentShader is used.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1853)
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

set1iv(name, arr [, shader])

Sets a 1iv uniform value based on the given name on the currently set shader.

The current shader is bound, before the uniform is set, making it active within the WebGLRenderer. This means you can safely call this method from a location such as a Scene create or update method. However, when working within a Shader file directly, use the WebGLShader method equivalent instead, to avoid the program being set.

Parameters:
Name Type Argument Description
name string

The name of the uniform to set.

arr Array.<number> | Float32Array

The new value to be used for the uniform variable.

shader Phaser.Renderer.WebGL.WebGLShader <optional>

The shader to set the value on. If not given, the currentShader is used.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1745)
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

set2f(name, x, y [, shader])

Sets a 2f uniform value based on the given name on the currently set shader.

The current shader is bound, before the uniform is set, making it active within the WebGLRenderer. This means you can safely call this method from a location such as a Scene create or update method. However, when working within a Shader file directly, use the WebGLShader method equivalent instead, to avoid the program being set.

Parameters:
Name Type Argument Description
name string

The name of the uniform to set.

x number

The new X component of the vec2 uniform.

y number

The new Y component of the vec2 uniform.

shader Phaser.Renderer.WebGL.WebGLShader <optional>

The shader to set the value on. If not given, the currentShader is used.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1550)
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

set2fv(name, arr [, shader])

Sets a 2fv uniform value based on the given name on the currently set shader.

The current shader is bound, before the uniform is set, making it active within the WebGLRenderer. This means you can safely call this method from a location such as a Scene create or update method. However, when working within a Shader file directly, use the WebGLShader method equivalent instead, to avoid the program being set.

Parameters:
Name Type Argument Description
name string

The name of the uniform to set.

arr Array.<number> | Float32Array

The new value to be used for the uniform variable.

shader Phaser.Renderer.WebGL.WebGLShader <optional>

The shader to set the value on. If not given, the currentShader is used.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1664)
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

set2i(name, x, y [, shader])

Sets a 2i uniform value based on the given name on the currently set shader.

The current shader is bound, before the uniform is set, making it active within the WebGLRenderer. This means you can safely call this method from a location such as a Scene create or update method. However, when working within a Shader file directly, use the WebGLShader method equivalent instead, to avoid the program being set.

Parameters:
Name Type Argument Description
name string

The name of the uniform to set.

x number

The new X component of the ivec2 uniform.

y number

The new Y component of the ivec2 uniform.

shader Phaser.Renderer.WebGL.WebGLShader <optional>

The shader to set the value on. If not given, the currentShader is used.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1880)
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

set2iv(name, arr [, shader])

Sets a 2iv uniform value based on the given name on the currently set shader.

The current shader is bound, before the uniform is set, making it active within the WebGLRenderer. This means you can safely call this method from a location such as a Scene create or update method. However, when working within a Shader file directly, use the WebGLShader method equivalent instead, to avoid the program being set.

Parameters:
Name Type Argument Description
name string

The name of the uniform to set.

arr Array.<number> | Float32Array

The new value to be used for the uniform variable.

shader Phaser.Renderer.WebGL.WebGLShader <optional>

The shader to set the value on. If not given, the currentShader is used.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1772)
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

set3f(name, x, y, z [, shader])

Sets a 3f uniform value based on the given name on the currently set shader.

The current shader is bound, before the uniform is set, making it active within the WebGLRenderer. This means you can safely call this method from a location such as a Scene create or update method. However, when working within a Shader file directly, use the WebGLShader method equivalent instead, to avoid the program being set.

Parameters:
Name Type Argument Description
name string

The name of the uniform to set.

x number

The new X component of the vec3 uniform.

y number

The new Y component of the vec3 uniform.

z number

The new Z component of the vec3 uniform.

shader Phaser.Renderer.WebGL.WebGLShader <optional>

The shader to set the value on. If not given, the currentShader is used.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1578)
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

set3fv(name, arr [, shader])

Sets a 3fv uniform value based on the given name on the currently set shader.

The current shader is bound, before the uniform is set, making it active within the WebGLRenderer. This means you can safely call this method from a location such as a Scene create or update method. However, when working within a Shader file directly, use the WebGLShader method equivalent instead, to avoid the program being set.

Parameters:
Name Type Argument Description
name string

The name of the uniform to set.

arr Array.<number> | Float32Array

The new value to be used for the uniform variable.

shader Phaser.Renderer.WebGL.WebGLShader <optional>

The shader to set the value on. If not given, the currentShader is used.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1691)
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

set3i(name, x, y, z [, shader])

Sets a 3i uniform value based on the given name on the currently set shader.

The current shader is bound, before the uniform is set, making it active within the WebGLRenderer. This means you can safely call this method from a location such as a Scene create or update method. However, when working within a Shader file directly, use the WebGLShader method equivalent instead, to avoid the program being set.

Parameters:
Name Type Argument Description
name string

The name of the uniform to set.

x number

The new X component of the ivec3 uniform.

y number

The new Y component of the ivec3 uniform.

z number

The new Z component of the ivec3 uniform.

shader Phaser.Renderer.WebGL.WebGLShader <optional>

The shader to set the value on. If not given, the currentShader is used.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1908)
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

set3iv(name, arr [, shader])

Sets a 3iv uniform value based on the given name on the currently set shader.

The current shader is bound, before the uniform is set, making it active within the WebGLRenderer. This means you can safely call this method from a location such as a Scene create or update method. However, when working within a Shader file directly, use the WebGLShader method equivalent instead, to avoid the program being set.

Parameters:
Name Type Argument Description
name string

The name of the uniform to set.

arr Array.<number> | Float32Array

The new value to be used for the uniform variable.

shader Phaser.Renderer.WebGL.WebGLShader <optional>

The shader to set the value on. If not given, the currentShader is used.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1799)
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

set4f(name, x, y, z, w [, shader])

Sets a 4f uniform value based on the given name on the currently set shader.

The current shader is bound, before the uniform is set, making it active within the WebGLRenderer. This means you can safely call this method from a location such as a Scene create or update method. However, when working within a Shader file directly, use the WebGLShader method equivalent instead, to avoid the program being set.

Parameters:
Name Type Argument Description
name string

The name of the uniform to set.

x number

X component of the uniform

y number

Y component of the uniform

z number

Z component of the uniform

w number

W component of the uniform

shader Phaser.Renderer.WebGL.WebGLShader <optional>

The shader to set the value on. If not given, the currentShader is used.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1607)
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

set4fv(name, arr [, shader])

Sets a 4fv uniform value based on the given name on the currently set shader.

The current shader is bound, before the uniform is set, making it active within the WebGLRenderer. This means you can safely call this method from a location such as a Scene create or update method. However, when working within a Shader file directly, use the WebGLShader method equivalent instead, to avoid the program being set.

Parameters:
Name Type Argument Description
name string

The name of the uniform to set.

arr Array.<number> | Float32Array

The new value to be used for the uniform variable.

shader Phaser.Renderer.WebGL.WebGLShader <optional>

The shader to set the value on. If not given, the currentShader is used.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1718)
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

set4i(name, x, y, z, w [, shader])

Sets a 4i uniform value based on the given name on the currently set shader.

The current shader is bound, before the uniform is set, making it active within the WebGLRenderer. This means you can safely call this method from a location such as a Scene create or update method. However, when working within a Shader file directly, use the WebGLShader method equivalent instead, to avoid the program being set.

Parameters:
Name Type Argument Description
name string

The name of the uniform to set.

x number

X component of the uniform.

y number

Y component of the uniform.

z number

Z component of the uniform.

w number

W component of the uniform.

shader Phaser.Renderer.WebGL.WebGLShader <optional>

The shader to set the value on. If not given, the currentShader is used.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1937)
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

set4iv(name, arr [, shader])

Sets a 4iv uniform value based on the given name on the currently set shader.

The current shader is bound, before the uniform is set, making it active within the WebGLRenderer. This means you can safely call this method from a location such as a Scene create or update method. However, when working within a Shader file directly, use the WebGLShader method equivalent instead, to avoid the program being set.

Parameters:
Name Type Argument Description
name string

The name of the uniform to set.

arr Array.<number> | Float32Array

The new value to be used for the uniform variable.

shader Phaser.Renderer.WebGL.WebGLShader <optional>

The shader to set the value on. If not given, the currentShader is used.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1826)
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

setGameObject(gameObject [, frame])

Custom pipelines can use this method in order to perform any required pre-batch tasks for the given Game Object. It must return the texture unit the Game Object was assigned.

Parameters:
Name Type Argument Description
gameObject Phaser.GameObjects.GameObject

The Game Object being rendered or added to the batch.

frame Phaser.Textures.Frame <optional>

Optional frame to use. Can override that of the Game Object.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 659)
Returns:

The texture unit the Game Object has been assigned.

Type
number

setMatrix2fv(name, transpose, matrix [, shader])

Sets a matrix 2fv uniform value based on the given name on the currently set shader.

The current shader is bound, before the uniform is set, making it active within the WebGLRenderer. This means you can safely call this method from a location such as a Scene create or update method. However, when working within a Shader file directly, use the WebGLShader method equivalent instead, to avoid the program being set.

Parameters:
Name Type Argument Description
name string

The name of the uniform to set.

transpose boolean

Whether to transpose the matrix. Should be false.

matrix Array.<number> | Float32Array

The new values for the mat2 uniform.

shader Phaser.Renderer.WebGL.WebGLShader <optional>

The shader to set the value on. If not given, the currentShader is used.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1967)
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

setMatrix3fv(name, transpose, matrix [, shader])

Sets a matrix 3fv uniform value based on the given name on the currently set shader.

The current shader is bound, before the uniform is set, making it active within the WebGLRenderer. This means you can safely call this method from a location such as a Scene create or update method. However, when working within a Shader file directly, use the WebGLShader method equivalent instead, to avoid the program being set.

Parameters:
Name Type Argument Description
name string

The name of the uniform to set.

transpose boolean

Whether to transpose the matrix. Should be false.

matrix Float32Array

The new values for the mat3 uniform.

shader Phaser.Renderer.WebGL.WebGLShader <optional>

The shader to set the value on. If not given, the currentShader is used.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1995)
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

setMatrix4fv(name, transpose, matrix [, shader])

Sets a matrix 4fv uniform value based on the given name on the currently set shader.

The current shader is bound, before the uniform is set, making it active within the WebGLRenderer. This means you can safely call this method from a location such as a Scene create or update method. However, when working within a Shader file directly, use the WebGLShader method equivalent instead, to avoid the program being set.

Parameters:
Name Type Argument Description
name string

The name of the uniform to set.

transpose boolean

Should the matrix be transpose

matrix Float32Array

Matrix data

shader Phaser.Renderer.WebGL.WebGLShader <optional>

The shader to set the value on. If not given, the currentShader is used.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 2023)
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

setProjectionMatrix(width, height)

Adjusts this pipelines ortho Projection Matrix to use the given dimensions and resets the uProjectionMatrix uniform on all bound shaders.

This method is called automatically by the renderer during its resize handler.

Parameters:
Name Type Description
width number

The new width of this WebGL Pipeline.

height number

The new height of this WebGL Pipeline.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 741)
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

setShader(shader [, setAttributes])

Sets the currently active shader within this pipeline.

Parameters:
Name Type Argument Default Description
shader Phaser.Renderer.WebGL.WebGLShader

The shader to set as being current.

setAttributes boolean <optional>
false

Should the vertex attribute pointers be set?

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 521)
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

setShadersFromConfig(config)

Destroys all shaders currently set in the WebGLPipeline.shaders array and then parses the given config object, extracting the shaders from it, creating WebGLShader instances and finally setting them into the shaders array of this pipeline.

This is a destructive process. Be very careful when you call it, should you need to.

Parameters:
Name Type Description
config Phaser.Types.Renderer.WebGL.WebGLPipelineConfig

The configuration object for this WebGL Pipeline.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 580)
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

setTexture2D( [texture])

Sets the texture to be bound to the next available texture unit and returns the unit id.

Parameters:
Name Type Argument Description
texture WebGLTexture <optional>

WebGLTexture that will be assigned to the current batch. If not given uses whiteTexture.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1443)
Returns:

The assigned texture unit.

Type
number

setTime(name)

Sets the current duration into a 1f uniform value based on the given name.

This can be used for mapping time uniform values, such as iTime.

Parameters:
Name Type Description
name string

The name of the uniform to set.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 1504)
Returns:

This WebGLPipeline instance.

Type
Phaser.Renderer.WebGL.Pipelines.GraphicsPipeline

setVertexBuffer()

Binds the vertex buffer to be the active ARRAY_BUFFER on the WebGL context.

It first checks to see if it's already set as the active buffer and only binds itself if not.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 876)
Returns:

true if the vertex buffer was bound, or false if it was already bound.

Type
boolean

shouldFlush( [amount])

Check if the current batch of vertices is full.

You can optionally provide an amount parameter. If given, it will check if the batch needs to flush if the amount is added to it. This allows you to test if you should flush before populating the batch.

Parameters:
Name Type Argument Default Description
amount number <optional>
0

Will the batch need to flush if this many vertices are added to it?

Since: 3.0.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 680)
Returns:

true if the current batch should be flushed, otherwise false.

Type
boolean

shutdown()

Removes all listeners.

Since: 3.0.0
Inherited From:
Source: src/events/EventEmitter.js (Line 31)

unbind()

This method is called every time the Pipeline Manager deactivates this pipeline, swapping from it to another one. This happens after a call to flush and before the new pipeline is bound.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 970)

updateProjectionMatrix()

Adjusts this pipelines ortho Projection Matrix to match that of the global WebGL Renderer Projection Matrix.

This method is called automatically by the Pipeline Manager when this pipeline is set.

Since: 3.50.0
Inherited From:
Source: src/renderer/webgl/WebGLPipeline.js (Line 789)