Skip to content

Commit 4cd0e83

Browse files
committed
Sorted out the mixin needed for the Canvas renderer.
1 parent 047a994 commit 4cd0e83

15 files changed

Lines changed: 170 additions & 178 deletions

File tree

build/config.php

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -133,27 +133,6 @@
133133
<script src="$path/src/textures/parsers/JSONHash.js"></script>
134134
<script src="$path/src/textures/parsers/SpriteSheet.js"></script>
135135
136-
<script src="$path/src/renderer/canvas/CanvasRenderer.js"></script>
137-
<script src="$path/src/renderer/canvas/gameobjects/Container.js"></script>
138-
<script src="$path/src/renderer/canvas/gameobjects/Sprite.js"></script>
139-
<script src="$path/src/renderer/canvas/gameobjects/Graphics.js"></script>
140-
<script src="$path/src/renderer/canvas/gameobjects/SpriteBatch.js"></script>
141-
<script src="$path/src/renderer/canvas/gameobjects/Stage.js"></script>
142-
<script src="$path/src/renderer/canvas/gameobjects/Text.js"></script>
143-
144-
<script src="$path/src/renderer/webgl/WebGLRenderer.js"></script>
145-
<script src="$path/src/renderer/webgl/ShaderManager.js"></script>
146-
<script src="$path/src/renderer/webgl/SpriteBatch.js"></script>
147-
<script src="$path/src/renderer/webgl/shaders/Sprite.js"></script>
148-
<script src="$path/src/renderer/webgl/shaders/SpriteBatch.js"></script>
149-
<script src="$path/src/renderer/webgl/shaders/Strip.js"></script>
150-
<script src="$path/src/renderer/webgl/shaders/PrimitiveGraphics.js"></script>
151-
<script src="$path/src/renderer/webgl/gameobjects/Container.js"></script>
152-
<script src="$path/src/renderer/webgl/gameobjects/Sprite.js"></script>
153-
<script src="$path/src/renderer/webgl/gameobjects/Stage.js"></script>
154-
<script src="$path/src/renderer/webgl/gameobjects/Text.js"></script>
155-
<script src="$path/src/renderer/webgl/gameobjects/Graphics.js"></script>
156-
157136
158137
EOL;
159138

@@ -219,6 +198,26 @@
219198
<script src="$path/src/plugins/path/PathPoint.js"></script>
220199
<script src="$path/src/plugins/path/EventTarget.js"></script>
221200
201+
<script src="$path/src/renderer/canvas/CanvasRenderer.js"></script>
202+
<script src="$path/src/renderer/canvas/gameobjects/Container.js"></script>
203+
<script src="$path/src/renderer/canvas/gameobjects/Sprite.js"></script>
204+
<script src="$path/src/renderer/canvas/gameobjects/SpriteBatch.js"></script>
205+
<script src="$path/src/renderer/canvas/gameobjects/Stage.js"></script>
206+
207+
<script src="$path/src/renderer/webgl/WebGLRenderer.js"></script>
208+
<script src="$path/src/renderer/webgl/ShaderManager.js"></script>
209+
<script src="$path/src/renderer/webgl/SpriteBatch.js"></script>
210+
<script src="$path/src/renderer/webgl/shaders/Sprite.js"></script>
211+
<script src="$path/src/renderer/webgl/shaders/SpriteBatch.js"></script>
212+
<script src="$path/src/renderer/webgl/shaders/Strip.js"></script>
213+
<script src="$path/src/renderer/webgl/shaders/PrimitiveGraphics.js"></script>
214+
<script src="$path/src/renderer/webgl/gameobjects/Container.js"></script>
215+
<script src="$path/src/renderer/webgl/gameobjects/Sprite.js"></script>
216+
<script src="$path/src/renderer/webgl/gameobjects/Stage.js"></script>
217+
<script src="$path/src/renderer/webgl/gameobjects/Text.js"></script>
218+
<script src="$path/src/renderer/webgl/gameobjects/Graphics.js"></script>
219+
220+
222221
EOL;
223222

