@lightningjs/renderer 0.9.0 → 0.9.2

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 (77) hide show
  1. package/dist/exports/index.d.ts +3 -0
  2. package/dist/{src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.js → exports/index.js} +4 -11
  3. package/dist/exports/index.js.map +1 -0
  4. package/dist/src/common/IAnimationController.d.ts +58 -1
  5. package/dist/src/common/IAnimationController.js +0 -18
  6. package/dist/src/common/IAnimationController.js.map +1 -1
  7. package/dist/src/core/CoreTextureManager.js +1 -1
  8. package/dist/src/core/CoreTextureManager.js.map +1 -1
  9. package/dist/src/core/animations/CoreAnimation.d.ts +2 -2
  10. package/dist/src/core/animations/CoreAnimation.js +33 -10
  11. package/dist/src/core/animations/CoreAnimation.js.map +1 -1
  12. package/dist/src/core/animations/CoreAnimationController.d.ts +8 -12
  13. package/dist/src/core/animations/CoreAnimationController.js +42 -46
  14. package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
  15. package/dist/src/core/lib/ImageWorker.js +8 -5
  16. package/dist/src/core/lib/ImageWorker.js.map +1 -1
  17. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +5 -0
  18. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
  19. package/dist/src/core/textures/ImageTexture.d.ts +5 -1
  20. package/dist/src/core/textures/ImageTexture.js +14 -6
  21. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  22. package/dist/src/core/utils.js +1 -6
  23. package/dist/src/core/utils.js.map +1 -1
  24. package/dist/src/main-api/INode.d.ts +1 -1
  25. package/dist/src/main-api/Renderer.d.ts +297 -0
  26. package/dist/src/main-api/Renderer.js +370 -0
  27. package/dist/src/main-api/Renderer.js.map +1 -0
  28. package/dist/src/main-api/utils.d.ts +2 -0
  29. package/dist/src/main-api/utils.js +34 -0
  30. package/dist/src/main-api/utils.js.map +1 -0
  31. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +8 -4
  32. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +53 -24
  33. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +1 -1
  34. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +6 -0
  35. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +1 -1
  36. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  37. package/{dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.js → exports/index.ts} +4 -14
  38. package/package.json +1 -1
  39. package/src/common/IAnimationController.ts +60 -1
  40. package/src/core/CoreTextureManager.ts +1 -1
  41. package/src/core/animations/CoreAnimation.ts +35 -11
  42. package/src/core/animations/CoreAnimationController.ts +48 -53
  43. package/src/core/lib/ImageWorker.ts +10 -7
  44. package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +5 -0
  45. package/src/core/textures/ImageTexture.ts +19 -6
  46. package/src/core/utils.ts +1 -7
  47. package/src/main-api/INode.ts +1 -1
  48. package/src/render-drivers/threadx/ThreadXMainAnimationController.ts +63 -27
  49. package/src/render-drivers/threadx/worker/ThreadXRendererNode.ts +6 -0
  50. package/dist/src/core/lib/WebGlContext.d.ts +0 -414
  51. package/dist/src/core/lib/WebGlContext.js +0 -640
  52. package/dist/src/core/lib/WebGlContext.js.map +0 -1
  53. package/dist/src/core/scene/Scene.d.ts +0 -59
  54. package/dist/src/core/scene/Scene.js +0 -106
  55. package/dist/src/core/scene/Scene.js.map +0 -1
  56. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.d.ts +0 -8
  57. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.js.map +0 -1
  58. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.d.ts +0 -19
  59. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.js +0 -84
  60. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.js.map +0 -1
  61. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.d.ts +0 -8
  62. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.js +0 -40
  63. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.js.map +0 -1
  64. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.d.ts +0 -2
  65. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.js +0 -41
  66. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.js.map +0 -1
  67. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.d.ts +0 -1
  68. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.js +0 -4
  69. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.js.map +0 -1
  70. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.d.ts +0 -1
  71. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.js +0 -2
  72. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.js.map +0 -1
  73. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +0 -20
  74. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +0 -55
  75. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +0 -1
  76. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.d.ts +0 -9
  77. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.js.map +0 -1
