Options
All
  • Public
  • Public/Protected
  • All
Menu

The base class for all objects that are rendered on the screen.

This is an abstract class and can not be used on its own; rather it should be extended.

Display objects implemented in PixiJS

Display Object Description
PIXI.Container Adds support for children to DisplayObject
PIXI.Graphics Shape-drawing display object similar to the Canvas API
PIXI.Sprite Draws textures (i.e. images)
PIXI.Text Draws text using the Canvas API internally
PIXI.BitmapText More scaleable solution for text rendering, reusing glyph textures
PIXI.TilingSprite Draws textures/images in a tiled fashion
PIXI.AnimatedSprite Draws an animation of multiple images
PIXI.Mesh Provides a lower-level API for drawing meshes with custom data
PIXI.NineSlicePlane Mesh-related
PIXI.SimpleMesh v4-compatibile mesh
PIXI.SimplePlane Mesh-related
PIXI.SimpleRope Mesh-related

Transforms

The [transform]{@link DisplayObject#transform} of a display object describes the projection from its local coordinate space to its parent's local coordinate space. The following properties are derived from the transform:

Property Description
[pivot]{@link PIXI.DisplayObject#pivot} Invariant under rotation, scaling, and skewing. The projection of into the parent's space of the pivot is equal to position, regardless of the other three transformations. In other words, It is the center of rotation, scaling, and skewing.
[position]{@link PIXI.DisplayObject#position} Translation. This is the position of the [pivot]{@link PIXI.DisplayObject#pivot} in the parent's local space. The default value of the pivot is the origin (0,0). If the top-left corner of your display object is (0,0) in its local space, then the position will be its top-left corner in the parent's local space.
[scale]{@link PIXI.DisplayObject#scale} Scaling. This will stretch (or compress) the display object's projection. The scale factors are along the local coordinate axes. In other words, the display object is scaled before rotated or skewed. The center of scaling is the [pivot]{@link PIXI.DisplayObject#pivot}.
[rotation]{@link PIXI.DisplayObject#rotation} Rotation. This will rotate the display object's projection by this angle (in radians).
[skew]{@link PIXI.DisplayObject#skew}

Skewing. This can be used to deform a rectangular display object into a parallelogram.

In PixiJS, skew has a slightly different behaviour than the conventional meaning. It can be thought of the net rotation applied to the coordinate axes (separately). For example, if "skew.x" is ⍺ and "skew.y" is β, then the line x = 0 will be rotated by ⍺ (y = -x*cot⍺) and the line y = 0 will be rotated by β (y = x*tanβ). A line y = x*tanϴ (i.e. a line at angle ϴ to the x-axis in local-space) will be rotated by an angle between ⍺ and β.

It can be observed that if skew is applied equally to both axes, then it will be equivalent to applying a rotation. Indeed, if "skew.x" = -ϴ and "skew.y" = ϴ, it will produce an equivalent of "rotation" = ϴ.

Another quite interesting observation is that "skew.x", "skew.y", rotation are communtative operations. Indeed, because rotation is essentially a careful combination of the two.

angle Rotation. This is an alias for [rotation]{@link PIXI.DisplayObject#rotation}, but in degrees.
x Translation. This is an alias for position.x!
y Translation. This is an alias for position.y!
width Implemented in Container. Scaling. The width property calculates scale.x by dividing the "requested" width by the local bounding box width. It is indirectly an abstraction over scale.x, and there is no concept of user-defined width.
height Implemented in Container. Scaling. The height property calculates scale.y by dividing the "requested" height by the local bounding box height. It is indirectly an abstraction over scale.y, and there is no concept of user-defined height.

Bounds

The bounds of a display object is defined by the minimum axis-aligned rectangle in world space that can fit around it. The abstract calculateBounds method is responsible for providing it (and it should use the worldTransform to calculate in world space).

There are a few additional types of bounding boxes:

Bounds Description
World Bounds This is synonymous is the regular bounds described above. See getBounds().
Local Bounds This the axis-aligned bounding box in the parent's local space. See getLocalBounds().
Render Bounds The bounds, but including extra rendering effects like filter padding.
Projected Bounds The bounds of the projected display object onto the screen. Usually equals world bounds.
Relative Bounds The bounds of a display object when projected onto a ancestor's (or parent's) space.
Natural Bounds The bounds of an object in its own local space (not parent's space, like in local bounds)
Content Bounds The natural bounds when excluding all children of a Container.

calculateBounds

Container already implements calculateBounds in a manner that includes children.

But for a non-Container display object, the calculateBounds method must be overridden in order for getBounds and getLocalBounds to work. This method must write the bounds into this._bounds.

Generally, the following technique works for most simple cases: take the list of points forming the "hull" of the object (i.e. outline of the object's shape), and then add them using {@link PIXI.Bounds#addPointMatrix}.

calculateBounds(): void
{
    const points = [...];

    for (let i = 0, j = points.length; i < j; i++)
    {
        this._bounds.addPointMatrix(this.worldTransform, points[i]);
    }
}

You can optimize this for a large number of points by using {@link PIXI.Bounds#addVerticesMatrix} to pass them in one array together.

Alpha

This alpha sets a display object's relative opacity w.r.t its parent. For example, if the alpha of a display object is 0.5 and its parent's alpha is 0.5, then it will be rendered with 25% opacity (assuming alpha is not applied on any ancestor further up the chain).

The alpha with which the display object will be rendered is called the [worldAlpha]{@link PIXI.DisplayObject#worldAlpha}.

Renderable vs Visible

The renderable and visible properties can be used to prevent a display object from being rendered to the screen. However, there is a subtle difference between the two. When using renderable, the transforms of the display object (and its children subtree) will continue to be calculated. When using visible, the transforms will not be calculated.

It is recommended that applications use the renderable property for culling. See @pixi-essentials/cull or pixi-cull for more details.

Otherwise, to prevent an object from rendering in the general-purpose sense - visible is the property to use. This one is also better in terms of performance.

memberof

PIXI

Hierarchy

Index

Constructors

constructor

Properties

Optional _accessibleActive

_accessibleActive: boolean

Optional _accessibleDiv

_accessibleDiv: IAccessibleHTMLElement

_bounds

_bounds: Bounds

Protected _boundsID

_boundsID: number

Protected _boundsRect

_boundsRect: Rectangle

_cacheAsBitmap

_cacheAsBitmap: boolean

_cacheAsBitmapResolution

_cacheAsBitmapResolution: number

_cacheData

_cacheData: CacheData

Protected _destroyed

_destroyed: boolean

Protected _enabledFilters

_enabledFilters: Filter[]

_lastSortedIndex

_lastSortedIndex: number

_localBounds

_localBounds: Bounds

Protected _localBoundsRect

_localBoundsRect: Rectangle

_mask

Optional _trackedPointers

_trackedPointers: {}

Type declaration

Protected _zIndex

_zIndex: number

Optional accessible

accessible: boolean

Optional accessibleChildren

accessibleChildren: true

Optional accessibleHint

accessibleHint: string

Optional accessiblePointerEvents

accessiblePointerEvents: PointerEvents

Optional accessibleTitle

accessibleTitle: string

Optional accessibleType

accessibleType: string

alpha

alpha: number

Optional buttonMode

buttonMode: boolean

cacheAsBitmap

cacheAsBitmap: boolean

cacheAsBitmapResolution

cacheAsBitmapResolution: number

Optional cursor

cursor: string

displayObjectUpdateTransform

displayObjectUpdateTransform: () => void

Type declaration

    • (): void
    • Returns void

filterArea

filterArea: Rectangle

filters

filters: Filter[]

Optional hitArea

hitArea: IHitArea

Optional interactive

interactive: boolean

Optional interactiveChildren

interactiveChildren: boolean

isMask

isMask: boolean

isSprite

isSprite: boolean

name

name: string

parent

Optional renderId

renderId: number

renderable

renderable: boolean

Abstract sortDirty

sortDirty: boolean

Optional tabIndex

tabIndex: number

Private tempDisplayObjectParent

tempDisplayObjectParent: any

Optional trackedPointers

trackedPointers: {}

Type declaration

transform

transform: Transform

visible

visible: boolean

worldAlpha

worldAlpha: number

Static prefixed

prefixed: string | boolean

Accessors

Protected _tempDisplayObjectParent

  • member

    {PIXI.Container}

    Returns TemporaryDisplayObject

angle

  • get angle(): number
  • set angle(value: number): void
  • 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.

    member

    {number}

    Returns number

  • 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.

    Parameters

    • value: number

    Returns void

localTransform

  • get localTransform(): Matrix
  • Current transform of the object based on local factors: position, scale, other stuff.

    member

    {PIXI.Matrix}

    readonly

    Returns Matrix

mask

  • 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.

    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;

    todo

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

    member

    {PIXI.Container|PIXI.MaskData|null}

    Returns null | Container | MaskData

  • 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.

    Parameters

    Returns void

pivot

  • 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

    member

    {PIXI.ObservablePoint}

    Returns ObservablePoint<any>

  • 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).

    Parameters

    Returns void

position

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

    since

    PixiJS 4

    member

    {PIXI.ObservablePoint}

    Returns ObservablePoint<any>

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

    Parameters

    Returns void

rotation

  • get rotation(): number
  • set rotation(value: number): void
  • 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.

    member

    {number}

    Returns number

  • 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.

    Parameters

    • value: number

    Returns void

scale

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

    The default scale is (1, 1).

    since

    PixiJS 4

    member

    {PIXI.ObservablePoint}

    Returns ObservablePoint<any>

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

    The default scale is (1, 1).

    Parameters

    Returns void

skew

  • The skew factor for the object in radians.

    since

    PixiJS 4

    member

    {PIXI.ObservablePoint}

    Returns ObservablePoint<any>

  • The skew factor for the object in radians.

    Parameters

    Returns void

worldTransform

  • get worldTransform(): Matrix
  • Current transform of the object based on world (parent) factors.

    member

    {PIXI.Matrix}

    readonly

    Returns Matrix

worldVisible

  • get worldVisible(): boolean
  • Indicates if the object is globally visible.

    member

    {boolean}

    readonly

    Returns boolean

x

  • get x(): number
  • set x(value: number): void
  • The position of the displayObject on the x axis relative to the local coordinates of the parent. An alias to position.x

    member

    {number}

    Returns number

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

    Parameters

    • value: number

    Returns void

y

  • get y(): number
  • set y(value: number): void
  • The position of the displayObject on the y axis relative to the local coordinates of the parent. An alias to position.y

    member

    {number}

    Returns number

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

    Parameters

    • value: number

    Returns void

zIndex

  • get zIndex(): number
  • set zIndex(value: number): void
  • 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.

    member

    {number}

    see

    PIXI.Container#sortableChildren

    Returns number

  • 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.

    Parameters

    • value: number

    Returns void

Methods

_cacheAsBitmapDestroy

  • Parameters

    Returns void

_calculateCachedBounds

  • _calculateCachedBounds(): void
  • Returns void

_destroyCachedDisplayObject

  • _destroyCachedDisplayObject(): void
  • Returns void

_getCachedLocalBounds

  • Returns Rectangle

_initCachedDisplayObject

  • _initCachedDisplayObject(renderer: Renderer): void
  • Parameters

    Returns void

_initCachedDisplayObjectCanvas

  • _initCachedDisplayObjectCanvas(renderer: CanvasRenderer): void
  • Parameters

    • renderer: CanvasRenderer

    Returns void

Protected _recursivePostUpdateTransform

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

    Returns void

_renderCached

  • _renderCached(renderer: Renderer): void
  • Parameters

    Returns void

_renderCachedCanvas

  • _renderCachedCanvas(renderer: CanvasRenderer): void
  • Parameters

    • renderer: CanvasRenderer

    Returns void

addListener

Abstract calculateBounds

  • calculateBounds(): void
  • Recalculates the bounds of the display object.

    Returns void

destroy

  • Base destroy method for generic display objects. This will automatically remove the display object from its parent Container as well as remove all current event listeners and internal references. Do not use a DisplayObject after calling destroy().

    Parameters

    Returns void

disableTempParent

  • Pair method for enableTempParent

    Parameters

    Returns void

emit

  • emit(event: string | symbol, ...args: any[]): boolean
  • Calls each of the listeners registered for a given event.

    Parameters

    • event: string | symbol
    • Rest ...args: any[]

    Returns boolean

enableTempParent

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

    const cacheParent = elem.enableTempParent();
    elem.updateTransform();
    elem.disableTempParent(cacheParent);
    

    Returns DisplayObject

    current parent

eventNames

  • eventNames(): (string | symbol)[]
  • Return an array listing the events for which the emitter has registered listeners.

    Returns (string | symbol)[]

getBounds

  • 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]{@link PIXI.DisplayObject#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.

    Parameters

    • Optional skipUpdate: boolean
    • Optional rect: Rectangle

    Returns Rectangle

    The minimum axis-aligned rectangle in world space that fits around this object.

getGlobalPosition

  • getGlobalPosition(point?: Point, skipUpdate?: boolean): Point
  • Parameters

    • Optional point: Point
    • Optional skipUpdate: boolean

    Returns Point

getLocalBounds

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

    Parameters

    Returns Rectangle

    The rectangular bounding area.

listenerCount

  • listenerCount(event: string | symbol): number
  • Return the number of listeners listening to a given event.

    Parameters

    • event: string | symbol

    Returns number

listeners

  • Return the listeners registered for a given event.

    Parameters

    • event: string | symbol

    Returns ListenerFn[]

off

  • Parameters

    • event: string | symbol
    • Optional fn: ListenerFn
    • Optional context: any
    • Optional once: boolean

    Returns DisplayObject

on

  • Add a listener for a given event.

    Parameters

    • event: string | symbol
    • fn: ListenerFn
    • Optional context: any

    Returns DisplayObject

once

  • Add a one-time listener for a given event.

    Parameters

    • event: string | symbol
    • fn: ListenerFn
    • Optional context: any

    Returns DisplayObject

removeAllListeners

  • Remove all listeners, or those of the specified event.

    Parameters

    • Optional event: string | symbol

    Returns DisplayObject

Abstract removeChild

  • Parameters

    Returns void

removeListener

  • Remove the listeners of a given event.

    Parameters

    • event: string | symbol
    • Optional fn: ListenerFn
    • Optional context: any
    • Optional once: boolean

    Returns DisplayObject

Abstract render

  • Renders the object using the WebGL renderer.

    Parameters

    Returns void

Optional renderCanvas

  • renderCanvas(renderer: CanvasRenderer): void
  • Parameters

    • renderer: CanvasRenderer

    Returns void

setParent

  • Set the parent Container of this DisplayObject.

    Parameters

    • container: Container

      The Container to add this DisplayObject to.

    Returns Container

    The Container that this DisplayObject was added to.

setTransform

  • setTransform(x?: number, y?: number, scaleX?: number, scaleY?: number, rotation?: number, skewX?: number, skewY?: number, pivotX?: number, pivotY?: number): DisplayObject
  • Convenience function to set the position, scale, skew and pivot at once.

    Parameters

    • Optional x: number
    • Optional y: number
    • Optional scaleX: number
    • Optional scaleY: number
    • Optional rotation: number
    • Optional skewX: number
    • Optional skewY: number
    • Optional pivotX: number
    • Optional pivotY: number

    Returns DisplayObject

    The DisplayObject instance

toGlobal

  • toGlobal<P>(position: IPointData, point?: P, skipUpdate?: boolean): P
  • Calculates the global position of the display object.

    Type parameters

    Parameters

    • position: IPointData

      The world origin to calculate from.

    • Optional point: P
    • Optional skipUpdate: boolean

    Returns P

    A point object representing the position of this object.

toLocal

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

    Type parameters

    Parameters

    • position: IPointData

      The world origin to calculate from.

    • Optional from: DisplayObject
    • Optional point: P
    • Optional skipUpdate: boolean

    Returns P

    A point object representing the position of this object

updateTransform

  • updateTransform(): void
  • Updates the object transform for rendering.

    TODO - Optimization pass!

    Returns void

Static mixin

  • mixin(source: Dict<any>): void
  • Mixes all enumerable properties and methods from a source object to DisplayObject.

    Parameters

    • source: Dict<any>

      The source of properties and methods to mix in.

    Returns void

Generated using TypeDoc