224223
if ($modules['rope'])
@@ -281,6 +280,7 @@
281280
{
282281
echo <<<EOL
283282
<script src="$path/src/gameobjects/Text.js"></script>
283+
<script src="$path/src/renderer/canvas/gameobjects/Text.js"></script>
284284
285285
286286
EOL;

src/core/Group.js

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -291,15 +291,6 @@ Phaser.Group = function (game, parent, name, addToStage, enableBody, physicsBody
291291
*/
292292
this._sortProperty = 'z';
293293

294-
if (this.game.renderType === Phaser.CANVAS)
295-
{
296-
this.render = Phaser.Renderer.Canvas.GameObjects.Container.render;
297-
}
298-
else
299-
{
300-
this.render = Phaser.Renderer.WebGL.GameObjects.Container.render;
301-
}
302-
303294
};
304295

305296
Phaser.Group.prototype = Object.create(PIXI.DisplayObjectContainer.prototype);

src/core/Stage.js

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -93,15 +93,6 @@ Phaser.Stage = function (game) {
9393
this.parseConfig(game.config);
9494
}
9595

96-
if (this.game.renderType === Phaser.CANVAS)
97-
{
98-
this.render = Phaser.Renderer.Canvas.GameObjects.Stage.render;
99-
}
100-
else
101-
{
102-
this.render = Phaser.Renderer.WebGL.GameObjects.Stage.render;
103-
}
104-
10596
};
10697

10798
Phaser.Stage.prototype = Object.create(PIXI.DisplayObjectContainer.prototype);

src/gameobjects/Graphics.js

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -201,15 +201,6 @@ Phaser.Graphics = function (game, x, y) {
201201

202202
Phaser.Component.Core.init.call(this, game, x, y, '', null);
203203

204-
if (this.game.renderType === Phaser.CANVAS)
205-
{
206-
this.render = Phaser.Renderer.Canvas.GameObjects.Graphics.render;
207-
}
208-
else
209-
{
210-
this.render = Phaser.Renderer.WebGL.GameObjects.Graphics.render;
211-
}
212-
213204
};
214205

215206
Phaser.Graphics.prototype = Object.create(PIXI.DisplayObjectContainer.prototype);

src/gameobjects/Image.js

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,6 @@ Phaser.Image = function (game, x, y, key, frame) {
5050

5151
Phaser.Component.Core.init.call(this, game, x, y, key, frame);
5252

53-
if (this.game.renderType === Phaser.CANVAS)
54-
{
55-
this.render = Phaser.Renderer.Canvas.GameObjects.Sprite.render;
56-
}
57-
else
58-
{
59-
this.render = Phaser.Renderer.WebGL.GameObjects.Sprite.render;
60-
}
61-
6253
};
6354

6455
Phaser.Image.prototype = Object.create(PIXI.Sprite.prototype);

src/gameobjects/Sprite.js

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -64,15 +64,6 @@ Phaser.Sprite = function (game, x, y, key, frame) {
6464

6565
Phaser.Component.Core.init.call(this, game, x, y, key, frame);
6666

67-
if (this.game.renderType === Phaser.CANVAS)
68-
{
69-
this.render = Phaser.Renderer.Canvas.GameObjects.Sprite.render;
70-
}
71-
else
72-
{
73-
this.render = Phaser.Renderer.WebGL.GameObjects.Sprite.render;
74-
}
75-
7667
};
7768

7869
Phaser.Sprite.prototype = Object.create(PIXI.Sprite.prototype);

src/gameobjects/SpriteBatch.js

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,15 +44,6 @@ Phaser.SpriteBatch = function (game, parent, name, addToStage) {
4444
*/
4545
this.ready = false;
4646

47-
if (this.game.renderType === Phaser.CANVAS)
48-
{
49-
this.render = Phaser.Renderer.Canvas.GameObjects.SpriteBatch.render;
50-
}
51-
else
52-
{
53-
this.render = Phaser.Renderer.WebGL.GameObjects.SpriteBatch.render;
54-
}
55-
5647
};
5748

5849
Phaser.SpriteBatch.prototype = Object.create(Phaser.Group.prototype);

