UNPKG

lottie-web

Version:

After Effects plugin for exporting animations to SVG + JavaScript or canvas + JavaScript

49 lines (41 loc) 1.06 kB
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;