@sepveneto/dao 0.0.5 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/README.md +58 -0
  2. package/dist/Loader.d.ts +3 -3
  3. package/dist/ResourceManager.d.ts +8 -2
  4. package/dist/app/Application.d.ts +18 -0
  5. package/dist/app/ResizePlugin.d.ts +16 -0
  6. package/dist/app/__tests__/Application.test.d.ts +1 -0
  7. package/dist/app/index.d.ts +1 -0
  8. package/dist/assets/Assets.d.ts +1 -0
  9. package/dist/dao.cjs +2 -2
  10. package/dist/dao.cjs.map +1 -0
  11. package/dist/dao.js +2203 -429
  12. package/dist/dao.js.map +1 -0
  13. package/dist/events/FederatedEvent.d.ts +15 -0
  14. package/dist/events/FederatedEventMap.d.ts +13 -0
  15. package/dist/events/__tests__/EventSystem.test.d.ts +1 -0
  16. package/dist/main.d.ts +8 -28
  17. package/dist/maths/Bounds.d.ts +31 -0
  18. package/dist/maths/Matrix.d.ts +85 -0
  19. package/dist/maths/Point.d.ts +17 -0
  20. package/dist/maths/const.d.ts +14 -0
  21. package/dist/maths/index.d.ts +18 -0
  22. package/dist/maths/shapes/Polygon.d.ts +10 -0
  23. package/dist/maths/shapes/Rectangle.d.ts +11 -0
  24. package/dist/renderer/CanvasPool.d.ts +11 -0
  25. package/dist/renderer/InstructionSet.d.ts +18 -0
  26. package/dist/renderer/index.d.ts +66 -0
  27. package/dist/renderer/texture/RenderTexture.d.ts +7 -0
  28. package/dist/renderer/texture/Texture.d.ts +25 -0
  29. package/dist/renderer/texture/TextureSource.d.ts +50 -0
  30. package/dist/scene/ViewContainer.d.ts +24 -0
  31. package/dist/scene/batcher/Batcher.d.ts +10 -0
  32. package/dist/scene/batcher/BatcherPipe.d.ts +34 -0
  33. package/dist/scene/batcher/index.d.ts +2 -0
  34. package/dist/scene/container/Container.d.ts +200 -0
  35. package/dist/scene/container/RenderGroup.d.ts +31 -0
  36. package/dist/scene/container/__tests__/Container.Sort.test.d.ts +1 -0
  37. package/dist/scene/container/__tests__/RenderGroup.test.d.ts +1 -0
  38. package/dist/scene/container/__tests__/transform-visibility.test.d.ts +1 -0
  39. package/dist/scene/container/__tests__/transform.test.d.ts +1 -0
  40. package/dist/scene/container/destroyTypes.d.ts +9 -0
  41. package/dist/scene/container/mixins/childrenHelperMixin.d.ts +5 -0
  42. package/dist/scene/container/mixins/effectMixin.d.ts +16 -0
  43. package/dist/scene/container/mixins/measureMixin.d.ts +14 -0
  44. package/dist/scene/container/mixins/sortMixin.d.ts +13 -0
  45. package/dist/scene/container/utils/updateRenderGroupTransform.d.ts +4 -0
  46. package/dist/scene/container/utils/validateRenderables.d.ts +2 -0
  47. package/dist/scene/container/utils.d.ts +2 -0
  48. package/dist/scene/graphics/Graphics.d.ts +19 -0
  49. package/dist/scene/graphics/GraphicsContext.d.ts +61 -0
  50. package/dist/scene/graphics/GraphicsPipe.d.ts +15 -0
  51. package/dist/scene/graphics/index.d.ts +3 -0
  52. package/dist/scene/graphics/path/GraphicsPath.d.ts +25 -0
  53. package/dist/scene/graphics/path/ShapePath.d.ts +27 -0
  54. package/dist/scene/graphics/path/buildAdaptiveBezier.d.ts +14 -0
  55. package/dist/scene/index.d.ts +6 -0
  56. package/dist/scene/mask/StencilMask.d.ts +14 -0
  57. package/dist/scene/mask/StencilMaskPipe.d.ts +16 -0
  58. package/dist/scene/sprite/Sprite.d.ts +22 -0
  59. package/dist/scene/sprite/SpritePipe.d.ts +12 -0
  60. package/dist/scene/sprite/index.d.ts +2 -0
  61. package/dist/scene/text/Text.d.ts +40 -0
  62. package/dist/scene/text/TextPipe.d.ts +25 -0
  63. package/dist/scene/text/TextStyle.d.ts +632 -0
  64. package/dist/scene/text/TextSystem.d.ts +19 -0
  65. package/dist/scene/text/__tests__/Text.test.d.ts +1 -0
  66. package/dist/scene/text/index.d.ts +2 -0
  67. package/dist/scene/text/utils.d.ts +74 -0
  68. package/dist/system/CanvasContextSystem.d.ts +15 -0
  69. package/dist/system/EventSystem.d.ts +49 -5
  70. package/dist/system/ExtractSystem.d.ts +18 -0
  71. package/dist/system/RenderGroupSystem.d.ts +16 -0
  72. package/dist/system/ViewSystem.d.ts +22 -0
  73. package/dist/system/index.d.ts +2 -0
  74. package/dist/ticker/Ticker.d.ts +290 -0
  75. package/dist/ticker/TickerListener.d.ts +21 -0
  76. package/dist/ticker/index.d.ts +2 -0
  77. package/dist/utils/index.d.ts +12 -0
  78. package/dist/utils/type.d.ts +16 -0
  79. package/dist/utils/uid.d.ts +19 -0
  80. package/package.json +19 -3
  81. package/dist/Camera.d.ts +0 -46
  82. package/dist/Container.d.ts +0 -17
  83. package/dist/Display.d.ts +0 -60
  84. package/dist/Factory.d.ts +0 -7
  85. package/dist/GameObject.d.ts +0 -17
  86. package/dist/Projection.d.ts +0 -25
  87. package/dist/Renderer.d.ts +0 -6
  88. package/dist/Scene.d.ts +0 -27
  89. package/dist/SortStragety.d.ts +0 -10
  90. package/dist/World.d.ts +0 -7
  91. package/dist/system/InputSystem.d.ts +0 -37
  92. package/dist/system/SortSystem.d.ts +0 -8
  93. package/dist/system/TweenManager.d.ts +0 -49
  94. package/dist/utils.d.ts +0 -5
