@lightningjs/renderer 3.0.3 → 3.0.5
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/dist/src/common/EventEmitter.d.ts +7 -4
- package/dist/src/common/EventEmitter.js +1 -1
- package/dist/src/common/EventEmitter.js.map +1 -1
- package/dist/src/core/AutosizeManager.d.ts +29 -0
- package/dist/src/core/AutosizeManager.js +169 -0
- package/dist/src/core/AutosizeManager.js.map +1 -0
- package/dist/src/core/CoreNode.d.ts +2 -1
- package/dist/src/core/CoreNode.js +6 -3
- package/dist/src/core/CoreNode.js.map +1 -1
- package/dist/src/core/CoreTextNode.d.ts +18 -5
- package/dist/src/core/CoreTextNode.js +141 -59
- package/dist/src/core/CoreTextNode.js.map +1 -1
- package/dist/src/core/CoreTextNodeCanvas.d.ts +215 -0
- package/dist/src/core/CoreTextNodeCanvas.js +236 -0
- package/dist/src/core/CoreTextNodeCanvas.js.map +1 -0
- package/dist/src/core/Stage.js +10 -0
- package/dist/src/core/Stage.js.map +1 -1
- package/dist/src/core/TextureMemoryManager.js +4 -3
- package/dist/src/core/TextureMemoryManager.js.map +1 -1
- package/dist/src/core/animations/Animation.d.ts +21 -0
- package/dist/src/core/animations/Animation.js +194 -0
- package/dist/src/core/animations/Animation.js.map +1 -0
- package/dist/src/core/animations/AnimationManager.d.ts +1 -1
- package/dist/src/core/animations/AnimationManager.js +5 -5
- package/dist/src/core/animations/AnimationManager.js.map +1 -1
- package/dist/src/core/animations/CoreAnimation.d.ts +11 -2
- package/dist/src/core/animations/CoreAnimation.js +44 -38
- package/dist/src/core/animations/CoreAnimation.js.map +1 -1
- package/dist/src/core/animations/CoreAnimationController.d.ts +6 -0
- package/dist/src/core/animations/CoreAnimationController.js +16 -3
- package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
- package/dist/src/core/animations/Playback.d.ts +64 -0
- package/dist/src/core/animations/Playback.js +169 -0
- package/dist/src/core/animations/Playback.js.map +1 -0
- package/dist/src/core/animations/Ticker.d.ts +71 -0
- package/dist/src/core/animations/Ticker.js +89 -0
- package/dist/src/core/animations/Ticker.js.map +1 -0
- package/dist/src/core/animations/Transition.d.ts +38 -0
- package/dist/src/core/animations/Transition.js +35 -0
- package/dist/src/core/animations/Transition.js.map +1 -0
- package/dist/src/core/animations/TransitionsController.d.ts +10 -0
- package/dist/src/core/animations/TransitionsController.js +39 -0
- package/dist/src/core/animations/TransitionsController.js.map +1 -0
- package/dist/src/core/animations/utils.d.ts +2 -0
- package/dist/src/core/animations/utils.js +136 -0
- package/dist/src/core/animations/utils.js.map +1 -0
- package/dist/src/core/lib/ImageWorker.d.ts +2 -2
- package/dist/src/core/lib/ImageWorker.js +11 -30
- package/dist/src/core/lib/ImageWorker.js.map +1 -1
- package/dist/src/core/lib/WebGlContextWrapper.d.ts +5 -16
- package/dist/src/core/lib/WebGlContextWrapper.js +1 -35
- package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
- package/dist/src/core/lib/textureCompression.d.ts +2 -14
- package/dist/src/core/lib/textureCompression.js +67 -320
- package/dist/src/core/lib/textureCompression.js.map +1 -1
- package/dist/src/core/platform.js +9 -38
- package/dist/src/core/platform.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.d.ts +0 -1
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +3 -11
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +1 -2
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +11 -16
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasRenderer.js +14 -1
- package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +1 -1
- package/dist/src/core/renderers/canvas/CanvasTexture.js +16 -6
- package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -1
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +0 -13
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +192 -113
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +1 -1
- package/dist/src/core/renderers/canvas/internal/ColorUtils.d.ts +2 -0
- package/dist/src/core/renderers/canvas/internal/ColorUtils.js +14 -0
- package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.d.ts +1 -2
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +5 -12
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +6 -18
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +60 -102
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +1 -3
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +31 -74
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +7 -2
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js +50 -21
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +2 -3
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js +1 -3
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +2 -2
- package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +1 -0
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js +23 -0
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +4 -5
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +1 -0
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +6 -3
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +11 -0
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +10 -5
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +10 -5
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js +12 -0
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js +2 -2
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +5 -5
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.d.ts +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +30 -14
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.d.ts +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +3 -13
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +5 -5
- package/dist/src/core/shaders/webgl/SdfShadowShader.d.ts +9 -0
- package/dist/src/core/shaders/webgl/SdfShadowShader.js +100 -0
- package/dist/src/core/shaders/webgl/SdfShadowShader.js.map +1 -0
- package/dist/src/core/text-rendering/CanvasFont.d.ts +1 -1
- package/dist/src/core/text-rendering/CanvasFont.js +7 -16
- package/dist/src/core/text-rendering/CanvasFont.js.map +1 -1
- package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +1 -1
- package/dist/src/core/text-rendering/CanvasFontHandler.js +1 -1
- package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -1
- package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +2 -3
- package/dist/src/core/text-rendering/CanvasTextRenderer.js +7 -5
- package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/CoreFont.d.ts +1 -1
- package/dist/src/core/text-rendering/CoreFont.js +1 -1
- package/dist/src/core/text-rendering/CoreFont.js.map +1 -1
- package/dist/src/core/text-rendering/FontManager.js +2 -1
- package/dist/src/core/text-rendering/FontManager.js.map +1 -1
- package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +3 -5
- package/dist/src/core/text-rendering/SdfTextRenderer.js +19 -109
- package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/TextLayoutEngine.js +43 -12
- package/dist/src/core/text-rendering/TextLayoutEngine.js.map +1 -1
- package/dist/src/core/text-rendering/TextRenderer.d.ts +16 -8
- package/dist/src/core/text-rendering/canvas/Settings.d.ts +64 -0
- package/dist/src/core/text-rendering/canvas/Settings.js +20 -0
- package/dist/src/core/text-rendering/canvas/Settings.js.map +1 -0
- package/dist/src/core/text-rendering/canvas/Utils.d.ts +20 -0
- package/dist/src/core/text-rendering/canvas/Utils.js +144 -0
- package/dist/src/core/text-rendering/canvas/Utils.js.map +1 -0
- package/dist/src/core/text-rendering/canvas/calculateRenderInfo.d.ts +60 -0
- package/dist/src/core/text-rendering/canvas/calculateRenderInfo.js +183 -0
- package/dist/src/core/text-rendering/canvas/calculateRenderInfo.js.map +1 -0
- package/dist/src/core/text-rendering/canvas/draw.d.ts +5 -0
- package/dist/src/core/text-rendering/canvas/draw.js +132 -0
- package/dist/src/core/text-rendering/canvas/draw.js.map +1 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +2 -2
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +3 -4
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +46 -98
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.d.ts +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +2 -2
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +66 -8
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.d.ts +1 -1
- package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +1 -1
- package/dist/src/core/text-rendering/renderers/canvas/CanvasTextRenderer.d.ts +26 -0
- package/dist/src/core/text-rendering/renderers/canvas/CanvasTextRenderer.js +158 -0
- package/dist/src/core/text-rendering/renderers/canvas/CanvasTextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/draw.d.ts +5 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/draw.js +127 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/draw.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/mergeDefaults.d.ts +2 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/mergeDefaults.js +50 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/mergeDefaults.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/renderInfo.d.ts +33 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/renderInfo.js +192 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/renderInfo.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/types.d.ts +66 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/types.js +2 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/types.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/utils.d.ts +91 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/utils.js +282 -0
- package/dist/src/core/text-rendering/renderers/canvas/internal/utils.js.map +1 -0
- package/dist/src/core/text-rendering/sdf/PeekableGenerator.d.ts +12 -0
- package/dist/src/core/text-rendering/sdf/PeekableGenerator.js +61 -0
- package/dist/src/core/text-rendering/sdf/PeekableGenerator.js.map +1 -0
- package/dist/src/core/text-rendering/sdf/SimpleFontShaper.d.ts +45 -0
- package/dist/src/core/text-rendering/sdf/SimpleFontShaper.js +69 -0
- package/dist/src/core/text-rendering/sdf/SimpleFontShaper.js.map +1 -0
- package/dist/src/core/text-rendering/sdf/Utils.d.ts +26 -0
- package/dist/src/core/text-rendering/sdf/Utils.js +301 -0
- package/dist/src/core/text-rendering/sdf/Utils.js.map +1 -0
- package/dist/src/core/text-rendering/sdf/index.d.ts +1 -0
- package/dist/src/core/text-rendering/sdf/index.js +20 -0
- package/dist/src/core/text-rendering/sdf/index.js.map +1 -0
- package/dist/src/core/textures/ImageTexture.js +11 -0
- package/dist/src/core/textures/ImageTexture.js.map +1 -1
- package/dist/src/core/textures/Texture.js +5 -0
- package/dist/src/core/textures/Texture.js.map +1 -1
- package/dist/src/main-api/Inspector.d.ts +1 -1
- package/dist/src/main-api/Inspector.js +25 -20
- package/dist/src/main-api/Inspector.js.map +1 -1
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +1 -1
- package/src/common/EventEmitter.ts +6 -8
- package/src/core/CoreNode.test.ts +1 -1
- package/src/core/CoreNode.ts +8 -4
- package/src/core/CoreTextNode.test.ts +138 -25
- package/src/core/CoreTextNode.ts +174 -67
- package/src/core/Stage.ts +11 -0
- package/src/core/TextureMemoryManager.ts +4 -3
- package/src/core/animations/AnimationManager.ts +5 -5
- package/src/core/animations/CoreAnimation.ts +61 -45
- package/src/core/animations/CoreAnimationController.ts +16 -7
- package/src/core/renderers/canvas/CanvasRenderer.ts +19 -1
- package/src/core/renderers/canvas/CanvasTexture.ts +23 -8
- package/src/core/renderers/webgl/WebGlRenderer.ts +2 -3
- package/src/core/renderers/webgl/WebGlShaderNode.ts +24 -0
- package/src/core/renderers/webgl/WebGlShaderProgram.test.ts +274 -0
- package/src/core/renderers/webgl/WebGlShaderProgram.ts +10 -10
- package/src/core/renderers/webgl/internal/ShaderUtils.ts +1 -0
- package/src/core/text-rendering/CanvasFontHandler.ts +2 -2
- package/src/core/text-rendering/CanvasTextRenderer.ts +14 -7
- package/src/core/text-rendering/SdfTextRenderer.ts +28 -140
- package/src/core/text-rendering/TextLayoutEngine.ts +61 -28
- package/src/core/text-rendering/TextRenderer.ts +19 -12
- package/src/core/text-rendering/tests/TextLayoutEngine.test.ts +20 -0
- package/src/core/textures/ImageTexture.ts +18 -0
- package/src/core/textures/Texture.ts +6 -0
- package/src/main-api/Inspector.ts +25 -25
- package/dist/src/core/text-rendering/TextGenerator.d.ts +0 -10
- package/dist/src/core/text-rendering/TextGenerator.js +0 -36
- package/dist/src/core/text-rendering/TextGenerator.js.map +0 -1
- package/src/core/renderers/webgl/SdfRenderOp.ts +0 -106
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CoreAnimation } from './CoreAnimation.js';
|
|
2
2
|
export declare class AnimationManager {
|
|
3
|
-
activeAnimations:
|
|
3
|
+
activeAnimations: Map<number, CoreAnimation>;
|
|
4
4
|
registerAnimation(animation: CoreAnimation): void;
|
|
5
5
|
unregisterAnimation(animation: CoreAnimation): void;
|
|
6
6
|
update(dt: number): void;
|
|
@@ -18,17 +18,17 @@
|
|
|
18
18
|
*/
|
|
19
19
|
import { CoreAnimation } from './CoreAnimation.js';
|
|
20
20
|
export class AnimationManager {
|
|
21
|
-
activeAnimations = new
|
|
21
|
+
activeAnimations = new Map();
|
|
22
22
|
registerAnimation(animation) {
|
|
23
|
-
this.activeAnimations.
|
|
23
|
+
this.activeAnimations.set(animation.id, animation);
|
|
24
24
|
}
|
|
25
25
|
unregisterAnimation(animation) {
|
|
26
|
-
this.activeAnimations.delete(animation);
|
|
26
|
+
this.activeAnimations.delete(animation.id);
|
|
27
27
|
}
|
|
28
28
|
update(dt) {
|
|
29
|
-
this.activeAnimations.
|
|
29
|
+
for (const animation of this.activeAnimations.values()) {
|
|
30
30
|
animation.update(dt);
|
|
31
|
-
}
|
|
31
|
+
}
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
//# sourceMappingURL=AnimationManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnimationManager.js","sourceRoot":"","sources":["../../../../src/core/animations/AnimationManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,OAAO,gBAAgB;IAC3B,gBAAgB,
|
|
1
|
+
{"version":3,"file":"AnimationManager.js","sourceRoot":"","sources":["../../../../src/core/animations/AnimationManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,OAAO,gBAAgB;IAC3B,gBAAgB,GAA+B,IAAI,GAAG,EAAE,CAAC;IAEzD,iBAAiB,CAAC,SAAwB;QACxC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACrD,CAAC;IAED,mBAAmB,CAAC,SAAwB;QAC1C,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,EAAU;QACf,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC;YACvD,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;CACF"}
|
|
@@ -12,11 +12,20 @@ export interface AnimationSettings {
|
|
|
12
12
|
type PropValues = {
|
|
13
13
|
start: number;
|
|
14
14
|
target: number;
|
|
15
|
+
isColor: boolean;
|
|
16
|
+
};
|
|
17
|
+
type PropGroup = {
|
|
18
|
+
keys: string[];
|
|
19
|
+
values: PropValues[];
|
|
20
|
+
};
|
|
21
|
+
type PropValuesMap = {
|
|
22
|
+
props: PropGroup | null;
|
|
23
|
+
shaderProps: PropGroup | null;
|
|
15
24
|
};
|
|
16
|
-
type PropValuesMap = Record<string, Record<string, PropValues>>;
|
|
17
25
|
export declare class CoreAnimation extends EventEmitter {
|
|
18
26
|
private node;
|
|
19
27
|
private props;
|
|
28
|
+
readonly id: number;
|
|
20
29
|
settings: AnimationSettings;
|
|
21
30
|
private progress;
|
|
22
31
|
private delayFor;
|
|
@@ -30,7 +39,7 @@ export declare class CoreAnimation extends EventEmitter {
|
|
|
30
39
|
private reverseValues;
|
|
31
40
|
reverse(): void;
|
|
32
41
|
private applyEasing;
|
|
33
|
-
updateValue(
|
|
42
|
+
updateValue(isColor: boolean, propValue: number, startValue: number, easing: string | TimingFunction | undefined): number;
|
|
34
43
|
private updateValues;
|
|
35
44
|
update(dt: number): void;
|
|
36
45
|
}
|
|
@@ -20,40 +20,46 @@ import {} from '../CoreNode.js';
|
|
|
20
20
|
import { getTimingFunction } from '../utils.js';
|
|
21
21
|
import { mergeColorProgress } from '../../utils.js';
|
|
22
22
|
import { EventEmitter } from '../../common/EventEmitter.js';
|
|
23
|
+
let animationIdCounter = 0;
|
|
23
24
|
export class CoreAnimation extends EventEmitter {
|
|
24
25
|
node;
|
|
25
26
|
props;
|
|
27
|
+
id = ++animationIdCounter;
|
|
26
28
|
settings;
|
|
27
29
|
progress = 0;
|
|
28
30
|
delayFor = 0;
|
|
29
31
|
delay = 0;
|
|
30
32
|
timingFunction;
|
|
31
|
-
propValuesMap = {};
|
|
33
|
+
propValuesMap = { props: null, shaderProps: null };
|
|
32
34
|
constructor(node, props, settings) {
|
|
33
35
|
super();
|
|
34
36
|
this.node = node;
|
|
35
37
|
this.props = props;
|
|
36
38
|
for (const key in props) {
|
|
37
39
|
if (key !== 'shaderProps') {
|
|
38
|
-
if (this.propValuesMap['props'] ===
|
|
39
|
-
this.propValuesMap['props'] = {};
|
|
40
|
+
if (this.propValuesMap['props'] === null) {
|
|
41
|
+
this.propValuesMap['props'] = { keys: [], values: [] };
|
|
40
42
|
}
|
|
41
|
-
this.propValuesMap['props'][key
|
|
43
|
+
this.propValuesMap['props']['keys'].push(key);
|
|
44
|
+
this.propValuesMap['props']['values'].push({
|
|
42
45
|
start: node[key] || 0,
|
|
43
46
|
target: props[key],
|
|
44
|
-
|
|
47
|
+
isColor: key.indexOf('color') !== -1,
|
|
48
|
+
});
|
|
45
49
|
}
|
|
46
50
|
else if (key === 'shaderProps' && node.shader !== null) {
|
|
47
|
-
this.propValuesMap['shaderProps'] = {};
|
|
51
|
+
this.propValuesMap['shaderProps'] = { keys: [], values: [] };
|
|
48
52
|
for (const key in props.shaderProps) {
|
|
49
53
|
let start = node.shader.props[key];
|
|
50
54
|
if (Array.isArray(start) === true) {
|
|
51
55
|
start = start[0];
|
|
52
56
|
}
|
|
53
|
-
this.propValuesMap['shaderProps'][key
|
|
57
|
+
this.propValuesMap['shaderProps']['keys'].push(key);
|
|
58
|
+
this.propValuesMap['shaderProps']['values'].push({
|
|
54
59
|
start,
|
|
55
60
|
target: props.shaderProps[key],
|
|
56
|
-
|
|
61
|
+
isColor: key.indexOf('color') !== -1,
|
|
62
|
+
});
|
|
57
63
|
}
|
|
58
64
|
}
|
|
59
65
|
}
|
|
@@ -77,40 +83,39 @@ export class CoreAnimation extends EventEmitter {
|
|
|
77
83
|
this.delayFor = this.settings.delay || 0;
|
|
78
84
|
this.update(0);
|
|
79
85
|
}
|
|
80
|
-
restoreValues(target,
|
|
81
|
-
const
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
target[
|
|
86
|
+
restoreValues(target, group) {
|
|
87
|
+
const keys = group.keys;
|
|
88
|
+
const values = group.values;
|
|
89
|
+
const length = keys.length;
|
|
90
|
+
for (let i = 0; i < length; i++) {
|
|
91
|
+
target[keys[i]] = values[i].start;
|
|
86
92
|
}
|
|
87
93
|
}
|
|
88
94
|
restore() {
|
|
89
95
|
this.reset();
|
|
90
|
-
if (this.propValuesMap['props'] !==
|
|
96
|
+
if (this.propValuesMap['props'] !== null) {
|
|
91
97
|
this.restoreValues(this.node, this.propValuesMap['props']);
|
|
92
98
|
}
|
|
93
|
-
if (this.propValuesMap['shaderProps'] !==
|
|
99
|
+
if (this.propValuesMap['shaderProps'] !== null) {
|
|
94
100
|
this.restoreValues(this.node.shader.props, this.propValuesMap['shaderProps']);
|
|
95
101
|
}
|
|
96
102
|
}
|
|
97
|
-
reverseValues(
|
|
98
|
-
const
|
|
99
|
-
const
|
|
100
|
-
for (let i = 0; i <
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
};
|
|
103
|
+
reverseValues(group) {
|
|
104
|
+
const values = group.values;
|
|
105
|
+
const length = values.length;
|
|
106
|
+
for (let i = 0; i < length; i++) {
|
|
107
|
+
const value = values[i];
|
|
108
|
+
const tmp = value.start;
|
|
109
|
+
value.start = value.target;
|
|
110
|
+
value.target = tmp;
|
|
106
111
|
}
|
|
107
112
|
}
|
|
108
113
|
reverse() {
|
|
109
114
|
this.progress = 0;
|
|
110
|
-
if (this.propValuesMap['props'] !==
|
|
115
|
+
if (this.propValuesMap['props'] !== null) {
|
|
111
116
|
this.reverseValues(this.propValuesMap['props']);
|
|
112
117
|
}
|
|
113
|
-
if (this.propValuesMap['shaderProps'] !==
|
|
118
|
+
if (this.propValuesMap['shaderProps'] !== null) {
|
|
114
119
|
this.reverseValues(this.propValuesMap['shaderProps']);
|
|
115
120
|
}
|
|
116
121
|
// restore stop method if we are not looping
|
|
@@ -121,7 +126,7 @@ export class CoreAnimation extends EventEmitter {
|
|
|
121
126
|
applyEasing(p, s, e) {
|
|
122
127
|
return this.timingFunction(p) * (e - s) + s;
|
|
123
128
|
}
|
|
124
|
-
updateValue(
|
|
129
|
+
updateValue(isColor, propValue, startValue, easing) {
|
|
125
130
|
if (this.progress === 1) {
|
|
126
131
|
return propValue;
|
|
127
132
|
}
|
|
@@ -129,7 +134,7 @@ export class CoreAnimation extends EventEmitter {
|
|
|
129
134
|
return startValue;
|
|
130
135
|
}
|
|
131
136
|
const endValue = propValue;
|
|
132
|
-
if (
|
|
137
|
+
if (isColor === true) {
|
|
133
138
|
if (startValue === endValue) {
|
|
134
139
|
return startValue;
|
|
135
140
|
}
|
|
@@ -144,12 +149,13 @@ export class CoreAnimation extends EventEmitter {
|
|
|
144
149
|
}
|
|
145
150
|
return startValue + (endValue - startValue) * this.progress;
|
|
146
151
|
}
|
|
147
|
-
updateValues(target,
|
|
148
|
-
const
|
|
149
|
-
const
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
152
|
+
updateValues(target, group, easing) {
|
|
153
|
+
const keys = group.keys;
|
|
154
|
+
const values = group.values;
|
|
155
|
+
const length = keys.length;
|
|
156
|
+
for (let i = 0; i < length; i++) {
|
|
157
|
+
const value = values[i];
|
|
158
|
+
target[keys[i]] = this.updateValue(value.isColor, value.target, value.start, easing);
|
|
153
159
|
}
|
|
154
160
|
}
|
|
155
161
|
update(dt) {
|
|
@@ -198,14 +204,14 @@ export class CoreAnimation extends EventEmitter {
|
|
|
198
204
|
return;
|
|
199
205
|
}
|
|
200
206
|
}
|
|
201
|
-
if (this.propValuesMap['props'] !==
|
|
207
|
+
if (this.propValuesMap['props'] !== null) {
|
|
202
208
|
this.updateValues(this.node, this.propValuesMap['props'], easing);
|
|
203
209
|
}
|
|
204
|
-
if (this.propValuesMap['shaderProps'] !==
|
|
210
|
+
if (this.propValuesMap['shaderProps'] !== null) {
|
|
205
211
|
this.updateValues(this.node.shader.props, this.propValuesMap['shaderProps'], easing);
|
|
206
212
|
}
|
|
207
213
|
if (this.progress < 1) {
|
|
208
|
-
this.emit('tick'
|
|
214
|
+
this.emit('tick');
|
|
209
215
|
}
|
|
210
216
|
if (this.progress === 1) {
|
|
211
217
|
this.emit('finished', {});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoreAnimation.js","sourceRoot":"","sources":["../../../../src/core/animations/CoreAnimation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAA4C,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAuB,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"CoreAnimation.js","sourceRoot":"","sources":["../../../../src/core/animations/CoreAnimation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAA4C,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAuB,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AA2B5D,IAAI,kBAAkB,GAAG,CAAC,CAAC;AAE3B,MAAM,OAAO,aAAc,SAAQ,YAAY;IAWnC;IACA;IAXM,EAAE,GAAW,EAAE,kBAAkB,CAAC;IAC3C,QAAQ,CAAoB;IAC3B,QAAQ,GAAG,CAAC,CAAC;IACb,QAAQ,GAAG,CAAC,CAAC;IACb,KAAK,GAAG,CAAC,CAAC;IACV,cAAc,CAAiB;IAEvC,aAAa,GAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAElE,YACU,IAAc,EACd,KAAoC,EAC5C,QAAoC;QAEpC,KAAK,EAAE,CAAC;QAJA,SAAI,GAAJ,IAAI,CAAU;QACd,UAAK,GAAL,KAAK,CAA+B;QAK5C,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;gBAC1B,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;oBACzC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;gBACzD,CAAC;gBACD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC/C,IAAI,CAAC,aAAa,CAAC,OAAO,CAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;oBAC1C,KAAK,EACH,IAAI,CAAC,GAAsD,CAAC,IAAI,CAAC;oBACnE,MAAM,EAAE,KAAK,CACX,GAAsD,CAC7C;oBACX,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;iBACrC,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,GAAG,KAAK,aAAa,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBACzD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;gBAC7D,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;oBACpC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAM,CAAC,GAAG,CAAC,CAAC;oBACpC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;wBAClC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACnB,CAAC;oBACD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACrD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;wBAChD,KAAK;wBACL,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAW;wBACxC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;qBACrC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC;QAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG;YACd,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,CAAC;YAChC,KAAK;YACL,MAAM;YACN,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,KAAK;YAC5B,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,CAAC;YAC5B,UAAU,EAAE,QAAQ,CAAC,UAAU,IAAI,KAAK;SACzC,CAAC;QACF,IAAI,CAAC,cAAc;YACjB,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAClE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAEO,aAAa,CAAC,MAA8B,EAAE,KAAgB;QACpE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC;QACtC,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;YACzC,IAAI,CAAC,aAAa,CAChB,IAAI,CAAC,IAAyC,EAC9C,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAC5B,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/C,IAAI,CAAC,aAAa,CAChB,IAAI,CAAC,IAAI,CAAC,MAAO,CAAC,KAA+B,EACjD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAClC,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,KAAgB;QACpC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;YACzB,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC;YACxB,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;YAC3B,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAElB,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;YACzC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,4CAA4C;QAC5C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC;QACnC,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QACjD,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,WAAW,CACT,OAAgB,EAChB,SAAiB,EACjB,UAAkB,EAClB,MAA2C;QAE3C,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC;QAC3B,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAC5B,OAAO,UAAU,CAAC;YACpB,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,mBAAmB,GACvB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC;gBACtD,OAAO,kBAAkB,CAAC,UAAU,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;YACvE,CAAC;YACD,OAAO,kBAAkB,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,UAAU,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC9D,CAAC;IAEO,YAAY,CAClB,MAA8B,EAC9B,KAAgB,EAChB,MAA2C;QAE3C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CACjC,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,KAAK,EACX,MAAM,CACP,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,CAAC,EAAU;QACf,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7D,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAE1B,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACxB,UAAU;YACV,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,IAAI,QAAQ,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC;gBACvB,sCAAsC;gBACtC,OAAO;YACT,CAAC;iBAAM,CAAC;gBACN,sEAAsE;gBACtE,sBAAsB;gBACtB,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACpB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACnB,4BAA4B;YAC5B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YACxB,uEAAuE;YACvE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,QAAQ,IAAI,EAAE,GAAG,QAAQ,CAAC;QAE/B,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;YAC3B,IAAI,UAAU,EAAE,CAAC;gBACf,4EAA4E;gBAC5E,iFAAiF;gBACjF,kDAAkD;gBAClD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBAC1B,OAAO;YACT,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;YACzC,IAAI,CAAC,YAAY,CACf,IAAI,CAAC,IAAyC,EAC9C,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAC3B,MAAM,CACP,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/C,IAAI,CAAC,YAAY,CACf,IAAI,CAAC,IAAI,CAAC,MAAO,CAAC,KAA+B,EACjD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EACjC,MAAM,CACP,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;CACF"}
|
|
@@ -23,5 +23,11 @@ export declare class CoreAnimationController extends EventEmitter implements IAn
|
|
|
23
23
|
private onDestroy;
|
|
24
24
|
private onFinished;
|
|
25
25
|
private onAnimating;
|
|
26
|
+
/**
|
|
27
|
+
* manually override the tick event to emit the progress of the animation as well
|
|
28
|
+
* we are first checking if there are any listeners for the tick event. this avoid unnecessary object creation.
|
|
29
|
+
* @param this
|
|
30
|
+
* @returns
|
|
31
|
+
*/
|
|
26
32
|
private onTick;
|
|
27
33
|
}
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
* See the License for the specific language governing permissions and
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
|
-
import { assertTruthy } from '../../utils.js';
|
|
20
19
|
import { EventEmitter } from '../../common/EventEmitter.js';
|
|
21
20
|
export class CoreAnimationController extends EventEmitter {
|
|
22
21
|
manager;
|
|
@@ -128,8 +127,22 @@ export class CoreAnimationController extends EventEmitter {
|
|
|
128
127
|
this.state = 'running';
|
|
129
128
|
this.emit('animating', this);
|
|
130
129
|
}
|
|
131
|
-
|
|
132
|
-
|
|
130
|
+
/**
|
|
131
|
+
* manually override the tick event to emit the progress of the animation as well
|
|
132
|
+
* we are first checking if there are any listeners for the tick event. this avoid unnecessary object creation.
|
|
133
|
+
* @param this
|
|
134
|
+
* @returns
|
|
135
|
+
*/
|
|
136
|
+
onTick() {
|
|
137
|
+
const listeners = this.eventListeners['tick'];
|
|
138
|
+
if (listeners === undefined) {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
listeners.forEach((listener) => {
|
|
142
|
+
listener(this, {
|
|
143
|
+
progress: this.animation['progress'],
|
|
144
|
+
});
|
|
145
|
+
});
|
|
133
146
|
}
|
|
134
147
|
}
|
|
135
148
|
//# sourceMappingURL=CoreAnimationController.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoreAnimationController.js","sourceRoot":"","sources":["../../../../src/core/animations/CoreAnimationController.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAQH,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"CoreAnimationController.js","sourceRoot":"","sources":["../../../../src/core/animations/CoreAnimationController.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { EventEmitter } from '../../common/EventEmitter.js';
|
|
2
|
+
import type { AnimationManager } from './AnimationManager.js';
|
|
3
|
+
import { type TimingFunction } from './utils.js';
|
|
4
|
+
export declare enum StopMethodFlags {
|
|
5
|
+
Immediate = 0,
|
|
6
|
+
Reset = 1,
|
|
7
|
+
Reverse = 2
|
|
8
|
+
}
|
|
9
|
+
export type StopMethodOptions = 'reverse' | 'reset' | 'immediate';
|
|
10
|
+
export declare const getStopMethodFlag: (method: string | undefined) => StopMethodFlags;
|
|
11
|
+
export interface PlaybackSettings {
|
|
12
|
+
delay: number;
|
|
13
|
+
duration: number;
|
|
14
|
+
easing: string | TimingFunction;
|
|
15
|
+
loop: boolean;
|
|
16
|
+
repeat: number;
|
|
17
|
+
reverse: boolean;
|
|
18
|
+
stopMethod: StopMethodOptions;
|
|
19
|
+
autoPlay: boolean;
|
|
20
|
+
}
|
|
21
|
+
export declare enum PlaybackState {
|
|
22
|
+
Idle = 0,
|
|
23
|
+
Destroyed = 1,
|
|
24
|
+
Stopped = 2,
|
|
25
|
+
Finished = 3,
|
|
26
|
+
Paused = 4,
|
|
27
|
+
Playing = 5,
|
|
28
|
+
Stopping = 6
|
|
29
|
+
}
|
|
30
|
+
export declare const PlaybackSettingsKeys: {
|
|
31
|
+
delay: boolean;
|
|
32
|
+
duration: boolean;
|
|
33
|
+
easing: boolean;
|
|
34
|
+
loop: boolean;
|
|
35
|
+
repeat: boolean;
|
|
36
|
+
reverse: boolean;
|
|
37
|
+
stopMethod: boolean;
|
|
38
|
+
autoPlay: boolean;
|
|
39
|
+
};
|
|
40
|
+
export declare function getPlaybackId(): number;
|
|
41
|
+
export default class Playback extends EventEmitter {
|
|
42
|
+
readonly animationManager: AnimationManager;
|
|
43
|
+
readonly id: number;
|
|
44
|
+
delay: number;
|
|
45
|
+
duration: number;
|
|
46
|
+
easing: TimingFunction | undefined;
|
|
47
|
+
loop: boolean;
|
|
48
|
+
repeat: number;
|
|
49
|
+
reverse: boolean;
|
|
50
|
+
stopMethod: StopMethodFlags;
|
|
51
|
+
state: PlaybackState;
|
|
52
|
+
startTime: number | null;
|
|
53
|
+
pauseTime: number | null;
|
|
54
|
+
endTime: number | null;
|
|
55
|
+
currentTime: number;
|
|
56
|
+
iteration: number;
|
|
57
|
+
constructor(animationManager: AnimationManager, settings?: Partial<PlaybackSettings>);
|
|
58
|
+
update(currentFrameTime: number): void;
|
|
59
|
+
updateValues(currentTime: number): void;
|
|
60
|
+
applyStartValues(): void;
|
|
61
|
+
start(): this;
|
|
62
|
+
stop(): void;
|
|
63
|
+
finish(): void;
|
|
64
|
+
}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* If not stated otherwise in this file or this component's LICENSE file the
|
|
3
|
+
* following copyright and licenses apply:
|
|
4
|
+
*
|
|
5
|
+
* Copyright 2023 Comcast Cable Communications Management, LLC.
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the License);
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*/
|
|
19
|
+
import { EventEmitter } from '../../common/EventEmitter.js';
|
|
20
|
+
import { normalizeTimingFunction } from './utils.js';
|
|
21
|
+
export var StopMethodFlags;
|
|
22
|
+
(function (StopMethodFlags) {
|
|
23
|
+
StopMethodFlags[StopMethodFlags["Immediate"] = 0] = "Immediate";
|
|
24
|
+
StopMethodFlags[StopMethodFlags["Reset"] = 1] = "Reset";
|
|
25
|
+
StopMethodFlags[StopMethodFlags["Reverse"] = 2] = "Reverse";
|
|
26
|
+
})(StopMethodFlags || (StopMethodFlags = {}));
|
|
27
|
+
export const getStopMethodFlag = (method) => {
|
|
28
|
+
if (method === undefined || method === 'immediate') {
|
|
29
|
+
return StopMethodFlags.Immediate;
|
|
30
|
+
}
|
|
31
|
+
switch (method) {
|
|
32
|
+
case 'reverse':
|
|
33
|
+
return StopMethodFlags.Reverse;
|
|
34
|
+
case 'reset':
|
|
35
|
+
return StopMethodFlags.Reset;
|
|
36
|
+
}
|
|
37
|
+
return StopMethodFlags.Immediate;
|
|
38
|
+
};
|
|
39
|
+
export var PlaybackState;
|
|
40
|
+
(function (PlaybackState) {
|
|
41
|
+
PlaybackState[PlaybackState["Idle"] = 0] = "Idle";
|
|
42
|
+
PlaybackState[PlaybackState["Destroyed"] = 1] = "Destroyed";
|
|
43
|
+
PlaybackState[PlaybackState["Stopped"] = 2] = "Stopped";
|
|
44
|
+
PlaybackState[PlaybackState["Finished"] = 3] = "Finished";
|
|
45
|
+
PlaybackState[PlaybackState["Paused"] = 4] = "Paused";
|
|
46
|
+
PlaybackState[PlaybackState["Playing"] = 5] = "Playing";
|
|
47
|
+
PlaybackState[PlaybackState["Stopping"] = 6] = "Stopping";
|
|
48
|
+
})(PlaybackState || (PlaybackState = {}));
|
|
49
|
+
export const PlaybackSettingsKeys = {
|
|
50
|
+
delay: true,
|
|
51
|
+
duration: true,
|
|
52
|
+
easing: true,
|
|
53
|
+
loop: true,
|
|
54
|
+
repeat: true,
|
|
55
|
+
reverse: true,
|
|
56
|
+
stopMethod: true,
|
|
57
|
+
autoPlay: true,
|
|
58
|
+
};
|
|
59
|
+
//freeze the keys object to prevent modification
|
|
60
|
+
Object.freeze(PlaybackSettingsKeys);
|
|
61
|
+
/**
|
|
62
|
+
* Returns a new unique ID
|
|
63
|
+
*/
|
|
64
|
+
let playbackId = 1;
|
|
65
|
+
export function getPlaybackId() {
|
|
66
|
+
return playbackId++;
|
|
67
|
+
}
|
|
68
|
+
export default class Playback extends EventEmitter {
|
|
69
|
+
animationManager;
|
|
70
|
+
//id
|
|
71
|
+
id = getPlaybackId();
|
|
72
|
+
//settings
|
|
73
|
+
delay;
|
|
74
|
+
duration;
|
|
75
|
+
easing;
|
|
76
|
+
loop;
|
|
77
|
+
repeat;
|
|
78
|
+
reverse;
|
|
79
|
+
stopMethod;
|
|
80
|
+
//lifecycle
|
|
81
|
+
state = PlaybackState.Idle;
|
|
82
|
+
startTime = null;
|
|
83
|
+
pauseTime = null;
|
|
84
|
+
endTime = null;
|
|
85
|
+
currentTime = 0;
|
|
86
|
+
iteration = 0;
|
|
87
|
+
constructor(animationManager, settings = {}) {
|
|
88
|
+
super();
|
|
89
|
+
this.animationManager = animationManager;
|
|
90
|
+
this.delay = settings.delay ?? 0;
|
|
91
|
+
this.duration = settings.duration ?? 200;
|
|
92
|
+
this.easing =
|
|
93
|
+
settings.easing !== undefined
|
|
94
|
+
? normalizeTimingFunction(settings.easing)
|
|
95
|
+
: undefined;
|
|
96
|
+
this.loop = settings.loop ?? false;
|
|
97
|
+
this.repeat = settings.repeat ?? 0;
|
|
98
|
+
this.reverse = settings.reverse ?? false;
|
|
99
|
+
this.stopMethod = getStopMethodFlag(settings.stopMethod);
|
|
100
|
+
}
|
|
101
|
+
update(currentFrameTime) {
|
|
102
|
+
let state = this.state;
|
|
103
|
+
let targetTime = currentFrameTime - this.startTime;
|
|
104
|
+
if (targetTime < 0) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
if (state === PlaybackState.Stopping) {
|
|
108
|
+
targetTime = this.duration - targetTime;
|
|
109
|
+
}
|
|
110
|
+
if (state === PlaybackState.Playing && targetTime > this.duration) {
|
|
111
|
+
targetTime = this.duration;
|
|
112
|
+
if (this.loop === true) {
|
|
113
|
+
this.iteration++;
|
|
114
|
+
this.startTime = currentFrameTime;
|
|
115
|
+
targetTime = 0;
|
|
116
|
+
if (this.repeat > 0 && this.iteration > this.repeat) {
|
|
117
|
+
this.stop();
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
this.stop();
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
this.currentTime = targetTime;
|
|
125
|
+
this.updateValues(targetTime);
|
|
126
|
+
}
|
|
127
|
+
updateValues(currentTime) { }
|
|
128
|
+
applyStartValues() {
|
|
129
|
+
//needs to be implemented in subclass
|
|
130
|
+
}
|
|
131
|
+
start() {
|
|
132
|
+
const animationManager = this.animationManager;
|
|
133
|
+
this.applyStartValues();
|
|
134
|
+
this.startTime = animationManager.currentFrameTime + this.delay;
|
|
135
|
+
this.endTime = this.startTime + this.duration;
|
|
136
|
+
this.state = PlaybackState.Playing;
|
|
137
|
+
animationManager.register(this);
|
|
138
|
+
this.emit('start');
|
|
139
|
+
return this;
|
|
140
|
+
}
|
|
141
|
+
stop() {
|
|
142
|
+
const stopMethod = this.stopMethod;
|
|
143
|
+
if (stopMethod === StopMethodFlags.Immediate) {
|
|
144
|
+
console.log('Stopping playback immediately');
|
|
145
|
+
this.finish();
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
if (stopMethod === StopMethodFlags.Reset) {
|
|
149
|
+
this.updateValues(0);
|
|
150
|
+
this.finish();
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
if (stopMethod === StopMethodFlags.Reverse) {
|
|
154
|
+
if (this.state === PlaybackState.Playing) {
|
|
155
|
+
this.state = PlaybackState.Stopping;
|
|
156
|
+
//adjust start time to account for current time
|
|
157
|
+
const currentFrameTime = this.animationManager.currentFrameTime;
|
|
158
|
+
const elapsedTime = currentFrameTime - this.startTime;
|
|
159
|
+
this.startTime = currentFrameTime - (this.duration - elapsedTime);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
finish() {
|
|
164
|
+
this.state = PlaybackState.Finished;
|
|
165
|
+
this.emit('finish');
|
|
166
|
+
this.animationManager.unregister(this);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=Playback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Playback.js","sourceRoot":"","sources":["../../../../src/core/animations/Playback.ts"],"names":[],"mappings":"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"}
|