Skip to main content
Version: Phaser v3.88.2

WebGLPipeline

The WebGLPipeline is a base class used by all of the core Phaser pipelines.

It describes the way elements will be rendered in WebGL. Internally, it handles

compiling the shaders, creating vertex buffers, assigning primitive topology and

binding vertex attributes, all based on the given configuration data.

The pipeline is configured by passing in a WebGLPipelineConfig object. Please

see the documentation for this type to fully understand the configuration options

available to you.

Usually, you would not extend from this class directly, but would instead extend

from one of the core pipelines, such as the Multi Pipeline.

The pipeline flow per render-step is as follows:

  1. onPreRender - called once at the start of the render step

  2. onRender - call for each Scene Camera that needs to render (so can be multiple times per render step)

  3. Internal flow:

3a) bind (only called if a Game Object is using this pipeline and it's not currently active)

3b) onBind (called for every Game Object that uses this pipeline)

3c) flush (can be called by a Game Object, internal method or from outside by changing pipeline)

  1. onPostRender - called once at the end of the render step

Constructor

new WebGLPipeline(config)

Parameters

nametypeoptionaldescription
configPhaser.Types.Renderer.WebGL.WebGLPipelineConfigNoThe configuration object for this WebGL Pipeline.

Scope: static

Extends

Phaser.Events.EventEmitter

Source: src/renderer/webgl/WebGLPipeline.js#L18
Since: 3.0.0

Public Members

active

active: boolean

Description:

Indicates if the current pipeline is active, or not.

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

Source: src/renderer/webgl/WebGLPipeline.js#L234
Since: 3.10.0


activeBuffer

activeBuffer: Phaser.Renderer.WebGL.Wrappers.WebGLBufferWrapper

Description:

The currently active WebGLBuffer.

Source: src/renderer/webgl/WebGLPipeline.js#L187
Since: 3.60.0


activeTextures

activeTextures: Array.<Phaser.Renderer.WebGL.Wrappers.WebGLTextureWrapper>

Description:

The currently active WebGLTextures, used as part of the batch process.

Reset to empty as part of the bind method.

Treat this array as read-only.

Source: src/renderer/webgl/WebGLPipeline.js#L438
Since: 3.60.0


batch

batch: Array.<Phaser.Types.Renderer.WebGL.WebGLPipelineBatchEntry>

Description:

The temporary Pipeline batch. This array contains the batch entries for

the current frame, which is a package of textures and vertex offsets used

for drawing. This package is built dynamically as the frame is built

and cleared during the flush method.

Treat this array and all of its contents as read-only.

Source: src/renderer/webgl/WebGLPipeline.js#L387
Since: 3.60.0


bytes

bytes: Uint8Array

Description:

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

Source: src/renderer/webgl/WebGLPipeline.js#L207
Since: 3.0.0


config

config: Phaser.Types.Renderer.WebGL.WebGLPipelineConfig

Description:

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.

Source: src/renderer/webgl/WebGLPipeline.js#L361
Since: 3.50.0


currentBatch

currentBatch: Phaser.Types.Renderer.WebGL.WebGLPipelineBatchEntry

Description:

The most recently created Pipeline batch entry.

Reset to null as part of the flush method.

Treat this value as read-only.

Source: src/renderer/webgl/WebGLPipeline.js#L401
Since: 3.60.0


currentRenderTarget

currentRenderTarget: Phaser.Renderer.WebGL.RenderTarget

Description:

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

Source: src/renderer/webgl/WebGLPipeline.js#L298
Since: 3.50.0


currentShader

currentShader: Phaser.Renderer.WebGL.WebGLShader

Description:

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.

Source: src/renderer/webgl/WebGLPipeline.js#L322
Since: 3.50.0


currentTexture

currentTexture: Phaser.Renderer.WebGL.Wrappers.WebGLTextureWrapper

Description:

The most recently bound texture, used as part of the batch process.

Reset to null as part of the flush method.

Treat this value as read-only.

Source: src/renderer/webgl/WebGLPipeline.js#L414
Since: 3.60.0


currentUnit

currentUnit: number

Description:

Holds the most recently assigned texture unit.

Treat this value as read-only.

Source: src/renderer/webgl/WebGLPipeline.js#L427
Since: 3.50.0


forceZero

forceZero: boolean

Description:

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

This property should be set when that is the case.

Source: src/renderer/webgl/WebGLPipeline.js#L245
Since: 3.50.0


game

game: Phaser.Game

Description:

The Phaser Game instance to which this pipeline is bound.

Source: src/renderer/webgl/WebGLPipeline.js#L74
Since: 3.0.0


gl

gl: WebGLRenderingContext

Description:

The WebGL context this WebGL Pipeline uses.