@@ -0,0 +1,15 @@
1
+ import { Vector2 } from '../maths';
2
+ import { Container } from '../scene';
3
+ import { EventSystem } from '../system';
4
+ export declare class FederatedEvent {
5
+ readonly system: EventSystem;
6
+ target: Container;
7
+ currentTarget: Container;
8
+ nativeEvent: PointerEvent;
9
+ global: Vector2;
10
+ type: string;
11
+ path: Container[];
12
+ constructor(system: EventSystem);
13
+ getLocalPosition(container: Container, points?: Vector2): Vector2;
14
+ composedPath(): Container[];
15
+ }
@@ -0,0 +1,13 @@
1
+ import { FederatedEvent } from './FederatedEvent';
2
+ export type FederatedEventMap = {
3
+ pointerdown: FederatedEvent;
4
+ pointermove: FederatedEvent;
5
+ globalpointermove: FederatedEvent;
6
+ pointerup: FederatedEvent;
7
+ pointerupoutside: FederatedEvent;
8
+ pointerover: FederatedEvent;
9
+ pointerout: FederatedEvent;
10
+ };
11
+ export type FederatedEventEmitterTypes = {
12
+ [K in keyof FederatedEventMap]: [event: FederatedEventMap[K]];
13
+ };
@@ -0,0 +1 @@
1
+ export {};
package/dist/main.d.ts CHANGED
@@ -1,29 +1,9 @@
1
- import { Scene } from './Scene';
2
- import { EventSystem } from './system/EventSystem';
3
- import { InputSystem } from './system/InputSystem';
4
- export * from './Scene';
5
- export * from './system/InputSystem';
6
- export * from './GameObject';
7
- export * from './Projection';
8
1
  export * from './ResourceManager';
