@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.
- package/dist/src/core/CoreNode.d.ts +1 -1
- package/dist/src/core/CoreTextNode.js +8 -0
- package/dist/src/core/CoreTextNode.js.map +1 -1
- package/dist/src/core/lib/ImageWorker.d.ts +2 -2
- package/dist/src/core/lib/ImageWorker.js +12 -31
- package/dist/src/core/lib/ImageWorker.js.map +1 -1
- package/dist/src/core/lib/WebGlContextWrapper.d.ts +60 -109
- package/dist/src/core/lib/WebGlContextWrapper.js +158 -164
- package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
- package/dist/src/core/lib/textureCompression.js +10 -19
- package/dist/src/core/lib/textureCompression.js.map +1 -1
- package/dist/src/core/lib/validateImageBitmap.d.ts +1 -2
- package/dist/src/core/lib/validateImageBitmap.js +4 -4
- package/dist/src/core/lib/validateImageBitmap.js.map +1 -1
- package/dist/src/core/platform.js +5 -2
- package/dist/src/core/platform.js.map +1 -1
- package/dist/src/core/platforms/web/WebGlContextWrapper.d.ts +5 -5
- package/dist/src/core/renderers/webgl/WebGlCoreShader.destroy.d.ts +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreShader.destroy.js +2 -0
- package/dist/src/core/renderers/webgl/WebGlCoreShader.destroy.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlRenderer.js +5 -3
- package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +4 -1
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
- package/dist/src/core/renderers/webgl/internal/RendererUtils.js +1 -2
- package/dist/src/core/renderers/webgl/internal/RendererUtils.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.d.ts +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +14 -35
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +8 -25
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +1 -1
- package/dist/src/core/text-rendering/SdfFontHandler.js +5 -7
- package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -1
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/core/CoreTextNode.ts +9 -0
- package/src/core/renderers/webgl/WebGlCtxTexture.test.ts +113 -0
- package/src/core/renderers/webgl/WebGlRenderer.ts +4 -3
- package/src/core/renderers/webgl/WebGlShaderProgram.ts +3 -1
- package/src/core/renderers/webgl/internal/RendererUtils.ts +1 -2
- package/src/core/text-rendering/SdfFontHandler.ts +5 -8
- package/dist/src/core/AutosizeManager.d.ts +0 -29
- package/dist/src/core/AutosizeManager.js +0 -169
- package/dist/src/core/AutosizeManager.js.map +0 -1
- package/dist/src/core/animations/Animation.d.ts +0 -21
- package/dist/src/core/animations/Animation.js +0 -194
- package/dist/src/core/animations/Animation.js.map +0 -1
- package/dist/src/core/animations/Playback.d.ts +0 -64
- package/dist/src/core/animations/Playback.js +0 -169
- package/dist/src/core/animations/Playback.js.map +0 -1
- package/dist/src/core/animations/Transition.d.ts +0 -27
- package/dist/src/core/animations/Transition.js +0 -52
- package/dist/src/core/animations/Transition.js.map +0 -1
- package/dist/src/core/animations/utils.d.ts +0 -2
- package/dist/src/core/animations/utils.js +0 -136
- package/dist/src/core/animations/utils.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +0 -45
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js +0 -127
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +0 -1
- package/dist/src/core/shaders/webgl/SdfShadowShader.d.ts +0 -9
- package/dist/src/core/shaders/webgl/SdfShadowShader.js +0 -100
- package/dist/src/core/shaders/webgl/SdfShadowShader.js.map +0 -1
- package/dist/src/core/text-rendering/CanvasFont.d.ts +0 -14
- package/dist/src/core/text-rendering/CanvasFont.js +0 -111
- package/dist/src/core/text-rendering/CanvasFont.js.map +0 -1
- package/dist/src/core/text-rendering/CoreFont.d.ts +0 -33
- package/dist/src/core/text-rendering/CoreFont.js +0 -48
- package/dist/src/core/text-rendering/CoreFont.js.map +0 -1
- package/dist/src/core/text-rendering/FontManager.d.ts +0 -11
- package/dist/src/core/text-rendering/FontManager.js +0 -42
- package/dist/src/core/text-rendering/FontManager.js.map +0 -1
- package/dist/src/core/text-rendering/SdfFont.d.ts +0 -29
- package/dist/src/core/text-rendering/SdfFont.js +0 -142
- package/dist/src/core/text-rendering/SdfFont.js.map +0 -1
- 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
|
|
268
|
-
|
|
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(
|
|
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(
|
|
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
|
|
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
|
-
|
|
307
|
-
|
|
308
|
-
|
|
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
|
-
}
|