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
| name | type | optional | description |
|---|---|---|---|
| manager | Phaser.Renderer.WebGL.RenderNodes.RenderNodeManager | No | The manager that owns this RenderNode. |
| config | Phaser.Types.GameObjects.Shader.ShaderQuadConfig | No | The configuration object for this RenderNode. |
Scope: static
Extends
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:
| name | type | optional | description |
|---|---|---|---|
| drawingContext | Phaser.Renderer.WebGL.DrawingContext | No | The current drawing context. |
| gameObject | Phaser.GameObjects.Shader | No | The Shader game object being rendered. |
| parentMatrix | Phaser.GameObjects.Components.TransformMatrix | No | The 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:
| name | type | optional | description |
|---|---|---|---|
| gameObject | Phaser.GameObjects.Shader | No | The 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:
| name | type | optional | description |
|---|---|---|---|
| drawingContext | Phaser.Renderer.WebGL.DrawingContext | No | The current drawing context. |
| gameObject | Phaser.GameObjects.GameObject | No | The GameObject being rendered. |
| renderNode | Phaser.Renderer.WebGL.RenderNodes.ShaderQuad | No | The RenderNode being rendered. |
Source: src/renderer/webgl/renderNodes/ShaderQuad.js#L372
Since: 4.0.0