shadow$provide.module$node_modules$pixi_DOT_js$lib$rendering$mask$MaskEffectManager = function(global, require, module, exports) {
  global = require("module$node_modules$pixi_DOT_js$lib$extensions$Extensions");
  var PoolGroup = require("module$node_modules$pixi_DOT_js$lib$utils$pool$PoolGroup");
  "use strict";
  class MaskEffectManagerClass {
    constructor() {
      this._effectClasses = [];
      this._tests = [];
      this._initialized = !1;
    }
    init() {
      this._initialized || (this._initialized = !0, this._effectClasses.forEach(test => {
        this.add({test:test.test, maskClass:test});
      }));
    }
    add(test) {
      this._tests.push(test);
    }
    getMaskEffect(item) {
      this._initialized || this.init();
      for (let i = 0; i < this._tests.length; i++) {
        const test = this._tests[i];
        if (test.test(item)) {
          return PoolGroup.BigPool.get(test.maskClass, item);
        }
      }
      return item;
    }
    returnMaskEffect(effect) {
      PoolGroup.BigPool.return(effect);
    }
  }
  require = new MaskEffectManagerClass();
  global.extensions.handleByList(global.ExtensionType.MaskEffect, require._effectClasses);
  exports.MaskEffectManager = require;
  exports.MaskEffectManagerClass = MaskEffectManagerClass;
};

//# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$rendering$mask$MaskEffectManager.js.map
