Skip to content

Commit b96e15f

Browse files
committed
Handle child masking. Fix phaserjs#5354
1 parent 0fad186 commit b96e15f

1 file changed

Lines changed: 31 additions & 3 deletions

File tree

plugins/spine/src/container/SpineContainerWebGLRenderer.js

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,39 @@ var SpineContainerWebGLRenderer = function (renderer, container, camera, parentM
6767

6868
for (var i = 0; i < children.length; i++)
6969
{
70-
var src = children[i];
70+
var child = children[i];
7171

72-
if (src.willRender(camera))
72+
if (child.willRender(camera))
7373
{
74-
src.renderWebGL(renderer, src, camera, transformMatrix, container);
74+
var mask = child.mask;
75+
76+
if (mask)
77+
{
78+
sceneRenderer.end();
79+
80+
renderer.pipelines.rebind();
81+
82+
mask.preRenderWebGL(renderer, child, camera);
83+
84+
renderer.pipelines.clear();
85+
86+
sceneRenderer.begin();
87+
}
88+
89+
child.renderWebGL(renderer, child, camera, transformMatrix, container);
90+
91+
if (mask)
92+
{
93+
sceneRenderer.end();
94+
95+
renderer.pipelines.rebind();
96+
97+
mask.postRenderWebGL(renderer, camera);
98+
99+
renderer.pipelines.clear();
100+
101+
sceneRenderer.begin();
102+
}
75103
}
76104
}
77105

0 commit comments

Comments
 (0)