Skip to content

Documentation / device / Pool

Class: Pool

Defined in: libs/device/src/pool.ts:9

ObjectPool class is responsible for managing and reusing textures and framebuffers.

Constructors

Constructor

new Pool(device, id, memCostThreshold?): Pool

Defined in: libs/device/src/pool.ts:38

Creates an instance of Pool class

Parameters

device

AbstractDevice

Rendering device

id

string | symbol

memCostThreshold?

number = ...

Returns

Pool

Accessors

id

Get Signature

get id(): string | symbol

Defined in: libs/device/src/pool.ts:54

Id for this pool

Returns

string | symbol

Methods

autoRelease()

autoRelease(): void

Defined in: libs/device/src/pool.ts:57

Returns

void


fetchTemporalTexture2D()

fetchTemporalTexture2D(autoRelease, format, width, height, mipmapping?): Texture2D<unknown>

Defined in: libs/device/src/pool.ts:81

Fetch a temporal 2D texture from the object pool.

Parameters

autoRelease

boolean

Whether the texture should be automatically released at the next frame.

format

TextureFormat

The format of the texture.

width

number

The width of the texture.

height

number

The height of the texture.

mipmapping?

boolean = false

Whether this texture support mipmapping

Returns

Texture2D<unknown>

The fetched Texture2D object.


fetchTemporalTexture2DArray()

fetchTemporalTexture2DArray(autoRelease, format, width, height, numLayers, mipmapping?): Texture2DArray<unknown>

Defined in: libs/device/src/pool.ts:119

Fetch a temporal 2D array texture from the object pool.

Parameters

autoRelease

boolean

Whether the texture should be automatically released at the next frame.

format

TextureFormat

Format of the texture.

width

number

Width of the texture.

height

number

Height of the texture.

numLayers

number

Layer count of the texture

mipmapping?

boolean = false

Whether this texture support mipmapping

Returns

Texture2DArray<unknown>

The fetched Texture2DArray object.


fetchTemporalTextureCube()

fetchTemporalTextureCube(autoRelease, format, size, mipmapping?): TextureCube<unknown>

Defined in: libs/device/src/pool.ts:156

Fetch a temporal Cube texture from the object pool.

Parameters

autoRelease

boolean

Whether the texture should be automatically released at the next frame.

format

TextureFormat

Format of the texture.

size

number

size of the texture.

mipmapping?

boolean = false

Whether this texture support mipmapping

Returns

TextureCube<unknown>

The fetched TextureCube object.


fetchTemporalFramebuffer()

fetchTemporalFramebuffer<T>(autoRelease, width, height, colorTexOrFormat, depthTexOrFormat?, mipmapping?, sampleCount?, ignoreDepthStencil?, attachmentMipLevel?, attachmentCubeface?, attachmentLayer?): FrameBuffer<unknown>

Defined in: libs/device/src/pool.ts:193

Creates a temporal framebuffer from the object pool.

Type Parameters

T

T extends BaseTexture<unknown>

Parameters

autoRelease

boolean

Whether the framebuffer should be automatically released at the next frame.

width

number

Width of the framebuffer

height

number

Height of the framebuffer

colorTexOrFormat

MaybeArray<TextureFormat | T>

depthTexOrFormat?

TextureFormat | T

mipmapping?

boolean = false

Whether mipmapping should be enabled when creating color attachment textures, default is false.

sampleCount?

number = 1

The sample count for the framebuffer, default is 1.

ignoreDepthStencil?

boolean = true

Whether to ignore depth stencil when resolving msaa framebuffer, default is true.

attachmentMipLevel?

number = 0

The mipmap level to which the color attachment will render, default is 0

attachmentCubeface?

number = 0

The cubemap face to which the color attachment will render, default is 0

attachmentLayer?

number = 0

The texture layer to which the color attachment will render, default is 0

Returns

FrameBuffer<unknown>

The fetched FrameBuffer object.


createTemporalFramebuffer()

createTemporalFramebuffer(autoRelease, colorAttachments, depthAttachment?, sampleCount?, ignoreDepthStencil?, attachmentMipLevel?, attachmentCubeface?, attachmentLayer?): FrameBuffer<unknown>

Defined in: libs/device/src/pool.ts:252

Creates a temporal framebuffer from the object pool.

Parameters

autoRelease

boolean

Whether the framebuffer should be automatically released at the next frame.

colorAttachments

BaseTexture<unknown>[]

Array of color attachments for the framebuffer.

depthAttachment?

BaseTexture<unknown> = null

Depth attachment for the framebuffer.

sampleCount?

number = 1

The sample count for the framebuffer, default is 1.

ignoreDepthStencil?

boolean = true

Whether to ignore depth stencil when resolving msaa framebuffer, default is true.

attachmentMipLevel?

number = 0

The mipmap level to which the color attachment will render, default is 0.

attachmentCubeface?

number = 0

The cubemap face to which the color attachment will render, default is 0.

attachmentLayer?

number = 0

The texture layer to which the color attachment will render, default is 0.

Returns

FrameBuffer<unknown>

The fetched FrameBuffer object.


disposeTexture()

disposeTexture(texture): void

Defined in: libs/device/src/pool.ts:309

Dispose a texture that is allocated from the object pool.

Parameters

texture

BaseTexture

The texture to dispose.

Returns

void


releaseTexture()

releaseTexture(texture): void

Defined in: libs/device/src/pool.ts:316

Release a texture back to the object pool.

Parameters

texture

BaseTexture

The texture to release.

Returns

void


retainTexture()

retainTexture(texture): void

Defined in: libs/device/src/pool.ts:330

Increment reference counter for given texture

Parameters

texture

BaseTexture

The texture to retain

Returns

void


disposeFrameBuffer()

disposeFrameBuffer(fb): void

Defined in: libs/device/src/pool.ts:344

Dispose a framebuffer that is allocated from the object pool.

Parameters

fb

FrameBuffer

The framebuffer to dispose.

Returns

void


releaseFrameBuffer()

releaseFrameBuffer(fb): void

Defined in: libs/device/src/pool.ts:357

Release a framebuffer back to the object pool.

Parameters

fb

FrameBuffer

The framebuffer to release.

Returns

void


retainFrameBuffer()

retainFrameBuffer(fb): void

Defined in: libs/device/src/pool.ts:378

Increment reference counter for given framebuffer

Parameters

fb

FrameBuffer

The framebuffer to retain

Returns

void


purge()

purge(): void

Defined in: libs/device/src/pool.ts:389

Purge the object pool by disposing all free framebuffers and textures.

Returns

void

Released under the MIT License.