Class: Graphics

PIXI.Graphics

The Graphics class is primarily used to render primitive shapes such as lines, circles and rectangles to the display, and to color and fill them. However, you can also use a Graphics object to build a list of primitives to use as a mask, or as a complex hitArea.

Please note that due to legacy naming conventions, the behavior of some functions in this class can be confusing. Each call to drawRect(), drawPolygon(), etc. actually stores that primitive in the Geometry class's GraphicsGeometry object for later use in rendering or hit testing - the functions do not directly draw anything to the screen. Similarly, the clear() function doesn't change the screen, it simply resets the list of primitives, which can be useful if you want to rebuild the contents of an existing Graphics object.

Once a GraphicsGeometry list is built, you can re-use it in other Geometry objects as an optimization, by passing it into a new Geometry object's constructor. Because of this ability, it's important to call destroy() on Geometry objects once you are done with them, to properly dereference each GraphicsGeometry and prevent memory leaks.

new PIXI.Graphics (geometry)

Name Type Attributes Default Description
geometry PIXI.GraphicsGeometry <optional>
null

Geometry to use, if omitted will create a new GraphicsGeometry instance.

Extends

Members

PIXI.Graphics.graphicsData PIXI.Graphics Deprecated : since 5.0.0 static

See:

blendMode number

The blend mode to be applied to the graphic shape. Apply a value of PIXI.BLEND_MODES.NORMAL to reset the blend mode. Note that, since each primitive in the GraphicsGeometry list is rendered sequentially, modes such as PIXI.BLEND_MODES.ADD and PIXI.BLEND_MODES.MULTIPLY will be applied per-primitive.

Default Value:
  • PIXI.BLEND_MODES.NORMAL;
See:

cacheAsBitmap boolean overrides

When cacheAsBitmap is set to true the graphics object will be rendered as if it was a sprite. This is useful if your graphics element does not change often, as it will speed up the rendering of the object in exchange for taking up texture memory. It is also useful if you need the graphics object to be anti-aliased, because it will be rendered using canvas. This is not recommended if you are constantly redrawing the graphics element.

Default Value:
  • false

The current fill style.

Includes vertex positions, face indices, normals, colors, UVs, and custom attributes within buffers, reducing the cost of passing all this data to the GPU. Can be shared between multiple Mesh or Graphics objects.

The current line style.

pluginName string

Renderer plugin for batching

Default Value:
  • 'batch'

shader PIXI.Shader

Represents the vertex and fragment shaders that processes the geometry and runs on the GPU. Can be shared between multiple Graphics objects.

state PIXI.State

Represents the WebGL state the Graphics required to render, excludes shader and geometry. E.g., blend mode, culling, depth testing, direction of rendering triangles, backface, etc.

tint number

The tint applied to each graphic shape. This is a hex value. A value of 0xFFFFFF will remove any tint effect.

Default Value:
  • 0xFFFFFF

_fillStyle PIXI.FillStyle protected

Current fill style

_holeMode boolean protected

Current hole mode is enabled.

Default Value:
  • false

_lineStyle PIXI.LineStyle protected

Current line style

_matrix PIXI.Matrix protected

Current shape transform matrix.

batchDirty number protected

Update dirty for limiting calculating batches.

Default Value:
  • -1

batches Array<object> protected

A collections of batches! These can be drawn by the renderer batch system.

batchTint number protected

Update dirty for limiting calculating tints for batches.

Default Value:
  • -1

currentPath PIXI.Polygon protected

Current path

vertexData Float32Array protected

Copy of the object vertex data.

Methods

PIXI.Graphics.drawChamferRect (x, y, width, height, chamfer) PIXI.Graphics static

Draw Rectangle with chamfer corners.

Note: Only available with @pixi/graphics-extras.

Name Type Description
x number

Upper left corner of rect

y number

Upper right corner of rect

width number

Width of rect

height number

Height of rect

chamfer number

accept negative or positive values

Returns:
Type Description
PIXI.Graphics Returns self.

PIXI.Graphics.drawFilletRect (x, y, width, height, fillet) PIXI.Graphics static

Draw Rectangle with fillet corners.

Note: Only available with @pixi/graphics-extras.

Name Type Description
x number

Upper left corner of rect

y number

Upper right corner of rect

width number

Width of rect

height number

Height of rect

fillet number

non-zero real number, size of corner cutout

Returns:
Type Description
PIXI.Graphics Returns self.

PIXI.Graphics.drawRegularPolygon (x, y, radius, sides, rotation) PIXI.Graphics static

Draw a regular polygon where all sides are the same length.

Note: Only available with @pixi/graphics-extras.

Name Type Description
x number

X position

y number

Y position

radius number

Polygon radius

sides number

Minimum value is 3

rotation number

Starting rotation values in radians..

Returns:
Type Description
PIXI.Graphics

PIXI.Graphics.drawTorus (x, y, innerRadius, outerRadius, startArc, endArc) PIXI.Graphics static

Draw a torus shape, like a donut. Can be used for something like a circle loader.

Note: Only available with @pixi/graphics-extras.

Name Type Attributes Default Description
x number

X position

y number

Y position

innerRadius number

Inner circle radius

outerRadius number

