SubmitterTilemapGPULayer
The SubmitterTilemapGPULayer RenderNode handles GPU-accelerated rendering of TilemapGPULayer objects in the WebGL renderer.
Unlike batch-based submitters, this is a Stand Alone Render, meaning each layer is drawn in its own draw call. It manages its own shader program via a ProgramManager, which supports several optional shader features including smooth pixel art upscaling, normal-mapped lighting, animated tiles, self-shadowing, and bilinear border filtering. The appropriate shader variant is selected each frame based on the layer's configuration.
Constructor
new SubmitterTilemapGPULayer(manager, [config])
Parameters
| name | type | optional | description |
|---|---|---|---|
| manager | Phaser.Renderer.WebGL.RenderNodes.RenderNodeManager | No | The manager that owns this RenderNode. |
| config | Phaser.Types.Renderer.WebGL.RenderNodes.BatchHandlerConfig | Yes | The configuration object for this handler. |
Scope: static
Extends
Source: src/renderer/webgl/renderNodes/submitter/SubmitterTilemapGPULayer.js#L23
Since: 4.0.0
Inherited Members
From Phaser.Renderer.WebGL.RenderNodes.RenderNode:
Public Members
config
config: object
Description:
The completed configuration object for this RenderNode. This is defined by the default configuration and the user-defined configuration object.
Source: src/renderer/webgl/renderNodes/submitter/SubmitterTilemapGPULayer.js#L56
Since: 4.0.0
defaultConfig
defaultConfig: Phaser.Types.Renderer.WebGL.RenderNodes.BatchHandlerConfig
Description:
Default configuration of this RenderNode.
Source: src/renderer/webgl/renderNodes/submitter/SubmitterTilemapGPULayer.js#L168
Since: 4.0.0
indexBuffer
indexBuffer: Phaser.Renderer.WebGL.Wrappers.WebGLBufferWrapper
Description:
The index buffer defining vertex order.
Source: src/renderer/webgl/renderNodes/submitter/SubmitterTilemapGPULayer.js#L66
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/submitter/SubmitterTilemapGPULayer.js#L91
Since: 4.0.0
vertexBufferLayout
vertexBufferLayout: Phaser.Renderer.WebGL.Wrappers.WebGLVertexBufferLayoutWrapper
Description:
The vertex buffer layout for this RenderNode.
This consists of 4 vertices (indexed 0-3), one per corner of the quad.
Source: src/renderer/webgl/renderNodes/submitter/SubmitterTilemapGPULayer.js#L75
Since: 4.0.0
Inherited Methods
From Phaser.Renderer.WebGL.RenderNodes.RenderNode:
Public Methods
_completeLayout
<instance> _completeLayout(config)
Description:
Fill out the configuration object with default values where needed.
Parameters:
| name | type | optional | description |
|---|---|---|---|
| config | object | No | The configuration object to complete. |
Source: src/renderer/webgl/renderNodes/submitter/SubmitterTilemapGPULayer.js#L206
Since: 4.0.0
run
<instance> run(drawingContext, tilemapLayer, [parentMatrix])
Description:
The main render entry point for a TilemapGPULayer. Transforms the layer quad using the camera view matrix and any parent transform, writes the four corner positions and texture coordinates into the vertex buffer, assembles the texture array (tileset image, layer data, optional animation data, and optional normal map for lighting), selects the correct shader variant via updateRenderOptions, populates all uniforms via setupUniforms, and issues a single draw call for the layer.
Parameters:
| name | type | optional | description |
|---|---|---|---|
| drawingContext | Phaser.Renderer.WebGL.DrawingContext | No | The current drawing context. |
| tilemapLayer | Phaser.Tilemaps.TilemapGPULayer | No | The TilemapGPULayer being rendered. |
| parentMatrix | Phaser.GameObjects.Components.TransformMatrix | Yes | The parent matrix describing the game object's context. |
Overrides: Phaser.Renderer.WebGL.RenderNodes.RenderNode#run
Source: src/renderer/webgl/renderNodes/submitter/SubmitterTilemapGPULayer.js#L445
Since: 4.0.0
setupUniforms
<instance> setupUniforms(drawingContext, tilemapLayer)
Description:
Populates all shader uniforms required to render the given TilemapGPULayer.
This includes the viewport resolution and projection matrix, the tileset image texture, the layer data texture, the animation data texture, tile dimensions (width, height, margin, and spacing), the layer's alpha and elapsed time for animation, and any lighting uniforms when the layer has lighting enabled.
Parameters:
| name | type | optional | description |
|---|---|---|---|
| drawingContext | Phaser.Renderer.WebGL.DrawingContext | No | The current drawing context. |
| tilemapLayer | Phaser.Tilemaps.TilemapGPULayer | No | The TilemapGPULayer being rendered. |
Source: src/renderer/webgl/renderNodes/submitter/SubmitterTilemapGPULayer.js#L254
Since: 4.0.0
updateRenderOptions
<instance> updateRenderOptions(gameObject)
Description:
Evaluates the current state of the TilemapGPULayer and updates the shader program configuration accordingly. This is called before each render and may result in a different shader variant being selected.
Specifically, it configures: the animation length addition (based on the tileset's maximum animation frame count), lighting additions (enabled or disabled based on the layer's lighting setting, with the light count define updated when active), the self-shadow feature flag, the smooth pixel art addition, and the border filter feature flag (based on whether the tileset texture uses linear magnification filtering).
Parameters:
| name | type | optional | description |
|---|---|---|---|
| gameObject | Phaser.Tilemaps.TilemapGPULayer | No | The TilemapGPULayer being rendered. |
Source: src/renderer/webgl/renderNodes/submitter/SubmitterTilemapGPULayer.js#L349
Since: 4.0.0