Source: src/renderer/webgl/WebGLPipeline.js#L104
Since: 3.0.0


glReset

glReset: boolean

Description:

Has the GL Context been reset to the Phaser defaults since the last time

this pipeline was bound? This is set automatically when the Pipeline Manager

resets itself, usually after handing off to a 3rd party renderer like Spine.

You should treat this property as read-only.

Source: src/renderer/webgl/WebGLPipeline.js#L374
Since: 3.53.0


hasBooted

hasBooted: boolean

Description:

Indicates if this pipeline has booted or not.

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

fully ready.

Source: src/renderer/webgl/WebGLPipeline.js#L256
Since: 3.50.0


height

height: number

Description:

Height of the current viewport.

Source: src/renderer/webgl/WebGLPipeline.js#L131
Since: 3.0.0


isPostFX

isPostFX: boolean

Description:

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

Source: src/renderer/webgl/WebGLPipeline.js#L269
Since: 3.50.0


isPreFX

isPreFX: boolean

Description:

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

Source: src/renderer/webgl/WebGLPipeline.js#L279
Since: 3.60.0


manager

manager: Phaser.Renderer.WebGL.PipelineManager

Description:

A reference to the WebGL Pipeline Manager.

This is initially undefined and only set when this pipeline is added

to the manager.

Source: src/renderer/webgl/WebGLPipeline.js#L92
Since: 3.50.0


name

name: string

Description:

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

Source: src/renderer/webgl/WebGLPipeline.js#L65
Since: 3.0.0


projectionHeight

projectionHeight: number

Description:

The cached height of the Projection matrix.

Source: src/renderer/webgl/WebGLPipeline.js#L352
Since: 3.50.0


projectionMatrix

projectionMatrix: Phaser.Math.Matrix4

Description:

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

Source: src/renderer/webgl/WebGLPipeline.js#L334
Since: 3.50.0


projectionWidth

projectionWidth: number

Description:

The cached width of the Projection matrix.

Source: src/renderer/webgl/WebGLPipeline.js#L343
Since: 3.50.0


renderer

renderer: Phaser.Renderer.WebGL.WebGLRenderer

Description:

The WebGL Renderer instance to which this pipeline is bound.

Source: src/renderer/webgl/WebGLPipeline.js#L83
Since: 3.0.0


renderTargets

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

Description:

An array of RenderTarget instances that belong to this pipeline.

Source: src/renderer/webgl/WebGLPipeline.js#L289
Since: 3.50.0


resizeUniform

resizeUniform: string

Description:

If the WebGL Renderer changes size, this uniform will be set with the new width and height values

as part of the pipeline resize method. Various built-in pipelines, such as the MultiPipeline, set

this property automatically to uResolution.

Source: src/renderer/webgl/WebGLPipeline.js#L451
Since: 3.80.0


shaders

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

Description:

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.

Source: src/renderer/webgl/WebGLPipeline.js#L307
Since: 3.50.0


topology

topology: GLenum

Description:

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

Defaults to GL_TRIANGLES if not otherwise set in the config.

Source: src/renderer/webgl/WebGLPipeline.js#L196
Since: 3.0.0


vertexBuffer

vertexBuffer: Phaser.Renderer.WebGL.Wrappers.WebGLBufferWrapper

Description:

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.

Source: src/renderer/webgl/WebGLPipeline.js#L174
Since: 3.0.0


vertexCapacity

vertexCapacity: number

Description:

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.

Source: src/renderer/webgl/WebGLPipeline.js#L150
Since: 3.0.0


vertexCount

vertexCount: number

Description:

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

Source: src/renderer/webgl/WebGLPipeline.js#L140
Since: 3.0.0


vertexData

vertexData: ArrayBuffer

Description:

Raw byte buffer of vertices.

Either set via the config object vertices property, or generates a new Array Buffer of

size vertexCapacity * vertexSize.

Source: src/renderer/webgl/WebGLPipeline.js#L161
Since: 3.0.0


vertexViewF32

vertexViewF32: Float32Array

Description:

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

Source: src/renderer/webgl/WebGLPipeline.js#L216
Since: 3.0.0


vertexViewU32

vertexViewU32: Uint32Array

Description:

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

Source: src/renderer/webgl/WebGLPipeline.js#L225
Since: 3.0.0


view

view: HTMLCanvasElement

Description:

The canvas which this WebGL Pipeline renders to.

Source: src/renderer/webgl/WebGLPipeline.js#L113
Since: 3.0.0


width

width: number

Description:

Width of the current viewport.

Source: src/renderer/webgl/WebGLPipeline.js#L122
Since: 3.0.0


Inherited Methods

From Phaser.Events.EventEmitter:


Public Methods

addTextureToBatch

