#

API Docs for: 1.6.0
Show: Inherited Protected Private Deprecated

# File: src/pixi/renderers/webgl/utils/WebGLMaskManager.js

    /**
     * @author Mat Groves http://matgroves.com/ @Doormat23
     */

    /**
    * @class WebGLMaskManager
    * @constructor
    * @param gl {WebGLContext} the current WebGL drawing context
    * @private
    */
    PIXI.WebGLMaskManager = function(gl)
    {
        this.maskStack = [];
        this.maskPosition = 0;

        this.setContext(gl);

        this.reverse = false;
        this.count = 0;
    };

    /**
    * Sets the drawing context to the one given in parameter
    * @method setContext
    * @param gl {WebGLContext} the current WebGL drawing context
    */
    PIXI.WebGLMaskManager.prototype.setContext = function(gl)
    {
        this.gl = gl;
    };

    /**
    * Applies the Mask and adds it to the current filter stack
    * @method pushMask
    * @param maskData {Array}
    * @param renderSession {RenderSession}
    */
    PIXI.WebGLMaskManager.prototype.pushMask = function(maskData, renderSession)
    {
        var gl = renderSession.gl;

        if(maskData.dirty)
        {
            PIXI.WebGLGraphics.updateGraphics(maskData, gl);
        }

        if(!maskData._webGL[gl.id].data.length)return;

        renderSession.stencilManager.pushStencil(maskData, maskData._webGL[gl.id].data[0], renderSession);
    };

    /**
    * Removes the last filter from the filter stack and doesn't return it
    * @method popMask
    *
    * @param renderSession {RenderSession} an object containing all the useful parameters
    */
    PIXI.WebGLMaskManager.prototype.popMask = function(maskData, renderSession)
    {
        var gl = this.gl;
        renderSession.stencilManager.popStencil(maskData, maskData._webGL[gl.id].data[0], renderSession);
    };

    /**
    * Destroys the mask stack
    * @method destroy
    */
    PIXI.WebGLMaskManager.prototype.destroy = function()
    {
        this.maskStack = null;
        this.gl = null;
    };