forked from phaserjs/phaser
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathContainerCanvasRenderer.js
More file actions
81 lines (62 loc) · 1.83 KB
/
Copy pathContainerCanvasRenderer.js
File metadata and controls
81 lines (62 loc) · 1.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/**
* @author Richard Davey <rich@photonstorm.com>
* @author Mat Groves (@Doormat23)
* @copyright 2016 Photon Storm Ltd.
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
*/
Phaser.Renderer.Canvas.GameObjects.Container = {
TYPES: [
Phaser.GameObject.Container.prototype
],
render: function (renderer, src)
{
// Skip rendering?
if (src.visible === false || src.alpha === 0)
{
return;
}
// Blend Mode
if (src.blendMode !== renderer.currentBlendMode)
{
renderer.currentBlendMode = src.blendMode;
renderer.context.globalCompositeOperation = renderer.blendModes[renderer.currentBlendMode];
}
// Alpha (World Alpha?)
if (src.alpha !== renderer.context.globalAlpha)
{
renderer.context.globalAlpha = src.alpha;
}
// Smoothing (should this be a Game Object, or Frame / Texture level property?)
if (src.scaleMode !== renderer.currentScaleMode)
{
renderer.currentScaleMode = src.scaleMode;
renderer.context[renderer.smoothProperty] = (src.scaleMode === Phaser.scaleModes.LINEAR);
}
/*
if (src._cacheAsBitmap)
{
return this.renderCachedSprite(renderer, src);
}
if (src._mask)
{
renderer.pushMask(src._mask);
}
*/
for (var i = 0; i < src.children.list.length; i++)
{
var child = src.children.list[i];
child.render(renderer, child);
}
/*
if (src._mask)
{
renderer.popMask();
}
*/
},
renderCachedSprite: function (renderer, src)
{
// TODO
return src;
}
};