@@ -0,0 +1,3 @@
1
+ export * from './main-api.js';
2
+ export * from './core-api.js';
3
+ export * from './utils.js';
@@ -16,14 +16,7 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- /**
20
- * Round up to the nearest multiple of the given number.
21
- *
22
- * @param value
23
- * @param multiple
24
- * @returns
25
- */
26
- export function roundUpToMultiple(value, multiple) {
27
- return Math.ceil(value / multiple) * multiple;
28
- }
29
- //# sourceMappingURL=findNearestMultiple.js.map
19
+ export * from './main-api.js';
20
+ export * from './core-api.js';
21
+ export * from './utils.js';
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../exports/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
@@ -1,9 +1,66 @@
1
+ import type { IEventEmitter } from '@lightningjs/threadx';
1
2
  export type AnimationControllerState = 'running' | 'paused' | 'stopped';
2
- export interface IAnimationController {
3
+ /**
4
+ * Animation Controller interface
5
+ *
6
+ * @remarks
7
+ * This interface is used to control animations. It provides methods to start,
8
+ * stop, pause, and restore animations. It also provides a way to wait for the
9
+ * animation to stop.
10
+ *
11
+ * This interface extends the `IEventEmitter` interface, which means you can
12
+ * listen to these events emitted by the animation controller:
13
+ * - `animating` - Emitted when the animation finishes it's delay phase and
14
+ * starts animating.
15
+ * - `stopped` - Emitted when the animation stops either by calling the `stop()`
16
+ * method or when the animation finishes naturally.
17
+ */
18
+ export interface IAnimationController extends IEventEmitter {
19
+ /**
20
+ * Start the animation
21
+ *
22
+ * @remarks
23
+ * If the animation is paused this method will resume the animation.
24
+ */
3
25
  start(): IAnimationController;
26
+ /**
27
+ * Stop the animation
28
+ *
29
+ * @remarks
30
+ * Resets the animation to the start state
31
+ */
4
32
  stop(): IAnimationController;
33
+ /**
34
+ * Pause the animation
35
+ */
5
36
  pause(): IAnimationController;
37
+ /**
38
+ * Restore the animation to the original values
39
+ */
6
40
  restore(): IAnimationController;
41
+ /**
42
+ * Promise that resolves when the last active animation is stopped (including
43
+ * when the animation finishes naturally).
44
+ *
45
+ * @remarks
46
+ * The Promise returned by this method is reset every time the animation
47
+ * enters a new start/stop cycle. This means you must call `start()` before
48
+ * calling this method if you want to wait for the animation to stop.
49
+ *
50
+ * This method always returns a resolved promise if the animation is currently
51
+ * in a stopped state.
52
+ *
53
+ * @returns
54
+ */
7
55
  waitUntilStopped(): Promise<void>;
56
+ /**
57
+ * Current state of the animation
58
+ *
59
+ * @remarks
60
+ * - `stopped` - The animation is currently stopped (at the beggining or end
61
+ * of the animation)
62
+ * - `running` - The animation is currently running
63
+ * - `paused` - The animation is currently paused
64
+ */
8
65
  readonly state: AnimationControllerState;
9
66
  }
@@ -1,20 +1,2 @@
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
1
  export {};
20
2
  //# sourceMappingURL=IAnimationController.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IAnimationController.js","sourceRoot":"","sources":["../../../src/common/IAnimationController.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG"}
1
+ {"version":3,"file":"IAnimationController.js","sourceRoot":"","sources":["../../../src/common/IAnimationController.ts"],"names":[],"mappings":""}
@@ -46,7 +46,7 @@ export class CoreTextureManager {
46
46
  renderer;
47
47
  constructor(numImageWorkers) {
48
48
  // Register default known texture types
49
- if (this.hasCreateImageBitmap && this.hasWorker) {
49
+ if (this.hasCreateImageBitmap && this.hasWorker && numImageWorkers > 0) {
50
50
  this.imageWorkerManager = new ImageWorkerManager(numImageWorkers);
51
51
  }
52
52
  if (!this.hasCreateImageBitmap) {
@@ -1 +1 @@
1
- {"version":3,"file":"CoreTextureManager.js","sourceRoot":"","sources":["../../../src/core/CoreTextureManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CoreTextureManager.js","sourceRoot":"","sources":["../../../src/core/CoreTextureManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AA0G5D,MAAM,OAAO,kBAAkB;IAC7B;;OAEG;IACH,UAAU,GAAG,CAAC,CAAC;IAEf,cAAc,GAAwB,EAAE,CAAC;IAEzC,eAAe,GAAyB,IAAI,GAAG,EAAE,CAAC;IAClD,cAAc,GAAyB,IAAI,GAAG,EAAE,CAAC;IAEjD,eAAe,GAAyC,IAAI,OAAO,EAAE,CAAC;IACtE,kBAAkB,GAGd,IAAI,OAAO,EAAE,CAAC;IAClB,kBAAkB,GAA8B,IAAI,CAAC;IACrD,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;IAChD,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B;;;;;;OAMG;IACH,QAAQ,CAAgB;IAExB,YAAY,eAAuB;QACjC,uCAAuC;QACvC,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,SAAS,IAAI,eAAe,GAAG,CAAC,EAAE;YACtE,IAAI,CAAC,kBAAkB,GAAG,IAAI,kBAAkB,CAAC,eAAe,CAAC,CAAC;SACnE;QAED,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC9B,OAAO,CAAC,IAAI,CACV,8FAA8F,CAC/F,CAAC;SACH;QAED,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QACvD,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QACvD,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QACvD,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACnD,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IAC3D,CAAC;IAED,mBAAmB,CACjB,WAAiB,EACjB,YAA8B;QAE9B,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,YAAY,CAAC;IAClD,CAAC;IAED,WAAW,CACT,WAAiB,EACjB,KAAqC,EACrC,UAAiC,IAAI;QAErC,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACtD,IAAI,CAAC,YAAY,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,iBAAiB,WAAW,qBAAqB,CAAC,CAAC;SACpE;QACD,IAAI,OAA4B,CAAC;QACjC,wEAAwE;QACxE,IAAI,OAAO,EAAE,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YACpE,iEAAiE;YACjE,oEAAoE;YACpE,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAE,CAAC;SAChD;QACD,gFAAgF;QAChF,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,MAAM,GAAG,OAAO,EAAE,EAAE,CAAC;YAC3B,MAAM,QAAQ,GACZ,OAAO,EAAE,QAAQ,IAAI,YAAY,CAAC,YAAY,CAAC,KAAY,CAAC,CAAC;YAC/D,IAAI,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBAClD,yDAAyD;gBACzD,oEAAoE;gBACpE,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;aAC/C;iBAAM;gBACL,qGAAqG;gBACrG,OAAO,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,KAAY,CAAC,CAAC;aAChD;YACD,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;aACrD;SACF;QACD,IAAI,OAAO,EAAE,OAAO,EAAE;YACpB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC1C,KAAK,CAAC,IAAI,EAAE,CAAC;SACd;QACD,OAAO,OAAyC,CAAC;IACnD,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,mBAAmB,CACzB,aAAqB,EACrB,QAAwB,EACxB,OAAgB;QAEhB,MAAM,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC;QACpD,cAAc,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC3C,IAAI,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YACnC,oEAAoE;YACpE,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,KAAK,EAAE,CAAC;SAC1C;aAAM;YACL,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACxD,IAAI,QAAQ,EAAE;gBACZ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;aAC7C;SACF;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACH,wBAAwB,CAAC,aAAqB;QAC5C,MAAM,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC;QACpD,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,EAAE;YACZ,oEAAoE;YACpE,qDAAqD;YACrD,OAAO;SACR;QACD,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACrC,IAAI,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YACnC,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACpD,YAAY,CAAC,WAAW,CAAC,CAAC;YAC1B,WAAW,CAAC,KAAK,EAAE,CAAC;YACpB,IAAI,WAAW,CAAC,KAAK,KAAK,CAAC,EAAE;gBAC3B,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACnC,+EAA+E;gBAC/E,WAAW;gBACX,oEAAoE;gBACpE,IAAI,WAAW,CAAC,QAAQ,EAAE;oBACxB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;iBACnD;aACF;SACF;QACD,qCAAqC;QACrC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACH,YAAY;QACV,yCAAyC;QACzC,wDAAwD;QACxD,6BAA6B;QAC7B,IAAI;QACJ,yDAAyD;QACzD,6BAA6B;QAC7B,IAAI;QACJ,gDAAgD;QAChD,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI;YACvC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI;SACtC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,aAAa,CAAC,aAAsB;QAClC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;YAC3C,oEAAoE;YACpE,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC;SACjD;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAE9D,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACjD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -13,9 +13,9 @@ export interface AnimationSettings {
13
13
  export declare class CoreAnimation extends EventEmitter {
14
14
  private node;
15
15
  private props;
16
- settings: Partial<AnimationSettings>;
17
16
  propStartValues: Partial<INodeAnimatableProps>;
18
17
  restoreValues: Partial<INodeAnimatableProps>;
18
+ settings: AnimationSettings;
19
19
  private progress;
20
20
  private delayFor;
21
21
  private timingFunction;
@@ -24,6 +24,6 @@ export declare class CoreAnimation extends EventEmitter {
24
24
  reset(): void;
25
25
  restore(): void;
26
26
  reverse(): void;
27
- applyEasing(p: number, s: number, e: number): number;
27
+ private applyEasing;
28
28
  update(dt: number): void;
29
29
  }
@@ -22,9 +22,9 @@ import { EventEmitter } from '../../common/EventEmitter.js';
22
22
  export class CoreAnimation extends EventEmitter {
23
23
  node;
24
24
  props;
25
- settings;
26
25
  propStartValues = {};
27
26
  restoreValues = {};
27
+ settings;
28
28
  progress = 0;
29
29
  delayFor = 0;
30
30
  timingFunction;
@@ -33,17 +33,24 @@ export class CoreAnimation extends EventEmitter {
33
33
  super();
34
34
  this.node = node;
35
35
  this.props = props;
36
- this.settings = settings;
37
36
  this.propStartValues = {};
38
37
  this.propsList = Object.keys(props);
39
38
  this.propsList.forEach((propName) => {
40
39
  this.propStartValues[propName] = node[propName];
41
40
  });
42
- this.timingFunction = (t) => t;
43
- if (settings.easing && typeof settings.easing === 'string') {
44
- this.timingFunction = getTimingFunction(settings.easing);
45
- }
46
- this.delayFor = settings.delay || 0;
41
+ const easing = settings.easing || 'linear';
42
+ const delay = settings.delay ?? 0;
43
+ this.settings = {
44
+ duration: settings.duration ?? 0,
45
+ delay,
46
+ easing,
47
+ loop: settings.loop ?? false,
48
+ repeat: settings.repeat ?? 0,
49
+ repeatDelay: settings.repeatDelay ?? 0,
50
+ stopMethod: settings.stopMethod ?? false,
51
+ };
52
+ this.timingFunction = getTimingFunction(easing);
53
+ this.delayFor = delay;
47
54
  }
48
55
  reset() {
49
56
  this.progress = 0;
@@ -76,16 +83,32 @@ export class CoreAnimation extends EventEmitter {
76
83
  }
77
84
  update(dt) {
78
85
  const { duration, loop, easing, stopMethod } = this.settings;
79
- if (!duration) {
86
+ const { delayFor } = this;
87
+ if (duration === 0 && delayFor === 0) {
80
88
  this.emit('finished', {});
81
89
  return;
82
90
  }
83
91
  if (this.delayFor > 0) {
84
92
  this.delayFor -= dt;
93
+ if (this.delayFor >= 0) {
94
+ // Either no or more delay left. Exit.
95
+ return;
96
+ }
97
+ else {
98
+ // We went beyond the delay time, add it back to dt so we can continue
99
+ // with the animation.
100
+ dt = -this.delayFor;
101
+ this.delayFor = 0;
102
+ }
103
+ }
104
+ if (duration === 0) {
105
+ // No duration, we are done.
106
+ this.emit('finished', {});
85
107
  return;
86
108
  }
87
- if (this.delayFor <= 0 && this.progress === 0) {
88
- this.emit('start', {});
109
+ if (this.progress === 0) {
110
+ // Progress is 0, we are starting the post-delay part of the animation.
111
+ this.emit('animating', {});
89
112
  }
90
113
  this.progress += dt / duration;
91
114
  if (this.progress > 1) {
@@ -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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"}
@@ -1,29 +1,25 @@
1
1
  import type { AnimationControllerState, IAnimationController } from '../../common/IAnimationController.js';
2
2
  import type { AnimationManager } from './AnimationManager.js';
3
3
  import type { CoreAnimation } from './CoreAnimation.js';
4
- export declare class CoreAnimationController implements IAnimationController {
4
+ import { EventEmitter } from '../../common/EventEmitter.js';
5
+ export declare class CoreAnimationController extends EventEmitter implements IAnimationController {
5
6
  private manager;
6
7
  private animation;
7
- startedPromise: Promise<void> | null;
8
- /**
9
- * If this is null, then the animation hasn't started yet.
10
- */
11
- startedResolve: ((scope?: any) => void) | null;
12
- stoppedPromise: Promise<void> | null;
8
+ stoppedPromise: Promise<void>;
13
9
  /**
14
10
  * If this is null, then the animation is in a finished / stopped state.
15
11
  */
16
12
  stoppedResolve: (() => void) | null;
17
- constructor(manager: AnimationManager, animation: CoreAnimation);
18
13
  state: AnimationControllerState;
14
+ constructor(manager: AnimationManager, animation: CoreAnimation);
19
15
  start(): IAnimationController;
20
16
  stop(): IAnimationController;
21
17
  pause(): IAnimationController;
22
18
  restore(): IAnimationController;
23
- waitUntilStarted(): Promise<void>;
24
19
  waitUntilStopped(): Promise<void>;
25
- private makeStartedPromise;
20
+ private registerAnimation;
21
+ private unregisterAnimation;
26
22
  private makeStoppedPromise;
27
- private started;
28
- private finished;
23
+ private onFinished;
24
+ private onAnimating;
29
25
  }
@@ -1,3 +1,4 @@
1
+ /* eslint-disable @typescript-eslint/unbound-method */
1
2
  /*
2
3
  * If not stated otherwise in this file or this component's LICENSE file the
3
4
  * following copyright and licenses apply:
@@ -17,49 +18,48 @@
17
18
  * limitations under the License.
18
19
  */
19
20
  import { assertTruthy } from '../../utils.js';
20
- export class CoreAnimationController {
21
+ import { EventEmitter } from '../../common/EventEmitter.js';
22
+ export class CoreAnimationController extends EventEmitter {
21
23
  manager;
22
24
  animation;
23
- startedPromise = null;
24
- /**
25
- * If this is null, then the animation hasn't started yet.
26
- */
27
- startedResolve = null;
28
- stoppedPromise = null;
25
+ stoppedPromise;
29
26
  /**
30
27
  * If this is null, then the animation is in a finished / stopped state.
31
28
  */
32
29
  stoppedResolve = null;
30
+ state;
33
31
  constructor(manager, animation) {
32
+ super();
34
33
  this.manager = manager;
35
34
  this.animation = animation;
36
35
  this.state = 'stopped';
36
+ // Initial stopped promise is resolved (since the animation is stopped)
37
+ this.stoppedPromise = Promise.resolve();
38
+ // Bind event handlers
39
+ this.onAnimating = this.onAnimating.bind(this);
40
+ this.onFinished = this.onFinished.bind(this);
37
41
  }
38
- state;
39
42
  start() {
40
- this.makeStartedPromise();
41
- this.animation.once('start', this.started.bind(this));
42
- this.makeStoppedPromise();
43
- this.animation.once('finished', this.finished.bind(this));
44
- // prevent registering the same animation twice
45
- if (!this.manager.activeAnimations.has(this.animation)) {
46
- this.manager.registerAnimation(this.animation);
43
+ if (this.state !== 'running') {
44
+ this.makeStoppedPromise();
45
+ this.registerAnimation();
46
+ this.state = 'running';
47
47
  }
48
- this.state = 'running';
49
48
  return this;
50
49
  }
51
50
  stop() {
52
- this.manager.unregisterAnimation(this.animation);
51
+ this.unregisterAnimation();
53
52
  if (this.stoppedResolve !== null) {
54
53
  this.stoppedResolve();
55
54
  this.stoppedResolve = null;
55
+ this.emit('stopped', this);
56
56
  }
57
57
  this.animation.reset();
58
58
  this.state = 'stopped';
59
59
  return this;
60
60
  }
61
61
  pause() {
62
- this.manager.unregisterAnimation(this.animation);
62
+ this.unregisterAnimation();
63
63
  this.state = 'paused';
64
64
  return this;
65
65
  }
@@ -68,24 +68,22 @@ export class CoreAnimationController {
68
68
  this.animation.restore();
69
69
  return this;
70
70
  }
71
- waitUntilStarted() {
72
- this.makeStartedPromise();
73
- const promise = this.startedPromise;
74
- assertTruthy(promise);
75
- return promise;
76
- }
77
71
  waitUntilStopped() {
78
- this.makeStoppedPromise();
79
- const promise = this.stoppedPromise;
80
- assertTruthy(promise);
81
- return promise;
72
+ return this.stoppedPromise;
82
73
  }
83
- makeStartedPromise() {
84
- if (this.startedResolve === null) {
85
- this.startedPromise = new Promise((resolve) => {
86
- this.startedResolve = resolve;
87
- });
88
- }
74
+ registerAnimation() {
75
+ // Hook up event listeners
76
+ this.animation.once('finished', this.onFinished);
77
+ this.animation.on('animating', this.onAnimating);
78
+ // Then register the animation
79
+ this.manager.registerAnimation(this.animation);
80
+ }
81
+ unregisterAnimation() {
82
+ // First unregister the animation
83
+ this.manager.unregisterAnimation(this.animation);
84
+ // Then unhook event listeners
85
+ this.animation.off('finished', this.onFinished);
86
+ this.animation.off('animating', this.onAnimating);
89
87
  }
90
88
  makeStoppedPromise() {
91
89
  if (this.stoppedResolve === null) {
@@ -94,29 +92,27 @@ export class CoreAnimationController {
94
92
  });
95
93
  }
96
94
  }
97
- started() {
98
- assertTruthy(this.startedResolve);
99
- // resolve promise (and pass current this to continue to the chain)
100
- this.startedResolve(this);
101
- this.startedResolve = null;
102
- }
103
- finished() {
95
+ onFinished() {
104
96
  assertTruthy(this.stoppedResolve);
105
97
  // If the animation is looping, then we need to restart it.
106
98
  const { loop, stopMethod } = this.animation.settings;
107
99
  if (stopMethod === 'reverse') {
108
100
  this.animation.reverse();
109
- this.start();
110
101
  return;
111
102
  }
112
- // resolve promise
113
- this.stoppedResolve();
114
- this.stoppedResolve = null;
115
103
  if (loop) {
116
104
  return;
117
105
  }
118
106
  // unregister animation
119
- this.manager.unregisterAnimation(this.animation);
107
+ this.unregisterAnimation();
108
+ // resolve promise
109
+ this.stoppedResolve();
110
+ this.stoppedResolve = null;
111
+ this.emit('stopped', this);
112
+ this.state = 'stopped';
113
+ }
114
+ onAnimating() {
115
+ this.emit('animating', this);
120
116
  }
121
117
  }
122
118
  //# 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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"}
@@ -122,11 +122,14 @@ export class ImageWorkerManager {
122
122
  const absoluteSrcUrl = this.convertUrlToAbsolute(src);
123
123
  const id = this.nextId++;
124
124
  this.messageManager[id] = [resolve, reject];
125
- this.getNextWorker().postMessage({
126
- id,
127
- src: absoluteSrcUrl,
128
- premultiplyAlpha,
129
- });
125
+ const nextWorker = this.getNextWorker();
126
+ if (nextWorker) {
127
+ nextWorker.postMessage({
128
+ id,
129
+ src: absoluteSrcUrl,
130
+ premultiplyAlpha,
131
+ });
132
+ }
130
133
  }
131
134
  }
132
135
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"ImageWorker.js","sourceRoot":"","sources":["../../../../src/core/lib/ImageWorker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ImageWorker.js","sourceRoot":"","sources":["../../../../src/core/lib/ImageWorker.ts"],"names":[],"mappings":"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"}
@@ -77,6 +77,7 @@ export class WebGlCoreCtxTexture extends CoreContextTexture {
77
77
  this._nativeCtxTexture = this.createNativeCtxTexture();
78
78
  this.onLoadRequest()
79
79
  .then(({ width, height }) => {
80
+ // If the texture has been freed while loading, return early.
80
81
  if (this._state === 'freed') {
81
82
  return;
82
83
  }
@@ -88,6 +89,10 @@ export class WebGlCoreCtxTexture extends CoreContextTexture {
88
89
  this.textureSource.setState('loaded', { width, height });
89
90
  })
90
91
  .catch((err) => {
92
+ // If the texture has been freed while loading, return early.
93
+ if (this._state === 'freed') {
94
+ return;
95
+ }
91
96
  this._state = 'failed';
92
97
  this.textureSource.setState('failed', err);
93
98
  console.error(err);
@@ -1 +1 @@
1
- {"version":3,"file":"WebGlCoreCtxTexture.js","sourceRoot":"","sources":["../../../../../src/core/renderers/webgl/WebGlCoreCtxTexture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebGlCoreCtxTexture.js","sourceRoot":"","sources":["../../../../../src/core/renderers/webgl/WebGlCoreCtxTexture.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ export interface ImageTextureProps {
13
13
  *
14
14
  * @default ''
15
15
  */
16
- src?: string | ImageData;
16
+ src?: string | ImageData | (() => ImageData);
17
17
  /**
18
18
  * Whether to premultiply the alpha channel into the color channels of the
19
19
  * image.
@@ -26,6 +26,10 @@ export interface ImageTextureProps {
26
26
  * @default true
27
27
  */
28
28
  premultiplyAlpha?: boolean | null;
29
+ /**
30
+ * `ImageData` textures are not cached unless a `key` is provided
31
+ */
32
+ key?: string | null;
29
33
  }
30
34
  /**
31
35
  * Texture consisting of an image loaded from a URL
@@ -48,9 +48,15 @@ export class ImageTexture extends Texture {
48
48
  data: null,
49
49
  };
50
50
  }
51
- if (src instanceof ImageData) {
51
+ if (typeof src !== 'string') {
52
+ if (src instanceof ImageData) {
53
+ return {
54
+ data: src,
55
+ premultiplyAlpha,
56
+ };
57
+ }
52
58
  return {
53
- data: src,
59
+ data: src(),
54
60
  premultiplyAlpha,
55
61
  };
56
62
  }
@@ -94,16 +100,18 @@ export class ImageTexture extends Texture {
94
100
  }
95
101
  static makeCacheKey(props) {
96
102
  const resolvedProps = ImageTexture.resolveDefaults(props);
97
- // ImageTextures sourced by ImageData are non-cacheable
98
- if (resolvedProps.src instanceof ImageData) {
103
+ // Only cache key-able textures; prioritise key
104
+ const key = resolvedProps.key || resolvedProps.src;
105
+ if (typeof key !== 'string') {
99
106
  return false;
100
107
  }
101
- return `ImageTexture,${resolvedProps.src},${resolvedProps.premultiplyAlpha}`;
108
+ return `ImageTexture,${key},${resolvedProps.premultiplyAlpha ?? 'true'}`;
102
109
  }
103
110
  static resolveDefaults(props) {
104
111
  return {
105
112
  src: props.src ?? '',
106
- premultiplyAlpha: props.premultiplyAlpha ?? true, // null,
113
+ premultiplyAlpha: props.premultiplyAlpha ?? true,
114
+ key: props.key ?? null
107
115
  };
108
116
  }
109
117
  static z$__type__Props;