Skip to main content
Version: Phaser v4.0.0

ShaderQuad

A RenderNode that renders a single quad using a custom GLSL shader program. It is used by the Shader Game Object to execute user-defined vertex and fragment shaders against a four-vertex quad that matches the game object's dimensions. The quad is transformed through the scene camera and supports optional rendering directly to a texture via renderToTexture. Shader uniforms, texture samplers, and shader addition variants are all managed through this node, making it the primary entry point for custom WebGL shader effects in Phaser.

Constructor

new ShaderQuad(manager, config)

Parameters

nametypeoptionaldescription
managerPhaser.Renderer.WebGL.RenderNodes.RenderNodeManagerNoThe manager that owns this RenderNode.
configPhaser.Types.GameObjects.Shader.ShaderQuadConfigNoThe configuration object for this RenderNode.

Scope: static

Extends

Phaser.Renderer.WebGL.RenderNodes.RenderNode

Source: src/renderer/webgl/renderNodes/ShaderQuad.js#L15
Since: 4.0.0

Inherited Members

From Phaser.Renderer.WebGL.RenderNodes.RenderNode:


Public Members

_texturerProxy

_texturerProxy: object

Description:

An object which acts as a proxy for textures in the transformer.

Source: src/renderer/webgl/renderNodes/ShaderQuad.js#L130
Since: 4.0.0


indexBuffer

indexBuffer: Phaser.Renderer.WebGL.Wrappers.WebGLBufferWrapper

Description:

The index buffer defining vertex order.

Source: src/renderer/webgl/renderNodes/ShaderQuad.js#L59
Since: 4.0.0


programManager

programManager: Phaser.Renderer.WebGL.ProgramManager

Description:

The program manager used to create and manage shader programs. This contains shader variants.

Source: src/renderer/webgl/renderNodes/ShaderQuad.js#L84
Since: 4.0.0


renderer

renderer: Phaser.Renderer.WebGL.WebGLRenderer

Description:

The WebGLRenderer in use.

Source: src/renderer/webgl/renderNodes/ShaderQuad.js#L43
Since: 4.0.0


setUniform

setUniform: function

Description:

A bound convenience function that queues a uniform value to be applied to the current shader program. Delegates to the ProgramManager's setUniform method.

Source: src/renderer/webgl/renderNodes/ShaderQuad.js#L110
Since: 4.0.0


transformerNode

transformerNode: Phaser.Renderer.WebGL.RenderNodes.TransformerImage

Description:

The transformer node used to transform the quad for rendering.

Source: src/renderer/webgl/renderNodes/ShaderQuad.js#L121
Since: 4.0.0


vertexBufferLayout

vertexBufferLayout: Phaser.Renderer.WebGL.Wrappers.WebGLVertexBufferLayoutWrapper

Description:

The vertex buffer layout for this RenderNode.

This consists of 4 vertices, 0-3, forming the corners of a quad instance.

Source: src/renderer/webgl/renderNodes/ShaderQuad.js#L68
Since: 4.0.0


Inherited Methods

From Phaser.Renderer.WebGL.RenderNodes.RenderNode:


Public Methods

run

<instance> run(drawingContext, gameObject, parentMatrix)

Description:

Renders a quad using the shader program. Transforms the quad vertices based on the game object properties, populates the vertex buffer, sets up uniforms and textures, and issues a draw call.

Parameters:

nametypeoptionaldescription
drawingContextPhaser.Renderer.WebGL.DrawingContextNoThe current drawing context.
gameObjectPhaser.GameObjects.ShaderNoThe Shader game object being rendered.
parentMatrixPhaser.GameObjects.Components.TransformMatrixNoThe parent transform matrix.

Overrides: Phaser.Renderer.WebGL.RenderNodes.RenderNode#run

Source: src/renderer/webgl/renderNodes/ShaderQuad.js#L222
Since: 4.0.0


setupTextures

<instance> setupTextures(gameObject)

Description:

Extracts the WebGL textures from the game object's texture list and returns them as an array for use during rendering.

Parameters:

nametypeoptionaldescription
gameObjectPhaser.GameObjects.ShaderNoThe Shader game object to extract textures from.

Returns: Array.<Phaser.Renderer.WebGL.Wrappers.WebGLTextureWrapper> - An array of WebGL textures.

Source: src/renderer/webgl/renderNodes/ShaderQuad.js#L348
Since: 4.0.0


updateShaderConfig

<instance> updateShaderConfig(drawingContext, gameObject, renderNode)

Description:

Updates the shader configuration for the current render pass. This is called before the shader is rendered. This method is a hook for custom shader configurations. You should override it if you need to adjust shader additions after initialization.

Parameters:

nametypeoptionaldescription
drawingContextPhaser.Renderer.WebGL.DrawingContextNoThe current drawing context.
gameObjectPhaser.GameObjects.GameObjectNoThe GameObject being rendered.
renderNodePhaser.Renderer.WebGL.RenderNodes.ShaderQuadNoThe RenderNode being rendered.

Source: src/renderer/webgl/renderNodes/ShaderQuad.js#L372
Since: 4.0.0