Skip to main content
Version: Phaser v4.0.0

Phaser.Renderer.WebGL.ShaderAdditionMakers

Scope: static

Source: src/renderer/webgl/shaders/additionMakers/index.js#L7

Static functions

MakeAnimLength

<static> MakeAnimLength(maxAnims, [disable])

Description:

Returns a ShaderAdditionConfig for defining the maximum number of animation frames. This is used by TilemapGPULayer.

Parameters:

nametypeoptionaldefaultdescription
maxAnimsnumberNoThe maximum number of animation frames to support. This value is injected into the shader as the MAX_ANIM_FRAMES preprocessor constant.
disablebooleanYesfalseWhether to disable the shader addition on creation.

Returns: Phaser.Types.Renderer.WebGL.ShaderAdditionConfig - The shader addition configuration.

Source: src/renderer/webgl/shaders/additionMakers/MakeAnimLength.js#L7
Since: 4.0.0


MakeApplyLighting

<static> MakeApplyLighting([disable])

Description:

Creates and returns a ShaderAdditionConfig that injects normal-map lighting into a WebGL shader pipeline. When added to a renderer, it includes the ApplyLighting GLSL header in the fragment shader and runs applyLighting(fragColor, normal) during the fragment process stage, blending the lighting result into the output color.

The normal variable must be available in the fragment shader.

Parameters:

nametypeoptionaldefaultdescription
disablebooleanYesfalseWhether to disable the shader addition on creation.

Returns: Phaser.Types.Renderer.WebGL.ShaderAdditionConfig - The shader addition configuration.

Source: src/renderer/webgl/shaders/additionMakers/MakeApplyLighting.js#L9
Since: 4.0.0


MakeApplyTint

<static> MakeApplyTint([disable])

Description:

Return a ShaderAdditionConfig for applying a tint to a texture.

Parameters:

nametypeoptionaldefaultdescription
disablebooleanYesfalseWhether to disable the shader addition on creation.

Returns: Phaser.Types.Renderer.WebGL.ShaderAdditionConfig - The shader addition configuration.

Source: src/renderer/webgl/shaders/additionMakers/MakeApplyTint.js#L9
Since: 4.0.0


MakeBoundedSampler

<static> MakeBoundedSampler([disable])

Description:

Return a ShaderAdditionConfig for bounded texture sampling. A bounded sampler will return a transparent pixel if the texture coordinates are outside the texture bounds.

Parameters:

nametypeoptionaldefaultdescription
disablebooleanYesfalseWhether to disable the shader addition on creation.

Returns: Phaser.Types.Renderer.WebGL.ShaderAdditionConfig - The shader addition configuration.

Source: src/renderer/webgl/shaders/additionMakers/MakeBoundedSampler.js#L9
Since: 4.0.0


MakeDefineLights

<static> MakeDefineLights([disable])

Description:

Return a ShaderAdditionConfig for defining the lights and core lighting algorithm in the fragment shader.

Parameters:

nametypeoptionaldefaultdescription
disablebooleanYesfalseWhether to disable the shader addition on creation.

Returns: Phaser.Types.Renderer.WebGL.ShaderAdditionConfig - The shader addition configuration.

Source: src/renderer/webgl/shaders/additionMakers/MakeDefineLights.js#L9
Since: 4.0.0


MakeDefineTexCount

<static> MakeDefineTexCount(maxTextures, [disable])

Description:

Returns a ShaderAdditionConfig for defining the texture count in a multi-texture shader. This is used by other additions to process the correct number of textures.

Parameters:

nametypeoptionaldefaultdescription
maxTexturesnumberNoThe maximum number of textures the shader supports. This value is used to set the TEXTURE_COUNT preprocessor define in the fragment shader.
disablebooleanYesfalseWhether to disable the shader addition on creation.

Returns: Phaser.Types.Renderer.WebGL.ShaderAdditionConfig - The shader addition configuration.

Source: src/renderer/webgl/shaders/additionMakers/MakeDefineTexCount.js#L7
Since: 4.0.0


MakeFlatNormal

<static> MakeFlatNormal([disable])

Description:

Return a ShaderAdditionConfig for defining a flat normal. This is used to light objects without a normal map.

Parameters:

nametypeoptionaldefaultdescription
disablebooleanYesfalseWhether to disable the shader addition on creation.

Returns: Phaser.Types.Renderer.WebGL.ShaderAdditionConfig - The shader addition configuration.

Source: src/renderer/webgl/shaders/additionMakers/MakeFlatNormal.js#L7
Since: 4.0.0


MakeGetNormalFromMap

<static> MakeGetNormalFromMap([disable])

Description:

Return a ShaderAdditionConfig that injects the getNormalFromMap function into the fragment shader header and samples the normal map at the current texture coordinate during fragment processing. The resulting normal vector is used by the lighting pipeline to apply per-pixel lighting to a texture.

Parameters:

nametypeoptionaldefaultdescription
disablebooleanYesfalseWhether to disable the shader addition on creation.

Returns: Phaser.Types.Renderer.WebGL.ShaderAdditionConfig - The shader addition configuration.

Source: src/renderer/webgl/shaders/additionMakers/MakeGetNormalFromMap.js#L9
Since: 4.0.0


MakeGetTexCoordOut

<static> MakeGetTexCoordOut([disable])

Description:

Return a ShaderAdditionConfig for getting the texture coordinates from the vertex shader via the outTexCoord variable.

Parameters:

nametypeoptionaldefaultdescription
disablebooleanYesfalseWhether to disable the shader addition on creation.

Returns: Phaser.Types.Renderer.WebGL.ShaderAdditionConfig - The shader addition configuration.

Source: src/renderer/webgl/shaders/additionMakers/MakeGetTexCoordOut.js#L7
Since: 4.0.0


MakeGetTexRes

<static> MakeGetTexRes([disable])

Description:

Creates and returns a ShaderAdditionConfig that injects a GLSL fragment shader header providing a helper function for looking up a texture's resolution from a uniform array of resolutions, as used in multi-texture rendering where each bound texture may have a different size.

Parameters:

nametypeoptionaldefaultdescription
disablebooleanYesfalseWhether to disable the shader addition on creation.

Returns: Phaser.Types.Renderer.WebGL.ShaderAdditionConfig - The shader addition configuration.

Source: src/renderer/webgl/shaders/additionMakers/MakeGetTexRes.js#L9
Since: 4.0.0


MakeGetTexture

<static> MakeGetTexture([maxTextures], [disable])

Description:

Creates a ShaderAdditionConfig for multi-texture sampling in a WebGL shader. The returned config injects a getTexture GLSL function into the fragment shader header, built as an if...else chain that selects from up to maxTextures texture units based on the texture ID. It also injects a single-line process that samples the current fragment color via that function.

Parameters:

nametypeoptionaldefaultdescription
maxTexturesnumberYes1The number of texture units to support. Determines how many branches are generated in the texture-selection if...else chain.
disablebooleanYesfalseWhether to disable the shader addition on creation.

Returns: Phaser.Types.Renderer.WebGL.ShaderAdditionConfig - The shader addition configuration.

Source: src/renderer/webgl/shaders/additionMakers/MakeGetTexture.js#L9
Since: 4.0.0


MakeOutFrame

<static> MakeOutFrame([disable])

Description:

Returns a ShaderAdditionConfig that declares inFrame as a vertex attribute and passes it to the fragment shader via the outFrame varying.

Parameters:

nametypeoptionaldefaultdescription
disablebooleanYesfalseWhether to disable the shader addition on creation.

Returns: Phaser.Types.Renderer.WebGL.ShaderAdditionConfig - The shader addition configuration.

Source: src/renderer/webgl/shaders/additionMakers/MakeOutFrame.js#L7
Since: 4.0.0


MakeOutInverseRotation

<static> MakeOutInverseRotation([disable])

Description:

Returns a ShaderAdditionConfig for creating an outInverseRotationMatrix varying in the vertex shader. This matrix is used during lighting calculations to correctly transform normal vectors into world space, ensuring that light direction is applied relative to the game object's orientation.

The rotation variable must be available in the vertex renderer.

Parameters:

nametypeoptionaldefaultdescription
disablebooleanYesfalseWhether to disable the shader addition on creation.

Returns: Phaser.Types.Renderer.WebGL.ShaderAdditionConfig - The shader addition configuration.

Source: src/renderer/webgl/shaders/additionMakers/MakeOutInverseRotation.js#L9
Since: 4.0.0


MakeRotationDatum

<static> MakeRotationDatum([disable])

Description:

Creates and returns a ShaderAdditionConfig that reads the rotation value from the inTexDatum vertex attribute and exposes it as a float rotation variable in the vertex shader's processing stage. This addition is tagged for use with lighting shaders, enabling directional and normal-mapped lighting calculations to account for the rotation of the rendered geometry.

Parameters:

nametypeoptionaldefaultdescription
disablebooleanYesfalseWhether to disable the shader addition on creation.

Returns: Phaser.Types.Renderer.WebGL.ShaderAdditionConfig - The shader addition configuration.

Source: src/renderer/webgl/shaders/additionMakers/MakeRotationDatum.js#L7
Since: 4.0.0


MakeSampleNormal

<static> MakeSampleNormal([disable])

Description:

Returns a ShaderAdditionConfig that adds normal map sampling to a TilemapGPULayer shader. The addition samples the normal map texture via uNormSampler, decodes the stored RGB values from the [0, 1] range back into a normalized direction vector in the [-1, 1] range, and exposes the result through a Samples object so that other shader additions (such as lighting calculations) can consume it. The addition is tagged LIGHTING, meaning it will only be active when a lighting pass is in use.

Parameters:

nametypeoptionaldefaultdescription
disablebooleanYesfalseWhether to disable the shader addition on creation.

Source: src/renderer/webgl/shaders/additionMakers/MakeSampleNormal.js#L7
Since: 4.0.0


MakeSmoothPixelArt

<static> MakeSmoothPixelArt([disable])

Description:

Creates and returns a ShaderAdditionConfig that enables smooth pixel art rendering.

When applied to a shader, this addition replaces standard texture coordinate interpolation with a blocky sampling method that preserves crisp pixel edges while applying sub-pixel anti-aliasing at texel boundaries. The result is that pixel art assets scaled up or rendered at non-integer scales retain sharp, clean edges rather than the blurriness introduced by bilinear filtering.

Internally this uses the GL_OES_standard_derivatives WebGL extension to compute per-fragment derivative information, which drives the anti-aliased edge blending via the getBlockyTexCoord GLSL helper.

Parameters:

nametypeoptionaldefaultdescription
disablebooleanYesfalseWhether to disable the shader addition on creation.

Returns: Phaser.Types.Renderer.WebGL.ShaderAdditionConfig - The shader addition configuration.

Source: src/renderer/webgl/shaders/additionMakers/MakeSmoothPixelArt.js#L9
Since: 4.0.0


MakeTexCoordFrameClamp

<static> MakeTexCoordFrameClamp([disable])

Description:

Returns a ShaderAdditionConfig for clamping coordinates inside a frame. This prevents bleeding across the edges of the frame. However, it creates a hard edge at the frame boundary.

Parameters:

nametypeoptionaldefaultdescription
disablebooleanYesfalseWhether to disable the shader addition on creation.

Returns: Phaser.Types.Renderer.WebGL.ShaderAdditionConfig - The shader addition configuration.

Source: src/renderer/webgl/shaders/additionMakers/MakeTexCoordFrameClamp.js#L9
Since: 4.0.0


MakeTexCoordFrameWrap

<static> MakeTexCoordFrameWrap([disable])

Description:

Returns a ShaderAdditionConfig for wrapping coordinates inside a frame. This makes the texture repeat within the bounds of the frame - it's what makes a TileSprite work.

Parameters:

nametypeoptionaldefaultdescription
disablebooleanYesfalseWhether to disable the shader addition on creation.

Returns: Phaser.Types.Renderer.WebGL.ShaderAdditionConfig - The shader addition configuration.

Source: src/renderer/webgl/shaders/additionMakers/MakeTexCoordFrameWrap.js#L7
Since: 4.0.0