PIXI.Texture
class Texture extends EventEmitter
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.
Constructor
new PIXI.Texture(baseTexture: PIXI.BaseTexture<R>, frame: PIXI.Rectangle, orig: PIXI.Rectangle, trim: PIXI.Rectangle, rotate: number, anchor: IPointData) → {}
Name | Type | Attributes | Description |
---|---|---|---|
baseTexture | PIXI.BaseTexture<R> |
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 | IPointData |
<optional> |
Default anchor point used for sprite placement / rotation |
Summary
Properties from Texture
PIXI.Texture<PIXI.Resource> |
An empty texture, used often to not have to create multiple empty textures. Can not be destroyed. |
PIXI.Texture<PIXI.CanvasResource> |
A white texture of 16x16 size, used for graphics and other things Can not be destroyed. |
PIXI.Rectangle |
|
PIXI.BaseTexture<R> |
The base texture that this texture uses. |
PIXI.Point |
|
PIXI.Rectangle |
|
number |
The height of the Texture in pixels. |
boolean |
Does this Texture have any frame data assigned to it? |
PIXI.Rectangle |
This is the area of original texture, before it was put in atlas. |
number |
|
number |
|
Array<string> |
|
PIXI.Rectangle |
|
PIXI.TextureMatrix |
Default TextureMatrix instance for this texture. By default, that object is not created because its heavy. |
boolean |
This will let the renderer know if the texture is valid. If it's not then it cannot be rendered. |
number |
The width of the Texture in pixels. |
number |
|
PIXI.TextureUvs |
|
Methods from Texture
void |
|
PIXI.Texture |
|
PIXI.Texture<PIXI.BufferResource> |
|
Promise<R<PIXI.Texture>> |
|
Promise<R<PIXI.Texture>> |
|
PIXI.Texture | null |
|
PIXI.BaseTexture |
Utility function for BaseTexture|Texture cast. |
PIXI.Texture |
|
void |
|
void |
Updates this texture on the gpu. |
void |
|
void |
|
Public Properties
static EMPTY: PIXI.Texture<PIXI.Resource>
An empty texture, used often to not have to create multiple empty textures. Can not be destroyed.
static WHITE: PIXI.Texture<PIXI.CanvasResource>
A white texture of 16x16 size, used for graphics and other things Can not be destroyed.
_frame: PIXI.Rectangle
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)
defaultAnchor: PIXI.Point = {0,0}
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.
frame: PIXI.Rectangle
The frame specifies the region of the base texture that this texture uses.
Please call updateUvs()
after you change coordinates of frame
manually.
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.
orig: PIXI.Rectangle
This is the area of original texture, before it was put in atlas.
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.
trim: PIXI.Rectangle
This is the trimmed area of original texture, before it was put in atlas
Please call updateUvs()
after you change coordinates of trim
manually.
uvMatrix: PIXI.TextureMatrix
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.
Protected Properties
protected _updateID: number
Update ID is observed by sprites and TextureMatrix instances. Call updateUvs() to increment it.
protected _uvs: PIXI.TextureUvs
The WebGL UV data cache. Can be used as quad UV.
Public Methods
static addToCache(texture: PIXI.Texture, id: string) → {void}
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. |
Type | Description |
---|---|
void |
static from(source: string | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | PIXI.BaseTexture, options: IBaseTextureOptions<RO>, strict: boolean) → {PIXI.Texture}
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 or array of sources to create texture from |
||
options | IBaseTextureOptions<RO> |
See PIXI.BaseTexture's constructor for options. |
||
options.pixiIdPrefix | string |
<optional> |
pixiid |
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 |
static fromBuffer(buffer: Float32Array | Uint8Array, width: number, height: number, options: IBaseTextureOptions<ISize>) → {PIXI.Texture<PIXI.BufferResource>}
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 | IBaseTextureOptions<ISize> |
<optional> |
See PIXI.BaseTexture's constructor for options. |
Type | Description |
---|---|
PIXI.Texture<PIXI.BufferResource> |
|
static fromLoader(source: HTMLImageElement | HTMLCanvasElement | string, imageUrl: string, name: string, options: IBaseTextureOptions) → {Promise<R<PIXI.Texture>>}
Create a texture from a source and add to the cache.
Name | Type | Attributes | Description |
---|---|---|---|
source | HTMLImageElement | HTMLCanvasElement | string |
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 |
options | IBaseTextureOptions |
<optional> |
Type | Description |
---|---|
Promise<R<PIXI.Texture>> |
|
static fromURL(url: string | string[], options: IBaseTextureOptions<RO>) → {Promise<R<PIXI.Texture>>}
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 | string[] |
The remote URL or array of URLs to load. |
|
options | IBaseTextureOptions<RO> |
<optional> |
Optional options to include |
Type | Description |
---|---|
Promise<R<PIXI.Texture>> |
|
static removeFromCache(texture: string | PIXI.Texture) → {PIXI.Texture | null}
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 | null |
|
castToBaseTexture() → {PIXI.BaseTexture}
Utility function for BaseTexture|Texture cast.
Type | Description |
---|---|
PIXI.BaseTexture |
clone() → {PIXI.Texture}
Creates a new texture object that acts the same as this one.
Type | Description |
---|---|
PIXI.Texture |
|
destroy(destroyBase: boolean) → {void}
Destroys this texture
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
destroyBase | boolean |
<optional> |
false |
Whether to destroy the base texture as well |
Type | Description |
---|---|
void |
update() → {void}
Updates this texture on the gpu.
Calls the TextureResource update.
If you adjusted frame
manually, please call updateUvs()
instead.
Type | Description |
---|---|
void |
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
Type | Description |
---|---|
void |
Protected Methods
protected onBaseTextureUpdated(baseTexture: PIXI.BaseTexture) → {void}
Called when the base texture is updated
Name | Type | Description |
---|---|---|
baseTexture | PIXI.BaseTexture |
The base texture. |
Type | Description |
---|---|
void |