Skip to main content
Version: Phaser v4.0.0

WebGLFramebufferWrapper

Wrapper for a WebGL frame buffer, containing all the information that was used to create it.

A WebGLFramebuffer should never be exposed outside the WebGLRenderer, so the WebGLRenderer can handle context loss and other events without other systems having to be aware of it. Always use WebGLFramebufferWrapper instead.

This also manages the attachments to the framebuffer, including renderbuffer life cycle.

Constructor

new WebGLFramebufferWrapper(renderer, colorAttachments, [addStencilBuffer], [addDepthBuffer])

Parameters

nametypeoptionaldefaultdescription
rendererPhaser.Renderer.WebGL.WebGLRendererNoThe renderer this WebGLFramebuffer belongs to.
colorAttachmentsArray.<Phaser.Renderer.WebGL.Wrappers.WebGLTextureWrapper>NoThe color textures where the color pixels are written. If empty, the canvas will be used as the color attachment. Only the first color attachment is used in default WebGL1.
addStencilBufferbooleanYesfalseWhether to add a stencil buffer to the framebuffer. If the canvas is used as the color attachment, this will be ignored.
addDepthBufferbooleanYesfalseWhether to add a depth buffer to the framebuffer. If depth and stencil are both provided, they will be combined into a single depth-stencil buffer. If the canvas is used as the color attachment, this will be ignored.

Scope: static

Source: src/renderer/webgl/wrappers/WebGLFramebufferWrapper.js#L27
Since: 3.80.0

Public Members

attachments

attachments: Array.<Attachment>

Description:

Attachments to the framebuffer. These contain data such as the width, height, and renderbuffer or texture.

Source: src/renderer/webgl/wrappers/WebGLFramebufferWrapper.js#L116
Since: 4.0.0


height

height: number

Description:

The height of the framebuffer, in pixels. This is derived from the first color attachment and is used when allocating renderbuffer storage.

Source: src/renderer/webgl/wrappers/WebGLFramebufferWrapper.js#L106
Since: 3.80.0


renderer

renderer: Phaser.Renderer.WebGL.WebGLRenderer

Description:

The WebGLRenderer this WebGLFramebuffer belongs to.

Source: src/renderer/webgl/wrappers/WebGLFramebufferWrapper.js#L75
Since: 4.0.0


renderTexture

renderTexture: Phaser.Renderer.WebGL.Wrappers.WebGLTextureWrapper

Description:

The color texture where the color pixels are written.

This will be null if the canvas is used as the color attachment. It is the first color attachment on the framebuffer.

Source: src/renderer/webgl/wrappers/WebGLFramebufferWrapper.js#L173
Since: 3.80.0


useCanvas

useCanvas: boolean

Description:

Whether to use the canvas as the color attachment. If this is true, a framebuffer will not be created. This is useful for the main framebuffer, which is created by the browser.

Source: src/renderer/webgl/wrappers/WebGLFramebufferWrapper.js#L84
Since: 4.0.0


webGLFramebuffer

webGLFramebuffer: WebGLFramebuffer

Description:

The WebGLFramebuffer being wrapped by this class.

This property could change at any time. Therefore, you should never store a reference to this value. It should only be passed directly to the WebGL API for drawing.

If the FrameBuffer is using the canvas as the color attachment, this property will be null.

Source: src/renderer/webgl/wrappers/WebGLFramebufferWrapper.js#L58
Since: 3.80.0


width

width: number

Description:

The width of the framebuffer, in pixels. This is derived from the first color attachment and is used when allocating renderbuffer storage.

Source: src/renderer/webgl/wrappers/WebGLFramebufferWrapper.js#L96
Since: 3.80.0


Public Methods

createResource

<instance> createResource()

Description:

Creates a WebGLFramebuffer from the given parameters.

This is called automatically by the constructor. It may also be called again if the WebGLFramebuffer needs re-creating.

Source: src/renderer/webgl/wrappers/WebGLFramebufferWrapper.js#L194
Since: 3.80.0


destroy

<instance> destroy()

Description:

Destroys this WebGLFramebufferWrapper.

Source: src/renderer/webgl/wrappers/WebGLFramebufferWrapper.js#L301
Since: 3.80.0


resize

<instance> resize(width, height)

Description:

Resizes the attachments of this WebGLFramebufferWrapper.

Parameters:

nametypeoptionaldescription
widthnumberNoThe new width of the framebuffer.
heightnumberNoThe new height of the framebuffer.

Source: src/renderer/webgl/wrappers/WebGLFramebufferWrapper.js#L278
Since: 4.0.0