Outer circle radius

startArc number <optional>
0

Where to begin sweep, in radians, 0.0 = to the right

endArc number <optional>
Math.PI*2

Where to end sweep, in radians

Returns:
Type Description
PIXI.Graphics

PIXI.Graphics.lineStyle (width, color, alpha, alignment, native) PIXI.Graphics static

Specifies the line style used for subsequent calls to Graphics methods such as the lineTo() method or the drawCircle() method.

Name Type Attributes Default Description
width number <optional>
0

width of the line to draw, will update the objects stored style

color number <optional>
0x0

color of the line to draw, will update the objects stored style

alpha number <optional>
1

alpha of the line to draw, will update the objects stored style

alignment number <optional>
0.5

alignment of the line to draw, (0 = inner, 0.5 = middle, 1 = outter)

native boolean <optional>
false

If true the lines will be draw using LINES instead of TRIANGLE_STRIP

Returns:
Type Description
PIXI.Graphics This Graphics object. Good for chaining method calls

_renderDrawCallDirect (renderer, drawCall) void

Renders specific DrawCall

Name Type Description
renderer PIXI.Renderer
drawCall PIXI.BatchDrawCall

arc (cx, cy, radius, startAngle, endAngle, anticlockwise) PIXI.Graphics

The arc method creates an arc/curve (used to create circles, or parts of circles).

Name Type Attributes Default Description
cx number

The x-coordinate of the center of the circle

cy number

The y-coordinate of the center of the circle

radius number

The radius of the circle

startAngle number

The starting angle, in radians (0 is at the 3 o'clock position of the arc's circle)

endAngle number

The ending angle, in radians

anticlockwise boolean <optional>
false

Specifies whether the drawing should be counter-clockwise or clockwise. False is default, and indicates clockwise, while true indicates counter-clockwise.

Returns:
Type Description
PIXI.Graphics This Graphics object. Good for chaining method calls

arcTo (x1, y1, x2, y2, radius) PIXI.Graphics

The arcTo() method creates an arc/curve between two tangents on the canvas.

"borrowed" from https://code.google.com/p/fxcanvas/ - thanks google!

Name Type Description
x1 number

The x-coordinate of the first tangent point of the arc

y1 number

The y-coordinate of the first tangent point of the arc

x2 number

The x-coordinate of the end of the arc

y2 number

The y-coordinate of the end of the arc

radius number

The radius of the arc

Returns:
Type Description
PIXI.Graphics This Graphics object. Good for chaining method calls

beginFill (color, alpha) PIXI.Graphics

Specifies a simple one-color fill that subsequent calls to other Graphics methods (such as lineTo() or drawCircle()) use when drawing.

Name Type Attributes Default Description
color number <optional>
0

the color of the fill

alpha number <optional>
1

the alpha of the fill

Returns:
Type Description
PIXI.Graphics This Graphics object. Good for chaining method calls

Begin adding holes to the last draw shape IMPORTANT: holes must be fully inside a shape to work Also weirdness ensues if holes overlap! Ellipses, Circles, Rectangles and Rounded Rectangles cannot be holes or host for holes in CanvasRenderer, please use moveTo lineTo, quadraticCurveTo if you rely on pixi-legacy bundle.

Returns:
Type Description
PIXI.Graphics Returns itself.

beginTextureFill (options) PIXI.Graphics

Begin the texture fill

Name Type Attributes Default Description
options object <optional>

Object object.

options.texture PIXI.Texture <optional>
PIXI.Texture.WHITE

Texture to fill

options.color number <optional>
0xffffff

Background to fill behind texture

options.alpha number <optional>
1

Alpha of fill

options.matrix PIXI.Matrix <optional>
null

Transform matrix

Returns:
Type Description
PIXI.Graphics This Graphics object. Good for chaining method calls

bezierCurveTo (cpX, cpY, cpX2, cpY2, toX, toY) PIXI.Graphics

Calculate the points for a bezier curve and then draws it.

Name Type Description
cpX number

Control point x

cpY number

Control point y

cpX2 number

Second Control point x

cpY2 number

Second Control point y

toX number

Destination point x

toY number

Destination point y

Returns:
Type Description
PIXI.Graphics This Graphics object. Good for chaining method calls

Clears the graphics that were drawn to this Graphics object, and resets fill and line style settings.

Returns:
Type Description
PIXI.Graphics This Graphics object. Good for chaining method calls

Creates a new Graphics object with the same values as this one. Note that only the geometry of the object is cloned, not its transform (position,scale,etc)

Returns:
Type Description
PIXI.Graphics A clone of the graphics object

Closes the current path.

Returns:
Type Description
PIXI.Graphics Returns itself.

containsPoint (point) boolean

Tests if a point is inside this graphics object

Name Type Description
point PIXI.IPointData

the point to test

Returns:
Type Description
boolean the result of the test

destroy (options) void overrides

Destroys the Graphics object.

Name Type Attributes Default Description
options object | boolean <optional>

Options parameter. A boolean will act as if all options have been set to that value

options.children boolean <optional>
false

if set to true, all the children will have their destroy method called as well. 'options' will be passed on to those calls.

options.texture boolean <optional>
false

