Skip to content

Commit 80a0bf3

Browse files
committed
Re-apply stencil after a bitmap mask
1 parent 3efcd1c commit 80a0bf3

1 file changed

Lines changed: 16 additions & 1 deletion

File tree

src/renderer/webgl/pipelines/BitmapMaskPipeline.js

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,10 @@ var BitmapMaskPipeline = new Class({
171171

172172
renderer.setFramebuffer(mask.mainFramebuffer);
173173

174+
gl.disable(gl.STENCIL_TEST);
175+
174176
gl.clearColor(0, 0, 0, 0);
177+
175178
gl.clear(gl.COLOR_BUFFER_BIT);
176179

177180
if (renderer.currentCameraMask !== mask)
@@ -216,7 +219,19 @@ var BitmapMaskPipeline = new Class({
216219

217220
renderer.setFramebuffer(mask.prevFramebuffer);
218221

219-
renderer.currentMask = null;
222+
// Is there a stencil further up the stack?
223+
var prev = renderer.getCurrentStencilMask();
224+
225+
if (prev)
226+
{
227+
gl.enable(gl.STENCIL_TEST);
228+
229+
prev.mask.applyStencil(renderer, prev.camera, true);
230+
}
231+
else
232+
{
233+
renderer.currentMask = null;
234+
}
220235

221236
// Bind bitmap mask pipeline and draw
222237
renderer.setPipeline(this);

0 commit comments

Comments
 (0)