src/gameobjects/Text.js

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -190,15 +190,6 @@ Phaser.Text = function (game, x, y, text, style) {
190190
this.updateText();
191191
}
192192

193-
if (this.game.renderType === Phaser.CANVAS)
194-
{
195-
this.render = Phaser.Renderer.Canvas.GameObjects.Text.render;
196-
}
197-
else
198-
{
199-
this.render = Phaser.Renderer.WebGL.GameObjects.Text.render;
200-
}
201-
202193
};
203194

204195
Phaser.Text.prototype = Object.create(Phaser.Sprite.prototype);

src/renderer/canvas/CanvasRenderer.js

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -95,12 +95,7 @@ Phaser.Renderer.Canvas = function (game)
9595
this.currentBlendMode = 0;
9696
this.currentScaleMode = 0;
9797

98-
if (this.game.device.canUseMultiply)
99-
{
100-
this.mapBlendModes();
101-
}
102-
103-
this.resize(this.width, this.height);
98+
this.init();
10499

105100
};
106101

@@ -110,6 +105,27 @@ Phaser.Renderer.Canvas.prototype.constructor = Phaser.Renderer.Canvas;
110105

111106
Phaser.Renderer.Canvas.prototype = {
112107

108+
init: function ()
109+
{
110+
// Mixin the renderer functions
111+
for (var renderer in Phaser.Renderer.Canvas.GameObjects)
112+
{
113+
var types = Phaser.Renderer.Canvas.GameObjects[renderer].TYPES;
114+
115+
for (var i = 0; i < types.length; i++)
116+
{
117+
types[i].render = Phaser.Renderer.Canvas.GameObjects[renderer].render;
118+
}
119+
}
120+
121+
if (this.game.device.canUseMultiply)
122+
{
123+
this.mapBlendModes();
124+
}
125+
126+
this.resize(this.width, this.height);
127+
},
128+
113129
/**
114130
* Maps Blend modes to Canvas blend modes.
115131
*
@@ -199,7 +215,7 @@ Phaser.Renderer.Canvas.prototype = {
199215
}
200216
}
201217

202-
stage.render(this);
218+
stage.render(this, stage);
203219

204220
// Add Post-render hook
205221
},
Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,53 @@
11
/**
2-
* Note that 'this' in all functions here refer to the owning object.
3-
* For example the Group, Stage, Sprite, etc. because the render function
4-
* here is mapped to the prototype for the game object.
2+
* @author Richard Davey <rich@photonstorm.com>
3+
* @author Mat Groves (@Doormat23)
4+
* @copyright 2016 Photon Storm Ltd.
5+
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
56
*/
7+
8+
69
Phaser.Renderer.Canvas.GameObjects.Container = {
710

8-
render: function (renderer)
11+
TYPES: [
12+
Phaser.Group.prototype,
13+
PIXI.DisplayObjectContainer.prototype
14+
],
15+
16+
render: function (renderer, src)
917
{
10-
if (this.visible === false || this.alpha === 0)
18+
if (src.visible === false || src.alpha === 0)
1119
{
1220
return;
1321
}
1422

15-
if (this._cacheAsBitmap)
23+
if (src._cacheAsBitmap)
1624
{
17-
return this.renderCachedSprite(renderer);
25+
return this.renderCachedSprite(renderer, src);
1826
}
1927

20-
if (this._mask)
28+
if (src._mask)
2129
{
22-
renderer.pushMask(this._mask);
30+
renderer.pushMask(src._mask);
2331
}
2432

25-
for (var i = 0; i < this.children.length; i++)
33+
for (var i = 0; i < src.children.length; i++)
2634
{
27-
var child = this.children[i];
35+
var child = src.children[i];
2836

2937
child.render(renderer, child);
3038
}
3139

32-
if (this._mask)
40+
if (src._mask)
3341
{
3442
renderer.popMask();
3543
}
3644

3745
},
3846

39-
renderCachedSprite: function (renderer)
47+
renderCachedSprite: function (renderer, src)
4048
{
4149
// TODO
42-
return renderer;
50+
return src;
4351
}
4452

4553
};

0 commit comments

Comments
 (0)