@luma.gl/engine 9.1.9 → 9.2.0-alpha.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 (102) hide show
  1. package/README.md +5 -0
  2. package/dist/animation-loop/animation-loop.d.ts +12 -12
  3. package/dist/animation-loop/animation-loop.d.ts.map +1 -1
  4. package/dist/animation-loop/animation-loop.js +26 -62
  5. package/dist/animation-loop/animation-loop.js.map +1 -1
  6. package/dist/animation-loop/animation-props.d.ts +3 -4
  7. package/dist/animation-loop/animation-props.d.ts.map +1 -1
  8. package/dist/animation-loop/make-animation-loop.d.ts +4 -1
  9. package/dist/animation-loop/make-animation-loop.d.ts.map +1 -1
  10. package/dist/animation-loop/make-animation-loop.js +39 -7
  11. package/dist/animation-loop/make-animation-loop.js.map +1 -1
  12. package/dist/async-texture/async-texture.d.ts +106 -2
  13. package/dist/async-texture/async-texture.d.ts.map +1 -1
  14. package/dist/async-texture/async-texture.js +281 -13
  15. package/dist/async-texture/async-texture.js.map +1 -1
  16. package/dist/compute/computation.d.ts +1 -1
  17. package/dist/compute/computation.d.ts.map +1 -1
  18. package/dist/compute/computation.js +2 -2
  19. package/dist/compute/computation.js.map +1 -1
  20. package/dist/compute/swap.d.ts.map +1 -1
  21. package/dist/compute/swap.js +6 -2
  22. package/dist/compute/swap.js.map +1 -1
  23. package/dist/compute/texture-transform.d.ts.map +1 -1
  24. package/dist/compute/texture-transform.js +4 -2
  25. package/dist/compute/texture-transform.js.map +1 -1
  26. package/dist/debug/copy-texture-to-image.d.ts +23 -1
  27. package/dist/debug/copy-texture-to-image.d.ts.map +1 -1
  28. package/dist/debug/copy-texture-to-image.js +37 -1
  29. package/dist/debug/copy-texture-to-image.js.map +1 -1
  30. package/dist/dist.dev.js +566 -232
  31. package/dist/dist.min.js +26 -26
  32. package/dist/factories/pipeline-factory.d.ts +11 -1
  33. package/dist/factories/pipeline-factory.d.ts.map +1 -1
  34. package/dist/factories/pipeline-factory.js +107 -25
  35. package/dist/factories/pipeline-factory.js.map +1 -1
  36. package/dist/factories/shader-factory.d.ts +5 -1
  37. package/dist/factories/shader-factory.d.ts.map +1 -1
  38. package/dist/factories/shader-factory.js +40 -6
  39. package/dist/factories/shader-factory.js.map +1 -1
  40. package/dist/geometries/cube-geometry.d.ts +3 -3
  41. package/dist/geometries/cube-geometry.d.ts.map +1 -1
  42. package/dist/geometry/geometry.d.ts.map +1 -1
  43. package/dist/geometry/geometry.js +3 -2
  44. package/dist/geometry/geometry.js.map +1 -1
  45. package/dist/index.cjs +581 -251
  46. package/dist/index.cjs.map +4 -4
  47. package/dist/index.d.ts +1 -0
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js.map +1 -1
  50. package/dist/model/model.d.ts +4 -25
  51. package/dist/model/model.d.ts.map +1 -1
  52. package/dist/model/model.js +26 -71
  53. package/dist/model/model.js.map +1 -1
  54. package/dist/models/billboard-texture-model.d.ts.map +1 -1
  55. package/dist/models/billboard-texture-model.js +6 -4
  56. package/dist/models/billboard-texture-model.js.map +1 -1
  57. package/dist/modules/picking/legacy-picking-manager.d.ts +1 -1
  58. package/dist/modules/picking/legacy-picking-manager.d.ts.map +1 -1
  59. package/dist/modules/picking/legacy-picking-manager.js +1 -1
  60. package/dist/modules/picking/legacy-picking-manager.js.map +1 -1
  61. package/dist/modules/picking/picking-manager.d.ts +2 -2
  62. package/dist/modules/picking/picking-manager.d.ts.map +1 -1
  63. package/dist/modules/picking/picking-manager.js +2 -2
  64. package/dist/modules/picking/picking-manager.js.map +1 -1
  65. package/dist/passes/get-fragment-shader.js +2 -2
  66. package/dist/passes/shader-pass-renderer.d.ts +4 -4
  67. package/dist/passes/shader-pass-renderer.d.ts.map +1 -1
  68. package/dist/passes/shader-pass-renderer.js +15 -5
  69. package/dist/passes/shader-pass-renderer.js.map +1 -1
  70. package/dist/shader-inputs.js +1 -1
  71. package/dist/shader-inputs.js.map +1 -1
  72. package/dist/utils/buffer-layout-helper.d.ts +12 -0
  73. package/dist/utils/buffer-layout-helper.d.ts.map +1 -0
  74. package/dist/utils/buffer-layout-helper.js +41 -0
  75. package/dist/utils/buffer-layout-helper.js.map +1 -0
  76. package/dist/utils/buffer-layout-order.d.ts +3 -0
  77. package/dist/utils/buffer-layout-order.d.ts.map +1 -0
  78. package/dist/utils/buffer-layout-order.js +16 -0
  79. package/dist/utils/buffer-layout-order.js.map +1 -0
  80. package/package.json +4 -4
  81. package/src/animation-loop/animation-loop.ts +31 -71
  82. package/src/animation-loop/animation-props.ts +3 -5
  83. package/src/animation-loop/make-animation-loop.ts +41 -9
  84. package/src/async-texture/async-texture.ts +386 -23
  85. package/src/async-texture/texture-setters.ts.disabled +296 -0
  86. package/src/compute/computation.ts +3 -3
  87. package/src/compute/swap.ts +7 -2
  88. package/src/compute/texture-transform.ts +4 -2
  89. package/src/debug/copy-texture-to-image.ts +52 -2
  90. package/src/factories/pipeline-factory.ts +122 -26
  91. package/src/factories/shader-factory.ts +43 -7
  92. package/src/geometry/geometry.ts +3 -2
  93. package/src/index.ts +12 -0
  94. package/src/model/model.ts +31 -86
  95. package/src/models/billboard-texture-model.ts +6 -4
  96. package/src/modules/picking/legacy-picking-manager.ts +2 -2
  97. package/src/modules/picking/picking-manager.ts +3 -3
  98. package/src/passes/get-fragment-shader.ts +2 -2
  99. package/src/passes/shader-pass-renderer.ts +18 -8
  100. package/src/shader-inputs.ts +1 -1
  101. package/src/utils/buffer-layout-helper.ts +51 -0
  102. package/src/utils/buffer-layout-order.ts +26 -0