Only used for child Sprites if options.children is set to true Should it destroy the texture of the child sprite

options.baseTexture boolean <optional>
false

Only used for child Sprites if options.children is set to true Should it destroy the base texture of the child sprite

drawCircle (x, y, radius) PIXI.Graphics

Draws a circle.

Name Type Description
x number

The X coordinate of the center of the circle

y number

The Y coordinate of the center of the circle

radius number

The radius of the circle

Returns:
Type Description
PIXI.Graphics This Graphics object. Good for chaining method calls

drawEllipse (x, y, width, height) PIXI.Graphics

Draws an ellipse.

Name Type Description
x number

The X coordinate of the center of the ellipse

y number

The Y coordinate of the center of the ellipse

width number

The half width of the ellipse

height number

The half height of the ellipse

Returns:
Type Description
PIXI.Graphics This Graphics object. Good for chaining method calls

drawPolygon (…path) PIXI.Graphics

Draws a polygon using the given path.

Name Type Description
path Array<number> | Array<PIXI.Point> | PIXI.Polygon

The path data used to construct the polygon.

Returns:
Type Description
PIXI.Graphics This Graphics object. Good for chaining method calls

drawRect (x, y, width, height) PIXI.Graphics

Draws a rectangle shape.

Name Type Description
x number

The X coord of the top-left of the rectangle

y number

The Y coord of the top-left of the rectangle

width number

The width of the rectangle

height number

The height of the rectangle

Returns:
Type Description
PIXI.Graphics This Graphics object. Good for chaining method calls

drawRoundedRect (x, y, width, height, radius) PIXI.Graphics

Draw a rectangle shape with rounded/beveled corners.

Name Type Description
x number

The X coord of the top-left of the rectangle

y number

The Y coord of the top-left of the rectangle

width number

The width of the rectangle

height number

The height of the rectangle

radius number

Radius of the rectangle corners

Returns:
Type Description
PIXI.Graphics This Graphics object. Good for chaining method calls

drawShape (shape) PIXI.Graphics

Draw any shape.

Name Type Description
shape PIXI.Circle | PIXI.Ellipse | PIXI.Polygon | PIXI.Rectangle | PIXI.RoundedRectangle

Shape to draw

Returns:
Type Description
PIXI.Graphics This Graphics object. Good for chaining method calls

drawStar (x, y, points, radius, innerRadius, rotation) PIXI.Graphics

Draw a star shape with an arbitrary number of points.

Name Type Attributes Default Description
x number

Center X position of the star

y number

Center Y position of the star

points number

The number of points of the star, must be > 1

radius number

The outer radius of the star

innerRadius number <optional>

The inner radius between points, default half radius

rotation number <optional>
0

The rotation of the star in radians, where 0 is vertical

Returns:
Type Description
PIXI.Graphics This Graphics object. Good for chaining method calls

Applies a fill to the lines and shapes that were added since the last call to the beginFill() method.

Returns:
Type Description
PIXI.Graphics This Graphics object. Good for chaining method calls

End adding holes to the last draw shape

Returns:
Type Description
PIXI.Graphics Returns itself.

generateCanvasTexture (scaleMode, resolution) PIXI.Texture

Generates a canvas texture. Only available with pixi.js-legacy bundle or the @pixi/canvas-graphics package.

Name Type Description
scaleMode PIXI.SCALE_MODES

The scale mode of the texture.

resolution number

The resolution of the texture.

Returns:
Type Description
PIXI.Texture The new texture.

isFastRect () boolean

True if graphics consists of one rectangle, and thus, can be drawn like a Sprite and masked with gl.scissor.

Returns:
Type Description
boolean True if only 1 rect.

lineStyle (options) PIXI.Graphics

Specifies the line style used for subsequent calls to Graphics methods such as the lineTo() method or the drawCircle() method.

Name Type Attributes Default Description
options object <optional>

Line style options

options.width number <optional>
0

width of the line to draw, will update the objects stored style

options.color number <optional>
0x0

color of the line to draw, will update the objects stored style

options.alpha number <optional>
1

alpha of the line to draw, will update the objects stored style

options.alignment number <optional>
0.5

alignment of the line to draw, (0 = inner, 0.5 = middle, 1 = outter)

options.native boolean <optional>
false

If true the lines will be draw using LINES instead of TRIANGLE_STRIP

options.cap PIXI.LINE_CAP <optional>
PIXI.LINE_CAP.BUTT

line cap style

options.join PIXI.LINE_JOIN <optional>
PIXI.LINE_JOIN.MITER

line join style

options.miterLimit number <optional>
10

miter limit ratio

Returns:
Type Description
PIXI.Graphics This Graphics object. Good for chaining method calls

lineTextureStyle (options) PIXI.Graphics

Like line style but support texture for line fill.

Name Type Attributes Default Description
options object <optional>

Collection of options for setting line style.

options.width number <optional>
0

width of the line to draw, will update the objects stored style

options.texture PIXI.Texture <optional>
PIXI.Texture.WHITE

Texture to use

options.color number <optional>
0x0

color of the line to draw, will update the objects stored style. Default 0xFFFFFF if texture present.

options.alpha number <optional>
1

alpha of the line to draw, will update the objects stored style

