Skip to content

Commit 14d16b3

Browse files
committed
Add temp matrix to Graphics to avoid sharing issue during mask rendering
1 parent 53870c0 commit 14d16b3

2 files changed

Lines changed: 35 additions & 3 deletions

File tree

src/gameobjects/graphics/Graphics.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ var ComponentsTransform = require('../components/Transform');
1616
var ComponentsVisible = require('../components/Visible');
1717
var ComponentsScrollFactor = require('../components/ScrollFactor');
1818

19+
var TransformMatrix = require('../components/TransformMatrix');
20+
1921
var Ellipse = require('../../geom/ellipse/Ellipse');
2022
var GameObject = require('../GameObject');
2123
var GetFastValue = require('../../utils/object/GetFastValue');
@@ -200,6 +202,36 @@ var Graphics = new Class({
200202
*/
201203
this._lineWidth = 1.0;
202204

205+
/**
206+
* A temporary Transform Matrix, re-used internally during batching.
207+
*
208+
* @name Phaser.GameObjects.Graphics#_tempMatrix1
209+
* @private
210+
* @type {Phaser.GameObjects.Components.TransformMatrix}
211+
* @since 3.17.0
212+
*/
213+
this._tempMatrix1 = new TransformMatrix();
214+
215+
/**
216+
* A temporary Transform Matrix, re-used internally during batching.
217+
*
218+
* @name Phaser.GameObjects.Graphics#_tempMatrix2
219+
* @private
220+
* @type {Phaser.GameObjects.Components.TransformMatrix}
221+
* @since 3.17.0
222+
*/
223+
this._tempMatrix2 = new TransformMatrix();
224+
225+
/**
226+
* A temporary Transform Matrix, re-used internally during batching.
227+
*
228+
* @name Phaser.GameObjects.Graphics#_tempMatrix3
229+
* @private
230+
* @type {Phaser.GameObjects.Components.TransformMatrix}
231+
* @since 3.17.0
232+
*/
233+
this._tempMatrix3 = new TransformMatrix();
234+
203235
this.setDefaultStyles(options);
204236
},
205237

src/gameobjects/graphics/GraphicsWebGLRenderer.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@ var GraphicsWebGLRenderer = function (renderer, src, interpolationPercentage, ca
4949

5050
var pipeline = renderer.currentPipeline;
5151

52-
var camMatrix = pipeline._tempMatrix1;
53-
var graphicsMatrix = pipeline._tempMatrix2;
54-
var currentMatrix = pipeline._tempMatrix4;
52+
var camMatrix = src._tempMatrix1;
53+
var graphicsMatrix = src._tempMatrix2;
54+
var currentMatrix = src._tempMatrix3;
5555

5656
renderer.setPipeline(pipeline);
5757

0 commit comments

Comments
 (0)