new PostFXPipeline(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/PostFXPipeline.js (Line 14)
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)
-
colorMatrix :Phaser.Display.ColorMatrix
-
A Color Matrix instance belonging to this pipeline.
Used during calls to the
drawFrame
method.Type:
- Since: 3.50.0
- Source: src/renderer/webgl/pipelines/PostFXPipeline.js (Line 141)
-
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)
-
fullFrame1 :Phaser.Renderer.WebGL.RenderTarget
-
A reference to the Full Frame 1 Render Target that belongs to the Utility Pipeline. This property is set during the
boot
method.This Render Target is the full size of the renderer.
You can use this directly in Post FX Pipelines for multi-target effects. However, be aware that these targets are shared between all post fx pipelines.
Type:
- Since: 3.50.0
- Default Value:
-
- null
- Source: src/renderer/webgl/pipelines/PostFXPipeline.js (Line 152)
-
fullFrame2 :Phaser.Renderer.WebGL.RenderTarget
-
A reference to the Full Frame 2 Render Target that belongs to the Utility Pipeline. This property is set during the
boot
method.This Render Target is the full size of the renderer.
You can use this directly in Post FX Pipelines for multi-target effects. However, be aware that these targets are shared between all post fx pipelines.
Type:
- Since: 3.50.0
- Default Value:
-
- null
- Source: src/renderer/webgl/pipelines/PostFXPipeline.js (Line 168)
-
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)
-
gameObject :Phaser.GameObjects.GameObject
-
If this post-pipeline belongs to a Game Object or Camera, this contains a reference to it.
Type:
- Since: 3.50.0
- Source: src/renderer/webgl/pipelines/PostFXPipeline.js (Line 132)
-
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)
-
halfFrame1 :Phaser.Renderer.WebGL.RenderTarget
-
A reference to the Half Frame 1 Render Target that belongs to the Utility Pipeline. This property is set during the
boot
method.This Render Target is half the size of the renderer.
You can use this directly in Post FX Pipelines for multi-target effects. However, be aware that these targets are shared between all post fx pipelines.
Type:
- Since: 3.50.0
- Default Value:
-
- null
- Source: src/renderer/webgl/pipelines/PostFXPipeline.js (Line 184)
-
halfFrame2 :Phaser.Renderer.WebGL.RenderTarget
-
A reference to the Half Frame 2 Render Target that belongs to the Utility Pipeline. This property is set during the
boot
method.This Render Target is half the size of the renderer.
You can use this directly in Post FX Pipelines for multi-target effects. However, be aware that these targets are shared between all post fx pipelines.
Type:
- Since: 3.50.0
- Default Value:
-
- null
- Source: src/renderer/webgl/pipelines/PostFXPipeline.js (Line 200)
-
<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. Ifvertices
are set in the config, aSTATIC_DRAW
buffer is created. If not, aDYNAMIC_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
, wherebatchSize
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 sizevertexCapacity * 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
. -
batchQuad(gameObject, x0, y0, x1, y1, x2, y2, x3, y3, u0, v0, u1, v1, tintTL, tintTR, tintBL, tintBR, tintEffect [, texture] [, unit])
-
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 Argument Default Description gameObject
Phaser.GameObjects.GameObject | null The Game Object, if any, drawing this quad.
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.
u0
number UV u0 value.
v0
number UV v0 value.
u1
number UV u1 value.
v1
number UV v1 value.
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.
tintEffect
number | boolean The tint effect for the shader to use.
texture
WebGLTexture <optional>
WebGLTexture that will be assigned to the current batch if a flush occurs.
unit
number <optional>
0 Texture unit to which the texture needs to be bound.
- Since: 3.50.0
- Inherited From:
- Source: src/renderer/webgl/WebGLPipeline.js (Line 1261)
Returns:
true
if this method caused the batch to flush, otherwisefalse
.- Type
- boolean
-
batchTri(gameObject, x1, y1, x2, y2, x3, y3, u0, v0, u1, v1, tintTL, tintTR, tintBL, tintEffect [, texture] [, unit])
-
Adds the vertices data into the batch and flushes if full.
Assumes 3 vertices in the following arrangement:
0 |\ | \ | \ | \ | \ 1-----2
Parameters:
Name Type Argument Default Description gameObject
Phaser.GameObjects.GameObject | null The Game Object, if any, drawing this quad.
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.
u0
number UV u0 value.
v0
number UV v0 value.
u1
number UV u1 value.
v1
number UV v1 value.
tintTL
number The top-left tint color value.
tintTR
number The top-right tint color value.
tintBL
number The bottom-left tint color value.
tintEffect
number | boolean The tint effect for the shader to use.
texture
WebGLTexture <optional>
WebGLTexture that will be assigned to the current batch if a flush occurs.
unit
number <optional>
0 Texture unit to which the texture needs to be bound.
- Since: 3.50.0
- Inherited From:
- Source: src/renderer/webgl/WebGLPipeline.js (Line 1331)
Returns:
true
if this method caused the batch to flush, otherwisefalse
.- Type
- boolean
-
batchVert(x, y, u, v, unit, tintEffect, tint)
-
Adds a single vertex to the current vertex buffer and increments the
vertexCount
property by 1.This method is called directly by
batchTri
andbatchQuad
.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.
u
number UV u value.
v
number UV v value.
unit
number Texture unit to which the texture needs to be bound.
tintEffect
number | boolean The tint effect for the shader to use.
tint
number The tint color value.
- Since: 3.50.0
- Inherited From:
- Source: src/renderer/webgl/WebGLPipeline.js (Line 1223)
-
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.
-
bindAndDraw(source [, target] [, clear] [, clearAlpha] [, currentShader])
-
Binds this pipeline and draws the
source
Render Target to thetarget
Render Target.If no
target
is specified, it will pop the framebuffer from the Renderers FBO stack and use that instead, which should be done when you need to draw the final results of this pipeline to the game canvas.You can optionally set the shader to be used for the draw here, if this is a multi-shader pipeline. By default
currentShader
will be used. If you need to set a shader but not a target, just passnull
as thetarget
parameter.Parameters:
Name Type Argument Default Description source
Phaser.Renderer.WebGL.RenderTarget The Render Target to draw from.
target
Phaser.Renderer.WebGL.RenderTarget <optional>
The Render Target to draw to. If not set, it will pop the fbo from the stack.
clear
boolean <optional>
true Clear the target before copying? Only used if
target
parameter is set.clearAlpha
boolean <optional>
true Clear the alpha channel when running
gl.clear
on the target?currentShader
Phaser.Renderer.WebGL.WebGLShader <optional>
The shader to use during the draw.
- Since: 3.50.0
- Source: src/renderer/webgl/pipelines/PostFXPipeline.js (Line 407)
-
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.
-
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.
-
blendFrames(source1, source2 [, target] [, strength] [, clearAlpha])
-
Draws the
source1
andsource2
Render Targets to thetarget
Render Target using a linear blend effect, which is controlled by thestrength
parameter.Parameters:
Name Type Argument Default Description source1
Phaser.Renderer.WebGL.RenderTarget The first source Render Target.
source2
Phaser.Renderer.WebGL.RenderTarget The second source Render Target.
target
Phaser.Renderer.WebGL.RenderTarget <optional>
The target Render Target.
strength
number <optional>
1 The strength of the blend.
clearAlpha
boolean <optional>
true Clear the alpha channel when running
gl.clear
on the target?- Since: 3.50.0
- Source: src/renderer/webgl/pipelines/PostFXPipeline.js (Line 307)
-
blendFramesAdditive(source1, source2 [, target] [, strength] [, clearAlpha])
-
Draws the
source1
andsource2
Render Targets to thetarget
Render Target using an additive blend effect, which is controlled by thestrength
parameter.Parameters:
Name Type Argument Default Description source1
Phaser.Renderer.WebGL.RenderTarget The first source Render Target.
source2
Phaser.Renderer.WebGL.RenderTarget The second source Render Target.
target
Phaser.Renderer.WebGL.RenderTarget <optional>
The target Render Target.
strength
number <optional>
1 The strength of the blend.
clearAlpha
boolean <optional>
true Clear the alpha channel when running
gl.clear
on the target?- Since: 3.50.0
- Source: src/renderer/webgl/pipelines/PostFXPipeline.js (Line 325)
-
blitFrame(source, target [, brightness] [, clear] [, clearAlpha] [, eraseMode])
-
Copy the
source
Render Target to thetarget
Render Target.The difference with this copy is that no resizing takes place. If the
source
Render Target is larger than thetarget
then only a portion the same size as thetarget
dimensions is copied across.You can optionally set the brightness factor of the copy.
Parameters:
Name Type Argument Default Description source
Phaser.Renderer.WebGL.RenderTarget The source Render Target.
target
Phaser.Renderer.WebGL.RenderTarget The target Render Target.
brightness
number <optional>
1 The brightness value applied to the frame copy.
clear
boolean <optional>
true Clear the target before copying?
clearAlpha
boolean <optional>
true Clear the alpha channel when running
gl.clear
on the target?eraseMode
boolean <optional>
false Erase source from target using ERASE Blend Mode?
- Since: 3.50.0
- Source: src/renderer/webgl/pipelines/PostFXPipeline.js (Line 357)
-
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:
-
clearFrame(target [, clearAlpha])
-
Clears the given Render Target.
Parameters:
Name Type Argument Default Description target
Phaser.Renderer.WebGL.RenderTarget The Render Target to clear.
clearAlpha
boolean <optional>
true Clear the alpha channel when running
gl.clear
on the target?- Since: 3.50.0
- Source: src/renderer/webgl/pipelines/PostFXPipeline.js (Line 343)
-
copyFrame(source [, target] [, brightness] [, clear] [, clearAlpha])
-
Copy the
source
Render Target to thetarget
Render Target.You can optionally set the brightness factor of the copy.
The difference between this method and
drawFrame
is that this method uses a faster copy shader, where only the brightness can be modified. If you need color level manipulation, seedrawFrame
instead.Parameters:
Name Type Argument Default Description source
Phaser.Renderer.WebGL.RenderTarget The source Render Target.
target
Phaser.Renderer.WebGL.RenderTarget <optional>
The target Render Target.
brightness
number <optional>
1 The brightness value applied to the frame copy.
clear
boolean <optional>
true Clear the target before copying?
clearAlpha
boolean <optional>
true Clear the alpha channel when running
gl.clear
on the target?- Since: 3.50.0
- Source: src/renderer/webgl/pipelines/PostFXPipeline.js (Line 243)
-
copyFrameRect(source, target, x, y, width, height [, clear] [, clearAlpha])
-
Binds the
source
Render Target and then copies a section of it to thetarget
Render Target.This method is extremely fast because it uses
gl.copyTexSubImage2D
and doesn't require the use of any shaders. Remember the coordinates are given in standard WebGL format, where x and y specify the lower-left corner of the section, not the top-left. Also, the copy entirely replaces the contents of the target texture, no 'merging' or 'blending' takes place.Parameters:
Name Type Argument Default Description source
Phaser.Renderer.WebGL.RenderTarget The source Render Target.
target
Phaser.Renderer.WebGL.RenderTarget The target Render Target.
x
number The x coordinate of the lower left corner where to start copying.
y
number The y coordinate of the lower left corner where to start copying.
width
number The width of the texture.
height
number The height of the texture.
clear
boolean <optional>
true Clear the target before copying?
clearAlpha
boolean <optional>
true Clear the alpha channel when running
gl.clear
on the target?- Since: 3.50.0
- Source: src/renderer/webgl/pipelines/PostFXPipeline.js (Line 381)
-
copyToGame(source)
-
Pops the framebuffer from the renderers FBO stack and sets that as the active target, then draws the
source
Render Target to it. It then resets the renderer textures.This should be done when you need to draw the final results of a pipeline to the game canvas, or the next framebuffer in line on the FBO stack. You should only call this once in the
onDraw
handler and it should be the final thing called. Be careful not to call this if you need to actually use the pipeline shader, instead of the copy shader. In those cases, use thebindAndDraw
method.Parameters:
Name Type Description source
Phaser.Renderer.WebGL.RenderTarget The Render Target to draw from.
- Since: 3.50.0
- Source: src/renderer/webgl/pipelines/PostFXPipeline.js (Line 266)
-
destroy()
-
Destroys all shader instances, removes all object references and nulls all external references.
- Since: 3.0.0
- Inherited From:
- Source: src/renderer/webgl/WebGLPipeline.js (Line 2051)
Fires:
Returns:
This WebGLPipeline instance.
-
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)
-
drawFrame(source [, target] [, clearAlpha])
-
Copy the
source
Render Target to thetarget
Render Target, using the given Color Matrix.The difference between this method and
copyFrame
is that this method uses a color matrix shader, where you have full control over the luminance values used during the copy. If you don't need this, you can use the fastercopyFrame
method instead.Parameters:
Name Type Argument Default Description source
Phaser.Renderer.WebGL.RenderTarget The source Render Target.
target
Phaser.Renderer.WebGL.RenderTarget <optional>
The target Render Target.
clearAlpha
boolean <optional>
true Clear the alpha channel when running
gl.clear
on the target?- Since: 3.50.0
- Source: src/renderer/webgl/pipelines/PostFXPipeline.js (Line 286)
-
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, elsefalse
.- 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:
- Phaser.Renderer.WebGL.Pipelines.Events#event:BEFORE_FLUSH
- Phaser.Renderer.WebGL.Pipelines.Events#event:AFTER_FLUSH
Returns:
This WebGLPipeline instance.
-
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.
-
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
. -
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
. -
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
orbatchTri
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
orbatchTri
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
andgl.drawArrays
calls are made, so you can perform any final pre-render modifications. To apply changes post-render, seeonAfterFlush
.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
. -
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 theonPostBatch
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.
-
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 theonPreBatch
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.
-
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.
-
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
. -
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
. -
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.
-
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
orupdate
method. However, when working within a Shader file directly, use theWebGLShader
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.
-
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
orupdate
method. However, when working within a Shader file directly, use theWebGLShader
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.
-
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
orupdate
method. However, when working within a Shader file directly, use theWebGLShader
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.
-
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
orupdate
method. However, when working within a Shader file directly, use theWebGLShader
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.
-
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
orupdate
method. However, when working within a Shader file directly, use theWebGLShader
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.
-
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
orupdate
method. However, when working within a Shader file directly, use theWebGLShader
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.
-
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
orupdate
method. However, when working within a Shader file directly, use theWebGLShader
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.
-
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
orupdate
method. However, when working within a Shader file directly, use theWebGLShader
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.
-
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
orupdate
method. However, when working within a Shader file directly, use theWebGLShader
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.
-
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
orupdate
method. However, when working within a Shader file directly, use theWebGLShader
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.
-
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
orupdate
method. However, when working within a Shader file directly, use theWebGLShader
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.
-
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
orupdate
method. However, when working within a Shader file directly, use theWebGLShader
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.
-
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
orupdate
method. However, when working within a Shader file directly, use theWebGLShader
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.
-
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
orupdate
method. However, when working within a Shader file directly, use theWebGLShader
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.
-
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
orupdate
method. However, when working within a Shader file directly, use theWebGLShader
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.
-
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
orupdate
method. However, when working within a Shader file directly, use theWebGLShader
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.
-
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
orupdate
method. However, when working within a Shader file directly, use theWebGLShader
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.
-
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
orupdate
method. However, when working within a Shader file directly, use theWebGLShader
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.
-
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
orupdate
method. However, when working within a Shader file directly, use theWebGLShader
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.
-
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.
-
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.
-
setShadersFromConfig(config)
-
Destroys all shaders currently set in the
WebGLPipeline.shaders
array and then parses the givenconfig
object, extracting the shaders from it, creatingWebGLShader
instances and finally setting them into theshaders
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.
-
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.
-
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, orfalse
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 theamount
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, otherwisefalse
.- 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)