options.matrix PIXI.Matrix <optional>
null

Texture matrix to transform texture

options.alignment number <optional>
0.5

alignment of the line to draw, (0 = inner, 0.5 = middle, 1 = outter)

options.native boolean <optional>
false

If true the lines will be draw using LINES instead of TRIANGLE_STRIP

options.cap PIXI.LINE_CAP <optional>
PIXI.LINE_CAP.BUTT

line cap style

options.join PIXI.LINE_JOIN <optional>
PIXI.LINE_JOIN.MITER

line join style

options.miterLimit number <optional>
10

miter limit ratio

Returns:
Type Description
PIXI.Graphics This Graphics object. Good for chaining method calls

Draws a line using the current line style from the current drawing position to (x, y); The current drawing position is then set to (x, y).

Name Type Description
x number

the X coordinate to draw to

y number

the Y coordinate to draw to

Returns:
Type Description
PIXI.Graphics This Graphics object. Good for chaining method calls

Moves the current drawing position to x, y.

Name Type Description
x number

the X coordinate to move to

y number

the Y coordinate to move to

Returns:
Type Description
PIXI.Graphics This Graphics object. Good for chaining method calls

quadraticCurveTo (cpX, cpY, toX, toY) PIXI.Graphics

Calculate the points for a quadratic bezier curve and then draws it. Based on: https://stackoverflow.com/questions/785097/how-do-i-implement-a-bezier-curve-in-c

Name Type Description
cpX number

Control point x

cpY number

Control point y

toX number

Destination point x

toY number

Destination point y

Returns:
Type Description
PIXI.Graphics This Graphics object. Good for chaining method calls

setMatrix (matrix) PIXI.Graphics

Apply a matrix to the positional data.

Name Type Description
matrix PIXI.Matrix

Matrix to use for transform current shape.

Returns:
Type Description
PIXI.Graphics Returns itself.

_calculateBounds () void protected overrides

Retrieves the bounds of the graphic shape as a rectangle object

_initCurve (x, y) void protected

Initialize the curve

Name Type Attributes Default Description
x number <optional>
0
y number <optional>
0

_populateBatches () void protected

Populating batches for rendering

_render (renderer) void protected overrides

Renders the object using the WebGL renderer

Name Type Description
renderer PIXI.Renderer

The renderer

_renderBatched (renderer) void protected

Renders the batches using the BathedRenderer plugin

Name Type Description
renderer PIXI.Renderer

The renderer

_renderDirect (renderer) void protected

Renders the graphics direct

Name Type Description
renderer PIXI.Renderer

The renderer

_resolveDirectShader (renderer) PIXI.Shader protected

Resolves shader for direct rendering

Name Type Description
renderer PIXI.Renderer

The renderer

Returns:
Type Description
PIXI.Shader

calculateTints () void protected

Recalcuate the tint by applying tin to batches using Graphics tint.

calculateVertices () void protected

If there's a transform update or a change to the shape of the geometry, recaculate the vertices.

finishPoly () void protected

Finish the polygon object.

startPoly () void protected

Start a polygon object internally

Inherited Properties

From class PIXI.Container

children Array<PIXI.DisplayObject> inherited

The array of children of this container.

height number inherited

The height of the Container, setting this will actually modify the scale to achieve the value set

interactiveChildren boolean inherited

Determines if the children to the displayObject can be clicked/touched Setting this to false allows PixiJS to bypass a recursive hitTest function

sortableChildren boolean inherited

If set to true, the container will sort its children by zIndex value when updateTransform() is called, or manually if sortChildren() is called.

This actually changes the order of elements in the array, so should be treated as a basic solution that is not performant compared to other solutions, such as @link https://github.com/pixijs/pixi-display

Also be aware of that this may not work nicely with the addChildAt() function, as the zIndex sorting may cause the child to automatically sorted to another position.

See:

sortDirty boolean inherited

Should children be sorted by zIndex at the next updateTransform call.

Will get automatically set to true if a new child is added, or if a child's zIndex changes.

width number inherited

The width of the Container, setting this will actually modify the scale to achieve the value set

From class PIXI.DisplayObject

_accessibleActive boolean inherited

TODO
  • Needs docs.

_accessibleDiv boolean inherited

TODO
  • Needs docs.

The bounds object, this is used to calculate and store the bounds of the displayObject.

_localBounds PIXI.Bounds inherited

Local bounds object, swapped with _bounds when using getLocalBounds().

accessible boolean inherited

Flag for if the object is accessible. If true AccessibilityManager will overlay a shadow div with attributes set

accessibleChildren boolean inherited

Setting to false will prevent any children inside this container to be accessible. Defaults to true.

Default Value:
  • true

accessibleHint string inherited

Sets the aria-label attribute of the shadow div

accessiblePointerEvents string inherited

Specify the pointer-events the accessible div will use Defaults to auto.

Default Value:
  • 'auto'

accessibleTitle ?string inherited

Sets the title attribute of the shadow div If accessibleTitle AND accessibleHint has not been this will default to 'displayObject [tabIndex]'

accessibleType string inherited

Specify the type of div the accessible layer is. Screen readers treat the element differently depending on this type. Defaults to button.

