LogoPixi’VN
pixi-jsClasses

Class: Buffer

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/buffer/Buffer.d.ts:85

A wrapper for a WebGPU/WebGL Buffer. In PixiJS, the Buffer class is used to manage the data that is sent to the GPU rendering pipeline. It abstracts away the underlying GPU buffer and provides an interface for uploading typed arrays or other data to the GPU, They are used in the following places: .1. Geometry as attribute data or index data for geometry .2. UniformGroup as an underlying buffer for uniform data .3. BufferResource as an underlying part of a buffer used directly by the GPU program

It is important to note that you must provide a usage type when creating a buffer. This is because the underlying GPU buffer needs to know how it will be used. For example, if you are creating a buffer to hold vertex data, you would use BufferUsage.VERTEX. This will tell the GPU that this buffer will be used as a vertex buffer. This is important because it will affect how you can use the buffer.

Buffers are updated by calling the Buffer.update method. This immediately updates the buffer on the GPU. Be mindful of calling this more often than you need to. It is recommended to update buffers only when needed.

In WebGPU, a GPU buffer cannot resized. This limitation is abstracted away, but know that resizing a buffer means creating a brand new one and destroying the old, so it is best to limit this if possible.

Example

const buffer = new Buffer({
    data: new Float32Array([1, 2, 3, 4]),
    usage: BufferUsage.VERTEX,
});

Advanced

Extends

Implements

Constructors

Constructor

> new Buffer(options): Buffer

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/buffer/Buffer.d.ts:159

Creates a new Buffer with the given options

Parameters

options

BufferOptions

the options for the buffer

Returns

Buffer

Overrides

EventEmitter.constructor

Properties

_gcData?

> optional _gcData?: GCData

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/buffer/Buffer.d.ts:108

Internal

Implementation of

GCable._gcData


_gcLastUsed

> _gcLastUsed: number

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/buffer/Buffer.d.ts:110

Internal

Implementation of

GCable._gcLastUsed


_gpuData

> _gpuData: Record<number, GlBuffer | GpuBufferData>

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/buffer/Buffer.d.ts:106

Internal

Implementation of

GCable._gpuData


_resourceId

> _resourceId: number

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/buffer/Buffer.d.ts:124

Internal

the resource id used internally by the renderer to build bind group keys

Implementation of

BindResource._resourceId


_resourceType

> readonly _resourceType: "buffer" = "buffer"

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/buffer/Buffer.d.ts:119

Internal

a resource type, used to identify how to handle it when its in a bind group / shader resource

Implementation of

BindResource._resourceType


_touched

> _touched: number

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/buffer/Buffer.d.ts:129

Internal

used internally to know if a uniform group was used in the last render pass

Implementation of

BindResource._touched


_updateID

> _updateID: number

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/buffer/Buffer.d.ts:136

Internal


_updateSize

> _updateSize: number

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/buffer/Buffer.d.ts:138

Internal


autoGarbageCollect

> autoGarbageCollect: boolean

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/buffer/Buffer.d.ts:112

If set to true, the buffer will be garbage collected automatically when it is not used.

Implementation of

GCable.autoGarbageCollect


descriptor

> readonly descriptor: BufferDescriptor

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/buffer/Buffer.d.ts:134

Internal

a description of the buffer and how it should be set up on the GPU


destroyed

> readonly destroyed: boolean

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/buffer/Buffer.d.ts:154

Has the buffer been destroyed?

Implementation of

BindResource.destroyed


shrinkToFit

> shrinkToFit: boolean

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/buffer/Buffer.d.ts:149

should the GPU buffer be shrunk when the data becomes smaller? changing this will cause the buffer to be destroyed and a new one created on the GPU this can be expensive, especially if the buffer is already big enough! setting this to false will prevent the buffer from being shrunk. This will yield better performance if you are constantly setting data that is changing size often.

Default

true

uid

> readonly uid: number

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/buffer/Buffer.d.ts:114

a unique id for this uniform group used through the renderer


prefixed

> static prefixed: string | boolean

Defined in: node_modules/eventemitter3/index.d.ts:9

Inherited from

EventEmitter.prefixed

Accessors

data

Get Signature

> get data(): TypedArray

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/buffer/Buffer.d.ts:161

the data in the buffer

Returns

TypedArray

Set Signature

> set data(value): void

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/buffer/Buffer.d.ts:162

Parameters
value

TypedArray

Returns

void


dataInt32

Get Signature

> get dataInt32(): Int32Array<ArrayBufferLike>

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/buffer/Buffer.d.ts:163

Returns

Int32Array<ArrayBufferLike>


static

Get Signature

> get static(): boolean

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/buffer/Buffer.d.ts:165

whether the buffer is static or not

Returns

boolean

Set Signature

