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
name | type | optional | default | description |
---|---|---|---|---|
renderer | No | A reference to the WebGLRenderer. | ||
width | number | No | The width of this Render Target. | |
height | number | No | The height of this Render Target. | |
scale | number | Yes | 1 | A value between 0 and 1. Controls the size of this Render Target in relation to the Renderer. |
minFilter | number | Yes | 0 | The minFilter mode of the texture when created. 0 is |
autoClear | boolean | Yes | true | Automatically clear this framebuffer when bound? |
autoResize | boolean | Yes | false | Automatically resize this Render Target if the WebGL Renderer resizes? |
addDepthBuffer | boolean | Yes | true | Add a DEPTH_STENCIL and attachment to this Render Target? |
forceClamp | boolean | Yes | true | Force 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#L403
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:
name | type | optional | default | description |
---|---|---|---|---|
flush | boolean | Yes | false | Flush 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#L379
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#L324
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:
name | type | optional | default | description |
---|---|---|---|---|
adjustViewport | boolean | Yes | false | Adjust the GL viewport by calling |
width | number | Yes | Optional new width of this Render Target. | |
height | number | Yes | Optional new height of this Render Target. |
Source: src/renderer/webgl/RenderTarget.js#L275
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:
name | type | optional | default | description |
---|---|---|---|---|
x | number | Yes | 0 | The left coordinate of the fill rectangle. |
y | number | Yes | 0 | The top coordinate of the fill rectangle. |
width | number | Yes | "this.width" | The width of the fill rectangle. |
height | number | Yes | "this.height" | The height of the fill rectangle. |
Source: src/renderer/webgl/RenderTarget.js#L341
Since: 3.50.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.
Previous to Phaser v3.85 this method would only run if autoResize
was true
,
it will now run regardless.
Parameters:
name | type | optional | description |
---|---|---|---|
width | number | No | The new width of this Render Target. |
height | number | No | The new height of this Render Target. |
Returns: Phaser.Renderer.WebGL.RenderTarget - This RenderTarget instance.
Source: src/renderer/webgl/RenderTarget.js#L205
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:
name | type | optional | description |
---|---|---|---|
autoResize | boolean | No | Automatically resize this Render Target when the WebGL Renderer resizes? |
Returns: Phaser.Renderer.WebGL.RenderTarget - This RenderTarget instance.
Source: src/renderer/webgl/RenderTarget.js#L176
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:
name | type | optional | description |
---|---|---|---|
width | number | No | The new width of this Render Target. |
height | number | No | The new height of this Render Target. |
Returns: boolean - true
if the Render Target will resize, otherwise false
.
Source: src/renderer/webgl/RenderTarget.js#L245
Since: 3.70.0