<instance> addTextureToBatch(texture)

Description:

Adds the given texture to the current WebGL Pipeline Batch Entry and

increases the batch entry unit and maxUnit values by 1.

Parameters:

nametypeoptionaldescription
texturePhaser.Renderer.WebGL.Wrappers.WebGLTextureWrapperNoThe texture assigned to this batch entry.

Source: src/renderer/webgl/WebGLPipeline.js#L818
Since: 3.60.0


batchQuad

<instance> batchQuad(gameObject, x0, y0, x1, y1, x2, y2, x3, y3, u0, v0, u1, v1, tintTL, tintTR, tintBL, tintBR, tintEffect, [texture], [unit])

Description:

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:

nametypeoptionaldefaultdescription
gameObjectPhaser.GameObjects.GameObject | nullNoThe Game Object, if any, drawing this quad.
x0numberNoThe top-left x position.
y0numberNoThe top-left y position.
x1numberNoThe bottom-left x position.
y1numberNoThe bottom-left y position.
x2numberNoThe bottom-right x position.
y2numberNoThe bottom-right y position.
x3numberNoThe top-right x position.
y3numberNoThe top-right y position.
u0numberNoUV u0 value.
v0numberNoUV v0 value.
u1numberNoUV u1 value.
v1numberNoUV v1 value.
tintTLnumberNoThe top-left tint color value.
tintTRnumberNoThe top-right tint color value.
tintBLnumberNoThe bottom-left tint color value.
tintBRnumberNoThe bottom-right tint color value.
tintEffectnumber | booleanNoThe tint effect for the shader to use.
texturePhaser.Renderer.WebGL.Wrappers.WebGLTextureWrapperYesTexture that will be assigned to the current batch if a flush occurs.
unitnumberYes0Texture unit to which the texture needs to be bound.

Returns: boolean - true if this method caused the batch to flush, otherwise false.

Source: src/renderer/webgl/WebGLPipeline.js#L1704
Since: 3.50.0


batchTri

<instance> batchTri(gameObject, x1, y1, x2, y2, x3, y3, u0, v0, u1, v1, tintTL, tintTR, tintBL, tintEffect, [texture], [unit])

Description:

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

Assumes 3 vertices in the following arrangement:


0

|\

| \

| \

| \

| \

1-----2

Parameters:

nametypeoptionaldefaultdescription
gameObjectPhaser.GameObjects.GameObject | nullNoThe Game Object, if any, drawing this quad.
x1numberNoThe bottom-left x position.
y1numberNoThe bottom-left y position.
x2numberNoThe bottom-right x position.
y2numberNoThe bottom-right y position.
x3numberNoThe top-right x position.
y3numberNoThe top-right y position.
u0numberNoUV u0 value.
v0numberNoUV v0 value.
u1numberNoUV u1 value.
v1numberNoUV v1 value.
tintTLnumberNoThe top-left tint color value.
tintTRnumberNoThe top-right tint color value.
tintBLnumberNoThe bottom-left tint color value.
tintEffectnumber | booleanNoThe tint effect for the shader to use.
texturePhaser.Renderer.WebGL.Wrappers.WebGLTextureWrapperYesTexture that will be assigned to the current batch if a flush occurs.
unitnumberYes0Texture unit to which the texture needs to be bound.

Returns: boolean - true if this method caused the batch to flush, otherwise false.

Source: src/renderer/webgl/WebGLPipeline.js#L1827
Since: 3.50.0


batchVert

<instance> batchVert(x, y, u, v, unit, tintEffect, tint)

Description:

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:

nametypeoptionaldescription
xnumberNoThe vertex x position.
ynumberNoThe vertex y position.
unumberNoUV u value.
vnumberNoUV v value.
unitnumberNoTexture unit to which the texture needs to be bound.
tintEffectnumber | booleanNoThe tint effect for the shader to use.
tintnumberNoThe tint color value.

Source: src/renderer/webgl/WebGLPipeline.js#L1664
Since: 3.50.0


bind

<instance> bind([currentShader])

Description:

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:

nametypeoptionaldescription
currentShaderPhaser.Renderer.WebGL.WebGLShaderYesThe shader to set as being current.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Fires: Phaser.Renderer.WebGL.Pipelines.Events#event:BIND

Source: src/renderer/webgl/WebGLPipeline.js#L1120
Since: 3.0.0


bindRenderTarget

<instance> bindRenderTarget([target], [unit])

Description:

Activates the given Render Target texture and binds it to the

requested WebGL texture slot.

Parameters:

nametypeoptionaldefaultdescription
targetPhaser.Renderer.WebGL.RenderTargetYesThe Render Target to activate and bind.
unitnumberYes0The WebGL texture ID to activate. Defaults to gl.TEXTURE0.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGL Pipeline instance.

