@lightningjs/renderer 3.0.0 → 3.0.1

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 (75) hide show
  1. package/dist/src/core/CoreNode.d.ts +1 -1
  2. package/dist/src/core/CoreTextNode.js +8 -0
  3. package/dist/src/core/CoreTextNode.js.map +1 -1
  4. package/dist/src/core/lib/ImageWorker.d.ts +2 -2
  5. package/dist/src/core/lib/ImageWorker.js +12 -31
  6. package/dist/src/core/lib/ImageWorker.js.map +1 -1
  7. package/dist/src/core/lib/WebGlContextWrapper.d.ts +60 -109
  8. package/dist/src/core/lib/WebGlContextWrapper.js +158 -164
  9. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
  10. package/dist/src/core/lib/textureCompression.js +10 -19
  11. package/dist/src/core/lib/textureCompression.js.map +1 -1
  12. package/dist/src/core/lib/validateImageBitmap.d.ts +1 -2
  13. package/dist/src/core/lib/validateImageBitmap.js +4 -4
  14. package/dist/src/core/lib/validateImageBitmap.js.map +1 -1
  15. package/dist/src/core/platform.js +5 -2
  16. package/dist/src/core/platform.js.map +1 -1
  17. package/dist/src/core/platforms/web/WebGlContextWrapper.d.ts +5 -5
  18. package/dist/src/core/renderers/webgl/WebGlCoreShader.destroy.d.ts +1 -0
  19. package/dist/src/core/renderers/webgl/WebGlCoreShader.destroy.js +2 -0
  20. package/dist/src/core/renderers/webgl/WebGlCoreShader.destroy.js.map +1 -0
  21. package/dist/src/core/renderers/webgl/WebGlRenderer.js +5 -3
  22. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
  23. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +4 -1
  24. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
  25. package/dist/src/core/renderers/webgl/internal/RendererUtils.js +1 -2
  26. package/dist/src/core/renderers/webgl/internal/RendererUtils.js.map +1 -1
  27. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.d.ts +0 -1
  28. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +14 -35
  29. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -1
  30. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +8 -25
  31. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +1 -1
  32. package/dist/src/core/text-rendering/SdfFontHandler.js +5 -7
  33. package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -1
  34. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  35. package/package.json +1 -1
  36. package/src/core/CoreTextNode.ts +9 -0
  37. package/src/core/renderers/webgl/WebGlCtxTexture.test.ts +113 -0
  38. package/src/core/renderers/webgl/WebGlRenderer.ts +4 -3
  39. package/src/core/renderers/webgl/WebGlShaderProgram.ts +3 -1
  40. package/src/core/renderers/webgl/internal/RendererUtils.ts +1 -2
  41. package/src/core/text-rendering/SdfFontHandler.ts +5 -8
  42. package/dist/src/core/AutosizeManager.d.ts +0 -29
  43. package/dist/src/core/AutosizeManager.js +0 -169
  44. package/dist/src/core/AutosizeManager.js.map +0 -1
  45. package/dist/src/core/animations/Animation.d.ts +0 -21
  46. package/dist/src/core/animations/Animation.js +0 -194
  47. package/dist/src/core/animations/Animation.js.map +0 -1
  48. package/dist/src/core/animations/Playback.d.ts +0 -64
  49. package/dist/src/core/animations/Playback.js +0 -169
  50. package/dist/src/core/animations/Playback.js.map +0 -1
  51. package/dist/src/core/animations/Transition.d.ts +0 -27
  52. package/dist/src/core/animations/Transition.js +0 -52
  53. package/dist/src/core/animations/Transition.js.map +0 -1
  54. package/dist/src/core/animations/utils.d.ts +0 -2
  55. package/dist/src/core/animations/utils.js +0 -136
  56. package/dist/src/core/animations/utils.js.map +0 -1
  57. package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +0 -45
  58. package/dist/src/core/renderers/webgl/WebGlRenderOp.js +0 -127
  59. package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +0 -1
  60. package/dist/src/core/shaders/webgl/SdfShadowShader.d.ts +0 -9
  61. package/dist/src/core/shaders/webgl/SdfShadowShader.js +0 -100
  62. package/dist/src/core/shaders/webgl/SdfShadowShader.js.map +0 -1
  63. package/dist/src/core/text-rendering/CanvasFont.d.ts +0 -14
  64. package/dist/src/core/text-rendering/CanvasFont.js +0 -111
  65. package/dist/src/core/text-rendering/CanvasFont.js.map +0 -1
  66. package/dist/src/core/text-rendering/CoreFont.d.ts +0 -33
  67. package/dist/src/core/text-rendering/CoreFont.js +0 -48
  68. package/dist/src/core/text-rendering/CoreFont.js.map +0 -1
  69. package/dist/src/core/text-rendering/FontManager.d.ts +0 -11
  70. package/dist/src/core/text-rendering/FontManager.js +0 -42
  71. package/dist/src/core/text-rendering/FontManager.js.map +0 -1
  72. package/dist/src/core/text-rendering/SdfFont.d.ts +0 -29
  73. package/dist/src/core/text-rendering/SdfFont.js +0 -142
  74. package/dist/src/core/text-rendering/SdfFont.js.map +0 -1
  75. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -264,12 +264,13 @@ export class WebGlRenderer extends CoreRenderer {
264
264
  tx = (tx as SubTexture).parentTexture;
265
265
  }
