@lightningjs/renderer 3.0.4 → 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.
Files changed (206) hide show
  1. package/dist/src/common/EventEmitter.d.ts +7 -4
  2. package/dist/src/common/EventEmitter.js +1 -1
  3. package/dist/src/common/EventEmitter.js.map +1 -1
  4. package/dist/src/core/AutosizeManager.d.ts +29 -0
  5. package/dist/src/core/AutosizeManager.js +169 -0
  6. package/dist/src/core/AutosizeManager.js.map +1 -0
  7. package/dist/src/core/CoreTextNodeCanvas.d.ts +215 -0
  8. package/dist/src/core/CoreTextNodeCanvas.js +236 -0
  9. package/dist/src/core/CoreTextNodeCanvas.js.map +1 -0
  10. package/dist/src/core/Stage.js +10 -0
  11. package/dist/src/core/Stage.js.map +1 -1
  12. package/dist/src/core/TextureMemoryManager.js +4 -3
  13. package/dist/src/core/TextureMemoryManager.js.map +1 -1
  14. package/dist/src/core/animations/Animation.d.ts +21 -0
  15. package/dist/src/core/animations/Animation.js +194 -0
  16. package/dist/src/core/animations/Animation.js.map +1 -0
  17. package/dist/src/core/animations/AnimationManager.d.ts +1 -1
  18. package/dist/src/core/animations/AnimationManager.js +5 -5
  19. package/dist/src/core/animations/AnimationManager.js.map +1 -1
  20. package/dist/src/core/animations/CoreAnimation.d.ts +11 -2
  21. package/dist/src/core/animations/CoreAnimation.js +44 -38
  22. package/dist/src/core/animations/CoreAnimation.js.map +1 -1
  23. package/dist/src/core/animations/CoreAnimationController.d.ts +6 -0
  24. package/dist/src/core/animations/CoreAnimationController.js +16 -3
  25. package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
  26. package/dist/src/core/animations/Playback.d.ts +64 -0
  27. package/dist/src/core/animations/Playback.js +169 -0
  28. package/dist/src/core/animations/Playback.js.map +1 -0
  29. package/dist/src/core/animations/Ticker.d.ts +71 -0
  30. package/dist/src/core/animations/Ticker.js +89 -0
  31. package/dist/src/core/animations/Ticker.js.map +1 -0
  32. package/dist/src/core/animations/Transition.d.ts +38 -0
  33. package/dist/src/core/animations/Transition.js +35 -0
  34. package/dist/src/core/animations/Transition.js.map +1 -0
  35. package/dist/src/core/animations/TransitionsController.d.ts +10 -0
  36. package/dist/src/core/animations/TransitionsController.js +39 -0
  37. package/dist/src/core/animations/TransitionsController.js.map +1 -0
  38. package/dist/src/core/animations/utils.d.ts +2 -0
  39. package/dist/src/core/animations/utils.js +136 -0
  40. package/dist/src/core/animations/utils.js.map +1 -0
  41. package/dist/src/core/lib/ImageWorker.d.ts +2 -2
  42. package/dist/src/core/lib/ImageWorker.js +11 -30
  43. package/dist/src/core/lib/ImageWorker.js.map +1 -1
  44. package/dist/src/core/lib/WebGlContextWrapper.d.ts +5 -16
  45. package/dist/src/core/lib/WebGlContextWrapper.js +1 -35
  46. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
  47. package/dist/src/core/lib/textureCompression.d.ts +2 -14
  48. package/dist/src/core/lib/textureCompression.js +67 -320
  49. package/dist/src/core/lib/textureCompression.js.map +1 -1
  50. package/dist/src/core/platform.js +9 -38
  51. package/dist/src/core/platform.js.map +1 -1
  52. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.d.ts +0 -1
  53. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +3 -11
  54. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +1 -1
  55. package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +1 -2
  56. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +11 -16
  57. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +1 -1
  58. package/dist/src/core/renderers/canvas/CanvasRenderer.js +14 -1
  59. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
  60. package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +1 -1
  61. package/dist/src/core/renderers/canvas/CanvasTexture.js +16 -6
  62. package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -1
  63. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +0 -13
  64. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +192 -113
  65. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +1 -1
  66. package/dist/src/core/renderers/canvas/internal/ColorUtils.d.ts +2 -0
  67. package/dist/src/core/renderers/canvas/internal/ColorUtils.js +14 -0
  68. package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +1 -1
  69. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.d.ts +1 -2
  70. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +5 -12
  71. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +1 -1
  72. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +6 -18
  73. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +60 -102
  74. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
  75. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +1 -1
  76. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +1 -3
  77. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +31 -74
  78. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
  79. package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +7 -2
  80. package/dist/src/core/renderers/webgl/WebGlCoreShader.js +50 -21
  81. package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -1
  82. package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +2 -3
  83. package/dist/src/core/renderers/webgl/WebGlRenderOp.js +1 -3
  84. package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -1
  85. package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +1 -0
  86. package/dist/src/core/renderers/webgl/WebGlShaderNode.js +23 -0
  87. package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -1
  88. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +2 -2
  89. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
  90. package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +1 -0
  91. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
  92. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +6 -3
  93. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +1 -1
  94. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +11 -0
  95. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +1 -1
  96. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +10 -5
  97. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -1
  98. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +10 -5
  99. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +1 -1
  100. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +12 -0
  101. package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -1
  102. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +1 -1
  103. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +1 -1
  104. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +1 -1
  105. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +1 -1
  106. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js +2 -2
  107. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +5 -5
  108. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +1 -1
  109. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.d.ts +1 -0
  110. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +30 -14
  111. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -1
  112. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.d.ts +0 -1
  113. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +3 -13
  114. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +1 -1
  115. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +1 -1
  116. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +5 -5
  117. package/dist/src/core/shaders/webgl/SdfShadowShader.d.ts +9 -0
  118. package/dist/src/core/shaders/webgl/SdfShadowShader.js +100 -0
  119. package/dist/src/core/shaders/webgl/SdfShadowShader.js.map +1 -0
  120. package/dist/src/core/text-rendering/CanvasFont.d.ts +1 -1
  121. package/dist/src/core/text-rendering/CanvasFont.js +7 -16
  122. package/dist/src/core/text-rendering/CanvasFont.js.map +1 -1
  123. package/dist/src/core/text-rendering/CoreFont.d.ts +1 -1
  124. package/dist/src/core/text-rendering/CoreFont.js +1 -1
  125. package/dist/src/core/text-rendering/CoreFont.js.map +1 -1
  126. package/dist/src/core/text-rendering/FontManager.js +2 -1
  127. package/dist/src/core/text-rendering/FontManager.js.map +1 -1
  128. package/dist/src/core/text-rendering/canvas/Settings.d.ts +64 -0
  129. package/dist/src/core/text-rendering/canvas/Settings.js +20 -0
  130. package/dist/src/core/text-rendering/canvas/Settings.js.map +1 -0
  131. package/dist/src/core/text-rendering/canvas/Utils.d.ts +20 -0
  132. package/dist/src/core/text-rendering/canvas/Utils.js +144 -0
  133. package/dist/src/core/text-rendering/canvas/Utils.js.map +1 -0
  134. package/dist/src/core/text-rendering/canvas/calculateRenderInfo.d.ts +60 -0
  135. package/dist/src/core/text-rendering/canvas/calculateRenderInfo.js +183 -0
  136. package/dist/src/core/text-rendering/canvas/calculateRenderInfo.js.map +1 -0
  137. package/dist/src/core/text-rendering/canvas/draw.d.ts +5 -0
  138. package/dist/src/core/text-rendering/canvas/draw.js +132 -0
  139. package/dist/src/core/text-rendering/canvas/draw.js.map +1 -0
  140. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +2 -2
  141. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
  142. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +3 -4
  143. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +46 -98
  144. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  145. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.d.ts +1 -1
  146. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +2 -2
  147. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +66 -8
  148. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
  149. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.d.ts +1 -1
  150. package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +1 -1
  151. package/dist/src/core/text-rendering/renderers/canvas/CanvasTextRenderer.d.ts +26 -0
  152. package/dist/src/core/text-rendering/renderers/canvas/CanvasTextRenderer.js +158 -0
  153. package/dist/src/core/text-rendering/renderers/canvas/CanvasTextRenderer.js.map +1 -0
  154. package/dist/src/core/text-rendering/renderers/canvas/internal/draw.d.ts +5 -0
  155. package/dist/src/core/text-rendering/renderers/canvas/internal/draw.js +127 -0
  156. package/dist/src/core/text-rendering/renderers/canvas/internal/draw.js.map +1 -0
  157. package/dist/src/core/text-rendering/renderers/canvas/internal/mergeDefaults.d.ts +2 -0
  158. package/dist/src/core/text-rendering/renderers/canvas/internal/mergeDefaults.js +50 -0
  159. package/dist/src/core/text-rendering/renderers/canvas/internal/mergeDefaults.js.map +1 -0
  160. package/dist/src/core/text-rendering/renderers/canvas/internal/renderInfo.d.ts +33 -0
  161. package/dist/src/core/text-rendering/renderers/canvas/internal/renderInfo.js +192 -0
  162. package/dist/src/core/text-rendering/renderers/canvas/internal/renderInfo.js.map +1 -0
  163. package/dist/src/core/text-rendering/renderers/canvas/internal/types.d.ts +66 -0
  164. package/dist/src/core/text-rendering/renderers/canvas/internal/types.js +2 -0
  165. package/dist/src/core/text-rendering/renderers/canvas/internal/types.js.map +1 -0
  166. package/dist/src/core/text-rendering/renderers/canvas/internal/utils.d.ts +91 -0
  167. package/dist/src/core/text-rendering/renderers/canvas/internal/utils.js +282 -0
  168. package/dist/src/core/text-rendering/renderers/canvas/internal/utils.js.map +1 -0
  169. package/dist/src/core/text-rendering/sdf/PeekableGenerator.d.ts +12 -0
  170. package/dist/src/core/text-rendering/sdf/PeekableGenerator.js +61 -0
  171. package/dist/src/core/text-rendering/sdf/PeekableGenerator.js.map +1 -0
  172. package/dist/src/core/text-rendering/sdf/SimpleFontShaper.d.ts +45 -0
  173. package/dist/src/core/text-rendering/sdf/SimpleFontShaper.js +69 -0
  174. package/dist/src/core/text-rendering/sdf/SimpleFontShaper.js.map +1 -0
  175. package/dist/src/core/text-rendering/sdf/Utils.d.ts +26 -0
  176. package/dist/src/core/text-rendering/sdf/Utils.js +301 -0
  177. package/dist/src/core/text-rendering/sdf/Utils.js.map +1 -0
  178. package/dist/src/core/text-rendering/sdf/index.d.ts +1 -0
  179. package/dist/src/core/text-rendering/sdf/index.js +20 -0
  180. package/dist/src/core/text-rendering/sdf/index.js.map +1 -0
  181. package/dist/src/core/textures/ImageTexture.js +11 -0
  182. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  183. package/dist/src/core/textures/Texture.js +5 -0
  184. package/dist/src/core/textures/Texture.js.map +1 -1
  185. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  186. package/dist/tsconfig.tsbuildinfo +1 -0
  187. package/package.json +1 -1
  188. package/src/common/EventEmitter.ts +6 -8
  189. package/src/core/Stage.ts +11 -0
  190. package/src/core/TextureMemoryManager.ts +4 -3
  191. package/src/core/animations/AnimationManager.ts +5 -5
  192. package/src/core/animations/CoreAnimation.ts +61 -45
  193. package/src/core/animations/CoreAnimationController.ts +16 -7
  194. package/src/core/renderers/canvas/CanvasRenderer.ts +19 -1
  195. package/src/core/renderers/canvas/CanvasTexture.ts +23 -8
  196. package/src/core/renderers/webgl/WebGlShaderNode.ts +24 -0
  197. package/src/core/renderers/webgl/WebGlShaderProgram.ts +3 -3
  198. package/src/core/renderers/webgl/internal/ShaderUtils.ts +1 -0
  199. package/src/core/textures/ImageTexture.ts +18 -0
  200. package/src/core/textures/Texture.ts +6 -0
  201. package/dist/src/core/lib/fps.d.ts +0 -15
  202. package/dist/src/core/lib/fps.js +0 -62
  203. package/dist/src/core/lib/fps.js.map +0 -1
  204. package/dist/src/core/text-rendering/TextGenerator.d.ts +0 -10
  205. package/dist/src/core/text-rendering/TextGenerator.js +0 -36
  206. package/dist/src/core/text-rendering/TextGenerator.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { CoreAnimation } from './CoreAnimation.js';
