endRenderMask method
Implementation
@override
void endRenderMask(RenderState renderState, RenderMask mask) {
_activeRenderProgram.flush();
final maskState = _getMaskStates().removeLast();
if (maskState is _ScissorMaskState) {
_updateScissorTest(_getLastScissorValue());
} else if (maskState is _StencilMaskState) {
_renderingContext.enable(gl.WebGL.STENCIL_TEST);
_renderingContext.stencilOp(gl.WebGL.KEEP, gl.WebGL.KEEP, gl.WebGL.DECR);
_renderingContext.stencilFunc(gl.WebGL.EQUAL, maskState.value, 0xFF);
_renderingContext.colorMask(false, false, false, false);
mask.renderMask(renderState);
_activeRenderProgram.flush();
_renderingContext.stencilOp(gl.WebGL.KEEP, gl.WebGL.KEEP, gl.WebGL.KEEP);
_renderingContext.colorMask(true, true, true, true);
_updateStencilTest(maskState.value - 1);
}
}