9
- export * from './SortStragety';
10
- export * from './system/TweenManager';
11
- export * from './Camera';
12
- export * from './Display';
13
- export * from './Container';
14
- export type GameConfig = {
15
- width?: number;
16
- height?: number;
17
- canvas: HTMLCanvasElement;
18
- };
19
- export declare class Game {
20
- private lastTime;
21
- private scene;
22
- private renderer;
23
- input: InputSystem;
24
- events: EventSystem;
25
- config: Required<GameConfig>;
26
- constructor(canvas: HTMLCanvasElement, config: GameConfig);
27
- start(scene: Scene): void;
28
- loop(timestamp: number): void;
29
- }
2
+ export * from './renderer';
3
+ export * from './app';
4
+ export * from './ticker';
5
+ export * from './maths';
6
+ export * from './Loader';
7
+ export * from './maths';
8
+ export * from './scene';
9
+ export * from './renderer/texture/Texture';
@@ -0,0 +1,31 @@
1
+ import { Matrix } from './Matrix';
2
+ import { Container } from '../scene/container/Container';
3
+ import { Rectangle } from './shapes/Rectangle';
4
+ export declare class Bounds {
5
+ minX: number;
6
+ minY: number;
7
+ maxX: number;
8
+ maxY: number;
9
+ matrix: Matrix;
10
+ private _rectangle;
11
+ constructor(minX?: number, minY?: number, maxX?: number, maxY?: number);
12
+ clone(): Bounds;
13
+ isEmpty(): boolean;
14
+ clear(): void;
15
+ get width(): number;
16
+ set width(value: number);
17
+ get height(): number;
18
+ set height(value: number);
19
+ get left(): number;
20
+ get right(): number;
21
+ get top(): number;
22
+ get bottom(): number;
23
+ get isValid(): boolean;
24
+ set(x0: number, y0: number, x1: number, y1: number): void;
25
+ addBounds(bounds: Bounds, matrix?: Matrix): void;
26
+ addRect(rect: Rectangle, matrix?: Matrix): void;
27
+ addFrame(x0: number, y0: number, x1: number, y1: number, matrix?: Matrix): void;
28
+ get rectangle(): Rectangle;
29
+ addBoundsMask(mask: Bounds): void;
30
+ }
31
+ export declare function getLocalBounds(target: Container, bounds: Bounds, relativeMatrix?: Matrix): Bounds;
@@ -0,0 +1,85 @@
1
+ import { Vector2 } from '.';
2
+ /**
3
+ * Two Pi.
4
+ * @type {number}
5
+ * @category maths
6
+ * @standard
7
+ */
8
+ export declare const PI_2: number;
9
+ /**
10
+ * The data structure that contains the position, scale, pivot, skew and rotation of an object.
11
+ * This is used by the {@link Matrix} class to decompose the matrix into its components.
12
+ * @category maths
13
+ * @advanced
14
+ */
15
+ /**
16
+ * The data structure that contains the position, scale, pivot, skew and rotation of an object.
17
+ * This is used by the {@link Matrix} class to decompose the matrix into its components.
18
+ * @category maths
19
+ * @advanced
20
+ */
21
+ export interface TransformableObject {
22
+ /** The position of the object */
23
+ position: Vector2;
24
+ /** The scale of the object */
25
+ scale: Vector2;
26
+ /** The skew of the object */
27
+ skew: Vector2;
28
+ /** The rotation of the object */
29
+ rotation: number;
30
+ pivot: Vector2;
31
+ }
32
+ export declare class Matrix {
33
+ a: number;
34
+ b: number;
35
+ c: number;
36
+ d: number;
37
+ tx: number;
38
+ ty: number;
39
+ constructor(a?: number, b?: number, c?: number, d?: number, tx?: number, ty?: number);
40
+ /**
41
+ * A * B
42
+ */
43
+ static append(A: Matrix, B: Matrix): Matrix;
44
+ apply(pos: Vector2): Vector2;
45
+ appendFrom(a: Matrix, b: Matrix): void;
46
+ set(a: number, b: number, c: number, d: number, tx: number, ty: number): void;
47
+ applyInverse(pos: Vector2, newPos?: Vector2): Vector2;
48
+ copyFrom(matrix: Matrix): this;
49
+ /**
50
+ * Decomposes the matrix into its individual transform components.
51
+ * Extracts position, scale, rotation and skew values from the matrix.
52
+ * @example
53
+ * ```ts
54
+ * // Basic decomposition
55
+ * const matrix = new Matrix()
56
+ * .translate(100, 100)
57
+ * .rotate(Math.PI / 4)
58
+ * .scale(2, 2);
59
+ *
60
+ * const transform = {
61
+ * position: new Point(),
62
+ * scale: new Point(),
63
+ * pivot: new Point(),
64
+ * skew: new Point(),
65
+ * rotation: 0
66
+ * };
67
+ *
68
+ * matrix.decompose(transform);
69
+ * console.log(transform.position); // Point(100, 100)
70
+ * console.log(transform.rotation); // ~0.785 (PI/4)
71
+ * console.log(transform.scale); // Point(2, 2)
72
+ * ```
73
+ * @remarks
74
+ * - Handles combined transformations
75
+ * - Accounts for pivot points
76
+ * - Chooses between rotation/skew based on transform type
77
+ * - Uses radians for rotation and skew
78
+ * @param transform - The transform object to store the decomposed values
79
+ * @returns The transform with the newly applied properties
80
+ * @see {@link Matrix.setTransform} For composing from components
81
+ * @see {@link TransformableObject} For transform structure
82
+ */
83
+ decompose(transform: TransformableObject): TransformableObject;
84
+ clone(): Matrix;
85
+ }
@@ -0,0 +1,17 @@
1
+ import { Vector2 } from '.';
2
+ export interface Observer<T> {
3
+ _onUpdate: (point?: T) => void;
4
+ }
5
+ export declare class ObservablePoint {
6
+ _x: number;
7
+ _y: number;
8
+ private readonly _observer;
9
+ constructor(observer: Observer<ObservablePoint>, x?: number, y?: number);
10
+ set(x?: number, y?: number): this;
11
+ get x(): number;
12
+ set x(value: number);
13
+ get y(): number;
14
+ set y(value: number);
15
+ copyFrom(value: Vector2): this;
16
+ toVector2(): Vector2;
17
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Conversion factor for converting radians to degrees.
3
+ * @type {number} RAD_TO_DEG
4
+ * @category maths
5
+ * @standard
6
+ */
7
+ export declare const RAD_TO_DEG: number;
8
+ /**
9
+ * Conversion factor for converting degrees to radians.
10
+ * @type {number}
11
+ * @category maths
12
+ * @standard
13
+ */
14
+ export declare const DEG_TO_RAD: number;
@@ -0,0 +1,18 @@
1
+ export declare class Vector2 {
2
+ x: number;
3
+ y: number;
4
+ constructor(x?: number, y?: number);
5
+ set(xora: number, y?: number): void;
6
+ copyFrom(data: Vector2): void;
7
+ }
8
+ export * from './Matrix';
9
+ export * from './shapes/Rectangle';
10
+ /**
11
+ * Rounds to next power of two.
12
+ * @function nextPow2
13
+ * @param {number} v - input value
14
+ * @returns {number} - next rounded power of two
15
+ * @category maths
16
+ * @advanced
17
+ */
18
+ export declare function nextPow2(v: number): number;
@@ -0,0 +1,10 @@
1
+ import { Rectangle } from './Rectangle';
2
+ export declare class Polygon {
3
+ points: number[];
4
+ closePath: boolean;
5
+ readonly type = "polygon";
6
+ construction(): void;
7
+ get lastX(): number;
8
+ get lastY(): number;
9
+ getBounds(): Rectangle;
10
+ }
@@ -0,0 +1,11 @@
1
+ export declare class Rectangle {
2
+ x: number;
3
+ y: number;
4
+ width: number;
5
+ height: number;
6
+ readonly type = "rectangle";
7
+ constructor(x?: number, y?: number, width?: number, height?: number);
8
+ getBounds(): Rectangle;
9
+ copyFrom(rectangle: Rectangle): Rectangle;
10
+ contains(x: number, y: number): boolean;
11
+ }
@@ -0,0 +1,11 @@
1
+ export type CanvasAndContext = {
2
+ canvas: HTMLCanvasElement | OffscreenCanvas;
3
+ context: CanvasRenderingContext2D;
4
+ };
5
+ declare class CanvasPoolClass {
6
+ private _canvasPool;
7
+ constructor();
8
+ getOptimalCanvasAndContext(minWidth: number, minHeight: number, resolution?: number): CanvasAndContext;
9
+ }
10
+ export declare const CanvasPool: CanvasPoolClass;
11
+ export {};
@@ -0,0 +1,18 @@
1
+ export interface Instruction {
2
+ readonly renderPipeId: string;
3
+ }
4
+ /**
5
+ * 对数组的简单封装
6
+ * 出于性能优的考虑,不会主观的调整数组的大小
7
+ * 因此length没有使用价值
8
+ */
9
+ export declare class InstructionSet {
10
+ readonly instructions: Instruction[];
11
+ instructionSize: number;
12
+ /**
13
+ * @internal
14
+ */
15
+ renderPipes: any;
16
+ reset(): void;
17
+ add(instruction: Instruction): void;
18
+ }
@@ -0,0 +1,66 @@
1
+ import { Matrix } from '../maths';
2
+ import { EventSystem, RenderGroupSystem } from '../system';
3
+ import { Container } from '../scene/container/Container';
4
+ import { RenderGroup } from '../scene/container/RenderGroup';
5
+ import { SpritePipe } from '../scene/sprite/SpritePipe';
6
+ import { TextPipe } from '../scene/text/TextPipe';
7
+ import { GraphicsPipe } from '../scene/graphics';
8
+ import { BatchPipe } from '../scene/batcher';
9
+ import { TextSystem } from '../scene/text/TextSystem';
10
+ import { StencilMaskPipe } from '../scene/mask/StencilMaskPipe';
11
+ import { ExtractSystemTypes } from '../utils/type';
12
+ import { ExtractSystem } from '../system/ExtractSystem';
13
+ import { CanvasContextSystem } from '../system/CanvasContextSystem';
14
+ import { TextureSource } from './texture/TextureSource';
15
+ import { ViewSystem } from '../system/ViewSystem';
16
+ import { default as EventEmitter } from 'eventemitter3';
17
+ declare const systems: (typeof ViewSystem | typeof EventSystem | typeof RenderGroupSystem | typeof TextSystem | typeof ExtractSystem | typeof CanvasContextSystem)[];
18
+ declare const pipes: (typeof GraphicsPipe | typeof BatchPipe | typeof TextPipe | typeof SpritePipe | typeof StencilMaskPipe)[];
19
+ type RenderOptions = {
20
+ clearColor?: string;
21
+ container: Container;
22
+ transform?: Matrix;
23
+ target?: {
24
+ source: TextureSource;
25
+ };
26
+ };
27
+ export type CanvasSystems = ExtractSystemTypes<typeof systems>;
28
+ export type CanvasPipes = ExtractSystemTypes<typeof pipes>;
29
+ export interface RendererOptions {
30
+ width?: number;
31
+ height?: number;
32
+ backgroundColor?: string;
33
+ roundPixels?: boolean;
34
+ autoStart?: boolean;
35
+ resolution?: number;
36
+ /**
37
+ * Should the canvas be resized to preserve its screen width and height regardless
38
+ * of the resolution of the renderer.
39
+ */
40
+ autoDensity?: boolean;
41
+ }
42
+ export interface CanvasRenderer extends CanvasSystems {
43
+ }
44
+ export declare class CanvasRenderer extends EventEmitter {
45
+ uid: number;
46
+ context: CanvasRenderingContext2D;
47
+ background: {
48
+ color: string;
49
+ };
50
+ renderedObject: Container;
51
+ _roundPixels: 0 | 1;
52
+ resolution: number;
53
+ activeRenderGroup: RenderGroup;
54
+ renderPipes: CanvasPipes;
55
+ constructor();
56
+ get canvas(): HTMLCanvasElement;
57
+ private _addPipes;
58
+ private _addSystems;
59
+ init(options: RendererOptions): Promise<void>;
60
+ get roundPixels(): boolean;
61
+ render(args: Container | RenderOptions): void;
62
+ clear(options: RenderOptions): void;
63
+ destroy(): void;
64
+ resize(width: number, height: number, resolution?: number): void;
65
+ }
66
+ export {};
@@ -0,0 +1,7 @@
1
+ import { Texture } from './Texture';
2
+ import { TextureSourceOptions } from './TextureSource';
3
+ export interface RenderTextureOptions extends TextureSourceOptions {
4
+ }
5
+ export declare class RenderTexture extends Texture {
6
+ static create(options: RenderTextureOptions): RenderTexture;
7
+ }
@@ -0,0 +1,25 @@
1
+ import { Rectangle } from '../../maths';
2
+ import { TextureSource } from './TextureSource';
3
+ export interface TextureOptions<TextureSourceType extends TextureSource = TextureSource> {
4
+ source?: TextureSourceType;
5
+ label?: string;
6
+ frame?: Rectangle;
7
+ orig?: Rectangle;
8
+ rotate?: number;
9
+ }
10
+ export declare class Texture<T extends TextureSource = TextureSource> {
11
+ static EMPTY: Texture;
12
+ label: string;
13
+ _source: T;
14
+ orig: Rectangle;
15
+ frame: Rectangle;
16
+ readonly rotate: number;
17
+ destroyed: boolean;
18
+ noFrame: boolean;
19
+ constructor({ source, label, frame, orig, rotate, }?: TextureOptions<T>);
20
+ get source(): T;
21
+ set source(value: T);
22
+ get width(): number;
23
+ get height(): number;
24
+ update(): void;
25
+ }
@@ -0,0 +1,50 @@
1
+ import { default as EventEmitter } from 'eventemitter3';
2
+ export type TextureSourceOptions<T extends Record<string, any> = any> = {
3
+ label?: string;
4
+ resource?: T;
5
+ width?: number;
6
+ height?: number;
7
+ resolution?: number;
8
+ };
9
+ export declare class TextureSource<T extends Record<string, any> = any> extends EventEmitter {
10
+ static defaultOptions: {
11
+ resolution: number;
12
+ };
13
+ label: string;
14
+ /**
15
+ * @internal
16
+ */
17
+ _resolution: number;
18
+ /** the pixel width of this texture source. This is the REAL pure number, not accounting resolution */
19
+ pixelWidth: number;
20
+ /** the pixel height of this texture source. This is the REAL pure number, not accounting resolution */
21
+ pixelHeight: number;
22
+ /**
23
+ */
24
+ /**
25
+ * the width of this texture source, accounting for resolution
26
+ * eg pixelWidth 200, resolution 2, then width will be 100
27
+ */
28
+ width: number;
29
+ /**
30
+ * the height of this texture source, accounting for resolution
31
+ * eg pixelHeight 200, resolution 2, then height will be 100
32
+ */
33
+ height: number;
34
+ resource: T;
35
+ constructor(options: TextureSourceOptions<T>);
36
+ get resolution(): number;
37
+ set resolution(value: number);
38
+ get resourceWidth(): any;
39
+ get resourceHeight(): any;
40
+ resize(width?: number, height?: number, resolution?: number): boolean;
41
+ }
42
+ export interface CanvasSourceOptions extends TextureSourceOptions<HTMLCanvasElement> {
43
+ autoDensity?: boolean;
44
+ }
45
+ export declare class CanvasSource extends TextureSource<HTMLCanvasElement> {
46
+ autoDensity: boolean;
47
+ constructor(options?: CanvasSourceOptions);
48
+ resizeCanvas(): void;
49
+ resize(width?: number, height?: number, resolution?: number): boolean;
50
+ }
@@ -0,0 +1,24 @@
1
+ import { Bounds } from '../maths/Bounds';
2
+ import { Container } from './container/Container';
3
+ import { Vector2 } from '../maths';
4
+ import { InstructionSet } from '../renderer/InstructionSet';
5
+ import { DestroyOptions } from './container/destroyTypes';
6
+ export type Renderable = ViewContainer;
7
+ export interface RuntimeData {
8
+ destroy: () => void;
9
+ }
10
+ export declare abstract class ViewContainer<RUNTIME_DATA extends RuntimeData = any> extends Container {
11
+ _runtimeData: Record<number, RUNTIME_DATA>;
12
+ /** @internal */
13
+ _resolution: number;
14
+ _roundPixels: 0 | 1;
15
+ protected _bounds: Bounds;
16
+ get bounds(): Bounds;
17
+ protected abstract updateBounds(): void;
18
+ protected onViewUpdate(): void;
19
+ collectRenderableSimple(renderPipes: Record<string, any>, instructionSet: InstructionSet): void;
20
+ containsPoint(point: Vector2): boolean;
21
+ get roundPixels(): boolean;
22
+ set roundPixels(value: boolean);
23
+ destroy(options?: DestroyOptions): void;
24
+ }
@@ -0,0 +1,10 @@
1
+ import { InstructionSet } from '../../renderer/InstructionSet';
2
+ import { BatchableElement } from './BatcherPipe';
3
+ export declare class Batcher {
4
+ renderPipeId: string;
5
+ elements: BatchableElement[];
6
+ elementSize: number;
7
+ add(elm: BatchableElement): void;
8
+ build(instructionSet: InstructionSet): void;
9
+ destroy(): void;
10
+ }
@@ -0,0 +1,34 @@
1
+ import { CanvasRenderer } from '../../renderer';
2
+ import { Batcher } from './Batcher';
3
+ import { Matrix } from '../../maths';
4
+ import { Instruction, InstructionSet } from '../../renderer/InstructionSet';
5
+ import { Container } from '../../main';
6
+ import { Bounds } from '../../maths/Bounds';
7
+ import { Texture } from '../../renderer/texture/Texture';
8
+ export type BatchableElement = {
9
+ renderable: Container;
10
+ texture: Texture;
11
+ transform: Matrix;
12
+ bounds: Bounds;
13
+ roundPixels: number;
14
+ getColor: () => number;
15
+ };
16
+ export declare class Batch implements Instruction {
17
+ renderPipeId: string;
18
+ elements: BatchableElement[];
19
+ }
20
+ export declare class BatchPipe {
21
+ private _renderer;
22
+ private _activeBatch;
23
+ static desc: {
24
+ readonly name: "batch";
25
+ };
26
+ constructor(renderer: CanvasRenderer);
27
+ get batch(): Batcher;
28
+ buildStart(): void;
29
+ buildEnd(instructionSet: InstructionSet): void;
30
+ break(instructionSet: InstructionSet): void;
31
+ addToBatch(batchElement: Omit<BatchableElement, 'getColor'>, _instructionSet: InstructionSet): void;
32
+ execute(batch: Batch): void;
33
+ destroy(): void;
34
+ }
@@ -0,0 +1,2 @@
1
+ export * from './Batcher';
2
+ export * from './BatcherPipe';