266
266
 
267
- const texture = tx.ctxTexture as WebGlCtxTexture;
268
- let tidx = this.curRenderOp!.addTexture(texture);
267
+ const ctx = tx.ctxTexture as WebGlCtxTexture | undefined;
268
+ if (ctx === undefined) return;
269
+ let tidx = this.curRenderOp!.addTexture(ctx);
269
270
 
270
271
  if (tidx === 0xffffffff) {
271
272
  this.newRenderOp(node, i);
272
- tidx = this.curRenderOp!.addTexture(texture);
273
+ tidx = this.curRenderOp!.addTexture(ctx);
273
274
  }
274
275
 
275
276
  const rc = node.renderCoords!;
@@ -323,8 +323,10 @@ export class WebGlShaderProgram implements CoreShaderProgram {
323
323
  }
324
324
 
325
325
  bindTextures(textures: WebGlCtxTexture[]) {
326
+ const t = textures[0];
327
+ if (t === undefined) return;
326
328
  this.glw.activeTexture(0);
327
- this.glw.bindTexture(textures[0]!.ctxTexture);
329
+ this.glw.bindTexture(t.ctxTexture);
328
330
  }
329
331
 
330
332
  attach(): void {
@@ -140,8 +140,7 @@ export function isHTMLImageElement(obj: unknown): obj is HTMLImageElement {
140
140
  ((typeof obj === 'object' &&
141
141
  obj.constructor &&
142
142
  obj.constructor.name === 'HTMLImageElement') ||
143
- (typeof HTMLImageElement !== 'undefined' &&
144
- obj instanceof HTMLImageElement))
143
+ (typeof Image !== 'undefined' && obj instanceof Image))
145
144
  );
146
145
  }
147
146
 
