Skip to main content
Version: Phaser v4.0.0-rc.6

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#L114
Since: 4.0.0


height

height: number

Description:

Height of the depth stencil.

Source: src/renderer/webgl/wrappers/WebGLFramebufferWrapper.js#L105
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#L171
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:

Width of the depth stencil.

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#L192
Since: 3.80.0


destroy

<instance> destroy()

Description:

Destroys this WebGLFramebufferWrapper.

Source: src/renderer/webgl/wrappers/WebGLFramebufferWrapper.js#L299
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#L276
Since: 4.0.0