Default Value:
  • 'button'

alpha number inherited

The opacity of the object.

angle number inherited

The angle of the object in degrees. 'rotation' and 'angle' have the same effect on a display object; rotation is in radians, angle is in degrees.

buttonMode boolean inherited

If enabled, the mouse cursor use the pointer behavior when hovered over the displayObject if it is interactive Setting this changes the 'cursor' property to 'pointer'.

Example

 const sprite = new PIXI.Sprite(texture);
 sprite.interactive = true;
 sprite.buttonMode = true;

cursor string inherited

This defines what cursor mode is used when the mouse cursor is hovered over the displayObject.

See:
Example

 const sprite = new PIXI.Sprite(texture);
 sprite.interactive = true;
 sprite.cursor = 'wait';

The area the filter is applied to. This is used as more of an optimization rather than figuring out the dimensions of the displayObject each frame you can set this rectangle.

Also works as an interaction mask.

filters Array<PIXI.Filter> inherited

Sets the filters for the displayObject.

  • IMPORTANT: This is a WebGL only feature and will be ignored by the canvas renderer. To remove filters simply set this property to 'null'.

Interaction shape. Children will be hit first, then this shape will be checked. Setting this will cause this shape to be checked in hit tests rather than the displayObject's bounds.

Example

 const sprite = new PIXI.Sprite(texture);
 sprite.interactive = true;
 sprite.hitArea = new PIXI.Rectangle(0, 0, 100, 100);

interactive boolean inherited

Enable interaction events for the DisplayObject. Touch, pointer and mouse events will not be emitted unless interactive is set to true.

Example

 const sprite = new PIXI.Sprite(texture);
 sprite.interactive = true;
 sprite.on('tap', (event) => {
    //handle event
 });

isMask boolean inherited

Does any other displayObject use this object as a mask?

isSprite boolean inherited

used to fast check if a sprite is.. a sprite!

localTransform PIXI.Matrix inherited

Current transform of the object based on local factors: position, scale, other stuff.

Sets a mask for the displayObject. A mask is an object that limits the visibility of an object to the shape of the mask applied to it. In PixiJS a regular mask must be a PIXI.Graphics or a PIXI.Sprite object. This allows for much faster masking in canvas as it utilities shape clipping. To remove a mask, set this property to null.

For sprite mask both alpha and red channel are used. Black mask is the same as transparent mask.

TODO
  • At the moment, PIXI.CanvasRenderer doesn't support PIXI.Sprite as mask.
Example

 const graphics = new PIXI.Graphics();
 graphics.beginFill(0xFF3300);
 graphics.drawRect(50, 250, 100, 100);
 graphics.endFill();

 const sprite = new PIXI.Sprite(texture);
 sprite.mask = graphics;

name string inherited

The instance name of the object.

The display object container that contains this display object.

The center of rotation, scaling, and skewing for this display object in its local space. The position is the projection of pivot in the parent's local space.

By default, the pivot is the origin (0, 0).

Since:
  • PixiJS 4

The coordinate of the object relative to the local coordinates of the parent.

Since:
  • PixiJS 4

renderable boolean inherited

Can this object be rendered, if false the object will not be drawn but the updateTransform methods will still be called.

Only affects recursive calls from parent. You can ask for bounds manually.

rotation number inherited

The rotation of the object in radians. 'rotation' and 'angle' have the same effect on a display object; rotation is in radians, angle is in degrees.

The scale factors of this object along the local coordinate axes.

The default scale is (1, 1).

Since:
  • PixiJS 4

The skew factor for the object in radians.

Since:
  • PixiJS 4

World transform and local transform of this object. This will become read-only later, please do not assign anything there unless you know what are you doing.

visible boolean inherited

The visibility of the object. If false the object will not be drawn, and the updateTransform function will not be called.

Only affects recursive calls from parent. You can ask for bounds or call updateTransform manually.

worldAlpha number inherited

The multiplied alpha of the displayObject.

worldTransform PIXI.Matrix inherited

Current transform of the object based on world (parent) factors.

worldVisible boolean inherited

Indicates if the object is globally visible.

x number inherited

The position of the displayObject on the x axis relative to the local coordinates of the parent. An alias to position.x

y number inherited

The position of the displayObject on the y axis relative to the local coordinates of the parent. An alias to position.y

zIndex number inherited

The zIndex of the displayObject.

If a container has the sortableChildren property set to true, children will be automatically sorted by zIndex value; a higher value will mean it will be moved towards the end of the array, and thus rendered on top of other display objects within the same container.

See:

_boundsID number protected inherited

Flags the cached bounds as dirty.

_boundsRect PIXI.Bounds protected inherited

Cache of this display-object's bounds-rectangle.

_destroyed boolean protected inherited

If the object has been destroyed via destroy(). If true, it should not be used.

_enabledFilters Array<PIXI.Filter> protected inherited

Currently enabled filters

_lastSortedIndex number protected inherited

Which index in the children array the display component was before the previous zIndex sort. Used by containers to help sort objects with the same zIndex, by using previous array index as the decider.

_localBoundsRect PIXI.Bounds protected inherited

Cache of this display-object's local-bounds rectangle.

