Skip to main content
Version: Phaser v4.0.0

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

nametypeoptionaldescription
managerPhaser.Renderer.WebGL.RenderNodes.RenderNodeManagerNoThe manager that owns this RenderNode.
configPhaser.Types.Renderer.WebGL.RenderNodes.BatchHandlerConfigYesThe configuration object for this handler.

Scope: static

Extends

Phaser.Renderer.WebGL.RenderNodes.RenderNode

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:

nametypeoptionaldescription
configobjectNoThe 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:

nametypeoptionaldescription
drawingContextPhaser.Renderer.WebGL.DrawingContextNoThe current drawing context.
tilemapLayerPhaser.Tilemaps.TilemapGPULayerNoThe TilemapGPULayer being rendered.
parentMatrixPhaser.GameObjects.Components.TransformMatrixYesThe 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:

nametypeoptionaldescription
drawingContextPhaser.Renderer.WebGL.DrawingContextNoThe current drawing context.
tilemapLayerPhaser.Tilemaps.TilemapGPULayerNoThe 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:

nametypeoptionaldescription
gameObjectPhaser.Tilemaps.TilemapGPULayerNoThe TilemapGPULayer being rendered.

Source: src/renderer/webgl/renderNodes/submitter/SubmitterTilemapGPULayer.js#L349
Since: 4.0.0