new CanvasTexture(manager, key, source, width, height)
Parameters:
Name | Type | Description |
---|---|---|
manager |
Phaser.Textures.TextureManager | A reference to the Texture Manager this Texture belongs to. |
key |
string | The unique string-based key of this Texture. |
source |
HTMLCanvasElement | The canvas element that is used as the base of this texture. |
width |
number | The width of the canvas. |
height |
number | The height of the canvas. |
- Since: 3.7.0
- Source: src/textures/CanvasTexture.js (Line 14)
Extends
Members
-
buffer :ArrayBuffer
-
An ArrayBuffer the same size as the context ImageData.
Type:
- ArrayBuffer
- Since: 3.13.0
- Source: src/textures/CanvasTexture.js (Line 145)
-
<readonly> canvas :HTMLCanvasElement
-
The source Canvas Element.
Type:
- HTMLCanvasElement
- Since: 3.7.0
- Source: src/textures/CanvasTexture.js (Line 68)
-
<readonly> context :CanvasRenderingContext2D
-
The 2D Canvas Rendering Context.
Type:
- CanvasRenderingContext2D
- Since: 3.7.0
- Source: src/textures/CanvasTexture.js (Line 78)
-
customData :object
-
Any additional data that was set in the source JSON (if any), or any extra data you'd like to store relating to this texture
Type:
- object
- Since: 3.0.0
- Inherited From:
- Source: src/textures/Texture.js (Line 98)
-
data :Uint8ClampedArray
-
A Uint8ClampedArray view into the
buffer
. Use theupdate
method to populate this when the canvas changes. Note that this is unavailable in some browsers, such as Epic Browser, due to their security restrictions.Type:
- Uint8ClampedArray
- Since: 3.13.0
- Source: src/textures/CanvasTexture.js (Line 120)
-
dataSource :array
-
An array of TextureSource data instances. Used to store additional data images, such as normal maps or specular maps.
Type:
- array
- Since: 3.0.0
- Inherited From:
- Source: src/textures/Texture.js (Line 79)
-
firstFrame :string
-
The name of the first frame of the Texture.
Type:
- string
- Since: 3.0.0
- Inherited From:
- Source: src/textures/Texture.js (Line 108)
-
frames :object
-
A key-value object pair associating the unique Frame keys with the Frames objects.
Type:
- object
- Since: 3.0.0
- Inherited From:
- Source: src/textures/Texture.js (Line 89)
-
frameTotal :number
-
The total number of Frames in this Texture, including the
__BASE
frame.A Texture will always contain at least 1 frame because every Texture contains a
__BASE
frame by default, in addition to any extra frames that have been added to it, such as when parsing a Sprite Sheet or Texture Atlas.Type:
- number
- Since: 3.0.0
- Inherited From:
- Default Value:
-
- 0
- Source: src/textures/Texture.js (Line 117)
-
<readonly> height :number
-
The height of the Canvas. This property is read-only, if you wish to change it use the
setSize
method.Type:
- number
- Since: 3.7.0
- Source: src/textures/CanvasTexture.js (Line 99)
-
imageData :ImageData
-
The context image data. Use the
update
method to populate this when the canvas changes.Type:
- ImageData
- Since: 3.13.0
- Source: src/textures/CanvasTexture.js (Line 110)
-
key :string
-
The unique string-based key of this Texture.
Type:
- string
- Since: 3.0.0
- Inherited From:
- Source: src/textures/Texture.js (Line 60)
-
manager :Phaser.Textures.TextureManager
-
A reference to the Texture Manager this Texture belongs to.
Type:
- Since: 3.0.0
- Inherited From:
- Source: src/textures/Texture.js (Line 51)
-
pixels :Uint32Array
-
An Uint32Array view into the
buffer
.Type:
- Uint32Array
- Since: 3.13.0
- Source: src/textures/CanvasTexture.js (Line 136)
-
source :Array.<Phaser.Textures.TextureSource>
-
An array of TextureSource instances. These are unique to this Texture and contain the actual Image (or Canvas) data.
Type:
- Array.<Phaser.Textures.TextureSource>
- Since: 3.0.0
- Inherited From:
- Source: src/textures/Texture.js (Line 69)
-
<readonly> width :number
-
The width of the Canvas. This property is read-only, if you wish to change it use the
setSize
method.Type:
- number
- Since: 3.7.0
- Source: src/textures/CanvasTexture.js (Line 88)
Methods
-
add(name, sourceIndex, x, y, width, height)
-
Adds a new Frame to this Texture.
A Frame is a rectangular region of a TextureSource with a unique index or string-based key.
The name given must be unique within this Texture. If it already exists, this method will return
null
.Parameters:
Name Type Description name
number | string The name of this Frame. The name is unique within the Texture.
sourceIndex
number The index of the TextureSource that this Frame is a part of.
x
number The x coordinate of the top-left of this Frame.
y
number The y coordinate of the top-left of this Frame.
width
number The width of this Frame.
height
number The height of this Frame.
- Since: 3.0.0
- Inherited From:
- Source: src/textures/Texture.js (Line 137)
Returns:
The Frame that was added to this Texture, or
null
if the given name already exists. -
clear( [x] [, y] [, width] [, height])
-
Clears the given region of this Canvas Texture, resetting it back to transparent. If no region is given, the whole Canvas Texture is cleared.
Parameters:
Name Type Argument Default Description x
number <optional>
0 The x coordinate of the top-left of the region to clear.
y
number <optional>
0 The y coordinate of the top-left of the region to clear.
width
number <optional>
The width of the region.
height
number <optional>
The height of the region.
- Since: 3.7.0
- Source: src/textures/CanvasTexture.js (Line 543)
Returns:
The Canvas Texture.
-
destroy()
-
Destroys this Texture and releases references to its sources and frames.
- Since: 3.16.0
- Overrides:
- Source: src/textures/CanvasTexture.js (Line 608)
-
draw(x, y, source)
-
Draws the given Image or Canvas element to this CanvasTexture, then updates the internal ImageData buffer and arrays.
Parameters:
Name Type Description x
number The x coordinate to draw the source at.
y
number The y coordinate to draw the source at.
source
HTMLImageElement | HTMLCanvasElement The element to draw to this canvas.
- Since: 3.13.0
- Source: src/textures/CanvasTexture.js (Line 213)
Returns:
This CanvasTexture.
-
drawFrame(key [, frame] [, x] [, y])
-
Draws the given texture frame to this CanvasTexture, then updates the internal ImageData buffer and arrays.
Parameters:
Name Type Argument Default Description key
string The unique string-based key of the Texture.
frame
string | number <optional>
The string-based name, or integer based index, of the Frame to get from the Texture.
x
number <optional>
0 The x coordinate to draw the source at.
y
number <optional>
0 The y coordinate to draw the source at.
- Since: 3.16.0
- Source: src/textures/CanvasTexture.js (Line 233)
Returns:
This CanvasTexture.
-
get( [name])
-
Gets a Frame from this Texture based on either the key or the index of the Frame.
In a Texture Atlas Frames are typically referenced by a key. In a Sprite Sheet Frames are referenced by an index. Passing no value for the name returns the base texture.
Parameters:
Name Type Argument Description name
string | number <optional>
The string-based name, or integer based index, of the Frame to get from this Texture.
- Since: 3.0.0
- Inherited From:
- Source: src/textures/Texture.js (Line 225)
Returns:
The Texture Frame.
-
getCanvas()
-
Gets the Canvas Element.
- Since: 3.7.0
- Source: src/textures/CanvasTexture.js (Line 517)
Returns:
The Canvas DOM element this texture is using.
- Type
- HTMLCanvasElement
-
getContext()
-
Gets the 2D Canvas Rendering Context.
- Since: 3.7.0
- Source: src/textures/CanvasTexture.js (Line 530)
Returns:
The Canvas Rendering Context this texture is using.
- Type
- CanvasRenderingContext2D
-
getData(x, y, width, height)
-
Gets an ImageData region from this CanvasTexture from the position and size specified. You can write this back using
CanvasTexture.putData
, or manipulate it.Parameters:
Name Type Description x
number The x coordinate of the top-left of the area to get the ImageData from. Must lay within the dimensions of this CanvasTexture and be an integer.
y
number The y coordinate of the top-left of the area to get the ImageData from. Must lay within the dimensions of this CanvasTexture and be an integer.
width
number The width of the rectangle from which the ImageData will be extracted. Positive values are to the right, and negative to the left.
height
number The height of the rectangle from which the ImageData will be extracted. Positive values are down, and negative are up.
- Since: 3.16.0
- Source: src/textures/CanvasTexture.js (Line 349)
Returns:
The ImageData extracted from this CanvasTexture.
- Type
- ImageData
-
getDataSourceImage( [name])
-
Given a Frame name, return the data source image it uses to render with. You can use this to get the normal map for an image for example.
This will return the actual DOM Image.
Parameters:
Name Type Argument Description name
string | number <optional>
The string-based name, or integer based index, of the Frame to get from this Texture.
- Since: 3.7.0
- Inherited From:
- Source: src/textures/Texture.js (Line 385)
Returns:
The DOM Image or Canvas Element.
- Type
- HTMLImageElement | HTMLCanvasElement
-
getFrameNames( [includeBase])
-
Returns an array with all of the names of the Frames in this Texture.
Useful if you want to randomly assign a Frame to a Game Object, as you can pick a random element from the returned array.
Parameters:
Name Type Argument Default Description includeBase
boolean <optional>
false Include the
__BASE
Frame in the output array?- Since: 3.0.0
- Inherited From:
- Source: src/textures/Texture.js (Line 320)
Returns:
An array of all Frame names in this Texture.
- Type
- Array.<string>
-
getFramesFromTextureSource(sourceIndex [, includeBase])
-
Returns an array of all the Frames in the given TextureSource.
Parameters:
Name Type Argument Default Description sourceIndex
number The index of the TextureSource to get the Frames from.
includeBase
boolean <optional>
false Include the
__BASE
Frame in the output array?- Since: 3.0.0
- Inherited From:
- Source: src/textures/Texture.js (Line 285)
Returns:
An array of Texture Frames.
- Type
- Array.<Phaser.Textures.Frame>
-
getIndex(x, y)
-
Returns the Image Data index for the given pixel in this CanvasTexture.
The index can be used to read directly from the
this.data
array.The index points to the red value in the array. The subsequent 3 indexes point to green, blue and alpha respectively.
Parameters:
Name Type Description x
number The x coordinate of the pixel to get. Must lay within the dimensions of this CanvasTexture and be an integer.
y
number The y coordinate of the pixel to get. Must lay within the dimensions of this CanvasTexture and be an integer.
- Since: 3.16.0
- Source: src/textures/CanvasTexture.js (Line 469)
Returns:
- Type
- number
-
getPixel(x, y [, out])
-
Get the color of a specific pixel from this texture and store it in a Color object.
If you have drawn anything to this CanvasTexture since it was created you must call
CanvasTexture.update
to refresh the array buffer, otherwise this may return out of date color values, or worse - throw a run-time error as it tries to access an array element that doesn't exist.Parameters:
Name Type Argument Description x
number The x coordinate of the pixel to get. Must lay within the dimensions of this CanvasTexture and be an integer.
y
number The y coordinate of the pixel to get. Must lay within the dimensions of this CanvasTexture and be an integer.
out
Phaser.Display.Color <optional>
A Color object to store the pixel values in. If not provided a new Color object will be created.
- Since: 3.13.0
- Source: src/textures/CanvasTexture.js (Line 375)
Returns:
An object with the red, green, blue and alpha values set in the r, g, b and a properties.
- Type
- Phaser.Display.Color
-
getPixels( [x] [, y] [, width] [, height])
-
Returns an array containing all of the pixels in the given region.
If the requested region extends outside the bounds of this CanvasTexture, the region is truncated to fit.
If you have drawn anything to this CanvasTexture since it was created you must call
CanvasTexture.update
to refresh the array buffer, otherwise this may return out of date color values, or worse - throw a run-time error as it tries to access an array element that doesn't exist.Parameters:
Name Type Argument Default Description x
number <optional>
0 The x coordinate of the top-left of the region. Must lay within the dimensions of this CanvasTexture and be an integer.
y
number <optional>
0 The y coordinate of the top-left of the region. Must lay within the dimensions of this CanvasTexture and be an integer.
width
number <optional>
The width of the region to get. Must be an integer. Defaults to the canvas width if not given.
height
number <optional>
The height of the region to get. Must be an integer. If not given will be set to the
width
.- Since: 3.16.0
- Source: src/textures/CanvasTexture.js (Line 414)
Returns:
A 2d array of Pixel objects.
- Type
- Array.<Array.<Phaser.Types.Textures.PixelConfig>>
-
getSourceImage( [name])
-
Given a Frame name, return the source image it uses to render with.
This will return the actual DOM Image or Canvas element.
Parameters:
Name Type Argument Description name
string | number <optional>
The string-based name, or integer based index, of the Frame to get from this Texture.
- Since: 3.0.0
- Inherited From:
- Source: src/textures/Texture.js (Line 352)
Returns:
The DOM Image, Canvas Element or Render Texture.
- Type
- HTMLImageElement | HTMLCanvasElement | Phaser.GameObjects.RenderTexture
-
getTextureSourceIndex(source)
-
Takes the given TextureSource and returns the index of it within this Texture. If it's not in this Texture, it returns -1. Unless this Texture has multiple TextureSources, such as with a multi-atlas, this method will always return zero or -1.
Parameters:
Name Type Description source
Phaser.Textures.TextureSource The TextureSource to check.
- Since: 3.0.0
- Inherited From:
- Source: src/textures/Texture.js (Line 259)
Returns:
The index of the TextureSource within this Texture, or -1 if not in this Texture.
- Type
- number
-
has(name)
-
Checks to see if a Frame matching the given key exists within this Texture.
Parameters:
Name Type Description name
string The key of the Frame to check for.
- Since: 3.0.0
- Inherited From:
- Source: src/textures/Texture.js (Line 210)
Returns:
True if a Frame with the matching key exists in this Texture.
- Type
- boolean
-
putData(imageData, x, y [, dirtyX] [, dirtyY] [, dirtyWidth] [, dirtyHeight])
-
Puts the ImageData into the context of this CanvasTexture at the given coordinates.
Parameters:
Name Type Argument Default Description imageData
ImageData The ImageData to put at the given location.
x
number The x coordinate to put the imageData. Must lay within the dimensions of this CanvasTexture and be an integer.
y
number The y coordinate to put the imageData. Must lay within the dimensions of this CanvasTexture and be an integer.
dirtyX
number <optional>
0 Horizontal position (x coordinate) of the top-left corner from which the image data will be extracted.
dirtyY
number <optional>
0 Vertical position (x coordinate) of the top-left corner from which the image data will be extracted.
dirtyWidth
number <optional>
Width of the rectangle to be painted. Defaults to the width of the image data.
dirtyHeight
number <optional>
Height of the rectangle to be painted. Defaults to the height of the image data.
- Since: 3.16.0
- Source: src/textures/CanvasTexture.js (Line 321)
Returns:
This CanvasTexture.
-
refresh()
-
This should be called manually if you are running under WebGL. It will refresh the WebGLTexture from the Canvas source. Only call this if you know that the canvas has changed, as there is a significant GPU texture allocation cost involved in doing so.
- Since: 3.7.0
- Source: src/textures/CanvasTexture.js (Line 500)
Returns:
This CanvasTexture.
-
remove(name)
-
Removes the given Frame from this Texture. The Frame is destroyed immediately.
Any Game Objects using this Frame should stop using it before you remove it, as it does not happen automatically.
Parameters:
Name Type Description name
string The key of the Frame to remove.
- Since: 3.19.0
- Inherited From:
- Source: src/textures/Texture.js (Line 181)
Returns:
True if a Frame with the matching key was removed from this Texture.
- Type
- boolean
-
setDataSource(data)
-
Adds a data source image to this Texture.
An example of a data source image would be a normal map, where all of the Frames for this Texture equally apply to the normal map.
Parameters:
Name Type Description data
HTMLImageElement | HTMLCanvasElement | Array.<HTMLImageElement> | Array.<HTMLCanvasElement> The source image.
- Since: 3.0.0
- Inherited From:
- Source: src/textures/Texture.js (Line 422)
-
setFilter(filterMode)
-
Sets the Filter Mode for this Texture.
The mode can be either Linear, the default, or Nearest.
For pixel-art you should use Nearest.
The mode applies to the entire Texture, not just a specific Frame of it.
Parameters:
Name Type Description filterMode
Phaser.Textures.FilterMode The Filter Mode.
- Since: 3.0.0
- Inherited From:
- Source: src/textures/Texture.js (Line 448)
-
setPixel(x, y, red, green, blue [, alpha])
-
Sets a pixel in the CanvasTexture to the given color and alpha values.
This is an expensive operation to run in large quantities, so use sparingly.
Parameters:
Name Type Argument Default Description x
number The x coordinate of the pixel to get. Must lay within the dimensions of this CanvasTexture and be an integer.
y
number The y coordinate of the pixel to get. Must lay within the dimensions of this CanvasTexture and be an integer.
red
number The red color value. A number between 0 and 255.
green
number The green color value. A number between 0 and 255.
blue
number The blue color value. A number between 0 and 255.
alpha
number <optional>
255 The alpha value. A number between 0 and 255.
- Since: 3.16.0
- Source: src/textures/CanvasTexture.js (Line 280)
Returns:
This CanvasTexture.
-
setSize(width [, height])
-
Changes the size of this Canvas Texture.
Parameters:
Name Type Argument Description width
number The new width of the Canvas.
height
number <optional>
The new height of the Canvas. If not given it will use the width as the height.
- Since: 3.7.0
- Source: src/textures/CanvasTexture.js (Line 569)
Returns:
The Canvas Texture.
-
update()
-
This re-creates the
imageData
from the current context. It then re-builds the ArrayBuffer, thedata
Uint8ClampedArray reference and thepixels
Int32Array.Warning: This is a very expensive operation, so use it sparingly.
- Since: 3.13.0
- Source: src/textures/CanvasTexture.js (Line 173)
Returns:
This CanvasTexture.