var CanvasGraphics = require('../CanvasGraphics');
/**
* A set of functions used to handle masking.
*
* @class
* @namespace PIXI
*/
function CanvasMaskManager() {}
CanvasMaskManager.prototype.constructor = CanvasMaskManager;
module.exports = CanvasMaskManager;
/**
* This method adds it to the current stack of masks.
*
* @param maskData {object} the maskData that will be pushed
* @param renderSession {object} The renderSession whose context will be used for this mask manager.
*/
CanvasMaskManager.prototype.pushMask = function (maskData, renderSession) {
renderSession.context.save();
var cacheAlpha = maskData.alpha;
var transform = maskData.worldTransform;
var resolution = renderSession.resolution;
renderSession.context.setTransform(
transform.a * resolution,
transform.b * resolution,
transform.c * resolution,
transform.d * resolution,
transform.tx * resolution,
transform.ty * resolution
);
CanvasGraphics.renderGraphicsMask(maskData, renderSession.context);
renderSession.context.clip();
maskData.worldAlpha = cacheAlpha;
};
/**
* Restores the current drawing context to the state it was before the mask was applied.
*
* @param renderSession {object} The renderSession whose context will be used for this mask manager.
*/
CanvasMaskManager.prototype.popMask = function (renderSession) {
renderSession.context.restore();
};