> set static(value): void

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/buffer/Buffer.d.ts:166

Parameters
value

boolean

Returns

void

Methods

addListener()

> addListener<T>(event, fn, context?): this

Defined in: node_modules/eventemitter3/index.d.ts:45

Type Parameters

T

T extends "update" | "change" | "destroy" | "unload"

Parameters

event

T

fn

(...args) => void

context?

any

Returns

this

Inherited from

EventEmitter.addListener


destroy()

> destroy(): void

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/buffer/Buffer.d.ts:185

Destroys the buffer

Returns

void


emit()

> emit<T>(event, ...args): boolean

Defined in: node_modules/eventemitter3/index.d.ts:32

Calls each of the listeners registered for a given event.

Type Parameters

T

T extends "update" | "change" | "destroy" | "unload"

Parameters

event

T

args

...ArgumentMap<{ change: BindResource; destroy: Buffer; unload: Buffer; update: Buffer; }>[Extract<T, "update" | "change" | "destroy" | "unload">]

Returns

boolean

Inherited from

EventEmitter.emit


eventNames()

> eventNames(): ("update" | "change" | "destroy" | "unload")[]

Defined in: node_modules/eventemitter3/index.d.ts:15

Return an array listing the events for which the emitter has registered listeners.

Returns

("update" | "change" | "destroy" | "unload")[]

Inherited from

EventEmitter.eventNames


listenerCount()

> listenerCount(event): number

Defined in: node_modules/eventemitter3/index.d.ts:27

Return the number of listeners listening to a given event.

Parameters

event

"update" | "change" | "destroy" | "unload"

Returns

number

Inherited from

EventEmitter.listenerCount


listeners()

> listeners<T>(event): (...args) => void[]

Defined in: node_modules/eventemitter3/index.d.ts:20

Return the listeners registered for a given event.

Type Parameters

T

T extends "update" | "change" | "destroy" | "unload"

Parameters

event

T

Returns

(...args) => void[]

Inherited from

EventEmitter.listeners


off()

> off<T>(event, fn?, context?, once?): this

Defined in: node_modules/eventemitter3/index.d.ts:69

todo

Type Parameters

T

T extends "update" | "change" | "destroy" | "unload"

Parameters

event

T

fn?

(...args) => void

context?

any

once?

boolean

Returns

this

Implementation of

BindResource.off

Inherited from

EventEmitter.off


on()

> on<T>(event, fn, context?): this

Defined in: node_modules/eventemitter3/index.d.ts:40

Add a listener for a given event.

Type Parameters

T

T extends "update" | "change" | "destroy" | "unload"

Parameters

event

T

fn

(...args) => void

context?

any

Returns

this

Implementation of

BindResource.on

Inherited from

EventEmitter.on


once()

> once<T>(event, fn, context?): this

Defined in: node_modules/eventemitter3/index.d.ts:54

Add a one-time listener for a given event.

Type Parameters

T

T extends "update" | "change" | "destroy" | "unload"

Parameters

event

T

fn

(...args) => void

context?

any

Returns

this

Inherited from

EventEmitter.once


removeAllListeners()

> removeAllListeners(event?): this

Defined in: node_modules/eventemitter3/index.d.ts:79

Remove all listeners, or those of the specified event.

Parameters

event?

"update" | "change" | "destroy" | "unload"

Returns

this

Inherited from

EventEmitter.removeAllListeners


removeListener()

> removeListener<T>(event, fn?, context?, once?): this

Defined in: node_modules/eventemitter3/index.d.ts:63

Remove the listeners of a given event.

Type Parameters

T

T extends "update" | "change" | "destroy" | "unload"

Parameters

event

T

fn?

(...args) => void

context?

any

once?

boolean

Returns

this

Inherited from

EventEmitter.removeListener


setDataWithSize()

> setDataWithSize(value, size, syncGPU): void

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/buffer/Buffer.d.ts:174

Sets the data in the buffer to the given value. This will immediately update the buffer on the GPU. If you only want to update a subset of the buffer, you can pass in the size of the data.

Parameters

value

TypedArray

the data to set

size

number

the size of the data in bytes

syncGPU

boolean

should the buffer be updated on the GPU immediately?

Returns

void


unload()

> unload(): void

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/buffer/Buffer.d.ts:183

Unloads the buffer from the GPU

Returns

void

Implementation of

GCable.unload


update()

> update(sizeInBytes?): void

Defined in: node_modules/pixi.js/lib/rendering/renderers/shared/buffer/Buffer.d.ts:181

updates the buffer on the GPU to reflect the data in the buffer. By default it will update the entire buffer. If you only want to update a subset of the buffer, you can pass in the size of the buffer to update.

Parameters

sizeInBytes?

number

the new size of the buffer in bytes

Returns

void