initial commit
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
shadow$provide.module$node_modules$pixi_DOT_js$lib$utils$pool$Pool = function(global, require, module, exports) {
|
||||
class Pool {
|
||||
constructor(ClassType, initialSize) {
|
||||
this._pool = [];
|
||||
this._index = this._count = 0;
|
||||
this._classType = ClassType;
|
||||
initialSize && this.prepopulate(initialSize);
|
||||
}
|
||||
prepopulate(total) {
|
||||
for (let i = 0; i < total; i++) {
|
||||
this._pool[this._index++] = new this._classType();
|
||||
}
|
||||
this._count += total;
|
||||
}
|
||||
get(data) {
|
||||
let item;
|
||||
0 < this._index ? item = this._pool[--this._index] : (item = new this._classType(), this._count++);
|
||||
item.init?.(data);
|
||||
return item;
|
||||
}
|
||||
return(item) {
|
||||
item.reset?.();
|
||||
this._pool[this._index++] = item;
|
||||
}
|
||||
get totalSize() {
|
||||
return this._count;
|
||||
}
|
||||
get totalFree() {
|
||||
return this._index;
|
||||
}
|
||||
get totalUsed() {
|
||||
return this._count - this._index;
|
||||
}
|
||||
clear() {
|
||||
if (0 < this._pool.length && this._pool[0].destroy) {
|
||||
for (let i = 0; i < this._index; i++) {
|
||||
this._pool[i].destroy();
|
||||
}
|
||||
}
|
||||
this._index = this._count = this._pool.length = 0;
|
||||
}
|
||||
}
|
||||
exports.Pool = Pool;
|
||||
};
|
||||
|
||||
//# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$utils$pool$Pool.js.map
|
||||
Reference in New Issue
Block a user