Skip to content

Commit f9e4983

Browse files
committed
Fixed lack of TempMatrix for Graphics generateTexture
1 parent 1d4440a commit f9e4983

4 files changed

Lines changed: 56 additions & 5 deletions

File tree

src/cameras/2d/BaseCamera.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,11 @@ var BaseCamera = new Class({
8484

8585
function BaseCamera (x, y, width, height)
8686
{
87+
if (x === undefined) { x = 0; }
88+
if (y === undefined) { y = 0; }
89+
if (width === undefined) { width = 0; }
90+
if (height === undefined) { height = 0; }
91+
8792
EventEmitter.call(this);
8893

8994
/**

src/gameobjects/graphics/Graphics.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
55
*/
66

7-
var Camera = require('../../cameras/2d/Camera.js');
7+
var BaseCamera = require('../../cameras/2d/BaseCamera.js');
88
var Class = require('../../utils/Class');
99
var Commands = require('./Commands');
1010
var Components = require('../components');
@@ -1490,6 +1490,7 @@ var Graphics = new Class({
14901490
generateTexture: function (key, width, height)
14911491
{
14921492
var sys = this.scene.sys;
1493+
var renderer = sys.game.renderer;
14931494

14941495
if (width === undefined) { width = sys.game.config.width; }
14951496
if (height === undefined) { height = sys.game.config.height; }
@@ -1535,11 +1536,12 @@ var Graphics = new Class({
15351536

15361537
if (ctx)
15371538
{
1538-
this.renderCanvas(sys.game.renderer, this, 0.0, Graphics.TargetCamera, null, ctx);
1539+
// var GraphicsCanvasRenderer = function (renderer, src, interpolationPercentage, camera, parentMatrix, renderTargetCtx, allowClip)
1540+
this.renderCanvas(renderer, this, 0, Graphics.TargetCamera, null, ctx, false);
15391541

1540-
if (sys.game.renderer.gl && texture)
1542+
if (renderer.gl && texture)
15411543
{
1542-
texture.source[0].glTexture = sys.game.renderer.canvasToTexture(ctx.canvas, texture.source[0].glTexture);
1544+
texture.source[0].glTexture = renderer.canvasToTexture(ctx.canvas, texture.source[0].glTexture);
15431545
}
15441546
}
15451547

@@ -1567,6 +1569,6 @@ var Graphics = new Class({
15671569
* @type {Phaser.Cameras.Scene2D.Camera}
15681570
* @since 3.1.0
15691571
*/
1570-
Graphics.TargetCamera = new Camera(0, 0, 0, 0);
1572+
Graphics.TargetCamera = new BaseCamera();
15711573

15721574
module.exports = Graphics;

src/renderer/canvas/CanvasRenderer.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,9 @@ var CanvasRenderer = new Class({
137137
*/
138138
this.blendModes = GetBlendModes();
139139

140+
// image-rendering: optimizeSpeed;
141+
// image-rendering: pixelated;
142+
140143
/**
141144
* [description]
142145
*

src/renderer/webgl/WebGLRenderer.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ var Class = require('../../utils/Class');
99
var CONST = require('../../const');
1010
var IsSizePowerOfTwo = require('../../math/pow2/IsSizePowerOfTwo');
1111
var SpliceOne = require('../../utils/array/SpliceOne');
12+
var TransformMatrix = require('../../gameobjects/components/TransformMatrix');
1213
var Utils = require('./Utils');
1314
var WebGLSnapshot = require('../snapshot/WebGLSnapshot');
1415

@@ -415,6 +416,46 @@ var WebGLRenderer = new Class({
415416
*/
416417
this.blankTexture = null;
417418

419+
/**
420+
* A temporary Transform Matrix, re-used internally during batching.
421+
*
422+
* @name Phaser.Renderer.WebGL.WebGLRenderer#_tempMatrix1
423+
* @private
424+
* @type {Phaser.GameObjects.Components.TransformMatrix}
425+
* @since 3.12.0
426+
*/
427+
this._tempMatrix1 = new TransformMatrix();
428+
429+
/**
430+
* A temporary Transform Matrix, re-used internally during batching.
431+
*
432+
* @name Phaser.Renderer.WebGL.WebGLRenderer#_tempMatrix2
433+
* @private
434+
* @type {Phaser.GameObjects.Components.TransformMatrix}
435+
* @since 3.12.0
436+
*/
437+
this._tempMatrix2 = new TransformMatrix();
438+
439+
/**
440+
* A temporary Transform Matrix, re-used internally during batching.
441+
*
442+
* @name Phaser.Renderer.WebGL.WebGLRenderer#_tempMatrix3
443+
* @private
444+
* @type {Phaser.GameObjects.Components.TransformMatrix}
445+
* @since 3.12.0
446+
*/
447+
this._tempMatrix3 = new TransformMatrix();
448+
449+
/**
450+
* A temporary Transform Matrix, re-used internally during batching.
451+
*
452+
* @name Phaser.Renderer.WebGL.WebGLRenderer#_tempMatrix4
453+
* @private
454+
* @type {Phaser.GameObjects.Components.TransformMatrix}
455+
* @since 3.12.0
456+
*/
457+
this._tempMatrix4 = new TransformMatrix();
458+
418459
this.init(this.config);
419460
},
420461

0 commit comments

Comments
 (0)