Class: GeometrySystem

PIXI.GeometrySystem

System plugin to the renderer to manage geometry.

new PIXI.GeometrySystem (renderer)

Name Type Description
renderer PIXI.Renderer

The renderer this System works for.

Implements

Members

canUseUInt32ElementIndex boolean readonly

true if support gl.UNSIGNED_INT in gl.drawElements or gl.drawElementsInstanced.

hasInstance boolean readonly

true if has ANGLE_instanced_arrays extension.

hasVao boolean readonly

true if we has *_vertex_array_object extension.

managedGeometries { [key: number]: PIXI.Geometry } readonly

Cache for all geometries by id, used in case renderer gets destroyed or for profiling.

Methods

bind (geometry, shader) void

Binds geometry so that is can be drawn. Creating a Vao if required

Name Type Attributes Description
geometry PIXI.Geometry <optional>

Instance of geometry to bind.

shader PIXI.Shader <optional>

Instance of shader to use vao for.

disposeAll (contextLost) void

Dispose all WebGL resources of all managed geometries.

Name Type Attributes Default Description
contextLost boolean <optional>
false

If context was lost, we suppress gl.delete calls

disposeGeometry (geometry, contextLost) void

Disposes geometry.

Name Type Attributes Default Description
geometry PIXI.Geometry

Geometry with buffers. Only VAO will be disposed

contextLost boolean <optional>
false

If context was lost, we suppress deleteVertexArray

draw (type, size, start, instanceCount) this

Draws the currently bound geometry.

Name Type Attributes Description
type PIXI.DRAW_MODES

The type primitive to render.

size number <optional>

The number of elements to be rendered. If not specified, all vertices after the starting vertex will be drawn.

start number <optional>

The starting vertex in the geometry to start drawing from. If not specified, drawing will start from the first vertex.

instanceCount number <optional>

The number of instances of the set of elements to execute. If not specified, all instances will be drawn.

Returns:
Type Description
this

reset () void

Reset and unbind any active VAO and geometry.

updateBuffers () void

Update buffers of the currently bound geometry.

activateVao (geometry, program) void protected

Activate vertex array object.

Name Type Description
geometry PIXI.Geometry

Geometry instance.

program PIXI.Program

Shader program instance.

checkCompatibility (geometry, program) void protected

Check compatibility between a geometry and a program

Name Type Description
geometry PIXI.Geometry

Geometry instance.

program PIXI.Program

Program instance.

contextChange () void protected

Sets up the renderer context and necessary buffers.

getSignature (geometry, program) string protected

Takes a geometry and program and generates a unique signature for them.

Name Type Description
geometry PIXI.Geometry

To get signature from.

program PIXI.Program

To test geometry against.

Returns:
Type Description
string
  • Unique signature of the geometry and program

initGeometryVao (geometry, shader, incRefCount) WebGLVertexArrayObject protected

Creates or gets Vao with the same structure as the geometry and stores it on the geometry. If vao is created, it is bound automatically. We use a shader to infer what and how to set up the attribute locations.

Name Type Description
geometry PIXI.Geometry

Instance of geometry to to generate Vao for.

shader PIXI.Shader

Instance of the shader.

incRefCount

Increment refCount of all geometry buffers.

Returns:
Type Description
WebGLVertexArrayObject

unbind () void protected

Unbind/reset everything.