Skip to content

@tmrw-realityos/charmDocs


@tmrw-realityos/charm / WebGPUFramebuffer

Class: WebGPUFramebuffer

Framebuffer class This class helps with some of the common actions when rendering to a texture Like configuring it, generating the renderPassDescriptor, or even reading the pixels back to CPU

Constructors

new WebGPUFramebuffer()

new WebGPUFramebuffer(device, width, height): WebGPUFramebuffer

Parameters

device: GPUDevice

GPU device

width: number = 1

Initial framebuffer width

height: number = 1

Initial framebuffer height

Returns

WebGPUFramebuffer

Defined in

packages/charm/src/graphics/WebGPU/WebGPUFramebuffer.ts:31

Properties

name

name: string = ""

Defined in

packages/charm/src/graphics/WebGPU/WebGPUFramebuffer.ts:10

Accessors

height

get height(): number

Returns

number

Defined in

packages/charm/src/graphics/WebGPU/WebGPUFramebuffer.ts:44


width

get width(): number

Returns

number

Defined in

packages/charm/src/graphics/WebGPU/WebGPUFramebuffer.ts:40

Methods

addColorAttachment()

addColorAttachment(index, texture): void

Add an external texture as color attachment. The texture will not be managed, i.e. resized and destroyed by the framebuffer.

Parameters

index: number

Color attachment index

texture: WebGPUTexture

Existing color texture

Returns

void

Defined in

packages/charm/src/graphics/WebGPU/WebGPUFramebuffer.ts:72


addDepthStencil()

addDepthStencil(texture): void

Add an external texture as depth stencil attachment. The texture will not be managed, i.e. resized and destroyed by the framebuffer.

Parameters

texture: WebGPUTexture

Existing texture used for depth stencil attachment

Returns

void

Defined in

packages/charm/src/graphics/WebGPU/WebGPUFramebuffer.ts:53


createColorAttachment()

createColorAttachment(index, format): WebGPUTexture

Create a color attachment. The texture will be managed, i.e. resized and destroyed by the framebuffer.

Parameters

index: number

Attachment index

format: GPUTextureFormat = "rgba8unorm"

Color texture format

Returns

WebGPUTexture

Defined in

packages/charm/src/graphics/WebGPU/WebGPUFramebuffer.ts:103


createDepthStencil()

createDepthStencil(format): WebGPUTexture

Create a depth stencil attachment. The texture will be managed, i.e. resized and destroyed by the framebuffer.

Parameters

format: GPUTextureFormat = "depth24plus"

Depth stencil texture format

Returns

WebGPUTexture

Defined in

packages/charm/src/graphics/WebGPU/WebGPUFramebuffer.ts:132


destroy()

destroy(): void

Destroy all managed resources

Returns

void

Defined in

packages/charm/src/graphics/WebGPU/WebGPUFramebuffer.ts:258


getColorAttachmentTexture()

getColorAttachmentTexture(index): undefined | WebGPUTexture

Get color attachment

Parameters

index: number

Attachment index

Returns

undefined | WebGPUTexture

Color attachment texture

Defined in

packages/charm/src/graphics/WebGPU/WebGPUFramebuffer.ts:158


getDepthStencilTexture()

getDepthStencilTexture(): undefined | WebGPUTexture

Get depth stencil texture

Returns

undefined | WebGPUTexture

Depth stencil texture

Defined in

packages/charm/src/graphics/WebGPU/WebGPUFramebuffer.ts:166


getRenderPassDescriptor()

getRenderPassDescriptor(): GPURenderPassDescriptor

Get renderpass descriptor for the current attachments.

Returns

GPURenderPassDescriptor

Renderpass descriptor

Defined in

packages/charm/src/graphics/WebGPU/WebGPUFramebuffer.ts:174


readPixel()

readPixel(x, y, index, encoder?): Promise<ArrayBuffer>

Read a pixel from a color attachment

Parameters

x: number

Pixel x coordinate

y: number

Pixel y coordinate

index: number = 0

Attachment index

encoder?: GPUCommandEncoder

Command encoder where to queue commands, otherwise a new one is created

Returns

Promise<ArrayBuffer>

Pixel color

Defined in

packages/charm/src/graphics/WebGPU/WebGPUFramebuffer.ts:190


resize()

resize(width, height): void

Resize managed textures

Parameters

width: number

height: number

Returns

void

Defined in

packages/charm/src/graphics/WebGPU/WebGPUFramebuffer.ts:229


setClearValue()

setClearValue(index, clearColor): void

Set clear color for an attachment

Parameters

index: number

Attachment index

clearColor: GPUColor

Clear color

Returns

void

Defined in

packages/charm/src/graphics/WebGPU/WebGPUFramebuffer.ts:91