Skip to content

Commit d5c558b

Browse files
committed
Render Texture now uses unified drawing functions
1 parent c6cb0ed commit d5c558b

2 files changed

Lines changed: 10 additions & 64 deletions

File tree

src/gameobjects/rendertexture/RenderTextureCanvasRenderer.js

Lines changed: 3 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -14,71 +14,14 @@
1414
* @private
1515
*
1616
* @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - A reference to the current active Canvas renderer.
17-
* @param {Phaser.GameObjects.RenderTexture} renderTexture - The Game Object being rendered in this call.
17+
* @param {Phaser.GameObjects.RenderTexture} src - The Game Object being rendered in this call.
1818
* @param {number} interpolationPercentage - Reserved for future use and custom pipelines.
1919
* @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.
2020
* @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested
2121
*/
22-
var RenderTextureCanvasRenderer = function (renderer, renderTexture, interpolationPercentage, camera, parentMatrix)
22+
var RenderTextureCanvasRenderer = function (renderer, src, interpolationPercentage, camera, parentMatrix)
2323
{
24-
var ctx = renderer.currentContext;
25-
26-
// Alpha
27-
28-
var alpha = camera.alpha * renderTexture.alpha;
29-
30-
if (alpha === 0)
31-
{
32-
// Nothing to see, so abort early
33-
return;
34-
}
35-
36-
var dx = 0;
37-
var dy = 0;
38-
39-
var fx = 1;
40-
var fy = 1;
41-
42-
if (renderTexture.flipX)
43-
{
44-
fx = -1;
45-
dx -= renderTexture.canvas.width - renderTexture.displayOriginX;
46-
}
47-
else
48-
{
49-
dx -= renderTexture.displayOriginX;
50-
}
51-
52-
if (renderTexture.flipY)
53-
{
54-
fy = -1;
55-
dy -= renderTexture.canvas.height - renderTexture.displayOriginY;
56-
}
57-
else
58-
{
59-
dy -= renderTexture.displayOriginY;
60-
}
61-
62-
ctx.save();
63-
64-
// Blend Mode
65-
ctx.globalCompositeOperation = renderer.blendModes[renderTexture.blendMode];
66-
67-
// Alpha
68-
ctx.globalAlpha = alpha;
69-
70-
if (parentMatrix)
71-
{
72-
parentMatrix.copyToContext(ctx);
73-
}
74-
75-
ctx.translate(renderTexture.x - camera.scrollX * renderTexture.scrollFactorX, renderTexture.y - camera.scrollY * renderTexture.scrollFactorY);
76-
ctx.rotate(renderTexture.rotation);
77-
ctx.scale(renderTexture.scaleX, renderTexture.scaleY);
78-
ctx.scale(fx, fy);
79-
ctx.drawImage(renderTexture.canvas, dx, dy);
80-
81-
ctx.restore();
24+
renderer.batchSprite(src, src.frame, camera, parentMatrix);
8225
};
8326

8427
module.exports = RenderTextureCanvasRenderer;

src/gameobjects/rendertexture/RenderTextureWebGLRenderer.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,23 @@ var Utils = require('../../renderer/webgl/Utils');
2323
*/
2424
var RenderTextureWebGLRenderer = function (renderer, src, interpolationPercentage, camera, parentMatrix)
2525
{
26+
var frame = src.frame;
27+
var width = frame.width;
28+
var height = frame.height;
2629
var getTint = Utils.getTintAppendFloatAlpha;
2730

2831
this.pipeline.batchTexture(
2932
src,
30-
src.texture,
31-
src.texture.width, src.texture.height,
33+
frame.glTexture,
34+
width, height,
3235
src.x, src.y,
33-
src.width, src.height,
36+
width, height,
3437
src.scaleX, src.scaleY,
3538
src.rotation,
3639
src.flipX, !src.flipY,
3740
src.scrollFactorX, src.scrollFactorY,
3841
src.displayOriginX, src.displayOriginY,
39-
0, 0, src.texture.width, src.texture.height,
42+
0, 0, width, height,
4043
getTint(src._tintTL, camera.alpha * src._alphaTL),
4144
getTint(src._tintTR, camera.alpha * src._alphaTR),
4245
getTint(src._tintBL, camera.alpha * src._alphaBL),

0 commit comments

Comments
 (0)