Files
nothoughts/node_modules/pixi.js/lib/rendering/mask/MaskEffectManager.mjs
2025-08-04 18:57:35 +02:00

48 lines
1.1 KiB
JavaScript

import { extensions, ExtensionType } from '../../extensions/Extensions.mjs';
import { BigPool } from '../../utils/pool/PoolGroup.mjs';
"use strict";
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 BigPool.get(test.maskClass, item);
}
}
return item;
}
returnMaskEffect(effect) {
BigPool.return(effect);
}
}
const MaskEffectManager = new MaskEffectManagerClass();
extensions.handleByList(ExtensionType.MaskEffect, MaskEffectManager._effectClasses);
export { MaskEffectManager, MaskEffectManagerClass };
//# sourceMappingURL=MaskEffectManager.mjs.map