mirror of
https://github.com/photonstorm/phaser
synced 2024-11-24 05:33:35 +00:00
The start of a new CanvasTexture class
This commit is contained in:
parent
d96d677bea
commit
4a58ed3935
1 changed files with 92 additions and 0 deletions
92
src/textures/CanvasTexture.js
Normal file
92
src/textures/CanvasTexture.js
Normal file
|
@ -0,0 +1,92 @@
|
|||
/**
|
||||
* @author Richard Davey <rich@photonstorm.com>
|
||||
* @copyright 2018 Photon Storm Ltd.
|
||||
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
|
||||
*/
|
||||
|
||||
var Class = require('../utils/Class');
|
||||
var Texture = require('./Texture');
|
||||
|
||||
/**
|
||||
* @classdesc
|
||||
* [description]
|
||||
*
|
||||
* @class CanvasTexture
|
||||
* @extends Phaser.Textures.Texture
|
||||
* @memberOf Phaser.Textures
|
||||
* @constructor
|
||||
* @since 3.6.1
|
||||
*
|
||||
* @param {Phaser.Textures.TextureManager} manager - A reference to the Texture Manager this Texture belongs to.
|
||||
* @param {string} key - The unique string-based key of this Texture.
|
||||
* @param {HTMLCanvasElement} source - The source that is used to create the texture. Usually an Image, but can also be a Canvas.
|
||||
* @param {number} [width] - The width of the Texture. This is optional and automatically derived from the source images.
|
||||
* @param {number} [height] - The height of the Texture. This is optional and automatically derived from the source images.
|
||||
*/
|
||||
var CanvasTexture = new Class({
|
||||
|
||||
Extends: Texture,
|
||||
|
||||
initialize:
|
||||
|
||||
function CanvasTexture (manager, key, source, width, height)
|
||||
{
|
||||
Texture.call(this, manager, key, source, width, height);
|
||||
|
||||
this._texture = this.frames['__BASE'].source;
|
||||
|
||||
this.canvas = this._texture.image;
|
||||
|
||||
this.context = this.canvas.getContext('2d');
|
||||
|
||||
this.width = width;
|
||||
|
||||
this.height = height;
|
||||
},
|
||||
|
||||
/**
|
||||
* 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.
|
||||
*
|
||||
* @method Phaser.Textures.CanvasTexture#refresh
|
||||
* @since 3.6.1
|
||||
*
|
||||
* @return {Phaser.Textures.CanvasTexture} This CanvasTexture.
|
||||
*/
|
||||
refresh: function ()
|
||||
{
|
||||
this._texture.update();
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Textures.CanvasTexture#getCanvas
|
||||
* @since 3.6.1
|
||||
*
|
||||
* @return {HTMLCanvasElement} The Canvas DOM element this texture is using.
|
||||
*/
|
||||
getCanvas: function ()
|
||||
{
|
||||
return this.canvas;
|
||||
},
|
||||
|
||||
/**
|
||||
* [description]
|
||||
*
|
||||
* @method Phaser.Textures.CanvasTexture#getContext
|
||||
* @since 3.6.1
|
||||
*
|
||||
* @return {HTMLCanvasElement} The Canvas DOM element this texture is using.
|
||||
*/
|
||||
getContext: function ()
|
||||
{
|
||||
return this.context;
|
||||
},
|
||||
|
||||
});
|
||||
|
||||
module.exports = CanvasTexture;
|
Loading…
Reference in a new issue