package/README.md ADDED
@@ -0,0 +1,5 @@
1
+ # @luma.gl/engine
2
+
3
+ This is the engine layer of luma.gl
4
+
5
+ See [luma.gl](http://luma.gl) for documentation.
@@ -12,16 +12,22 @@ export type AnimationLoopProps = {
12
12
  onError?: (reason: Error) => void;
13
13
  stats?: Stats;
14
14
  autoResizeViewport?: boolean;
15
- autoResizeDrawingBuffer?: boolean;
16
- useDevicePixels?: number | boolean;
17
15
  };
18
16
  export type MutableAnimationLoopProps = {
19
17
  autoResizeViewport?: boolean;
20
- autoResizeDrawingBuffer?: boolean;
21
- useDevicePixels?: number | boolean;
22
18
  };
23
19
  /** Convenient animation loop */
24
20
  export declare class AnimationLoop {
21
+ static defaultAnimationLoopProps: {
22
+ readonly device: never;
23
+ readonly onAddHTML: () => string;
24
+ readonly onInitialize: () => Promise<null>;
25
+ readonly onRender: () => void;
26
+ readonly onFinalize: () => void;
27
+ readonly onError: (error: Error) => void;
28
+ readonly stats: Stats;
29
+ readonly autoResizeViewport: false;
30
+ };
25
31
  device: Device | null;
26
32
  canvas: HTMLCanvasElement | OffscreenCanvas | null;
27
33
  props: Required<AnimationLoopProps>;
@@ -44,10 +50,9 @@ export declare class AnimationLoop {
44
50
  destroy(): void;
45
51
  /** @deprecated Use .destroy() */
46
52
  delete(): void;
47
- setError(error: Error): void;
53
+ reportError(error: Error): void;
48
54
  /** Flags this animation loop as needing redraw */
49
55
  setNeedsRedraw(reason: string): this;
50
- /** TODO - move these props to CanvasContext? */
51
56
  setProps(props: MutableAnimationLoopProps): this;
52
57
  /** Starts a render loop if not already running */
53
58
  start(): Promise<this | null>;
@@ -82,13 +87,8 @@ export declare class AnimationLoop {
82
87
  height: number;
83
88
  aspect: number;
84
89
  };
85
- /** Default viewport setup */
90
+ /** @deprecated Default viewport setup */
86
91
  _resizeViewport(): void;
87
- /**
88
- * Resize the render buffer of the canvas to match canvas client size
89
- * Optionally multiplying with devicePixel ratio
90
- */
91
- _resizeCanvasDrawingBuffer(): void;
92
92
  _beginFrameTimers(): void;
93
93
  _endFrameTimers(): void;
94
94
  _startEventHandling(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"animation-loop.d.ts","sourceRoot":"","sources":["../../src/animation-loop/animation-loop.ts"],"names":[],"mappings":"AAIA,OAAO,EAAO,MAAM,EAAC,MAAM,eAAe,CAAC;AAK3C,OAAO,EAAC,QAAQ,EAAC,iCAA8B;AAC/C,OAAO,EAAC,cAAc,EAAC,6BAA0B;AACjD,OAAO,EAAC,KAAK,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AAI5C,+BAA+B;AAC/B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEjC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC;IAC5C,YAAY,CAAC,EAAE,CAAC,cAAc,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpE,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,cAAc,KAAK,OAAO,CAAC;IACvD,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,cAAc,KAAK,IAAI,CAAC;IACtD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,KAAK,IAAI,CAAC;IAElC,KAAK,CAAC,EAAE,KAAK,CAAC;IAGd,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IAEtC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACpC,CAAC;AAqBF,gCAAgC;AAChC,qBAAa,aAAa;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC7B,MAAM,EAAE,iBAAiB,GAAG,eAAe,GAAG,IAAI,CAAQ;IAE1D,KAAK,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACpC,cAAc,EAAE,cAAc,GAAG,IAAI,CAAQ;IAC7C,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAQ;IACjC,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,IAAI,CAAC;IACd,OAAO,EAAE,IAAI,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAEhB,OAAO,EAAE,GAAG,CAAC;IAEb,WAAW,EAAE,MAAM,GAAG,KAAK,CAAiB;IAE5C,YAAY,EAAE,OAAO,CAAS;IAC9B,QAAQ,EAAE,OAAO,CAAS;IAC1B,iBAAiB,EAAE,GAAG,CAAQ;IAC9B,iBAAiB,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAAQ;IACxD,iBAAiB,EAAE,CAAC,CAAC,aAAa,EAAE,aAAa,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAC1E,aAAa,EAAE,MAAM,CAAK;IAC1B,MAAM,EAAE,KAAK,GAAG,IAAI,CAAQ;gBAOhB,KAAK,EAAE,kBAAkB;IA8BrC,OAAO,IAAI,IAAI;IAKf,iCAAiC;IACjC,MAAM,IAAI,IAAI;IAId,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAiB5B,kDAAkD;IAClD,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKpC,gDAAgD;IAChD,QAAQ,CAAC,KAAK,EAAE,yBAAyB,GAAG,IAAI;IAahD,kDAAkD;IAC5C,KAAK;IAuCX,yDAAyD;IACzD,IAAI;IAiBJ,8BAA8B;IAC9B,MAAM,IAAI,IAAI;IA0Bd,8EAA8E;IAC9E,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ;IAK5C,wBAAwB;IACxB,cAAc,IAAI,IAAI;IAItB,oCAAoC;IACpC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC;IAWvC,6CAA6C;IACvC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAWlC,WAAW,IAAI,IAAI;IAcnB,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IAc/B,sBAAsB,IAAI,IAAI;IAc9B,qBAAqB,IAAI,IAAI;IAe7B,eAAe,IAAI,IAAI;IAUvB,YAAY,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI;IAelD,iBAAiB,IAAI,IAAI;IAIzB,WAAW,IAAI,IAAI;IAMnB,yBAAyB,IAAI,IAAI;IAkCjC,kBAAkB,IAAI,cAAc;IAQpC,qBAAqB,IAAI,IAAI;IAoC7B,+BAA+B;IACzB,WAAW;IASjB,cAAc,IAAI,IAAI;IAsBtB,iBAAiB,IAAI;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC;IAsBpE,6BAA6B;IAC7B,eAAe,IAAI,IAAI;IAgBvB;;;OAGG;IACH,0BAA0B,IAAI,IAAI;IAMlC,iBAAiB;IAuBjB,eAAe;IAWf,mBAAmB;IAOnB,YAAY,CAAC,KAAK,EAAE,KAAK;IAMzB,aAAa,CAAC,KAAK,EAAE,KAAK;CAG3B"}
1
+ {"version":3,"file":"animation-loop.d.ts","sourceRoot":"","sources":["../../src/animation-loop/animation-loop.ts"],"names":[],"mappings":"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"}
@@ -5,23 +5,19 @@ import { luma } from '@luma.gl/core';
5
5
  import { requestAnimationFramePolyfill, cancelAnimationFramePolyfill } from "./request-animation-frame.js";
6
6
  import { Stats } from '@probe.gl/stats';
7
7
  let statIdCounter = 0;
8
- const DEFAULT_ANIMATION_LOOP_PROPS = {
9
- device: null,
10
- onAddHTML: () => '',
11
- onInitialize: async () => {
12
- return null;
13
- },
14
- onRender: () => { },
15
- onFinalize: () => { },
16
- onError: error => console.error(error), // eslint-disable-line no-console
17
- stats: luma.stats.get(`animation-loop-${statIdCounter++}`),
18
- // view parameters
19
- useDevicePixels: true,
20
- autoResizeViewport: false,
21
- autoResizeDrawingBuffer: false
22
- };
23
8
  /** Convenient animation loop */
24
9
  export class AnimationLoop {
10
+ static defaultAnimationLoopProps = {
11
+ device: null,
12
+ onAddHTML: () => '',
13
+ onInitialize: async () => null,
14
+ onRender: () => { },
15
+ onFinalize: () => { },
16
+ onError: error => console.error(error), // eslint-disable-line no-console
17
+ stats: luma.stats.get(`animation-loop-${statIdCounter++}`),
18
+ // view parameters
19
+ autoResizeViewport: false
20
+ };
25
21
  device = null;
26
22
  canvas = null;
27
23
  props;
@@ -45,22 +41,17 @@ export class AnimationLoop {
45
41
  * @param {HTMLCanvasElement} canvas - if provided, width and height will be passed to context
46
42
  */
47
43
  constructor(props) {
48
- this.props = { ...DEFAULT_ANIMATION_LOOP_PROPS, ...props };
44
+ this.props = { ...AnimationLoop.defaultAnimationLoopProps, ...props };
49
45
  props = this.props;
50
46
  if (!props.device) {
51
47
  throw new Error('No device provided');
52
48
  }
53
- const { useDevicePixels = true } = this.props;
54
49
  // state
55
50
  this.stats = props.stats || new Stats({ id: 'animation-loop-stats' });
56
51
  this.cpuTime = this.stats.get('CPU Time');
57
52
  this.gpuTime = this.stats.get('GPU Time');
58
53
  this.frameRate = this.stats.get('Frame Rate');
59
- this.setProps({
60
- autoResizeViewport: props.autoResizeViewport,
61
- autoResizeDrawingBuffer: props.autoResizeDrawingBuffer,
62
- useDevicePixels
63
- });
54
+ this.setProps({ autoResizeViewport: props.autoResizeViewport });
64
55
  // Bind methods
65
56
  this.start = this.start.bind(this);
66
57
  this.stop = this.stop.bind(this);
@@ -75,38 +66,19 @@ export class AnimationLoop {
75
66
  delete() {
76
67
  this.destroy();
77
68
  }
78
- setError(error) {
69
+ reportError(error) {
79
70
  this.props.onError(error);
80
- this._error = Error();
81
- const canvas = this.device?.canvasContext?.canvas;
82
- if (canvas instanceof HTMLCanvasElement) {
83
- const errorDiv = document.createElement('h1');
84
- errorDiv.innerHTML = error.message;
85
- errorDiv.style.position = 'absolute';
86
- errorDiv.style.top = '20%'; // left: 50%; transform: translate(-50%, -50%);';
87
- errorDiv.style.left = '10px';
88
- errorDiv.style.color = 'black';
89
- errorDiv.style.backgroundColor = 'red';
90
- document.body.appendChild(errorDiv);
91
- // canvas.style.position = 'absolute';
92
- }
71
+ this._error = error;
93
72
  }
94
73
  /** Flags this animation loop as needing redraw */
95
74
  setNeedsRedraw(reason) {
96
75
  this.needsRedraw = this.needsRedraw || reason;
97
76
  return this;
98
77
  }
99
- /** TODO - move these props to CanvasContext? */
100
78
  setProps(props) {
101
79
  if ('autoResizeViewport' in props) {
102
80
  this.props.autoResizeViewport = props.autoResizeViewport || false;
103
81
  }
104
- if ('autoResizeDrawingBuffer' in props) {
105
- this.props.autoResizeDrawingBuffer = props.autoResizeDrawingBuffer || false;
106
- }
107
- if ('useDevicePixels' in props) {
108
- this.props.useDevicePixels = props.useDevicePixels || false;
109
- }
110
82
  return this;
111
83
  }
112
84
  /** Starts a render loop if not already running */
@@ -214,7 +186,6 @@ export class AnimationLoop {
214
186
  this._initializeAnimationProps();
215
187
  this._updateAnimationProps();
216
188
  // Default viewport setup, in case onInitialize wants to render
217
- this._resizeCanvasDrawingBuffer();
218
189
  this._resizeViewport();
219
190
  // this._gpuTimeQuery = Query.isSupported(this.gl, ['timers']) ? new Query(this.gl) : null;
220
191
  }
@@ -279,22 +250,24 @@ export class AnimationLoop {
279
250
  this.needsRedraw = false;
280
251
  }
281
252
  _setupFrame() {
282
- this._resizeCanvasDrawingBuffer();
283
253
  this._resizeViewport();
284
254
  }
285
255
  // Initialize the object that will be passed to app callbacks
286
256
  _initializeAnimationProps() {
287
- const canvas = this.device?.canvasContext?.canvas;
288
- if (!this.device || !canvas) {
257
+ const canvasContext = this.device?.getDefaultCanvasContext();
258
+ if (!this.device || !canvasContext) {
289
259
  throw new Error('loop');
290
260
  }
261
+ const canvas = canvasContext?.canvas;
262
+ const useDevicePixels = canvasContext.props.useDevicePixels;
291
263
  this.animationProps = {
292
264
  animationLoop: this,
293
265
  device: this.device,
266
+ canvasContext,
294
267
  canvas,
268
+ // @ts-expect-error Deprecated
269
+ useDevicePixels,
295
270
  timeline: this.timeline,
296
- // Initial values
297
- useDevicePixels: this.props.useDevicePixels,
298
271
  needsRedraw: false,
299
272
  // Placeholders
300
273
  width: 1,
@@ -351,7 +324,7 @@ export class AnimationLoop {
351
324
  if (!this.device) {
352
325
  throw new Error('No device provided');
353
326
  }
354
- this.canvas = this.device.canvasContext?.canvas || null;
327
+ this.canvas = this.device.getDefaultCanvasContext().canvas || null;
355
328
  // this._createInfoDiv();
356
329
  }
357
330
  _createInfoDiv() {
@@ -380,10 +353,10 @@ export class AnimationLoop {
380
353
  return { width: 1, height: 1, aspect: 1 };
381
354
  }
382
355
  // https://webglfundamentals.org/webgl/lessons/webgl-resizing-the-canvas.html
383
- const [width, height] = this.device?.canvasContext?.getPixelSize() || [1, 1];
356
+ const [width, height] = this.device?.getDefaultCanvasContext().getDevicePixelSize() || [1, 1];
384
357
  // https://webglfundamentals.org/webgl/lessons/webgl-anti-patterns.html
385
358
  let aspect = 1;
386
- const canvas = this.device?.canvasContext?.canvas;
359
+ const canvas = this.device?.getDefaultCanvasContext().canvas;
387
360
  // @ts-expect-error
388
361
  if (canvas && canvas.clientHeight) {
389
362
  // @ts-expect-error
@@ -394,7 +367,7 @@ export class AnimationLoop {
394
367
  }
395
368
  return { width, height, aspect };
396
369
  }
397
- /** Default viewport setup */
370
+ /** @deprecated Default viewport setup */
398
371
  _resizeViewport() {
399
372
  // TODO can we use canvas context to code this in a portable way?
400
373
  // @ts-expect-error Expose on canvasContext
@@ -407,15 +380,6 @@ export class AnimationLoop {
407
380
  this.device.gl.drawingBufferHeight);
408
381
  }
409
382
  }
410
- /**
411
- * Resize the render buffer of the canvas to match canvas client size
412
- * Optionally multiplying with devicePixel ratio
413
- */
414
- _resizeCanvasDrawingBuffer() {
415
- if (this.props.autoResizeDrawingBuffer) {
416
- this.device?.canvasContext?.resize({ useDevicePixels: this.props.useDevicePixels });
417
- }
418
- }
419
383
  _beginFrameTimers() {
420
384
  this.frameRate.timeEnd();
421
385
  this.frameRate.timeStart();
@@ -1 +1 @@
1
- {"version":3,"file":"animation-loop.js","sourceRoot":"","sources":["../../src/animation-loop/animation-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"animation-loop.js","sourceRoot":"","sources":["../../src/animation-loop/animation-loop.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,IAAI,EAAS,MAAM,eAAe,CAAC;AAC3C,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC7B,qCAAkC;AAGnC,OAAO,EAAC,KAAK,EAAO,MAAM,iBAAiB,CAAC;AAE5C,IAAI,aAAa,GAAG,CAAC,CAAC;AAuBtB,gCAAgC;AAChC,MAAM,OAAO,aAAa;IACxB,MAAM,CAAC,yBAAyB,GAAG;QACjC,MAAM,EAAE,IAAK;QAEb,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE;QACnB,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;QAC9B,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;QAClB,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC;QACpB,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,iCAAiC;QAEzE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,aAAa,EAAE,EAAE,CAAC;QAE1D,kBAAkB;QAClB,kBAAkB,EAAE,KAAK;KACgC,CAAC;IAE5D,MAAM,GAAkB,IAAI,CAAC;IAC7B,MAAM,GAA+C,IAAI,CAAC;IAE1D,KAAK,CAA+B;IACpC,cAAc,GAA0B,IAAI,CAAC;IAC7C,QAAQ,GAAoB,IAAI,CAAC;IACjC,KAAK,CAAQ;IACb,OAAO,CAAO;IACd,OAAO,CAAO;IACd,SAAS,CAAO;IAEhB,OAAO,CAAM;IAEb,WAAW,GAAmB,aAAa,CAAC;IAE5C,YAAY,GAAY,KAAK,CAAC;IAC9B,QAAQ,GAAY,KAAK,CAAC;IAC1B,iBAAiB,GAAQ,IAAI,CAAC;IAC9B,iBAAiB,GAAkC,IAAI,CAAC;IACxD,iBAAiB,GAAoD,IAAI,CAAC;IAC1E,aAAa,GAAW,CAAC,CAAC;IAC1B,MAAM,GAAiB,IAAI,CAAC;IAE5B,sCAAsC;IAEtC;;OAEG;IACH,YAAY,KAAyB;QACnC,IAAI,CAAC,KAAK,GAAG,EAAC,GAAG,aAAa,CAAC,yBAAyB,EAAE,GAAG,KAAK,EAAC,CAAC;QACpE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEnB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACxC,CAAC;QAED,QAAQ;QACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,EAAC,EAAE,EAAE,sBAAsB,EAAC,CAAC,CAAC;QACpE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAE9C,IAAI,CAAC,QAAQ,CAAC,EAAC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAAC,CAAC,CAAC;QAE9D,eAAe;QACf,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,iCAAiC;IACjC,MAAM;QACJ,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,KAAY;QACtB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,kDAAkD;IAClD,cAAc,CAAC,MAAc;QAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,CAAC,KAAgC;QACvC,IAAI,oBAAoB,IAAI,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC;QACpE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kDAAkD;IAClD,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB,IAAI,CAAC;YACH,IAAI,UAAU,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,2BAA2B;gBAC3B,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;gBACzB,IAAI,CAAC,WAAW,EAAE,CAAC;gBAEnB,oFAAoF;gBACpF,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC3D,CAAC;YAED,qCAAqC;YACrC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,iBAAiB;YACjB,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;gBACzB,kEAAkE;gBAClE,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;YACtE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC1B,iCAAiC;YACjC,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,yDAAyD;IACzD,IAAI;QACF,sDAAsD;QACtD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,gBAAgB;YAChB,kGAAkG;YAClG,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACxC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC7C,CAAC;YAED,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8BAA8B;IAC9B,MAAM;QACJ,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE7B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAE7C,yBAAyB;QACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAChC,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8EAA8E;IAC9E,cAAc,CAAC,QAAkB;QAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,wBAAwB;IACxB,cAAc;QACZ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,oCAAoC;IACpC,aAAa;QACX,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QAErC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC7C,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC;YACnC,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,SAAS;QACb,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACjC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,MAAM,YAAY,iBAAiB,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACjC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAED,kBAAkB;IAElB,WAAW;QACT,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,+BAA+B;QAC/B,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACjC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE7B,+DAA+D;QAC/D,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,2FAA2F;IAC7F,CAAC;IAED,WAAW,CAAC,OAAY;QACtB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;QACpC,CAAC;QAED,sCAAsC;QACtC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,sBAAsB;QACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,iEAAiE;QACjE,yFAAyF;QACzF,uFAAuF;QACvF,4DAA4D;QAC5D,kGAAkG;QAClG,IAAI;QACJ,IAAI,CAAC,iBAAiB,GAAG,6BAA6B,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,qBAAqB;QACnB,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QAED,iEAAiE;QACjE,yFAAyF;QACzF,uFAAuF;QACvF,mEAAmE;QACnE,+DAA+D;QAC/D,IAAI;QACJ,4BAA4B,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACrD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAChC,CAAC;IAED,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC;IAED,0EAA0E;IAC1E,yCAAyC;IACzC,YAAY,CAAC,cAA8B;QACzC,mDAAmD;QACnD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,gBAAgB;QAChB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC/C,eAAe;QAEf,wCAAwC;QACxC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IACxB,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,WAAW;QACT,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,8DAA8D;IAC9D,yBAAyB;QACvB,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,uBAAuB,EAAE,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAED,MAAM,MAAM,GAAG,aAAa,EAAE,MAAM,CAAC;QACrC,MAAM,eAAe,GAAG,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC;QAE5D,IAAI,CAAC,cAAc,GAAG;YACpB,aAAa,EAAE,IAAI;YAEnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,aAAa;YACb,MAAM;YACN,8BAA8B;YAC9B,eAAe;YAEf,QAAQ,EAAE,IAAI,CAAC,QAAQ;YAEvB,WAAW,EAAE,KAAK;YAElB,eAAe;YACf,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;YAET,kBAAkB;YAClB,IAAI,EAAE,CAAC;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,UAAU,EAAE,CAAC;YACb,IAAI,EAAE,CAAC;YACP,IAAI,EAAE,CAAC;YAEP,eAAe;YACf,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC;IACJ,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,iEAAiE;IACjE,qBAAqB;QACnB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,4CAA4C;QAC5C,MAAM,EAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAC,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzD,IAAI,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,MAAM,KAAK,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YACjF,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,MAAM,KAAK,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YAC1C,IAAI,CAAC,cAAc,CAAC,+BAA+B,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC;QACpC,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC;QAEpC,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAEnD,yBAAyB;QACzB,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;QAE5E,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAE3B,yBAAyB;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ;YACtC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;YACzB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;IACrC,CAAC;IAED,+BAA+B;IAC/B,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC;QACnE,yBAAyB;IAC3B,CAAC;IAED,cAAc;QACZ,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACjD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YACtC,UAAU,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;YACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC1C,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;YAChC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC;YACxB,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;YAC1B,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC;YAC1B,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,OAAO,CAAC;YAC/B,IAAI,IAAI,CAAC,MAAM,YAAY,iBAAiB,EAAE,CAAC;gBAC7C,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;YACD,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,IAAI,EAAE,CAAC;gBACT,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,EAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC;QAC1C,CAAC;QACD,6EAA6E;QAC7E,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,uBAAuB,EAAE,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAE9F,uEAAuE;QACvE,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,uBAAuB,EAAE,CAAC,MAAM,CAAC;QAE7D,mBAAmB;QACnB,IAAI,MAAM,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YAClC,mBAAmB;YACnB,MAAM,GAAG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC;QACpD,CAAC;aAAM,IAAI,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;QAC1B,CAAC;QAED,OAAO,EAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC;IACjC,CAAC;IAED,yCAAyC;IACzC,eAAe;QACb,iEAAiE;QACjE,2CAA2C;QAC3C,IAAI,IAAI,CAAC,KAAK,CAAC,kBAAkB,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACpD,wCAAwC;YACxC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CACrB,CAAC,EACD,CAAC;YACD,wCAAwC;YACxC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,kBAAkB;YACjC,wCAAwC;YACxC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,mBAAmB,CACnC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACzB,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QAE3B,+CAA+C;QAC/C,oDAAoD;QACpD,2BAA2B;QAC3B,OAAO;QACP,0BAA0B;QAC1B,8CAA8C;QAC9C,0CAA0C;QAC1C,MAAM;QACN,mFAAmF;QACnF,IAAI;QAEJ,4BAA4B;QAC5B,4BAA4B;QAC5B,gDAAgD;QAChD,IAAI;QAEJ,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;IAC3B,CAAC;IAED,eAAe;QACb,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAEvB,4BAA4B;QAC5B,oEAAoE;QACpE,8BAA8B;QAC9B,IAAI;IACN,CAAC;IAED,iBAAiB;IAEjB,mBAAmB;QACjB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACxE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,YAAY,CAAC,KAAY;QACvB,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;YAChC,IAAI,CAAC,kBAAkB,EAAE,CAAC,cAAc,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,aAAa,CAAC,KAAY;QACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC,cAAc,GAAG,IAAI,CAAC;IAClD,CAAC"}
@@ -1,13 +1,12 @@
1
- import { Device } from '@luma.gl/core';
1
+ import { CanvasContext, Device } from '@luma.gl/core';
2
2
  import { Timeline } from "../animation/timeline.js";
3
3
  import type { AnimationLoop } from "./animation-loop.js";
4
4
  /** Properties passed to every render frame */
5
5
  export type AnimationProps = {
6
- device: Device;
7
6
  animationLoop: AnimationLoop;
8
- /** @todo Should be canvasContext */
7
+ device: Device;
8
+ canvasContext: CanvasContext;
9
9
  canvas: HTMLCanvasElement | OffscreenCanvas;
10
- useDevicePixels: number | boolean;
11
10
  width: number;
12
11
  height: number;
13
12
  aspect: number;
@@ -1 +1 @@
1
- {"version":3,"file":"animation-props.d.ts","sourceRoot":"","sources":["../../src/animation-loop/animation-props.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,QAAQ,EAAC,iCAA8B;AAC/C,OAAO,KAAK,EAAC,aAAa,EAAC,4BAAyB;AAEpD,+CAA+C;AAC/C,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,aAAa,CAAC;IAE7B,oCAAoC;IACpC,MAAM,EAAE,iBAAiB,GAAG,eAAe,CAAC;IAC5C,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IAGf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IAGb,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAE7B,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAG1B,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CAC1C,CAAC"}
1
+ {"version":3,"file":"animation-props.d.ts","sourceRoot":"","sources":["../../src/animation-loop/animation-props.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,aAAa,EAAE,MAAM,EAAC,MAAM,eAAe,CAAC;AACpD,OAAO,EAAC,QAAQ,EAAC,iCAA8B;AAC/C,OAAO,KAAK,EAAC,aAAa,EAAC,4BAAyB;AAEpD,+CAA+C;AAC/C,MAAM,MAAM,cAAc,GAAG;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,aAAa,CAAC;IAC7B,MAAM,EAAE,iBAAiB,GAAG,eAAe,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IAGf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IAGb,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAE7B,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAG1B,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CAC1C,CAAC"}
@@ -5,6 +5,9 @@ export type MakeAnimationLoopProps = Omit<AnimationLoopProps, 'onCreateDevice' |
5
5
  /** List of adapters to use when creating the device */
6
6
  adapters?: Adapter[];
7
7
  };
8
- /** Instantiates and runs the render loop */
8
+ /**
9
+ * Instantiates an animation loop and initializes it with the template.
10
+ * @note The application needs to call `start()` on the returned animation loop to start the rendering loop.
11
+ */
9
12
  export declare function makeAnimationLoop(AnimationLoopTemplateCtor: typeof AnimationLoopTemplate, props?: MakeAnimationLoopProps): AnimationLoop;
10
13
  //# sourceMappingURL=make-animation-loop.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"make-animation-loop.d.ts","sourceRoot":"","sources":["../../src/animation-loop/make-animation-loop.ts"],"names":[],"mappings":"AAIA,OAAO,EAAO,OAAO,EAAC,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAC,qBAAqB,EAAC,qCAAkC;AAChE,OAAO,EAAC,aAAa,EAAE,kBAAkB,EAAC,4BAAyB;AAGnE,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,kBAAkB,EAClB,gBAAgB,GAAG,cAAc,GAAG,UAAU,GAAG,YAAY,CAC9D,GAAG;IACF,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB,CAAC;AAEF,4CAA4C;AAC5C,wBAAgB,iBAAiB,CAC/B,yBAAyB,EAAE,OAAO,qBAAqB,EACvD,KAAK,CAAC,EAAE,sBAAsB,GAC7B,aAAa,CAoCf"}
1
+ {"version":3,"file":"make-animation-loop.d.ts","sourceRoot":"","sources":["../../src/animation-loop/make-animation-loop.ts"],"names":[],"mappings":"AAIA,OAAO,EAAO,OAAO,EAAS,MAAM,eAAe,CAAC;AACpD,OAAO,EAAC,qBAAqB,EAAC,qCAAkC;AAChE,OAAO,EAAC,aAAa,EAAE,kBAAkB,EAAC,4BAAyB;AAGnE,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,kBAAkB,EAClB,gBAAgB,GAAG,cAAc,GAAG,UAAU,GAAG,YAAY,CAC9D,GAAG;IACF,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,yBAAyB,EAAE,OAAO,qBAAqB,EACvD,KAAK,CAAC,EAAE,sBAAsB,GAC7B,aAAa,CAuCf"}
@@ -3,7 +3,10 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
  import { luma } from '@luma.gl/core';
5
5
  import { AnimationLoop } from "./animation-loop.js";
6
- /** Instantiates and runs the render loop */
6
+ /**
7
+ * Instantiates an animation loop and initializes it with the template.
8
+ * @note The application needs to call `start()` on the returned animation loop to start the rendering loop.
9
+ */
7
10
  export function makeAnimationLoop(AnimationLoopTemplateCtor, props) {
8
11
  let renderLoop = null;
9
12
  const device = props?.device ||
@@ -13,10 +16,17 @@ export function makeAnimationLoop(AnimationLoopTemplateCtor, props) {
13
16
  ...props,
14
17
  device,
15
18
  async onInitialize(animationProps) {
16
- // @ts-expect-error abstract to prevent instantiation
17
- renderLoop = new AnimationLoopTemplateCtor(animationProps);
18
- // Any async loading can be handled here
19
- return await renderLoop?.onInitialize(animationProps);
19
+ clearError(animationProps.animationLoop.device);
20
+ try {
21
+ // @ts-expect-error abstract to prevent instantiation
22
+ renderLoop = new AnimationLoopTemplateCtor(animationProps);
23
+ // Any async loading can be handled here
24
+ return await renderLoop?.onInitialize(animationProps);
25
+ }
26
+ catch (error) {
27
+ setError(animationProps.animationLoop.device, error);
28
+ return null;
29
+ }
20
30
  },
21
31
  onRender: (animationProps) => renderLoop?.onRender(animationProps),
22
32
  onFinalize: (animationProps) => renderLoop?.onFinalize(animationProps)
@@ -27,8 +37,30 @@ export function makeAnimationLoop(AnimationLoopTemplateCtor, props) {
27
37
  // eslint-disable-next-line no-invalid-this
28
38
  return this.AnimationLoopTemplateCtor.info;
29
39
  };
30
- // Start the loop automatically
31
- // animationLoop.start();
32
40
  return animationLoop;
33
41
  }
42
+ function setError(device, error) {
43
+ const canvas = device?.getDefaultCanvasContext().canvas;
44
+ if (canvas instanceof HTMLCanvasElement) {
45
+ canvas.style.overflow = 'visible';
46
+ let errorDiv = document.getElementById('animation-loop-error');
47
+ errorDiv?.remove();
48
+ errorDiv = document.createElement('h1');
49
+ errorDiv.id = 'animation-loop-error';
50
+ errorDiv.innerHTML = error.message;
51
+ errorDiv.style.position = 'absolute';
52
+ errorDiv.style.top = '10px'; // left: 50%; transform: translate(-50%, -50%);';
53
+ errorDiv.style.left = '10px';
54
+ errorDiv.style.color = 'black';
55
+ errorDiv.style.backgroundColor = 'red';
56
+ canvas.parentElement?.appendChild(errorDiv);
57
+ // canvas.style.position = 'absolute';
58
+ }
59
+ }
60
+ function clearError(device) {
61
+ const errorDiv = document.getElementById('animation-loop-error');
62
+ if (errorDiv) {
63
+ errorDiv.remove();
64
+ }
65
+ }
34
66
  //# sourceMappingURL=make-animation-loop.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"make-animation-loop.js","sourceRoot":"","sources":["../../src/animation-loop/make-animation-loop.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,IAAI,EAAU,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAC,aAAa,EAAqB,4BAAyB;AAWnE,4CAA4C;AAC5C,MAAM,UAAU,iBAAiB,CAC/B,yBAAuD,EACvD,KAA8B;IAE9B,IAAI,UAAU,GAAiC,IAAI,CAAC;IAEpD,MAAM,MAAM,GACV,KAAK,EAAE,MAAM;QACb,IAAI,CAAC,YAAY,CAAC,EAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAC,CAAC,CAAC;IAElG,4BAA4B;IAC5B,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC;QACtC,GAAG,KAAK;QAER,MAAM;QAEN,KAAK,CAAC,YAAY,CAAC,cAA8B;YAC/C,qDAAqD;YACrD,UAAU,GAAG,IAAI,yBAAyB,CAAC,cAAc,CAAC,CAAC;YAC3D,wCAAwC;YACxC,OAAO,MAAM,UAAU,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;QACxD,CAAC;QAED,QAAQ,EAAE,CAAC,cAA8B,EAAE,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC;QAElF,UAAU,EAAE,CAAC,cAA8B,EAAE,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,cAAc,CAAC;KACvF,CAAC,CAAC;IAEH,2DAA2D;IAC3D,aAAa,CAAC,OAAO,GAAG,GAAG,EAAE;QAC3B,aAAa;QACb,2CAA2C;QAC3C,OAAO,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC;IAC7C,CAAC,CAAC;IAEF,+BAA+B;IAC/B,yBAAyB;IAEzB,OAAO,aAAa,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"make-animation-loop.js","sourceRoot":"","sources":["../../src/animation-loop/make-animation-loop.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { Texture, TextureProps, Sampler, TextureView, Device, Texture1DData, Texture2DData, Texture3DData, TextureArrayData, TextureCubeData, TextureCubeArrayData } from '@luma.gl/core';
2
- export type AsyncTextureProps = Omit<TextureProps, 'data'> & AsyncTextureDataProps;
1
+ import type { TextureProps, SamplerProps, TextureView, Device, TypedArray, TextureFormat, ExternalImage } from '@luma.gl/core';
2
+ import { Texture, Sampler } from '@luma.gl/core';
3
3
  type AsyncTextureDataProps = AsyncTexture1DProps | AsyncTexture2DProps | AsyncTexture3DProps | AsyncTextureArrayProps | AsyncTextureCubeProps | AsyncTextureCubeArrayProps;
4
4
  type AsyncTexture1DProps = {
5
5
  dimension: '1d';
@@ -25,6 +25,59 @@ type AsyncTextureCubeArrayProps = {
25
25
  dimension: 'cube-array';
26
26
  data: Promise<TextureCubeArrayData> | TextureCubeArrayData | null;
27
27
  };
28
+ /** Names of cube texture faces */
29
+ export type TextureCubeFace = '+X' | '-X' | '+Y' | '-Y' | '+Z' | '-Z';
30
+ export declare const TextureCubeFaces: TextureCubeFace[];
31
+ export declare const TextureCubeFaceMap: {
32
+ '+X': number;
33
+ '-X': number;
34
+ '+Y': number;
35
+ '-Y': number;
36
+ '+Z': number;
37
+ '-Z': number;
38
+ };
39
+ /**
40
+ * One mip level
41
+ * Basic data structure is similar to `ImageData`
42
+ * additional optional fields can describe compressed texture data.
43
+ */
44
+ export type TextureImageData = {
45
+ /** WebGPU style format string. Defaults to 'rgba8unorm' */
46
+ format?: TextureFormat;
47
+ data: TypedArray;
48
+ width: number;
49
+ height: number;
50
+ compressed?: boolean;
51
+ byteLength?: number;
52
+ hasAlpha?: boolean;
53
+ };
54
+ export type TextureLevelSource = TextureImageData | ExternalImage;
55
+ /** Texture data can be one or more mip levels */
56
+ export type TextureData = TextureImageData | ExternalImage | (TextureImageData | ExternalImage)[];
57
+ /** @todo - define what data type is supported for 1D textures */
58
+ export type Texture1DData = TypedArray | TextureImageData;
59
+ /** Texture data can be one or more mip levels */
60
+ export type Texture2DData = TypedArray | TextureImageData | ExternalImage | (TextureImageData | ExternalImage)[];
61
+ /** 6 face textures */
62
+ export type TextureCubeData = Record<TextureCubeFace, TextureData>;
63
+ /** Array of textures */
64
+ export type Texture3DData = TextureData[];
65
+ /** Array of textures */
66
+ export type TextureArrayData = TextureData[];
67
+ /** Array of 6 face textures */
68
+ export type TextureCubeArrayData = Record<TextureCubeFace, TextureData>[];
69
+ export declare const CubeFaces: TextureCubeFace[];
70
+ /** Properties for an async texture */
71
+ export type AsyncTextureProps = Omit<TextureProps, 'data' | 'mipLevels' | 'width' | 'height'> & AsyncTextureDataProps & {
72
+ /** Generate mipmaps after creating textures and setting data */
73
+ mipmaps?: boolean;
74
+ /** nipLevels can be set to 'auto' to generate max number of mipLevels */
75
+ mipLevels?: number | 'auto';
76
+ /** Width - can be auto-calculated when initializing from ExternalImage */
77
+ width?: number;
78
+ /** Height - can be auto-calculated when initializing from ExternalImage */
79
+ height?: number;
80
+ };
28
81
  /**
29
82
  * It is very convenient to be able to initialize textures with promises
30
83
  * This can add considerable complexity to the Texture class, and doesn't
@@ -34,6 +87,7 @@ type AsyncTextureCubeArrayProps = {
34
87
  export declare class AsyncTexture {
35
88
  readonly device: Device;
36
89
  readonly id: string;
90
+ props: Required<Omit<AsyncTextureProps, 'data'>>;
37
91
  texture: Texture;
38
92
  sampler: Sampler;
39
93
  view: TextureView;
@@ -47,16 +101,66 @@ export declare class AsyncTexture {
47
101
  constructor(device: Device, props: AsyncTextureProps);
48
102
  initAsync(props: AsyncTextureProps): Promise<void>;
49
103
  destroy(): void;
104
+ generateMipmaps(): void;
105
+ /** Set sampler or create and set new Sampler from SamplerProps */
106
+ setSampler(sampler?: Sampler | SamplerProps): void;
50
107
  /**
51
108
  * Textures are immutable and cannot be resized after creation,
52
109
  * but we can create a similar texture with the same parameters but a new size.
53
110
  * @note Does not copy contents of the texture
111
+ * @note Mipmaps may need to be regenerated after resizing / setting new data
54
112
  * @todo Abort pending promise and create a texture with the new size?
55
113
  */
56
114
  resize(size: {
57
115
  width: number;
58
116
  height: number;
59
117
  }): boolean;
118
+ /** Check if texture data is a typed array */
119
+ isTextureLevelData(data: TextureData): data is TextureImageData;
120
+ /** Get the size of the texture described by the provided TextureData */
121
+ getTextureDataSize(data: TextureData | TextureCubeData | TextureArrayData | TextureCubeArrayData | TypedArray): {
122
+ width: number;
123
+ height: number;
124
+ } | null;
125
+ /** Convert luma.gl cubemap face constants to depth index */
126
+ getCubeFaceDepth(face: TextureCubeFace): number;
127
+ setTextureData(data: TextureData): void;
128
+ /** Experimental: Set multiple mip levels */
129
+ _setTexture1DData(texture: Texture, data: Texture1DData): void;
130
+ /** Experimental: Set multiple mip levels */
131
+ _setTexture2DData(lodData: Texture2DData, depth?: number): void;
132
+ /**
133
+ * Experimental: Sets 3D texture data: multiple depth slices, multiple mip levels
134
+ * @param data
135
+ */
136
+ _setTexture3DData(texture: Texture, data: Texture3DData): void;
137
+ /**
138
+ * Experimental: Set Cube texture data, multiple faces, multiple mip levels
139
+ * @todo - could support TextureCubeArray with depth
140
+ * @param data
141
+ * @param index
142
+ */
143
+ _setTextureCubeData(texture: Texture, data: TextureCubeData): void;
144
+ /**
145
+ * Experimental: Sets texture array data, multiple levels, multiple depth slices
146
+ * @param data
147
+ */
148
+ _setTextureArrayData(texture: Texture, data: TextureArrayData): void;
149
+ /**
150
+ * Experimental: Sets texture cube array, multiple faces, multiple levels, multiple mip levels
151
+ * @param data
152
+ */
153
+ _setTextureCubeArrayData(texture: Texture, data: TextureCubeArrayData): void;
154
+ /** Experimental */
155
+ _setTextureCubeFaceData(texture: Texture, lodData: Texture2DData, face: TextureCubeFace, depth?: number): void;
156
+ /**
157
+ * Normalize TextureData to an array of TextureImageData / ExternalImages
158
+ * @param data
159
+ * @param options
160
+ * @returns array of TextureImageData / ExternalImages
161
+ */
162
+ _normalizeTextureData(data: Texture2DData): (TextureImageData | ExternalImage)[];
163
+ static defaultProps: Required<AsyncTextureProps>;
60
164
  }
61
165
  export {};
62
166
  //# sourceMappingURL=async-texture.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"async-texture.d.ts","sourceRoot":"","sources":["../../src/async-texture/async-texture.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,OAAO,EACP,YAAY,EACZ,OAAO,EACP,WAAW,EACX,MAAM,EACN,aAAa,EACb,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACrB,MAAM,eAAe,CAAC;AAKvB,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,qBAAqB,CAAC;AAEnF,KAAK,qBAAqB,GACtB,mBAAmB,GACnB,mBAAmB,GACnB,mBAAmB,GACnB,sBAAsB,GACtB,qBAAqB,GACrB,0BAA0B,CAAC;AAE/B,KAAK,mBAAmB,GAAG;IAAC,SAAS,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,GAAG,IAAI,CAAA;CAAC,CAAC;AAClG,KAAK,mBAAmB,GAAG;IAAC,SAAS,CAAC,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,GAAG,IAAI,CAAA;CAAC,CAAC;AACnG,KAAK,mBAAmB,GAAG;IAAC,SAAS,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,GAAG,IAAI,CAAA;CAAC,CAAC;AAClG,KAAK,sBAAsB,GAAG;IAC5B,SAAS,EAAE,UAAU,CAAC;IACtB,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,GAAG,IAAI,CAAC;CAC3D,CAAC;AACF,KAAK,qBAAqB,GAAG;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,GAAG,IAAI,CAAC;CACzD,CAAC;AACF,KAAK,0BAA0B,GAAG;IAChC,SAAS,EAAE,YAAY,CAAC;IACxB,IAAI,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,oBAAoB,GAAG,IAAI,CAAC;CACnE,CAAC;AAKF;;;;;GAKG;AACH,qBAAa,YAAY;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAIpB,OAAO,EAAE,OAAO,CAAC;IAEjB,OAAO,EAAE,OAAO,CAAC;IAEjB,IAAI,EAAE,WAAW,CAAC;IAElB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAS;IACzB,SAAS,EAAE,OAAO,CAAS;IAE3B,SAAS,CAAC,YAAY,EAAE,MAAM,IAAI,CAAY;IAC9C,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAY;IAEzD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAEvB;IAED,QAAQ,IAAI,MAAM;gBAIN,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB;IAqB9C,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBxD,OAAO,IAAI,IAAI;IASf;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO;CAgBvD"}
1
+ {"version":3,"file":"async-texture.d.ts","sourceRoot":"","sources":["../../src/async-texture/async-texture.ts"],"names":[],"mappings":"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"}