Class: Texture


A texture stores the information that represents an image or part of an image.

It cannot be added to the display list directly; instead use it as the texture for a Sprite. If no frame is provided for a texture, then the whole image is used.

You can directly create a texture from an image and then reuse it multiple times like this :

let texture = PIXI.Texture.from('assets/image.png');
let sprite1 = new PIXI.Sprite(texture);
let sprite2 = new PIXI.Sprite(texture);

If you didnt pass the texture frame to constructor, it enables noFrame mode: it subscribes on baseTexture events, it automatically resizes at the same time as baseTexture.

Textures made from SVGs, loaded or not, cannot be used before the file finishes processing. You can check for this by checking the sprite's _textureID property.

var texture = PIXI.Texture.from('assets/image.svg');
var sprite1 = new PIXI.Sprite(texture);
//sprite1._textureID should not be undefined if the texture has finished processing the SVG file

You can use a ticker or rAF to ensure your sprites load the finished textures after processing. See issue #3068.

new PIXI.Texture (baseTexture, frame, orig, trim, rotate, anchor)

Name Type Attributes Description
baseTexture PIXI.BaseTexture

The base texture source to create the texture from

frame PIXI.Rectangle <optional>

The rectangle frame of the texture to show

orig PIXI.Rectangle <optional>

The area of original texture

trim PIXI.Rectangle <optional>

Trimmed rectangle of original texture

rotate number <optional>

indicates how the texture was rotated by texture packer. See PIXI.groupD8

anchor PIXI.IPointData <optional>

Default anchor point used for sprite placement / rotation



PIXI.Texture.EMPTY PIXI.Texture static

An empty texture, used often to not have to create multiple empty textures. Can not be destroyed.

PIXI.Texture.WHITE PIXI.Texture static

A white texture of 16x16 size, used for graphics and other things Can not be destroyed.

This is the area of the BaseTexture image to actually copy to the Canvas / WebGL when rendering, irrespective of the actual frame size or placement (which can be influenced by trimmed texture atlases)

baseTexture PIXI.BaseTexture

The base texture that this texture uses.

defaultAnchor PIXI.Point

Anchor point that is used as default if sprite is created with this texture. Changing the defaultAnchor at a later point of time will not update Sprite's anchor point.

Default Value:
  • {0,0}

The frame specifies the region of the base texture that this texture uses. Please call updateUvs() after you change coordinates of frame manually.

height number

The height of the Texture in pixels.

noFrame boolean

Does this Texture have any frame data assigned to it?

This mode is enabled automatically if no frame was passed inside constructor.

In this mode texture is subscribed to baseTexture events, and fires update on any change.

Beware, after loading or resize of baseTexture event can fired two times! If you want more control, subscribe on baseTexture itself.

texture.on('update', () => {});

Any assignment of frame switches off noFrame mode.

This is the area of original texture, before it was put in atlas

resolution number readonly

Returns resolution of baseTexture

rotate number

Indicates whether the texture is rotated inside the atlas set to 2 to compensate for texture packer rotation set to 6 to compensate for spine packer rotation can be used to rotate or mirror sprites See PIXI.groupD8 for explanation

textureCacheIds Array<string>

The ids under which this Texture has been added to the texture cache. This is automatically set as long as Texture.addToCache is used, but may not be set if a Texture is added directly to the TextureCache array.

This is the trimmed area of original texture, before it was put in atlas Please call updateUvs() after you change coordinates of trim manually.

Default TextureMatrix instance for this texture By default that object is not created because its heavy

valid boolean

This will let the renderer know if the texture is valid. If it's not then it cannot be rendered.

width number

The width of the Texture in pixels.

_updateID number protected

Update ID is observed by sprites and TextureMatrix instances. Call updateUvs() to increment it.

_uvs PIXI.TextureUvs protected

The WebGL UV data cache. Can be used as quad UV


PIXI.Texture.addToCache (texture, id) void static

Adds a Texture to the global TextureCache. This cache is shared across the whole PIXI object.

Name Type Description
texture PIXI.Texture

The Texture to add to the cache.

id string

The id that the Texture will be stored against.

PIXI.Texture.from (source, options, strict) PIXI.Texture static

Helper function that creates a new Texture based on the source you provide. The source can be - frame id, image url, video url, canvas element, video element, base texture

Name Type Attributes Default Description
source string | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | PIXI.BaseTexture

Source to create texture from

options object <optional>

See PIXI.BaseTexture's constructor for options.

options.pixiIdPrefix string <optional>

If a source has no id, this is the prefix of the generated id

strict boolean <optional>

Enforce strict-mode, see PIXI.settings.STRICT_TEXTURE_CACHE.

Type Description
PIXI.Texture The newly created texture

PIXI.Texture.fromBuffer (buffer, width, height, options) PIXI.Texture static

Create a new Texture with a BufferResource from a Float32Array. RGBA values are floats from 0 to 1.

Name Type Attributes Description
buffer Float32Array | Uint8Array

The optional array to use, if no data is provided, a new Float32Array is created.

width number

Width of the resource

height number

Height of the resource

options object <optional>

See PIXI.BaseTexture's constructor for options.

Type Description
PIXI.Texture The resulting new BaseTexture

PIXI.Texture.fromLoader (source, imageUrl, name) PIXI.Texture static

Create a texture from a source and add to the cache.

Name Type Attributes Description
source HTMLImageElement | HTMLCanvasElement

The input source.

imageUrl String

File name of texture, for cache and resolving resolution.

name String <optional>

Human readable name for the texture cache. If no name is specified, only imageUrl will be used as the cache ID.

Type Description
PIXI.Texture Output texture

PIXI.Texture.fromURL (url, options) Promise<PIXI.Texture> static

Useful for loading textures via URLs. Use instead of Texture.from because it does a better job of handling failed URLs more effectively. This also ignores PIXI.settings.STRICT_TEXTURE_CACHE. Works for Videos, SVGs, Images.

Name Type Attributes Description
url string

The remote URL to load.

options object <optional>

Optional options to include

Type Description
Promise<PIXI.Texture> A Promise that resolves to a Texture.

PIXI.Texture.removeFromCache (texture) PIXI.Texture | unknown static

Remove a Texture from the global TextureCache.

Name Type Description
texture string | PIXI.Texture

id of a Texture to be removed, or a Texture instance itself

Type Description
PIXI.Texture | unknown The Texture that was removed

castToBaseTexture () PIXI.BaseTexture

Utility function for BaseTexture|Texture cast

Type Description

Creates a new texture object that acts the same as this one.

Type Description
PIXI.Texture The new texture

destroy (destroyBase) void

Destroys this texture

Name Type Attributes Default Description
destroyBase boolean <optional>

Whether to destroy the base texture as well

update () void

Updates this texture on the gpu.

Calls the TextureResource update.

If you adjusted frame manually, please call updateUvs() instead.

updateUvs () void

Updates the internal WebGL UV cache. Use it after you change frame or trim of the texture. Call it after changing the frame

onBaseTextureUpdated (baseTexture) void protected

Called when the base texture is updated

Name Type Description
baseTexture PIXI.BaseTexture

The base texture.