@@ -302,14 +302,11 @@ export const loadFont = async (
302
302
  const nwff: CoreTextNode[] = (nodesWaitingForFont[fontFamily] = []);
303
303
  // Create loading promise
304
304
  const loadPromise = (async (): Promise<void> => {
305
- // Load font JSON data
306
- const response = await fetch(atlasDataUrl);
307
- if (!response.ok) {
308
- throw new Error(`Failed to load font data: ${response.statusText}`);
309
- }
310
-
311
- const fontData = (await response.json()) as SdfFontData;
312
- if (!fontData || !fontData.chars) {
305
+ // Load font JSON data via the platform's fetch abstraction so behaviour
306
+ // can be overridden per platform (XHR, Fetch API, custom loaders, etc.).
307
+ const blob = (await stage.platform.fetch(atlasDataUrl)) as Blob;
308
+ const fontData = JSON.parse(await blob.text()) as SdfFontData;
309
+ if (fontData === null || fontData.chars === undefined) {
313
310
  throw new Error('Invalid SDF font data format');
314
311
  }
315
312
 
@@ -1,29 +0,0 @@
1
- import type { CoreNode } from './CoreNode.js';
2
- /**
3
- * Result of autosize calculation containing the new dimensions
4
- */
5
- interface AutosizeResult {
6
- width: number;
7
- height: number;
8
- hasChanged: boolean;
9
- }
10
- /**
11
- * Creates an autosize manager for efficient child bounds calculation
12
- *
13
- * @remarks
14
- * This function creates a closure-based manager that tracks child transform
15
- * changes and calculates parent dimensions based on children's bounding boxes.
16
- * It's optimized for performance with minimal allocations and fast lookups.
17
- *
18
- * @param parentNode - The autosize parent node
19
- * @returns Object with autosize management methods
20
- */
21
- export declare function createAutosizeManager(parentNode: CoreNode): {
22
- addOrUpdateChild: (child: CoreNode) => void;
23
- removeChild: (child: CoreNode) => void;
24
- calculateAutosize: () => AutosizeResult;
25
- deactivate: () => void;
26
- readonly active: boolean;
27
- readonly childCount: number;
28
- };
29
- export {};
@@ -1,169 +0,0 @@
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 { Matrix3d } from './lib/Matrix3d.js';
20
- /**
21
- * Creates an autosize manager for efficient child bounds calculation
22
- *
23
- * @remarks
24
- * This function creates a closure-based manager that tracks child transform
25
- * changes and calculates parent dimensions based on children's bounding boxes.
26
- * It's optimized for performance with minimal allocations and fast lookups.
27
- *
28
- * @param parentNode - The autosize parent node
29
- * @returns Object with autosize management methods
30
- */
31
- export function createAutosizeManager(parentNode) {
32
- const childDataMap = new Map();
33
- let isActive = true;
34
- let lastWidth = 0;
35
- let lastHeight = 0;
36
- let lastHasChanged = false;
37
- const corners = [
38
- { x: 0, y: 0 },
39
- { x: 0, y: 0 },
40
- { x: 0, y: 0 },
41
- { x: 0, y: 0 },
42
- ];
43
- /**
44
- * Add or update a child node in the autosize calculation chain
45
- * @param child - Child node to add or update
46
- */
47
- const addOrUpdateChild = (child) => {
48
- if (isActive === false)
49
- return;
50
- if (child === parentNode)
51
- return; // Avoid circular references
52
- const currentTransform = child.localTransform || Matrix3d.identity();
53
- const existingData = childDataMap.get(child);
54
- if (existingData !== undefined) {
55
- // Update existing child
56
- Matrix3d.copy(currentTransform, existingData.localTransform);
57
- existingData.width = child.w;
58
- existingData.height = child.h;
59
- existingData.hasChanged = true;
60
- }
61
- else {
62
- // Add new child
63
- childDataMap.set(child, {
64
- localTransform: Matrix3d.copy(currentTransform),
65
- hasChanged: true,
66
- width: child.w,
67
- height: child.h,
68
- });
69
- }
70
- // Mark parent for recalculation
71
- parentNode.autosizeNeedsUpdate = true;
72
- };
73
- /**
74
- * Remove a child node from the autosize calculation chain
75
- * @param child - Child node to remove
76
- */
77
- const removeChild = (child) => {
78
- if (childDataMap.delete(child) === true) {
79
- parentNode.autosizeNeedsUpdate = true;
80
- }
81
- };
82
- /**
83
- * Calculate the autosize dimensions based on all child bounds
84
- * @returns Autosize calculation result
85
- */
86
- const calculateAutosize = () => {
87
- if (isActive === false || childDataMap.size === 0) {
88
- return { width: 0, height: 0, hasChanged: false };
89
- }
90
- let hasAnyChildChanged = false;
91
- for (const childData of childDataMap.values()) {
92
- if (childData.hasChanged) {
93
- hasAnyChildChanged = true;
94
- break;
95
- }
96
- }
97
- if (hasAnyChildChanged === false) {
98
- return {
99
- width: lastWidth,
100
- height: lastHeight,
101
- hasChanged: lastHasChanged,
102
- };
103
- }
104
- let minX = Infinity;
105
- let minY = Infinity;
106
- let maxX = -Infinity;
107
- let maxY = -Infinity;
108
- for (const [child, childData] of childDataMap) {
109
- if (!child.isRenderable)
110
- continue;
111
- const transform = child.localTransform || Matrix3d.identity();
112
- const width = childData.width;
113
- const height = childData.height;
114
- corners[0].x = 0;
115
- corners[0].y = 0;
116
- corners[1].x = width;
117
- corners[1].y = 0;
118
- corners[2].x = width;
119
- corners[2].y = height;
120
- corners[3].x = 0;
121
- corners[3].y = height;
122
- for (let i = 0; i < 4; i++) {
123
- const corner = corners[i];
124
- const localX = transform.ta * corner.x + transform.tb * corner.y + transform.tx;
125
- const localY = transform.tc * corner.x + transform.td * corner.y + transform.ty;
126
- if (localX < minX)
127
- minX = localX;
128
- if (localY < minY)
129
- minY = localY;
130
- if (localX > maxX)
131
- maxX = localX;
132
- if (localY > maxY)
133
- maxY = localY;
134
- }
135
- childData.hasChanged = false;
136
- }
137
- const newWidth = maxX > minX ? maxX - minX : 0;
138
- const newHeight = maxY > minY ? maxY - minY : 0;
139
- const dimensionsChanged = lastWidth !== newWidth || lastHeight !== newHeight;
140
- lastWidth = newWidth;
141
- lastHeight = newHeight;
142
- lastHasChanged = dimensionsChanged;
143
- return {
144
- width: newWidth,
145
- height: newHeight,
146
- hasChanged: dimensionsChanged,
147
- };
148
- };
149
- /**
150
- * Deactivate this autosize manager and clean up resources
151
- */
152
- const deactivate = () => {
153
- isActive = false;
154
- childDataMap.clear();
155
- };
156
- return {
157
- addOrUpdateChild,
158
- removeChild,
159
- calculateAutosize,
160
- deactivate,
161
- get active() {
162
- return isActive;
163
- },
164
- get childCount() {
165
- return childDataMap.size;
166
- },
167
- };
168
- }
169
- //# sourceMappingURL=AutosizeManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AutosizeManager.js","sourceRoot":"","sources":["../../../src/core/AutosizeManager.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- import type { AnimationManager } from './AnimationManager.js';
2
- import type { PlaybackSettings, StopMethodOptions } from './Playback.js';
3
- import { type Transition, type TransitionTypes } from './Transition.js';
4
- import { type TimingFunction } from './utils.js';
5
- import Playback from './Playback.js';
6
- export type AnimatableValues = number | number[];
7
- export type AnimationParams<T> = Partial<PlaybackSettings> & {
8
- [K in keyof T]?: TransitionTypes;
9
- };
10
- export type AnimatableTarget = Record<string, AnimatableValues>;
11
- export type AnimationSettings = {
12
- [key: string]: TransitionTypes | boolean | number | string | TimingFunction | StopMethodOptions | undefined;
13
- } & Partial<PlaybackSettings>;
14
- export default class Animation extends Playback {
15
- target: AnimatableTarget;
16
- transitions: Record<string, Transition[]>;
17
- transitionKeys: string[];
18
- constructor(animationManager: AnimationManager, target: AnimatableTarget, animationParams: AnimationSettings);
19
- updateValues(currentTime: number): void;
20
- applyStartValues(): void;
21
- }
@@ -1,194 +0,0 @@
1
- import { createTransition, } from './Transition.js';
2
- import { normalizeTimingFunction } from './utils.js';
3
- import Playback, { PlaybackSettingsKeys } from './Playback.js';
4
- const mapTransitions = (target, animationParams, aDuration, aEasing) => {
5
- const transitionsByKey = {};
6
- const keys = Object.keys(animationParams);
7
- const filteredKeys = [];
8
- for (let i = 0; i < keys.length; i++) {
9
- const key = keys[i];
10
- //skip playback settings
11
- if (PlaybackSettingsKeys[key] === true) {
12
- continue;
13
- }
14
- transitionsByKey[key] = [];
15
- filteredKeys.push(key);
16
- }
17
- aEasing = aEasing ?? undefined;
18
- //only initialize these values when needed to avoid unnecessary workload
19
- let easing;
20
- let delay;
21
- let duration;
22
- let to;
23
- let from;
24
- let start;
25
- let end;
26
- for (let i = 0; i < filteredKeys.length; i++) {
27
- const key = filteredKeys[i];
28
- const prop = target[key];
29
- if (prop === undefined) {
30
- console.warn(`CoreAnimation: property "${key}" does not exist on target.`);
31
- continue;
32
- }
33
- const aProp = animationParams[key];
34
- if (typeof aProp === 'number') {
35
- transitionsByKey[key].push(createTransition({
36
- to: aProp,
37
- from: undefined,
38
- start: 0,
39
- end: aDuration,
40
- delay: 0,
41
- duration: aDuration,
42
- easing: aEasing,
43
- }));
44
- continue;
45
- }
46
- easing = aEasing;
47
- if (typeof aProp === 'object' && Array.isArray(aProp) === false) {
48
- delay = aProp.delay ?? 0;
49
- duration = aProp.duration ?? aDuration;
50
- from = aProp.from;
51
- start = delay;
52
- end = start + duration;
53
- easing =
54
- aProp.easing !== undefined
55
- ? normalizeTimingFunction(aProp.easing) ?? easing
56
- : easing;
57
- transitionsByKey[key].push(createTransition({
58
- to: aProp.to,
59
- from: from,
60
- start,
61
- end,
62
- delay,
63
- duration,
64
- easing,
65
- }));
66
- continue;
67
- }
68
- //keyframed animation
69
- let frame;
70
- const isUsableArray = Array.isArray(aProp) && aProp.length > 0;
71
- //keyframed animation for number arrays
72
- if (isUsableArray === true) {
73
- const spreadDuration = aDuration / Math.max(aProp.length - 1, 1);
74
- start = 0;
75
- let startValue = aProp[0];
76
- if (typeof startValue === 'object') {
77
- frame = aProp[0];
78
- startValue = frame.to;
79
- to = startValue;
80
- from = frame.from;
81
- duration = frame.duration ?? aDuration;
82
- delay = frame.delay ?? 0;
83
- easing =
84
- frame.easing !== undefined
85
- ? normalizeTimingFunction(frame.easing) ?? easing
86
- : easing;
87
- }
88
- else {
89
- to = startValue;
90
- from = startValue;
91
- duration = aDuration;
92
- delay = 0;
93
- }
94
- start = delay;
95
- end = start + duration;
96
- const len = aProp.length;
97
- if (len > 1) {
98
- for (let j = 1; j < len; j++) {
99
- const value = aProp[j];
100
- if (typeof value === 'object') {
101
- frame = value;
102
- to = frame.to;
103
- from = startValue;
104
- duration = frame.duration ?? spreadDuration;
105
- delay = frame.delay ?? 0;
106
- easing =
107
- frame.easing !== undefined
108
- ? normalizeTimingFunction(frame.easing) ?? easing
109
- : easing;
110
- }
111
- else {
112
- to = value;
113
- from = startValue;
114
- duration = spreadDuration;
115
- delay = 0;
116
- }
117
- start = start + delay;
118
- end = start + duration;
119
- transitionsByKey[key].push(createTransition({
120
- to,
121
- from,
122
- start,
123
- end,
124
- delay,
125
- duration,
126
- easing,
127
- }));
128
- //carry over to next transition
129
- start = end;
130
- startValue = to;
131
- }
132
- }
133
- else {
134
- transitionsByKey[key].push(createTransition({
135
- to,
136
- from,
137
- start,
138
- end,
139
- delay,
140
- duration,
141
- easing,
142
- }));
143
- }
144
- continue;
145
- }
146
- }
147
- return transitionsByKey;
148
- };
149
- export default class Animation extends Playback {
150
- target;
151
- transitions;
152
- transitionKeys;
153
- constructor(animationManager, target, animationParams) {
154
- super(animationManager, animationParams);
155
- this.target = target;
156
- this.transitions = mapTransitions(target, animationParams, this.duration, this.easing);
157
- this.transitionKeys = Object.keys(this.transitions);
158
- }
159
- updateValues(currentTime) {
160
- for (let i = 0; i < this.transitionKeys.length; i++) {
161
- const key = this.transitionKeys[i];
162
- const transitions = this.transitions[key];
163
- for (let j = 0; j < transitions.length; j++) {
164
- const transition = transitions[j];
165
- if (currentTime >= transition.start && currentTime <= transition.end) {
166
- //apply value to target
167
- this.target[key] =
168
- transition.update(currentTime - transition.start);
169
- continue;
170
- }
171
- }
172
- }
173
- }
174
- applyStartValues() {
175
- //set start values for transitions
176
- for (let i = 0; i < this.transitionKeys.length; i++) {
177
- const key = this.transitionKeys[i];
178
- const transitionsByKey = this.transitions[key];
179
- //only need to set the first transition's from value
180
- const firstTransition = transitionsByKey[0];
181
- const from = firstTransition.from;
182
- if (from !== undefined) {
183
- this.target[key] = from;
184
- firstTransition.current = from;
185
- firstTransition.from = from;
186
- continue;
187
- }
188
- const currentValue = this.target[key];
189
- firstTransition.from = currentValue;
190
- firstTransition.current = currentValue;
191
- }
192
- }
193
- }
194
- //# sourceMappingURL=Animation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Animation.js","sourceRoot":"","sources":["../../../../src/core/animations/Animation.ts"],"names":[],"mappings":"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"}
@@ -1,64 +0,0 @@
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
- }