@sepveneto/dao 0.0.5 → 0.1.0
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.
- package/README.md +58 -0
- package/dist/Loader.d.ts +3 -3
- package/dist/ResourceManager.d.ts +8 -2
- package/dist/app/Application.d.ts +18 -0
- package/dist/app/ResizePlugin.d.ts +16 -0
- package/dist/app/__tests__/Application.test.d.ts +1 -0
- package/dist/app/index.d.ts +1 -0
- package/dist/assets/Assets.d.ts +1 -0
- package/dist/dao.cjs +2 -2
- package/dist/dao.cjs.map +1 -0
- package/dist/dao.js +2175 -426
- package/dist/dao.js.map +1 -0
- package/dist/events/FederatedEvent.d.ts +15 -0
- package/dist/events/FederatedEventMap.d.ts +13 -0
- package/dist/events/__tests__/EventSystem.test.d.ts +1 -0
- package/dist/main.d.ts +8 -28
- package/dist/maths/Bounds.d.ts +31 -0
- package/dist/maths/Matrix.d.ts +85 -0
- package/dist/maths/Point.d.ts +17 -0
- package/dist/maths/const.d.ts +14 -0
- package/dist/maths/index.d.ts +18 -0
- package/dist/maths/shapes/Polygon.d.ts +10 -0
- package/dist/maths/shapes/Rectangle.d.ts +11 -0
- package/dist/renderer/CanvasPool.d.ts +11 -0
- package/dist/renderer/InstructionSet.d.ts +18 -0
- package/dist/renderer/index.d.ts +66 -0
- package/dist/renderer/texture/RenderTexture.d.ts +7 -0
- package/dist/renderer/texture/Texture.d.ts +25 -0
- package/dist/renderer/texture/TextureSource.d.ts +50 -0
- package/dist/scene/ViewContainer.d.ts +22 -0
- package/dist/scene/batcher/Batcher.d.ts +10 -0
- package/dist/scene/batcher/BatcherPipe.d.ts +34 -0
- package/dist/scene/batcher/index.d.ts +2 -0
- package/dist/scene/container/Container.d.ts +198 -0
- package/dist/scene/container/RenderGroup.d.ts +24 -0
- package/dist/scene/container/__tests__/Container.Sort.test.d.ts +1 -0
- package/dist/scene/container/__tests__/RenderGroup.test.d.ts +1 -0
- package/dist/scene/container/__tests__/transform-visibility.test.d.ts +1 -0
- package/dist/scene/container/__tests__/transform.test.d.ts +1 -0
- package/dist/scene/container/destroyTypes.d.ts +9 -0
- package/dist/scene/container/mixins/childrenHelperMixin.d.ts +5 -0
- package/dist/scene/container/mixins/effectMixin.d.ts +16 -0
- package/dist/scene/container/mixins/measureMixin.d.ts +14 -0
- package/dist/scene/container/mixins/sortMixin.d.ts +13 -0
- package/dist/scene/container/utils/updateRenderGroupTransform.d.ts +4 -0
- package/dist/scene/container/utils.d.ts +2 -0
- package/dist/scene/graphics/Graphics.d.ts +19 -0
- package/dist/scene/graphics/GraphicsContext.d.ts +61 -0
- package/dist/scene/graphics/GraphicsPipe.d.ts +15 -0
- package/dist/scene/graphics/index.d.ts +3 -0
- package/dist/scene/graphics/path/GraphicsPath.d.ts +25 -0
- package/dist/scene/graphics/path/ShapePath.d.ts +27 -0
- package/dist/scene/graphics/path/buildAdaptiveBezier.d.ts +14 -0
- package/dist/scene/index.d.ts +6 -0
- package/dist/scene/mask/StencilMask.d.ts +14 -0
- package/dist/scene/mask/StencilMaskPipe.d.ts +16 -0
- package/dist/scene/sprite/Sprite.d.ts +22 -0
- package/dist/scene/sprite/SpritePipe.d.ts +12 -0
- package/dist/scene/sprite/index.d.ts +2 -0
- package/dist/scene/text/Text.d.ts +40 -0
- package/dist/scene/text/TextPipe.d.ts +24 -0
- package/dist/scene/text/TextStyle.d.ts +632 -0
- package/dist/scene/text/TextSystem.d.ts +19 -0
- package/dist/scene/text/__tests__/Text.test.d.ts +1 -0
- package/dist/scene/text/index.d.ts +2 -0
- package/dist/scene/text/utils.d.ts +74 -0
- package/dist/system/CanvasContextSystem.d.ts +15 -0
- package/dist/system/EventSystem.d.ts +49 -5
- package/dist/system/ExtractSystem.d.ts +18 -0
- package/dist/system/RenderGroupSystem.d.ts +16 -0
- package/dist/system/ViewSystem.d.ts +22 -0
- package/dist/system/index.d.ts +2 -0
- package/dist/ticker/Ticker.d.ts +290 -0
- package/dist/ticker/TickerListener.d.ts +21 -0
- package/dist/ticker/index.d.ts +2 -0
- package/dist/utils/index.d.ts +12 -0
- package/dist/utils/type.d.ts +16 -0
- package/dist/utils/uid.d.ts +19 -0
- package/package.json +19 -3
- package/dist/Camera.d.ts +0 -46
- package/dist/Container.d.ts +0 -17
- package/dist/Display.d.ts +0 -60
- package/dist/Factory.d.ts +0 -7
- package/dist/GameObject.d.ts +0 -17
- package/dist/Projection.d.ts +0 -25
- package/dist/Renderer.d.ts +0 -6
- package/dist/Scene.d.ts +0 -27
- package/dist/SortStragety.d.ts +0 -10
- package/dist/World.d.ts +0 -7
- package/dist/system/InputSystem.d.ts +0 -37
- package/dist/system/SortSystem.d.ts +0 -8
- package/dist/system/TweenManager.d.ts +0 -49
- 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 './
|
|
10
|
-
export * from './
|
|
11
|
-
export * from './
|
|
12
|
-
export * from './
|
|
13
|
-
export * from './
|
|
14
|
-
export
|
|
15
|
-
|
|
16
|
-
|
|
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,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,22 @@
|
|
|
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
|
+
_roundPixels: 0 | 1;
|
|
13
|
+
protected _bounds: Bounds;
|
|
14
|
+
get bounds(): Bounds;
|
|
15
|
+
protected abstract updateBounds(): void;
|
|
16
|
+
protected onViewUpdate(): void;
|
|
17
|
+
collectRenderableSimple(renderPipes: Record<string, any>, instructionSet: InstructionSet): void;
|
|
18
|
+
containsPoint(point: Vector2): boolean;
|
|
19
|
+
get roundPixels(): boolean;
|
|
20
|
+
set roundPixels(value: boolean);
|
|
21
|
+
destroy(options?: DestroyOptions): void;
|
|
22
|
+
}
|
|
@@ -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
|
+
}
|