_mask PIXI.Container | PIXI.MaskData | unknown protected inherited

The original, cached mask of the object.

_tempDisplayObjectParent PIXI.Container protected inherited

_zIndex number protected inherited

The zIndex of the displayObject. A higher value will mean it will be rendered on top of other displayObjects within the same container.

Inherited Methods

From class PIXI.Container

Adds one or more children to the container.

Multiple items can be added like so: myContainer.addChild(thingOne, thingTwo, thingThree)

Name Type Description
children PIXI.DisplayObject

The DisplayObject(s) to add to the container

Returns:
Type Description
PIXI.DisplayObject The first child that was added.

addChildAt (child, index) PIXI.DisplayObject inherited

Adds a child to the container at a specified index. If the index is out of bounds an error will be thrown

Name Type Description
child PIXI.DisplayObject

The child to add

index number

The index to place the child in

Returns:
Type Description
PIXI.DisplayObject The child that was added.

calculateBounds () void inherited

Recalculates the bounds of the container.

This implementation will automatically fit the children's bounds into the calculation. Each child's bounds is limited to its mask's bounds or filterArea, if any is applied.

containerUpdateTransform inherited

Container default updateTransform, does update children of container. Will crash if there's no parent element.

Returns the child at the specified index

Name Type Description
index number

The index to get the child at

Returns:
Type Description
PIXI.DisplayObject The child at the given index, if any.

getChildByName (name, deep) PIXI.DisplayObject inherited

Returns the display object in the container.

Recursive searches are done in a preorder traversal.

Name Type Attributes Default Description
name string

Instance name.

deep boolean <optional>
false

Whether to search recursively

Returns:
Type Description
PIXI.DisplayObject The child with the specified name.

getChildIndex (child) number inherited

Returns the index position of a child DisplayObject instance

Name Type Description
child PIXI.DisplayObject

The DisplayObject instance to identify

Returns:
Type Description
number The index position of the child display object to identify

getLocalBounds (rect, skipChildrenUpdate) PIXI.Rectangle inherited

Retrieves the local bounds of the displayObject as a rectangle object.

Calling getLocalBounds may invalidate the _bounds of the whole subtree below. If using it inside a render() call, it is advised to call getBounds() immediately after to recalculate the world bounds of the subtree.

Name Type Attributes Default Description
rect PIXI.Rectangle <optional>

Optional rectangle to store the result of the bounds calculation.

skipChildrenUpdate boolean <optional>
false

Setting to true will stop re-calculation of children transforms, it was default behaviour of pixi 4.0-5.2 and caused many problems to users.

Returns:
Type Description
PIXI.Rectangle The rectangular bounding area.

removeChild (…children) PIXI.DisplayObject inherited

Removes one or more children from the container.

Name Type Description
children PIXI.DisplayObject

The DisplayObject(s) to remove

Returns:
Type Description
PIXI.DisplayObject The first child that was removed.

Removes a child from the specified index position.

Name Type Description
index number

The index to get the child from

Returns:
Type Description
PIXI.DisplayObject The child that was removed.

removeChildren (beginIndex, endIndex) Array<PIXI.DisplayObject> inherited

Removes all children from this container that are within the begin and end indexes.

Name Type Attributes Default Description
beginIndex number <optional>
0

The beginning position.

endIndex number <optional>
this.children.length

The ending position. Default value is size of the container.

Returns:
Type Description
Array<PIXI.DisplayObject> List of removed children

render (renderer) void inherited

Renders the object using the WebGL renderer.

The _render method is be overriden for rendering the contents of the container itself. This render method will invoke it, and also invoke the render methods of all children afterward.

If renderable or visible is false or if worldAlpha is not positive, this implementation will entirely skip rendering. See PIXI.DisplayObject for choosing between renderable or visible. Generally, setting alpha to zero is not recommended for purely skipping rendering.

When your scene becomes large (especially when it is larger than can be viewed in a single screen), it is advised to employ culling to automatically skip rendering objects outside of the current screen. The @pixi-essentials/cull and pixi-cull packages do this out of the box.

The renderAdvanced method is internally used when when masking or filtering is applied on a container. This does, however, break batching and can affect performance when masking and filtering is applied extensively throughout the scene graph.

Name Type Description
renderer PIXI.Renderer

The renderer

renderCanvas (renderer) void inherited

Renders the object using the Canvas renderer

Name Type Description
renderer PIXI.CanvasRenderer

The renderer

renderWebGL (renderer) void Deprecated`` : since 5.0.0 inherited

Name Type Description
renderer PIXI.Renderer

Instance of renderer

See:

setChildIndex (child, index) void inherited

Changes the position of an existing child in the display object container

Name Type Description
child PIXI.DisplayObject

The child DisplayObject instance for which you want to change the index number

index number

The resulting index number for the child display object

sortChildren () void inherited

Sorts children by zIndex. Previous order is mantained for 2 children with the same zIndex.

swapChildren (child, child2) void inherited

Swaps the position of 2 Display Objects within this container.

Name Type Description
child PIXI.DisplayObject

First display object to swap

child2 PIXI.DisplayObject

Second display object to swap

updateTransform () void inherited

Updates the transform on all children of this container for rendering