2
2
  export declare class AnimationManager {
3
- activeAnimations: Set<CoreAnimation>;
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 Set();
21
+ activeAnimations = new Map();
22
22
  registerAnimation(animation) {
23
- this.activeAnimations.add(animation);
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.forEach((animation) => {
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,GAAuB,IAAI,GAAG,EAAE,CAAC;IAEjD,iBAAiB,CAAC,SAAwB;QACxC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED,mBAAmB,CAAC,SAAwB;QAC1C,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,EAAU;QACf,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YAC1C,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
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(propName: string, propValue: number, startValue: number, easing: string | TimingFunction | undefined): number;
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'] === undefined) {
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, valueMap) {
81
- const entries = Object.entries(valueMap);
82
- const eLength = entries.length;
83
- for (let i = 0; i < eLength; i++) {
84
- const [key, value] = entries[i];
85
- target[key] = value.start;
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'] !== undefined) {
96
+ if (this.propValuesMap['props'] !== null) {
91
97
  this.restoreValues(this.node, this.propValuesMap['props']);
92
98
  }
93
- if (this.propValuesMap['shaderProps'] !== undefined) {
99
+ if (this.propValuesMap['shaderProps'] !== null) {
94
100
  this.restoreValues(this.node.shader.props, this.propValuesMap['shaderProps']);
95
101
  }
96
102
  }
97
- reverseValues(valueMap) {
98
- const entries = Object.entries(valueMap);
99
- const eLength = entries.length;
100
- for (let i = 0; i < eLength; i++) {
101
- const [key, value] = entries[i];
102
- valueMap[key] = {
103
- start: value.target,
104
- target: value.start,
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'] !== undefined) {
115
+ if (this.propValuesMap['props'] !== null) {
111
116
  this.reverseValues(this.propValuesMap['props']);
112
117
  }
113
- if (this.propValuesMap['shaderProps'] !== undefined) {
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(propName, propValue, startValue, easing) {
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 (propName.indexOf('color') !== -1) {
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, valueMap, easing) {
148
- const entries = Object.entries(valueMap);
149
- const eLength = entries.length;
150
- for (let i = 0; i < eLength; i++) {
151
- const [key, value] = entries[i];
152
- target[key] = this.updateValue(key, value.target, value.start, easing);
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'] !== undefined) {
207
+ if (this.propValuesMap['props'] !== null) {
202
208
  this.updateValues(this.node, this.propValuesMap['props'], easing);
203
209
  }
204
- if (this.propValuesMap['shaderProps'] !== undefined) {
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', { progress: this.progress });
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":"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"}
1
+ {"version":3,"file":"CoreAnimation.js","sourceRoot":"","sources":["../../../../src/core/animations/CoreAnimation.ts"],"names":[],"mappings":"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"}
@@ -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
- onTick(_animation, data) {
132
- this.emit('tick', data);
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":"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"}
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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"}