pixi.js
Version:
<p align="center"> <a href="https://pixijs.com" target="_blank" rel="noopener noreferrer"> <img height="150" src="https://files.pixijs.download/branding/pixijs-logo-transparent-dark.svg?v=1" alt="PixiJS logo"> </a> </p> <br/> <p align="center">
49 lines (45 loc) • 1.23 kB
JavaScript
;
var Extensions = require('../../extensions/Extensions.js');
var PoolGroup = require('../../utils/pool/PoolGroup.js');
;
class MaskEffectManagerClass {
constructor() {
/** @private */
this._effectClasses = [];
this._tests = [];
this._initialized = false;
}
init() {
if (this._initialized)
return;
this._initialized = true;
this._effectClasses.forEach((test) => {
this.add({
test: test.test,
maskClass: test
});
});
}
add(test) {
this._tests.push(test);
}
getMaskEffect(item) {
if (!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);
}
}
const MaskEffectManager = new MaskEffectManagerClass();
Extensions.extensions.handleByList(Extensions.ExtensionType.MaskEffect, MaskEffectManager._effectClasses);
exports.MaskEffectManager = MaskEffectManager;
exports.MaskEffectManagerClass = MaskEffectManagerClass;
//# sourceMappingURL=MaskEffectManager.js.map