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