import Vector3D from "openfl/geom/Vector3D"; import Rectangle from "openfl/geom/Rectangle"; import Point from "openfl/geom/Point"; import Matrix3D from "openfl/geom/Matrix3D"; import Matrix from "openfl/geom/Matrix"; declare namespace starling.utils { /** * A simple object pool supporting the most basic utility objects. * * * *
If you want to retrieve an object, but the pool does not contain any more instances, * * it will silently create a new one.
* * * *It's important that you use the pool in a balanced way, i.e. don't just "get" or "put" * * alone! Always make the calls in pairs; whenever you get an object, be sure to put it back * * later, and the other way round. Otherwise, the pool will empty or (even worse) grow * * in size uncontrolled.
* */ export class Pool { /** * @private */ protected constructor(); /** * Retrieves a Point instance from the pool. */ static getPoint(x?: number, y?: number): Point; /** * Stores a Point instance in the pool. * * Don't keep any references to the object after moving it to the pool! */ static putPoint(point: Point): void; /** * Retrieves a Vector3D instance from the pool. */ static getPoint3D(x?: number, y?: number, z?: number): Vector3D; /** * Stores a Vector3D instance in the pool. * * Don't keep any references to the object after moving it to the pool! */ static putPoint3D(point: Vector3D): void; /** * Retrieves a Matrix instance from the pool. */ static getMatrix(a?: number, b?: number, c?: number, d?: number, tx?: number, ty?: number): Matrix; /** * Stores a Matrix instance in the pool. * * Don't keep any references to the object after moving it to the pool! */ static putMatrix(matrix: Matrix): void; /** * Retrieves a Matrix3D instance from the pool. * * * * @param identity If enabled, the matrix will be reset to the identity. * * Otherwise, its contents is undefined. * */ static getMatrix3D(identity?: boolean): Matrix3D; /** * Stores a Matrix3D instance in the pool. * * Don't keep any references to the object after moving it to the pool! */ static putMatrix3D(matrix: Matrix3D): void; /** * Retrieves a Rectangle instance from the pool. */ static getRectangle(x?: number, y?: number, width?: number, height?: number): Rectangle; /** * Stores a Rectangle instance in the pool. * * Don't keep any references to the object after moving it to the pool! */ static putRectangle(rectangle: Rectangle): void; } } export default starling.utils.Pool;