Source: src/renderer/webgl/WebGLPipeline.js#L2013
Since: 3.50.0


bindTexture

<instance> bindTexture([target], [unit])

Description:

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

Parameters:

nametypeoptionaldefaultdescription
targetPhaser.Renderer.WebGL.Wrappers.WebGLTextureWrapperYesTexture to activate and bind.
unitnumberYes0The WebGL texture ID to activate. Defaults to gl.TEXTURE0.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGL Pipeline instance.

Source: src/renderer/webgl/WebGLPipeline.js#L1989
Since: 3.50.0


boot

<instance> boot()

Description:

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.

Fires: Phaser.Renderer.WebGL.Pipelines.Events#event:BOOT

Source: src/renderer/webgl/WebGLPipeline.js#L463
Since: 3.11.0


createBatch

<instance> createBatch(texture)

Description:

Creates a new WebGL Pipeline Batch Entry, sets the texture unit as zero

and pushes the entry into the batch.

Parameters:

nametypeoptionaldescription
texturePhaser.Renderer.WebGL.Wrappers.WebGLTextureWrapperNoThe texture assigned to this batch entry.

Returns: number - The texture unit that was bound.

Source: src/renderer/webgl/WebGLPipeline.js#L789
Since: 3.60.0


destroy

<instance> destroy()

Description:

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

Overrides: Phaser.Events.EventEmitter#destroy

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Fires: Phaser.Renderer.WebGL.Pipelines.Events#event:DESTROY

Source: src/renderer/webgl/WebGLPipeline.js#L2605
Since: 3.0.0


drawFillRect

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

Description:

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:

nametypeoptionaldefaultdescription
xnumberNoHorizontal top left coordinate of the rectangle.
ynumberNoVertical top left coordinate of the rectangle.
widthnumberNoWidth of the rectangle.
heightnumberNoHeight of the rectangle.
colornumberNoColor of the rectangle to draw.
alphanumberNoAlpha value of the rectangle to draw.
texturePhaser.Renderer.WebGL.Wrappers.WebGLTextureWrapperYestexture that will be assigned to the current batch if a flush occurs.
flipUVbooleanYestrueFlip the vertical UV coordinates of the texture before rendering?

Source: src/renderer/webgl/WebGLPipeline.js#L1921
Since: 3.50.0


flipProjectionMatrix

<instance> flipProjectionMatrix([flipY])

Description:

Adjusts this pipelines ortho Projection Matrix to flip the y

and bottom values. Call with 'false' as the parameter to flip

them back again.

Parameters:

nametypeoptionaldefaultdescription
flipYbooleanYestrueFlip the y and bottom values?

Source: src/renderer/webgl/WebGLPipeline.js#L1059
Since: 3.60.0


flush

<instance> flush([isPostFlush])

Description:

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

Parameters:

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

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Fires: Phaser.Renderer.WebGL.Pipelines.Events#event:BEFORE_FLUSH, Phaser.Renderer.WebGL.Pipelines.Events#event:AFTER_FLUSH

Source: src/renderer/webgl/WebGLPipeline.js#L1370
Since: 3.0.0


getShaderByName

<instance> getShaderByName(name)

Description:

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

Parameters:

nametypeoptionaldescription
namestringNoThe index of the shader to set.

Returns: Phaser.Renderer.WebGL.WebGLShader - The WebGLShader instance, if found.

Source: src/renderer/webgl/WebGLPipeline.js#L662
Since: 3.50.0


onActive

<instance> onActive(currentShader)

Description:

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:

nametypeoptionaldescription
currentShaderPhaser.Renderer.WebGL.WebGLShaderNoThe shader that was set as current.

Source: src/renderer/webgl/WebGLPipeline.js#L1478
Since: 3.50.0


onAfterFlush

<instance> onAfterFlush([isPostFlush])

Description:

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:

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

Source: src/renderer/webgl/WebGLPipeline.js#L1643
Since: 3.50.0


onBatch

<instance> onBatch([gameObject])

Description:

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:

nametypeoptionaldescription
gameObjectPhaser.GameObjects.GameObjectYesThe Game Object that invoked this pipeline, if any.

Source: src/renderer/webgl/WebGLPipeline.js#L1532
Since: 3.50.0


onBeforeFlush

<instance> onBeforeFlush([isPostFlush])

Description:

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:

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

Source: src/renderer/webgl/WebGLPipeline.js#L1626
Since: 3.50.0


onBind

<instance> onBind([gameObject])

Description:

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:

nametypeoptionaldescription
gameObjectPhaser.GameObjects.GameObjectYesThe Game Object that invoked this pipeline, if any.