onChildrenChange (_length) void protected inherited

Overridable method that can be used by Container subclasses whenever the children array is modified

Name Type Attributes Description
_length number <optional>

renderAdvanced (renderer) void protected inherited

Render the object using the WebGL renderer and advanced features.

Name Type Description
renderer PIXI.Renderer

The renderer

From class PIXI.DisplayObject

_recursivePostUpdateTransform () void inherited

Recursively updates transform of all objects from the root to this one internal function for toLocal()

disableTempParent (cacheParent) void inherited

Pair method for enableTempParent

Name Type Description
cacheParent PIXI.DisplayObject

Actual parent of element

displayObjectUpdateTransform inherited

DisplayObject default updateTransform, does not update children of container. Will crash if there's no parent element.

Used in Renderer, cacheAsBitmap and other places where you call an updateTransform on root

const cacheParent = elem.enableTempParent();
elem.updateTransform();
elem.disableTempParent(cacheParent);
Returns:
Type Description
PIXI.DisplayObject current parent

getBounds (skipUpdate, rect) PIXI.Rectangle inherited

Calculates and returns the (world) bounds of the display object as a Rectangle.

This method is expensive on containers with a large subtree (like the stage). This is because the bounds of a container depend on its children's bounds, which recursively causes all bounds in the subtree to be recalculated. The upside, however, is that calling getBounds once on a container will indeed update the bounds of all children (the whole subtree, in fact). This side effect should be exploited by using displayObject._bounds.getRectangle() when traversing through all the bounds in a scene graph. Otherwise, calling getBounds on each object in a subtree will cause the total cost to increase quadratically as its height increases.

  • The transforms of all objects in a container's subtree and of all ancestors are updated.
  • The world bounds of all display objects in a container's subtree will also be recalculated.

The _bounds object stores the last calculation of the bounds. You can use to entirely skip bounds calculation if needed.

const lastCalculatedBounds = displayObject._bounds.getRectangle(optionalRect);

Do know that usage of getLocalBounds can corrupt the _bounds of children (the whole subtree, actually). This is a known issue that has not been solved. See getLocalBounds for more details.

getBounds should be called with skipUpdate equal to true in a render() call. This is because the transforms are guaranteed to be update-to-date. In fact, recalculating inside a render() call may cause corruption in certain cases.

Name Type Attributes Description
skipUpdate boolean <optional>

Setting to true will stop the transforms of the scene graph from being updated. This means the calculation returned MAY be out of date BUT will give you a nice performance boost.

rect PIXI.Rectangle <optional>

Optional rectangle to store the result of the bounds calculation.

Returns:
Type Description
PIXI.Rectangle The minimum axis-aligned rectangle in world space that fits around this object.

getGlobalPosition (point, skipUpdate) PIXI.Point inherited

Returns the global position of the displayObject. Does not depend on object scale, rotation and pivot.

Name Type Attributes Default Description
point PIXI.Point <optional>
new PIXI.Point()

The point to write the global value to.

skipUpdate boolean <optional>
false

Setting to true will stop the transforms of the scene graph from being updated. This means the calculation returned MAY be out of date BUT will give you a nice performance boost.

Returns:
Type Description
PIXI.Point The updated point.

Set the parent Container of this DisplayObject.

Name Type Description
container PIXI.Container

The Container to add this DisplayObject to.

Returns:
Type Description
PIXI.Container The Container that this DisplayObject was added to.

setTransform (x, y, scaleX, scaleY, rotation, skewX, skewY, pivotX, pivotY) PIXI.DisplayObject inherited

Convenience function to set the position, scale, skew and pivot at once.

Name Type Attributes Default Description
x number <optional>
0

The X position

y number <optional>
0

The Y position

scaleX number <optional>
1

The X scale value

scaleY number <optional>
1

The Y scale value

rotation number <optional>
0

The rotation

skewX number <optional>
0

The X skew value

skewY number <optional>
0

The Y skew value

pivotX number <optional>
0

The X pivot value

pivotY number <optional>
0

The Y pivot value

Returns:
Type Description
PIXI.DisplayObject The DisplayObject instance

toGlobal (position, point, skipUpdate) PIXI.Point inherited

Calculates the global position of the display object.

Name Type Attributes Default Description
position PIXI.IPointData

The world origin to calculate from.

point PIXI.Point <optional>

A Point object in which to store the value, optional (otherwise will create a new Point).

skipUpdate boolean <optional>
false

Should we skip the update transform.

Returns:
Type Description
PIXI.Point A point object representing the position of this object.

toLocal (position, from, point, skipUpdate) PIXI.Point inherited

Calculates the local position of the display object relative to another point.

Name Type Attributes Default Description
position PIXI.IPointData

The world origin to calculate from.

from PIXI.DisplayObject <optional>

The DisplayObject to calculate the global position from.

point PIXI.Point <optional>

A Point object in which to store the value, optional (otherwise will create a new Point).

skipUpdate boolean <optional>
false

Should we skip the update transform

Returns:
Type Description
PIXI.Point A point object representing the position of this object

Inherited Events

From class PIXI.Container

Fired when a DisplayObject is added to this Container.

Name Type Description
child PIXI.DisplayObject

