Skip to main content
Version: Phaser v3.88.2

RenderTarget

A Render Target encapsulates a WebGL framebuffer and the WebGL Texture that displays it.

Instances of this class are typically created by, and belong to WebGL Pipelines, however

other Game Objects and classes can take advantage of Render Targets as well.

Constructor

new RenderTarget(renderer, width, height, [scale], [minFilter], [autoClear], [autoResize], [addDepthBuffer], [forceClamp])

Parameters

nametypeoptionaldefaultdescription
rendererPhaser.Renderer.WebGL.WebGLRendererNoA reference to the WebGLRenderer.
widthnumberNoThe width of this Render Target.
heightnumberNoThe height of this Render Target.
scalenumberYes1A value between 0 and 1. Controls the size of this Render Target in relation to the Renderer.
minFilternumberYes0The minFilter mode of the texture when created. 0 is LINEAR, 1 is NEAREST.
autoClearbooleanYestrueAutomatically clear this framebuffer when bound?
autoResizebooleanYesfalseAutomatically resize this Render Target if the WebGL Renderer resizes?
addDepthBufferbooleanYestrueAdd a DEPTH_STENCIL and attachment to this Render Target?
forceClampbooleanYestrueForce the texture to use the CLAMP_TO_EDGE wrap mode, even if a power of two?

Scope: static

Source: src/renderer/webgl/RenderTarget.js#L10
Since: 3.50.0

Public Members

autoClear

autoClear: boolean

Description:

Controls if this Render Target is automatically cleared (via gl.COLOR_BUFFER_BIT)

during the RenderTarget.bind method.

If you need more control over how, or if, the target is cleared, you can disable

this via the config on creation, or even toggle it directly at runtime.

Source: src/renderer/webgl/RenderTarget.js#L116
Since: 3.50.0


autoResize

autoResize: boolean

Description:

Does this Render Target automatically resize when the WebGL Renderer does?

Modify this property via the setAutoResize method.

Source: src/renderer/webgl/RenderTarget.js#L129
Since: 3.50.0


destroy

destroy

Description:

Removes all external references from this class and deletes the

WebGL framebuffer and texture instances.

Does not remove this Render Target from the parent pipeline.

Source: src/renderer/webgl/RenderTarget.js#L420
Since: 3.50.0


forceClamp

forceClamp: boolean

Description:

Force the WebGL Texture to use the CLAMP_TO_EDGE wrap mode, even if a power of two?

If false it will use gl.REPEAT instead, which may be required for some effects, such

as using this Render Target as a texture for a Shader.

Source: src/renderer/webgl/RenderTarget.js#L151
Since: 3.60.0


framebuffer

framebuffer: Phaser.Renderer.WebGL.Wrappers.WebGLFramebufferWrapper

Description:

The Framebuffer of this Render Target.

This is created in the RenderTarget.resize method.

Source: src/renderer/webgl/RenderTarget.js#L54
Since: 3.50.0


hasDepthBuffer

hasDepthBuffer: boolean

Description:

Does this Render Target have a Depth Buffer?

Source: src/renderer/webgl/RenderTarget.js#L141
Since: 3.60.0


height

height: number

Description:

The height of the texture.

Source: src/renderer/webgl/RenderTarget.js#L86
Since: 3.50.0


minFilter

minFilter: number

Description:

The minFilter mode of the texture. 0 is LINEAR, 1 is NEAREST.

Source: src/renderer/webgl/RenderTarget.js#L107
Since: 3.50.0


renderer

renderer: Phaser.Renderer.WebGL.WebGLRenderer

Description:

A reference to the WebGLRenderer instance.

Source: src/renderer/webgl/RenderTarget.js#L45
Since: 3.50.0


scale

scale: number

Description:

A value between 0 and 1. Controls the size of this Render Target in relation to the Renderer.

A value of 1 matches it. 0.5 makes the Render Target half the size of the renderer, etc.

Source: src/renderer/webgl/RenderTarget.js#L96
Since: 3.50.0


texture

texture: Phaser.Renderer.WebGL.Wrappers.WebGLTextureWrapper