Source: src/renderer/webgl/WebGLPipeline.js#L1499
Since: 3.50.0


onBoot

<instance> onBoot()

Description:

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.

Source: src/renderer/webgl/WebGLPipeline.js#L599
Since: 3.50.0


onDraw

<instance> onDraw(renderTarget, [swapTarget])

Description:

This method is only used by Sprite FX and 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:

nametypeoptionaldescription
renderTargetPhaser.Renderer.WebGL.RenderTargetNoThe Render Target.
swapTargetPhaser.Renderer.WebGL.RenderTargetYesA Swap Render Target, useful for double-buffer effects. Only set by SpriteFX Pipelines.

Source: src/renderer/webgl/WebGLPipeline.js#L1335
Since: 3.50.0


onPostBatch

<instance> onPostBatch([gameObject])

Description:

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:

nametypeoptionaldescription
gameObjectPhaser.GameObjects.GameObjectYesThe Game Object that invoked this pipeline, if any.

Source: src/renderer/webgl/WebGLPipeline.js#L1567
Since: 3.50.0


onPostRender

<instance> onPostRender()

Description:

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.

Source: src/renderer/webgl/WebGLPipeline.js#L1611
Since: 3.50.0


onPreBatch

<instance> onPreBatch([gameObject])

Description:

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:

nametypeoptionaldescription
gameObjectPhaser.GameObjects.GameObjectYesThe Game Object that invoked this pipeline, if any.

Source: src/renderer/webgl/WebGLPipeline.js#L1553
Since: 3.50.0


onPreRender

<instance> onPreRender()

Description:

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.

Source: src/renderer/webgl/WebGLPipeline.js#L1581
Since: 3.50.0


onRebind

<instance> onRebind()

Description:

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.

Source: src/renderer/webgl/WebGLPipeline.js#L1518
Since: 3.50.0


onRender

<instance> onRender(scene, camera)

Description:

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:

nametypeoptionaldescription
scenePhaser.SceneNoThe Scene being rendered.
cameraPhaser.Cameras.Scene2D.CameraNoThe Scene Camera being rendered with.

Source: src/renderer/webgl/WebGLPipeline.js#L1594
Since: 3.50.0


onResize

<instance> onResize(width, height)

Description:

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:

nametypeoptionaldescription
widthnumberNoThe new width of this WebGL Pipeline.
heightnumberNoThe new height of this WebGL Pipeline.

Source: src/renderer/webgl/WebGLPipeline.js#L611
Since: 3.50.0


postBatch

<instance> postBatch([gameObject])

Description:

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.

It is also called as part of the PipelineManager.postBatch method when processing Post FX Pipelines.

Parameters:

nametypeoptionaldescription
gameObjectPhaser.GameObjects.GameObject | Phaser.Cameras.Scene2D.CameraYesThe Game Object or Camera that invoked this pipeline, if any.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Source: src/renderer/webgl/WebGLPipeline.js#L1309
Since: 3.50.0


preBatch

<instance> preBatch([gameObject])

Description:

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.

It is also called as part of the PipelineManager.preBatch method when processing Post FX Pipelines.

Parameters:

nametypeoptionaldescription
gameObjectPhaser.GameObjects.GameObject | Phaser.Cameras.Scene2D.CameraYesThe Game Object or Camera that invoked this pipeline, if any.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Source: src/renderer/webgl/WebGLPipeline.js#L1282
Since: 3.50.0


pushBatch

<instance> pushBatch(texture)

Description:

Takes the given WebGLTextureWrapper and determines what to do with it.

If there is no current batch (i.e. after a flush) it will create a new

batch from it.

If the texture is already bound, it will return the current texture unit.

If the texture already exists in the current batch, the unit gets reset

to match it.

If the texture cannot be found in the current batch, and it supports

multiple textures, it's added into the batch and the unit indexes are

advanced.

Parameters:

nametypeoptionaldescription
texturePhaser.Renderer.WebGL.Wrappers.WebGLTextureWrapperNoThe texture assigned to this batch entry.

Returns: number - The texture unit that was bound.

Source: src/renderer/webgl/WebGLPipeline.js#L839
Since: 3.60.0


rebind

<instance> rebind([currentShader])

Description:

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

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

Parameters:

nametypeoptionaldescription
currentShaderPhaser.Renderer.WebGL.WebGLShaderYesThe shader to set as being current.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Fires: Phaser.Renderer.WebGL.Pipelines.Events#event:REBIND

Source: src/renderer/webgl/WebGLPipeline.js#L1169
Since: 3.0.0


resize

<instance> resize(width, height)

Description:

Resizes the properties used to describe the viewport.

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

Parameters:

nametypeoptionaldescription
widthnumberNoThe new width of this WebGL Pipeline.
heightnumberNoThe new height of this WebGL Pipeline.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Fires: Phaser.Renderer.WebGL.Pipelines.Events#event:RESIZE

Source: src/renderer/webgl/WebGLPipeline.js#L966
Since: 3.0.0


restoreContext

<instance> restoreContext()

Description:

This method is called if the WebGL context is lost and restored.

It ensures that uniforms are synced back to the GPU

for all shaders in this pipeline.

Source: src/renderer/webgl/WebGLPipeline.js#L1214
Since: 3.80.0


set1f

<instance> set1f(name, x, [shader])

Description:

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:

nametypeoptionaldescription
namestringNoThe name of the uniform to set.
xnumberNoThe new value of the float uniform.
shaderPhaser.Renderer.WebGL.WebGLShaderYesThe shader to set the value on. If not given, the currentShader is used.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Source: src/renderer/webgl/WebGLPipeline.js#L2077
Since: 3.50.0


set1fv

<instance> set1fv(name, arr, [shader])

Description:

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:

nametypeoptionaldescription
namestringNoThe name of the uniform to set.
arrArray.<number> | Float32ArrayNoThe new value to be used for the uniform variable.
shaderPhaser.Renderer.WebGL.WebGLShaderYesThe shader to set the value on. If not given, the currentShader is used.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Source: src/renderer/webgl/WebGLPipeline.js#L2191
Since: 3.50.0


set1i

<instance> set1i(name, x, [shader])

Description:

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:

nametypeoptionaldescription
namestringNoThe name of the uniform to set.
xnumberNoThe new value of the int uniform.
shaderPhaser.Renderer.WebGL.WebGLShaderYesThe shader to set the value on. If not given, the currentShader is used.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Source: src/renderer/webgl/WebGLPipeline.js#L2407
Since: 3.50.0


set1iv

<instance> set1iv(name, arr, [shader])

Description:

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:

nametypeoptionaldescription
namestringNoThe name of the uniform to set.
arrArray.<number> | Float32ArrayNoThe new value to be used for the uniform variable.
shaderPhaser.Renderer.WebGL.WebGLShaderYesThe shader to set the value on. If not given, the currentShader is used.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Source: src/renderer/webgl/WebGLPipeline.js#L2299
Since: 3.50.0


set2f

<instance> set2f(name, x, y, [shader])

Description:

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:

nametypeoptionaldescription
namestringNoThe name of the uniform to set.
xnumberNoThe new X component of the vec2 uniform.
ynumberNoThe new Y component of the vec2 uniform.
shaderPhaser.Renderer.WebGL.WebGLShaderYesThe shader to set the value on. If not given, the currentShader is used.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Source: src/renderer/webgl/WebGLPipeline.js#L2104
Since: 3.50.0


set2fv

<instance> set2fv(name, arr, [shader])

Description:

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:

nametypeoptionaldescription
namestringNoThe name of the uniform to set.
arrArray.<number> | Float32ArrayNoThe new value to be used for the uniform variable.
shaderPhaser.Renderer.WebGL.WebGLShaderYesThe shader to set the value on. If not given, the currentShader is used.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Source: src/renderer/webgl/WebGLPipeline.js#L2218
Since: 3.50.0


set2i

<instance> set2i(name, x, y, [shader])

Description:

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:

nametypeoptionaldescription
namestringNoThe name of the uniform to set.
xnumberNoThe new X component of the ivec2 uniform.
ynumberNoThe new Y component of the ivec2 uniform.
shaderPhaser.Renderer.WebGL.WebGLShaderYesThe shader to set the value on. If not given, the currentShader is used.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Source: src/renderer/webgl/WebGLPipeline.js#L2434
Since: 3.50.0


set2iv

<instance> set2iv(name, arr, [shader])

Description:

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:

nametypeoptionaldescription
namestringNoThe name of the uniform to set.
arrArray.<number> | Float32ArrayNoThe new value to be used for the uniform variable.
shaderPhaser.Renderer.WebGL.WebGLShaderYesThe shader to set the value on. If not given, the currentShader is used.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Source: src/renderer/webgl/WebGLPipeline.js#L2326
Since: 3.50.0


set3f

<instance> set3f(name, x, y, z, [shader])

Description:

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:

nametypeoptionaldescription
namestringNoThe name of the uniform to set.
xnumberNoThe new X component of the vec3 uniform.
ynumberNoThe new Y component of the vec3 uniform.
znumberNoThe new Z component of the vec3 uniform.
shaderPhaser.Renderer.WebGL.WebGLShaderYesThe shader to set the value on. If not given, the currentShader is used.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Source: src/renderer/webgl/WebGLPipeline.js#L2132
Since: 3.50.0


set3fv

<instance> set3fv(name, arr, [shader])