The child added to the Container.

container PIXI.Container

The container that added the child.

index number

The children's index of the added child.

From class PIXI.DisplayObject

Fired when a pointer device button (usually a mouse left-button) is pressed and released on the display object. DisplayObject's interactive property must be set to true to fire event.

Name Type Description
event PIXI.InteractionEvent

Interaction event

Fired when a pointer device button (usually a mouse left-button) is pressed on the display. object. DisplayObject's interactive property must be set to true to fire event.

Name Type Description
event PIXI.InteractionEvent

Interaction event

Fired when a pointer device (usually a mouse) is moved while over the display object. DisplayObject's interactive property must be set to true to fire event.

Name Type Description
event PIXI.InteractionEvent

Interaction event

Fired when a pointer device (usually a mouse) is moved off the display object. DisplayObject's interactive property must be set to true to fire event.

Name Type Description
event PIXI.InteractionEvent

Interaction event

Fired when a pointer device (usually a mouse) is moved onto the display object. DisplayObject's interactive property must be set to true to fire event.

Name Type Description
event PIXI.InteractionEvent

Interaction event

Fired when a pointer device button (usually a mouse left-button) is released over the display object. DisplayObject's interactive property must be set to true to fire event.

Name Type Description
event PIXI.InteractionEvent

Interaction event

Fired when a pointer device button (usually a mouse left-button) is released outside the display object that initially registered a mousedown. DisplayObject's interactive property must be set to true to fire event.

Name Type Description
event PIXI.InteractionEvent

Interaction event

Fired when the operating system cancels a pointer event. DisplayObject's interactive property must be set to true to fire event.

Name Type Description
event PIXI.InteractionEvent

Interaction event

Fired when a pointer device button is pressed on the display object. DisplayObject's interactive property must be set to true to fire event.

Name Type Description
event PIXI.InteractionEvent

Interaction event

Fired when a pointer device is moved while over the display object. DisplayObject's interactive property must be set to true to fire event.

Name Type Description
event PIXI.InteractionEvent

Interaction event

Fired when a pointer device is moved off the display object. DisplayObject's interactive property must be set to true to fire event.

Name Type Description
event PIXI.InteractionEvent

Interaction event

Fired when a pointer device is moved onto the display object. DisplayObject's interactive property must be set to true to fire event.

Name Type Description
event PIXI.InteractionEvent

Interaction event

Fired when a pointer device button is pressed and released on the display object. DisplayObject's interactive property must be set to true to fire event.

Name Type Description
event PIXI.InteractionEvent

Interaction event

Fired when a pointer device button is released over the display object. DisplayObject's interactive property must be set to true to fire event.

Name Type Description
event PIXI.InteractionEvent

Interaction event

Fired when a pointer device button is released outside the display object that initially registered a pointerdown. DisplayObject's interactive property must be set to true to fire event.

Name Type Description
event PIXI.InteractionEvent

Interaction event

Fired when a DisplayObject is removed from this Container.

Name Type Description
child PIXI.DisplayObject

The child removed from the Container.

container PIXI.Container

The container that removed removed the child.

index number

The former children's index of the removed child

Fired when a pointer device secondary button (usually a mouse right-button) is pressed and released on the display object. DisplayObject's interactive property must be set to true to fire event.

Name Type Description
event PIXI.InteractionEvent

Interaction event

Fired when a pointer device secondary button (usually a mouse right-button) is pressed on the display object. DisplayObject's interactive property must be set to true to fire event.

Name Type Description
event PIXI.InteractionEvent

Interaction event

Fired when a pointer device secondary button (usually a mouse right-button) is released over the display object. DisplayObject's interactive property must be set to true to fire event.

Name Type Description
event PIXI.InteractionEvent

Interaction event

Fired when a pointer device secondary button (usually a mouse right-button) is released outside the display object that initially registered a rightdown. DisplayObject's interactive property must be set to true to fire event.

Name Type Description
event PIXI.InteractionEvent

Interaction event

Fired when a touch point is placed and removed from the display object. DisplayObject's interactive property must be set to true to fire event.

Name Type Description
event PIXI.InteractionEvent

Interaction event

Fired when the operating system cancels a touch. DisplayObject's interactive property must be set to true to fire event.

Name Type Description
event PIXI.InteractionEvent

Interaction event

Fired when a touch point is removed from the display object. DisplayObject's interactive property must be set to true to fire event.

Name Type Description
event PIXI.InteractionEvent

Interaction event

Fired when a touch point is removed outside of the display object that initially registered a touchstart. DisplayObject's interactive property must be set to true to fire event.

Name Type Description
event PIXI.InteractionEvent

Interaction event

Fired when a touch point is moved along the display object. DisplayObject's interactive property must be set to true to fire event.

Name Type Description
event PIXI.InteractionEvent

Interaction event

Fired when a touch point is placed on the display object. DisplayObject's interactive property must be set to true to fire event.

Name Type Description
event PIXI.InteractionEvent

Interaction event

Fired when this DisplayObject is added to a Container.

Name Type Description
container PIXI.Container

The container added to.

Fired when this DisplayObject is removed from a Container.

Name Type Description
container PIXI.Container

The container removed from.