Description:

The WebGLTextureWrapper of this Render Target.

This is created in the RenderTarget.resize method.

Source: src/renderer/webgl/RenderTarget.js#L65
Since: 3.50.0


unbind

unbind

Description:

Unbinds this Render Target and optionally flushes the WebGL Renderer first.

Parameters:

nametypeoptionaldefaultdescription
flushbooleanYesfalseFlush the WebGL Renderer before unbinding?

Returns: Phaser.Renderer.WebGL.Wrappers.WebGLFramebufferWrapper - The Framebuffer that was set, or null if there aren't any more in the stack.

Source: src/renderer/webgl/RenderTarget.js#L396
Since: 3.50.0


width

width: number

Description:

The width of the texture.

Source: src/renderer/webgl/RenderTarget.js#L76
Since: 3.50.0


Public Methods

adjustViewport

<instance> adjustViewport()

Description:

Adjusts the GL viewport to match the width and height of this Render Target.

Also disables SCISSOR_TEST.

Source: src/renderer/webgl/RenderTarget.js#L341
Since: 3.50.0


bind

<instance> bind([adjustViewport], [width], [height])

Description:

Pushes this Render Target as the current frame buffer of the renderer.

If autoClear is set, then clears the texture.

If adjustViewport is true then it will flush the renderer and then adjust the GL viewport.

Parameters:

nametypeoptionaldefaultdescription
adjustViewportbooleanYesfalseAdjust the GL viewport by calling RenderTarget.adjustViewport ?
widthnumberYesOptional new width of this Render Target.
heightnumberYesOptional new height of this Render Target.

Source: src/renderer/webgl/RenderTarget.js#L292
Since: 3.50.0


clear

<instance> clear([x], [y], [width], [height])

Description:

Clears a portion or everything from this Render Target. To clear an area,

specify the x, y, width and height.

Parameters:

nametypeoptionaldefaultdescription
xnumberYes0The left coordinate of the fill rectangle.
ynumberYes0The top coordinate of the fill rectangle.
widthnumberYes"this.width"The width of the fill rectangle.
heightnumberYes"this.height"The height of the fill rectangle.

Source: src/renderer/webgl/RenderTarget.js#L358
Since: 3.50.0


init

<instance> init(width, height)

Description:

Sets up this Render Target to the given width and height, creating a new

frame buffer and texture. This method is called automatically by the constructor

and at no other time.

Parameters:

nametypeoptionaldescription
widthnumberNoThe new width of this Render Target.
heightnumberNoThe new height of this Render Target.

Source: src/renderer/webgl/RenderTarget.js#L176
Since: 3.86.0


resize

<instance> resize(width, height)

Description:

Resizes this Render Target as long as the given width and height are different

to the current width and height.

Deletes both the frame buffer and texture, if they exist and then re-creates

them using the new sizes.

This method is called automatically by the pipeline during its resize handler.

Parameters:

nametypeoptionaldescription
widthnumberNoThe new width of this Render Target.
heightnumberNoThe new height of this Render Target.

Returns: Phaser.Renderer.WebGL.RenderTarget - This RenderTarget instance.

Source: src/renderer/webgl/RenderTarget.js#L227
Since: 3.50.0


setAutoResize

<instance> setAutoResize(autoResize)

Description:

Sets if this Render Target should automatically resize when the WebGL Renderer

emits a resize event.

Parameters:

nametypeoptionaldescription
autoResizebooleanNoAutomatically resize this Render Target when the WebGL Renderer resizes?

Returns: Phaser.Renderer.WebGL.RenderTarget - This RenderTarget instance.

Source: src/renderer/webgl/RenderTarget.js#L198
Since: 3.50.0


willResize

<instance> willResize(width, height)

Description:

Checks if this Render Target will resize, or not, if given the new

width and height values.

Parameters:

nametypeoptionaldescription
widthnumberNoThe new width of this Render Target.
heightnumberNoThe new height of this Render Target.

Returns: boolean - true if the Render Target will resize, otherwise false.

Source: src/renderer/webgl/RenderTarget.js#L264
Since: 3.70.0