Description:

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:

nametypeoptionaldescription
namestringNoThe name of the uniform to set.
arrArray.<number> | Float32ArrayNoThe new value to be used for the uniform variable.
shaderPhaser.Renderer.WebGL.WebGLShaderYesThe shader to set the value on. If not given, the currentShader is used.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Source: src/renderer/webgl/WebGLPipeline.js#L2245
Since: 3.50.0


set3i

<instance> set3i(name, x, y, z, [shader])

Description:

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:

nametypeoptionaldescription
namestringNoThe name of the uniform to set.
xnumberNoThe new X component of the ivec3 uniform.
ynumberNoThe new Y component of the ivec3 uniform.
znumberNoThe new Z component of the ivec3 uniform.
shaderPhaser.Renderer.WebGL.WebGLShaderYesThe shader to set the value on. If not given, the currentShader is used.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Source: src/renderer/webgl/WebGLPipeline.js#L2462
Since: 3.50.0


set3iv

<instance> set3iv(name, arr, [shader])

Description:

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:

nametypeoptionaldescription
namestringNoThe name of the uniform to set.
arrArray.<number> | Float32ArrayNoThe new value to be used for the uniform variable.
shaderPhaser.Renderer.WebGL.WebGLShaderYesThe shader to set the value on. If not given, the currentShader is used.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Source: src/renderer/webgl/WebGLPipeline.js#L2353
Since: 3.50.0


set4f

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

Description:

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:

nametypeoptionaldescription
namestringNoThe name of the uniform to set.
xnumberNoX component of the uniform
ynumberNoY component of the uniform
znumberNoZ component of the uniform
wnumberNoW component of the uniform
shaderPhaser.Renderer.WebGL.WebGLShaderYesThe shader to set the value on. If not given, the currentShader is used.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Source: src/renderer/webgl/WebGLPipeline.js#L2161
Since: 3.50.0


set4fv

<instance> set4fv(name, arr, [shader])

Description:

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:

nametypeoptionaldescription
namestringNoThe name of the uniform to set.
arrArray.<number> | Float32ArrayNoThe new value to be used for the uniform variable.
shaderPhaser.Renderer.WebGL.WebGLShaderYesThe shader to set the value on. If not given, the currentShader is used.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Source: src/renderer/webgl/WebGLPipeline.js#L2272
Since: 3.50.0


set4i

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

Description:

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:

nametypeoptionaldescription
namestringNoThe name of the uniform to set.
xnumberNoX component of the uniform.
ynumberNoY component of the uniform.
znumberNoZ component of the uniform.
wnumberNoW component of the uniform.
shaderPhaser.Renderer.WebGL.WebGLShaderYesThe shader to set the value on. If not given, the currentShader is used.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Source: src/renderer/webgl/WebGLPipeline.js#L2491
Since: 3.50.0


set4iv

<instance> set4iv(name, arr, [shader])

Description:

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:

nametypeoptionaldescription
namestringNoThe name of the uniform to set.
arrArray.<number> | Float32ArrayNoThe new value to be used for the uniform variable.
shaderPhaser.Renderer.WebGL.WebGLShaderYesThe shader to set the value on. If not given, the currentShader is used.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Source: src/renderer/webgl/WebGLPipeline.js#L2380
Since: 3.50.0


setBoolean

<instance> setBoolean(name, value, [shader])

Description:

Sets a boolean 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:

nametypeoptionaldescription
namestringNoThe name of the uniform to set.
valuebooleanNoThe new value of the boolean uniform.
shaderPhaser.Renderer.WebGL.WebGLShaderYesThe shader to set the value on. If not given, the currentShader is used.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Source: src/renderer/webgl/WebGLPipeline.js#L2050
Since: 3.60.0


setGameObject

<instance> setGameObject(gameObject, [frame])

Description:

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:

nametypeoptionaldescription
gameObjectPhaser.GameObjects.GameObjectNoThe Game Object being rendered or added to the batch.
framePhaser.Textures.FrameYesOptional frame to use. Can override that of the Game Object.

Returns: number - The texture unit the Game Object has been assigned.

Source: src/renderer/webgl/WebGLPipeline.js#L912
Since: 3.50.0


setMatrix2fv

<instance> setMatrix2fv(name, transpose, matrix, [shader])

Description:

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:

nametypeoptionaldescription
namestringNoThe name of the uniform to set.
transposebooleanNoWhether to transpose the matrix. Should be false.
matrixArray.<number> | Float32ArrayNoThe new values for the mat2 uniform.
shaderPhaser.Renderer.WebGL.WebGLShaderYesThe shader to set the value on. If not given, the currentShader is used.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Source: src/renderer/webgl/WebGLPipeline.js#L2521
Since: 3.50.0


