first commit
This commit is contained in:
48
node_modules/lottie-web/player/js/utils/pooling/shapeCollection_pool.js
generated
vendored
Normal file
48
node_modules/lottie-web/player/js/utils/pooling/shapeCollection_pool.js
generated
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
import {
|
||||
createSizedArray,
|
||||
} from '../helpers/arrays';
|
||||
import shapePool from './shape_pool';
|
||||
import pooling from './pooling';
|
||||
import ShapeCollection from '../shapes/ShapeCollection';
|
||||
|
||||
const shapeCollectionPool = (function () {
|
||||
var ob = {
|
||||
newShapeCollection: newShapeCollection,
|
||||
release: release,
|
||||
};
|
||||
|
||||
var _length = 0;
|
||||
var _maxLength = 4;
|
||||
var pool = createSizedArray(_maxLength);
|
||||
|
||||
function newShapeCollection() {
|
||||
var shapeCollection;
|
||||
if (_length) {
|
||||
_length -= 1;
|
||||
shapeCollection = pool[_length];
|
||||
} else {
|
||||
shapeCollection = new ShapeCollection();
|
||||
}
|
||||
return shapeCollection;
|
||||
}
|
||||
|
||||
function release(shapeCollection) {
|
||||
var i;
|
||||
var len = shapeCollection._length;
|
||||
for (i = 0; i < len; i += 1) {
|
||||
shapePool.release(shapeCollection.shapes[i]);
|
||||
}
|
||||
shapeCollection._length = 0;
|
||||
|
||||
if (_length === _maxLength) {
|
||||
pool = pooling.double(pool);
|
||||
_maxLength *= 2;
|
||||
}
|
||||
pool[_length] = shapeCollection;
|
||||
_length += 1;
|
||||
}
|
||||
|
||||
return ob;
|
||||
}());
|
||||
|
||||
export default shapeCollectionPool;
|
Reference in New Issue
Block a user