#

API Docs for: 2.0.0
Show: Inherited Protected Private Deprecated

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

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

    /**
    * @class WebGLMaskManager
    * @constructor
    * @private
    */
    PIXI.WebGLMaskManager = function()
    {
    };

    PIXI.WebGLMaskManager.prototype.constructor = PIXI.WebGLMaskManager;

    /**
    * 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 {Object}
    */
    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 maskData {Array}
    * @param renderSession {Object} 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.gl = null;
    };