setMatrix3fv

<instance> setMatrix3fv(name, transpose, matrix, [shader])

Description:

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:

nametypeoptionaldescription
namestringNoThe name of the uniform to set.
transposebooleanNoWhether to transpose the matrix. Should be false.
matrixFloat32ArrayNoThe new values for the mat3 uniform.
shaderPhaser.Renderer.WebGL.WebGLShaderYesThe shader to set the value on. If not given, the currentShader is used.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Source: src/renderer/webgl/WebGLPipeline.js#L2549
Since: 3.50.0


setMatrix4fv

<instance> setMatrix4fv(name, transpose, matrix, [shader])

Description:

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:

nametypeoptionaldescription
namestringNoThe name of the uniform to set.
transposebooleanNoWhether to transpose the matrix. Should be false.
matrixFloat32ArrayNoThe matrix data. If using a Matrix4 this should be the Matrix4.val property.
shaderPhaser.Renderer.WebGL.WebGLShaderYesThe shader to set the value on. If not given, the currentShader is used.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Source: src/renderer/webgl/WebGLPipeline.js#L2577
Since: 3.50.0


setProjectionMatrix

<instance> setProjectionMatrix(width, height)

Description:

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:

nametypeoptionaldescription
widthnumberNoThe new width of this WebGL Pipeline.
heightnumberNoThe new height of this WebGL Pipeline.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Source: src/renderer/webgl/WebGLPipeline.js#L1011
Since: 3.50.0


setShader

<instance> setShader(shader, [setAttributes], [vertexBuffer])

Description:

Sets the currently active shader within this pipeline.

Parameters:

nametypeoptionaldefaultdescription
shaderPhaser.Renderer.WebGL.WebGLShaderNoThe shader to set as being current.
setAttributesbooleanYesfalseShould the vertex attribute pointers be set?
vertexBufferPhaser.Renderer.WebGL.Wrappers.WebGLBufferWrapperYesThe vertex buffer to be set before the shader is bound. Defaults to the one owned by this pipeline.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Source: src/renderer/webgl/WebGLPipeline.js#L627
Since: 3.50.0


setShadersFromConfig

<instance> setShadersFromConfig(config)

Description:

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:

nametypeoptionaldescription
configPhaser.Types.Renderer.WebGL.WebGLPipelineConfigNoThe configuration object for this WebGL Pipeline.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Source: src/renderer/webgl/WebGLPipeline.js#L685
Since: 3.50.0


setTexture2D

<instance> setTexture2D([texture])

Description:

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

the unit id.

Parameters:

nametypeoptionaldescription
texturePhaser.Renderer.WebGL.Wrappers.WebGLTextureWrapperYesTexture that will be assigned to the current batch. If not given uses whiteTexture.

Returns: number - The assigned texture unit.

Source: src/renderer/webgl/WebGLPipeline.js#L1971
Since: 3.50.0


setTime

<instance> setTime(name, [shader])

Description:

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:

nametypeoptionaldescription
namestringNoThe name of the uniform to set.
shaderPhaser.Renderer.WebGL.WebGLShaderYesThe shader to set the value on. If not given, the currentShader is used.

Returns: Phaser.Renderer.WebGL.WebGLPipeline - This WebGLPipeline instance.

Source: src/renderer/webgl/WebGLPipeline.js#L2030
Since: 3.50.0


setVertexBuffer

<instance> setVertexBuffer([buffer])

Description:

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.

Parameters:

nametypeoptionaldescription
bufferPhaser.Renderer.WebGL.Wrappers.WebGLBufferWrapperYesThe Vertex Buffer to be bound. Defaults to the one owned by this pipeline.

Returns: boolean - true if the vertex buffer was bound, or false if it was already bound.

Source: src/renderer/webgl/WebGLPipeline.js#L1251
Since: 3.50.0


shouldFlush

<instance> shouldFlush([amount])

Description:

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:

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

Returns: boolean - true if the current batch should be flushed, otherwise false.

Source: src/renderer/webgl/WebGLPipeline.js#L931
Since: 3.0.0


unbind

<instance> unbind()

Description:

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.

Source: src/renderer/webgl/WebGLPipeline.js#L1355
Since: 3.50.0


updateProjectionMatrix

<instance> updateProjectionMatrix()

Description:

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.

Source: src/renderer/webgl/WebGLPipeline.js#L1096
Since: 3.50.0


vertexAvailable

<instance> vertexAvailable()

Description:

Returns the number of vertices that can be added to the current batch before

it will trigger a flush to happen.

Returns: number - The number of vertices that can still be added to the current batch before it will flush.

Source: src/renderer/webgl/WebGLPipeline.js#L952
Since: 3.60.0