@twick/core 0.14.21 → 0.15.0
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/index.cjs +6465 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +3919 -0
- package/dist/index.d.ts +3919 -0
- package/dist/index.js +6225 -0
- package/dist/index.js.map +1 -0
- package/package.json +28 -18
- package/tsconfig.project.json +1 -0
- package/lib/app/Logger.d.ts +0 -105
- package/lib/app/Logger.d.ts.map +0 -1
- package/lib/app/Logger.js +0 -77
- package/lib/app/PlaybackManager.d.ts +0 -55
- package/lib/app/PlaybackManager.d.ts.map +0 -1
- package/lib/app/PlaybackManager.js +0 -179
- package/lib/app/PlaybackStatus.d.ts +0 -30
- package/lib/app/PlaybackStatus.d.ts.map +0 -1
- package/lib/app/PlaybackStatus.js +0 -46
- package/lib/app/Player.d.ts +0 -130
- package/lib/app/Player.d.ts.map +0 -1
- package/lib/app/Player.js +0 -375
- package/lib/app/Project.d.ts +0 -145
- package/lib/app/Project.d.ts.map +0 -1
- package/lib/app/Project.js +0 -10
- package/lib/app/Renderer.d.ts +0 -90
- package/lib/app/Renderer.d.ts.map +0 -1
- package/lib/app/Renderer.js +0 -318
- package/lib/app/SharedWebGLContext.d.ts +0 -24
- package/lib/app/SharedWebGLContext.d.ts.map +0 -1
- package/lib/app/SharedWebGLContext.js +0 -200
- package/lib/app/Stage.d.ts +0 -30
- package/lib/app/Stage.d.ts.map +0 -1
- package/lib/app/Stage.js +0 -75
- package/lib/app/TimeEstimator.d.ts +0 -53
- package/lib/app/TimeEstimator.d.ts.map +0 -1
- package/lib/app/TimeEstimator.js +0 -70
- package/lib/app/index.d.ts +0 -16
- package/lib/app/index.d.ts.map +0 -1
- package/lib/app/index.js +0 -16
- package/lib/app/makeProject.d.ts +0 -15
- package/lib/app/makeProject.d.ts.map +0 -1
- package/lib/app/makeProject.js +0 -72
- package/lib/app/project-settings.d.ts +0 -8
- package/lib/app/project-settings.d.ts.map +0 -1
- package/lib/app/project-settings.js +0 -13
- package/lib/decorators/decorate.d.ts +0 -2
- package/lib/decorators/decorate.d.ts.map +0 -1
- package/lib/decorators/decorate.js +0 -10
- package/lib/decorators/deprecated.d.ts +0 -5
- package/lib/decorators/deprecated.d.ts.map +0 -1
- package/lib/decorators/deprecated.js +0 -23
- package/lib/decorators/index.d.ts +0 -9
- package/lib/decorators/index.d.ts.map +0 -1
- package/lib/decorators/index.js +0 -9
- package/lib/decorators/lazy.d.ts +0 -14
- package/lib/decorators/lazy.d.ts.map +0 -1
- package/lib/decorators/lazy.js +0 -27
- package/lib/decorators/threadable.d.ts +0 -2
- package/lib/decorators/threadable.d.ts.map +0 -1
- package/lib/decorators/threadable.js +0 -9
- package/lib/events/AsyncEventDispatcher.d.ts +0 -45
- package/lib/events/AsyncEventDispatcher.d.ts.map +0 -1
- package/lib/events/AsyncEventDispatcher.js +0 -33
- package/lib/events/EventDispatcher.d.ts +0 -38
- package/lib/events/EventDispatcher.d.ts.map +0 -1
- package/lib/events/EventDispatcher.js +0 -29
- package/lib/events/EventDispatcherBase.d.ts +0 -55
- package/lib/events/EventDispatcherBase.d.ts.map +0 -1
- package/lib/events/EventDispatcherBase.js +0 -68
- package/lib/events/FlagDispatcher.d.ts +0 -54
- package/lib/events/FlagDispatcher.d.ts.map +0 -1
- package/lib/events/FlagDispatcher.js +0 -63
- package/lib/events/ValueDispatcher.d.ts +0 -81
- package/lib/events/ValueDispatcher.d.ts.map +0 -1
- package/lib/events/ValueDispatcher.js +0 -97
- package/lib/events/index.d.ts +0 -11
- package/lib/events/index.d.ts.map +0 -1
- package/lib/events/index.js +0 -11
- package/lib/exporter/Exporter.d.ts +0 -101
- package/lib/exporter/Exporter.d.ts.map +0 -1
- package/lib/exporter/Exporter.js +0 -2
- package/lib/exporter/FFmpegExporter.d.ts +0 -50
- package/lib/exporter/FFmpegExporter.d.ts.map +0 -1
- package/lib/exporter/FFmpegExporter.js +0 -140
- package/lib/exporter/ImageExporter.d.ts +0 -34
- package/lib/exporter/ImageExporter.d.ts.map +0 -1
- package/lib/exporter/ImageExporter.js +0 -80
- package/lib/exporter/WasmExporter.d.ts +0 -19
- package/lib/exporter/WasmExporter.d.ts.map +0 -1
- package/lib/exporter/WasmExporter.js +0 -78
- package/lib/exporter/download-videos.d.ts +0 -3
- package/lib/exporter/download-videos.d.ts.map +0 -1
- package/lib/exporter/download-videos.js +0 -45
- package/lib/exporter/index.d.ts +0 -5
- package/lib/exporter/index.d.ts.map +0 -1
- package/lib/exporter/index.js +0 -5
- package/lib/flow/all.d.ts +0 -18
- package/lib/flow/all.d.ts.map +0 -1
- package/lib/flow/all.js +0 -25
- package/lib/flow/any.d.ts +0 -18
- package/lib/flow/any.d.ts.map +0 -1
- package/lib/flow/any.js +0 -25
- package/lib/flow/chain.d.ts +0 -36
- package/lib/flow/chain.d.ts.map +0 -1
- package/lib/flow/chain.js +0 -46
- package/lib/flow/delay.d.ts +0 -29
- package/lib/flow/delay.d.ts.map +0 -1
- package/lib/flow/delay.js +0 -39
- package/lib/flow/every.d.ts +0 -41
- package/lib/flow/every.d.ts.map +0 -1
- package/lib/flow/every.js +0 -61
- package/lib/flow/index.d.ts +0 -17
- package/lib/flow/index.d.ts.map +0 -1
- package/lib/flow/index.js +0 -17
- package/lib/flow/join.d.ts +0 -35
- package/lib/flow/join.d.ts.map +0 -1
- package/lib/flow/join.js +0 -33
- package/lib/flow/loop.d.ts +0 -58
- package/lib/flow/loop.d.ts.map +0 -1
- package/lib/flow/loop.js +0 -51
- package/lib/flow/loopFor.d.ts +0 -25
- package/lib/flow/loopFor.d.ts.map +0 -1
- package/lib/flow/loopFor.js +0 -42
- package/lib/flow/names.d.ts +0 -3
- package/lib/flow/names.d.ts.map +0 -1
- package/lib/flow/names.js +0 -11
- package/lib/flow/run.d.ts +0 -45
- package/lib/flow/run.d.ts.map +0 -1
- package/lib/flow/run.js +0 -14
- package/lib/flow/scheduling.d.ts +0 -18
- package/lib/flow/scheduling.d.ts.map +0 -1
- package/lib/flow/scheduling.js +0 -33
- package/lib/flow/sequence.d.ts +0 -22
- package/lib/flow/sequence.d.ts.map +0 -1
- package/lib/flow/sequence.js +0 -31
- package/lib/index.d.ts +0 -16
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -16
- package/lib/media/index.d.ts +0 -7
- package/lib/media/index.d.ts.map +0 -1
- package/lib/media/index.js +0 -7
- package/lib/media/loadImage.d.ts +0 -8
- package/lib/media/loadImage.d.ts.map +0 -1
- package/lib/media/loadImage.js +0 -29
- package/lib/plugin/DefaultPlugin.d.ts +0 -10
- package/lib/plugin/DefaultPlugin.d.ts.map +0 -1
- package/lib/plugin/DefaultPlugin.js +0 -17
- package/lib/plugin/Plugin.d.ts +0 -53
- package/lib/plugin/Plugin.d.ts.map +0 -1
- package/lib/plugin/Plugin.js +0 -2
- package/lib/plugin/index.d.ts +0 -3
- package/lib/plugin/index.d.ts.map +0 -1
- package/lib/plugin/index.js +0 -3
- package/lib/plugin/makePlugin.d.ts +0 -15
- package/lib/plugin/makePlugin.d.ts.map +0 -1
- package/lib/plugin/makePlugin.js +0 -16
- package/lib/scenes/GeneratorScene.d.ts +0 -95
- package/lib/scenes/GeneratorScene.d.ts.map +0 -1
- package/lib/scenes/GeneratorScene.js +0 -273
- package/lib/scenes/Inspectable.d.ts +0 -71
- package/lib/scenes/Inspectable.d.ts.map +0 -1
- package/lib/scenes/Inspectable.js +0 -4
- package/lib/scenes/LifecycleEvents.d.ts +0 -18
- package/lib/scenes/LifecycleEvents.d.ts.map +0 -1
- package/lib/scenes/LifecycleEvents.js +0 -45
- package/lib/scenes/Random.d.ts +0 -66
- package/lib/scenes/Random.d.ts.map +0 -1
- package/lib/scenes/Random.js +0 -101
- package/lib/scenes/Scene.d.ts +0 -298
- package/lib/scenes/Scene.d.ts.map +0 -1
- package/lib/scenes/Scene.js +0 -25
- package/lib/scenes/SceneState.d.ts +0 -34
- package/lib/scenes/SceneState.d.ts.map +0 -1
- package/lib/scenes/SceneState.js +0 -35
- package/lib/scenes/Shaders.d.ts +0 -63
- package/lib/scenes/Shaders.d.ts.map +0 -1
- package/lib/scenes/Shaders.js +0 -158
- package/lib/scenes/Slides.d.ts +0 -33
- package/lib/scenes/Slides.d.ts.map +0 -1
- package/lib/scenes/Slides.js +0 -115
- package/lib/scenes/Threadable.d.ts +0 -19
- package/lib/scenes/Threadable.d.ts.map +0 -1
- package/lib/scenes/Threadable.js +0 -4
- package/lib/scenes/Variables.d.ts +0 -24
- package/lib/scenes/Variables.d.ts.map +0 -1
- package/lib/scenes/Variables.js +0 -39
- package/lib/scenes/index.d.ts +0 -16
- package/lib/scenes/index.d.ts.map +0 -1
- package/lib/scenes/index.js +0 -16
- package/lib/signals/CompoundSignalContext.d.ts +0 -21
- package/lib/signals/CompoundSignalContext.d.ts.map +0 -1
- package/lib/signals/CompoundSignalContext.js +0 -73
- package/lib/signals/ComputedContext.d.ts +0 -14
- package/lib/signals/ComputedContext.d.ts.map +0 -1
- package/lib/signals/ComputedContext.js +0 -36
- package/lib/signals/DependencyContext.d.ts +0 -32
- package/lib/signals/DependencyContext.d.ts.map +0 -1
- package/lib/signals/DependencyContext.js +0 -87
- package/lib/signals/SignalContext.d.ts +0 -120
- package/lib/signals/SignalContext.d.ts.map +0 -1
- package/lib/signals/SignalContext.js +0 -245
- package/lib/signals/createComputed.d.ts +0 -3
- package/lib/signals/createComputed.d.ts.map +0 -1
- package/lib/signals/createComputed.js +0 -5
- package/lib/signals/createComputedAsync.d.ts +0 -4
- package/lib/signals/createComputedAsync.d.ts.map +0 -1
- package/lib/signals/createComputedAsync.js +0 -15
- package/lib/signals/createSignal.d.ts +0 -5
- package/lib/signals/createSignal.d.ts.map +0 -1
- package/lib/signals/createSignal.js +0 -6
- package/lib/signals/index.d.ts +0 -16
- package/lib/signals/index.d.ts.map +0 -1
- package/lib/signals/index.js +0 -16
- package/lib/signals/symbols.d.ts +0 -2
- package/lib/signals/symbols.d.ts.map +0 -1
- package/lib/signals/symbols.js +0 -2
- package/lib/signals/types.d.ts +0 -51
- package/lib/signals/types.d.ts.map +0 -1
- package/lib/signals/types.js +0 -2
- package/lib/signals/utils.d.ts +0 -5
- package/lib/signals/utils.d.ts.map +0 -1
- package/lib/signals/utils.js +0 -10
- package/lib/threading/Thread.d.ts +0 -77
- package/lib/threading/Thread.d.ts.map +0 -1
- package/lib/threading/Thread.js +0 -169
- package/lib/threading/ThreadGenerator.d.ts +0 -39
- package/lib/threading/ThreadGenerator.d.ts.map +0 -1
- package/lib/threading/ThreadGenerator.js +0 -17
- package/lib/threading/cancel.d.ts +0 -17
- package/lib/threading/cancel.d.ts.map +0 -1
- package/lib/threading/cancel.js +0 -26
- package/lib/threading/index.d.ts +0 -11
- package/lib/threading/index.d.ts.map +0 -1
- package/lib/threading/index.js +0 -11
- package/lib/threading/spawn.d.ts +0 -28
- package/lib/threading/spawn.d.ts.map +0 -1
- package/lib/threading/spawn.js +0 -30
- package/lib/threading/threads.d.ts +0 -46
- package/lib/threading/threads.d.ts.map +0 -1
- package/lib/threading/threads.js +0 -89
- package/lib/transitions/fadeTransition.d.ts +0 -8
- package/lib/transitions/fadeTransition.d.ts.map +0 -1
- package/lib/transitions/fadeTransition.js +0 -16
- package/lib/transitions/index.d.ts +0 -11
- package/lib/transitions/index.d.ts.map +0 -1
- package/lib/transitions/index.js +0 -11
- package/lib/transitions/slideTransition.d.ts +0 -18
- package/lib/transitions/slideTransition.d.ts.map +0 -1
- package/lib/transitions/slideTransition.js +0 -14
- package/lib/transitions/useTransition.d.ts +0 -10
- package/lib/transitions/useTransition.d.ts.map +0 -1
- package/lib/transitions/useTransition.js +0 -27
- package/lib/transitions/zoomInTransition.d.ts +0 -10
- package/lib/transitions/zoomInTransition.d.ts.map +0 -1
- package/lib/transitions/zoomInTransition.js +0 -33
- package/lib/transitions/zoomOutTransition.d.ts +0 -10
- package/lib/transitions/zoomOutTransition.d.ts.map +0 -1
- package/lib/transitions/zoomOutTransition.js +0 -33
- package/lib/tsconfig.build.tsbuildinfo +0 -1
- package/lib/tweening/helpers.d.ts +0 -5
- package/lib/tweening/helpers.d.ts.map +0 -1
- package/lib/tweening/helpers.js +0 -16
- package/lib/tweening/index.d.ts +0 -11
- package/lib/tweening/index.d.ts.map +0 -1
- package/lib/tweening/index.js +0 -11
- package/lib/tweening/interpolationFunctions.d.ts +0 -38
- package/lib/tweening/interpolationFunctions.d.ts.map +0 -1
- package/lib/tweening/interpolationFunctions.js +0 -107
- package/lib/tweening/spring.d.ts +0 -20
- package/lib/tweening/spring.d.ts.map +0 -1
- package/lib/tweening/spring.js +0 -103
- package/lib/tweening/timingFunctions.d.ts +0 -46
- package/lib/tweening/timingFunctions.d.ts.map +0 -1
- package/lib/tweening/timingFunctions.js +0 -233
- package/lib/tweening/tween.d.ts +0 -3
- package/lib/tweening/tween.d.ts.map +0 -1
- package/lib/tweening/tween.js +0 -21
- package/lib/types/BBox.d.ts +0 -73
- package/lib/types/BBox.d.ts.map +0 -1
- package/lib/types/BBox.js +0 -249
- package/lib/types/Canvas.d.ts +0 -3
- package/lib/types/Canvas.d.ts.map +0 -1
- package/lib/types/Canvas.js +0 -2
- package/lib/types/Color.d.ts +0 -65
- package/lib/types/Color.d.ts.map +0 -1
- package/lib/types/Color.js +0 -185
- package/lib/types/Matrix.d.ts +0 -3
- package/lib/types/Matrix.d.ts.map +0 -1
- package/lib/types/Matrix.js +0 -10
- package/lib/types/Matrix2D.d.ts +0 -363
- package/lib/types/Matrix2D.d.ts.map +0 -1
- package/lib/types/Matrix2D.js +0 -554
- package/lib/types/Origin.d.ts +0 -17
- package/lib/types/Origin.d.ts.map +0 -1
- package/lib/types/Origin.js +0 -53
- package/lib/types/Spacing.d.ts +0 -36
- package/lib/types/Spacing.d.ts.map +0 -1
- package/lib/types/Spacing.js +0 -70
- package/lib/types/Type.d.ts +0 -9
- package/lib/types/Type.d.ts.map +0 -1
- package/lib/types/Type.js +0 -5
- package/lib/types/Vector.d.ts +0 -203
- package/lib/types/Vector.d.ts.map +0 -1
- package/lib/types/Vector.js +0 -355
- package/lib/types/alignment-enums.d.ts +0 -22
- package/lib/types/alignment-enums.d.ts.map +0 -1
- package/lib/types/alignment-enums.js +0 -25
- package/lib/types/index.d.ts +0 -17
- package/lib/types/index.d.ts.map +0 -1
- package/lib/types/index.js +0 -17
- package/lib/types/vector-transformations.d.ts +0 -20
- package/lib/types/vector-transformations.d.ts.map +0 -1
- package/lib/types/vector-transformations.js +0 -31
- package/lib/utils/DetailedError.d.ts +0 -24
- package/lib/utils/DetailedError.d.ts.map +0 -1
- package/lib/utils/DetailedError.js +0 -16
- package/lib/utils/ExperimentalError.d.ts +0 -10
- package/lib/utils/ExperimentalError.d.ts.map +0 -1
- package/lib/utils/ExperimentalError.js +0 -32
- package/lib/utils/Semaphore.d.ts +0 -12
- package/lib/utils/Semaphore.d.ts.map +0 -1
- package/lib/utils/Semaphore.js +0 -25
- package/lib/utils/beginSlide.d.ts +0 -3
- package/lib/utils/beginSlide.d.ts.map +0 -1
- package/lib/utils/beginSlide.js +0 -12
- package/lib/utils/capitalize.d.ts +0 -2
- package/lib/utils/capitalize.d.ts.map +0 -1
- package/lib/utils/capitalize.js +0 -4
- package/lib/utils/createRef.d.ts +0 -15
- package/lib/utils/createRef.d.ts.map +0 -1
- package/lib/utils/createRef.js +0 -21
- package/lib/utils/createRefArray.d.ts +0 -27
- package/lib/utils/createRefArray.d.ts.map +0 -1
- package/lib/utils/createRefArray.js +0 -49
- package/lib/utils/createRefMap.d.ts +0 -50
- package/lib/utils/createRefMap.d.ts.map +0 -1
- package/lib/utils/createRefMap.js +0 -77
- package/lib/utils/debug.d.ts +0 -24
- package/lib/utils/debug.d.ts.map +0 -1
- package/lib/utils/debug.js +0 -47
- package/lib/utils/deprecate.d.ts +0 -9
- package/lib/utils/deprecate.d.ts.map +0 -1
- package/lib/utils/deprecate.js +0 -15
- package/lib/utils/errorToLog.d.ts +0 -3
- package/lib/utils/errorToLog.d.ts.map +0 -1
- package/lib/utils/errorToLog.js +0 -8
- package/lib/utils/experimentalLog.d.ts +0 -3
- package/lib/utils/experimentalLog.d.ts.map +0 -1
- package/lib/utils/experimentalLog.js +0 -10
- package/lib/utils/getContext.d.ts +0 -2
- package/lib/utils/getContext.d.ts.map +0 -1
- package/lib/utils/getContext.js +0 -8
- package/lib/utils/index.d.ts +0 -26
- package/lib/utils/index.d.ts.map +0 -1
- package/lib/utils/index.js +0 -26
- package/lib/utils/math.d.ts +0 -15
- package/lib/utils/math.d.ts.map +0 -1
- package/lib/utils/math.js +0 -15
- package/lib/utils/range.d.ts +0 -40
- package/lib/utils/range.d.ts.map +0 -1
- package/lib/utils/range.js +0 -18
- package/lib/utils/useContext.d.ts +0 -13
- package/lib/utils/useContext.d.ts.map +0 -1
- package/lib/utils/useContext.js +0 -18
- package/lib/utils/usePlayback.d.ts +0 -8
- package/lib/utils/usePlayback.d.ts.map +0 -1
- package/lib/utils/usePlayback.js +0 -20
- package/lib/utils/useScene.d.ts +0 -17
- package/lib/utils/useScene.d.ts.map +0 -1
- package/lib/utils/useScene.js +0 -33
- package/lib/utils/useThread.d.ts +0 -8
- package/lib/utils/useThread.d.ts.map +0 -1
- package/lib/utils/useThread.js +0 -24
- package/lib/utils/useTime.d.ts +0 -19
- package/lib/utils/useTime.d.ts.map +0 -1
- package/lib/utils/useTime.js +0 -22
- package/project.d.ts +0 -24
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
const SOURCE_URL_REGEX = /^\/\/# sourceURL=(.*)$/gm;
|
|
2
|
-
const INFO_LOG_REGEX = /ERROR: \d+:(\d+): (.*)/g;
|
|
3
|
-
const INFO_TOKEN_REGEX = /^'([^']+)'/;
|
|
4
|
-
const includeWithoutPreprocessor = `
|
|
5
|
-
The \`#include\` directive requires the use of a preprocessor.
|
|
6
|
-
|
|
7
|
-
Make sure to import the shader from a file:
|
|
8
|
-
|
|
9
|
-
\`\`\`ts
|
|
10
|
-
import shader from './shader.glsl';
|
|
11
|
-
\`\`\`
|
|
12
|
-
|
|
13
|
-
Do **NOT** use the raw loader:
|
|
14
|
-
|
|
15
|
-
\`\`\`ts
|
|
16
|
-
import shader from './shader.glsl?raw';
|
|
17
|
-
\`\`\`
|
|
18
|
-
|
|
19
|
-
Do **NOT** use \`#include\` in an inline string:
|
|
20
|
-
|
|
21
|
-
\`\`\`ts
|
|
22
|
-
const shader = \`\\
|
|
23
|
-
#include "example.glsl"
|
|
24
|
-
\`;
|
|
25
|
-
\`\`\`
|
|
26
|
-
|
|
27
|
-
[Learn more](https://motioncanvas.io/docs/shaders) about working with shaders.
|
|
28
|
-
`;
|
|
29
|
-
export class SharedWebGLContext {
|
|
30
|
-
constructor(logger) {
|
|
31
|
-
this.logger = logger;
|
|
32
|
-
this.gl = null;
|
|
33
|
-
this.currentOwner = null;
|
|
34
|
-
this.programLookup = new Map();
|
|
35
|
-
}
|
|
36
|
-
borrow(owner) {
|
|
37
|
-
if (this.currentOwner === owner) {
|
|
38
|
-
return this.gl;
|
|
39
|
-
}
|
|
40
|
-
this.currentOwner?.teardown(this.gl);
|
|
41
|
-
this.currentOwner = owner;
|
|
42
|
-
this.currentOwner.setup(this.getGL());
|
|
43
|
-
return this.gl;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Dispose the WebGL context to free up resources.
|
|
47
|
-
*/
|
|
48
|
-
dispose() {
|
|
49
|
-
if (!this.gl) {
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
this.currentOwner?.teardown(this.gl);
|
|
53
|
-
this.currentOwner = null;
|
|
54
|
-
this.gl.useProgram(null);
|
|
55
|
-
for (const { program, fragment, vertex } of this.programLookup.values()) {
|
|
56
|
-
this.gl.deleteProgram(program);
|
|
57
|
-
this.gl.deleteShader(fragment);
|
|
58
|
-
this.gl.deleteShader(vertex);
|
|
59
|
-
}
|
|
60
|
-
this.programLookup.clear();
|
|
61
|
-
this.gl.getExtension('WEBGL_lose_context')?.loseContext();
|
|
62
|
-
this.gl.canvas.remove();
|
|
63
|
-
this.gl = null;
|
|
64
|
-
}
|
|
65
|
-
getProgram(fragment, vertex) {
|
|
66
|
-
const key = `${fragment}#${vertex}`;
|
|
67
|
-
if (this.programLookup.has(key)) {
|
|
68
|
-
return this.programLookup.get(key).program;
|
|
69
|
-
}
|
|
70
|
-
const gl = this.getGL();
|
|
71
|
-
const fragmentShader = this.getShader(gl.FRAGMENT_SHADER, fragment);
|
|
72
|
-
const vertexShader = this.getShader(gl.VERTEX_SHADER, vertex);
|
|
73
|
-
if (!fragmentShader || !vertexShader) {
|
|
74
|
-
return null;
|
|
75
|
-
}
|
|
76
|
-
const program = gl.createProgram();
|
|
77
|
-
gl.attachShader(program, fragmentShader);
|
|
78
|
-
gl.attachShader(program, vertexShader);
|
|
79
|
-
gl.linkProgram(program);
|
|
80
|
-
if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
|
|
81
|
-
this.logger.error({
|
|
82
|
-
message: 'Failed to initialize the shader program.',
|
|
83
|
-
remarks: gl.getProgramInfoLog(program) ?? undefined,
|
|
84
|
-
stack: new Error().stack,
|
|
85
|
-
});
|
|
86
|
-
gl.deleteProgram(program);
|
|
87
|
-
return null;
|
|
88
|
-
}
|
|
89
|
-
this.programLookup.set(key, {
|
|
90
|
-
program,
|
|
91
|
-
fragment: fragmentShader,
|
|
92
|
-
vertex: vertexShader,
|
|
93
|
-
});
|
|
94
|
-
return program;
|
|
95
|
-
}
|
|
96
|
-
getShader(type, source) {
|
|
97
|
-
const gl = this.getGL();
|
|
98
|
-
const shader = gl.createShader(type);
|
|
99
|
-
gl.shaderSource(shader, source);
|
|
100
|
-
gl.compileShader(shader);
|
|
101
|
-
if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
|
|
102
|
-
const log = gl.getShaderInfoLog(shader);
|
|
103
|
-
logGlslError(this.logger, log, source);
|
|
104
|
-
gl.deleteShader(shader);
|
|
105
|
-
return null;
|
|
106
|
-
}
|
|
107
|
-
return shader;
|
|
108
|
-
}
|
|
109
|
-
getGL() {
|
|
110
|
-
if (this.gl) {
|
|
111
|
-
return this.gl;
|
|
112
|
-
}
|
|
113
|
-
this.gl = document.createElement('canvas').getContext('webgl2', {
|
|
114
|
-
depth: false,
|
|
115
|
-
premultipliedAlpha: false,
|
|
116
|
-
stencil: false,
|
|
117
|
-
powerPreference: 'high-performance',
|
|
118
|
-
});
|
|
119
|
-
if (!this.gl) {
|
|
120
|
-
throw new Error('Failed to initialize WebGL.');
|
|
121
|
-
}
|
|
122
|
-
/* NOTE: Temporary debugging code
|
|
123
|
-
const canvas = this.gl.canvas as HTMLCanvasElement;
|
|
124
|
-
document.body.append(canvas);
|
|
125
|
-
canvas.style.position = 'absolute';
|
|
126
|
-
canvas.style.top = '16px';
|
|
127
|
-
canvas.style.right = '16px';
|
|
128
|
-
canvas.style.width = '300px';
|
|
129
|
-
canvas.style.borderRadius = '4px';
|
|
130
|
-
canvas.style.border = '1px solid #ccc';
|
|
131
|
-
canvas.style.backgroundColor = '#141414';
|
|
132
|
-
canvas.style.zIndex = '1000';
|
|
133
|
-
*/
|
|
134
|
-
return this.gl;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
function logGlslError(logger, log, source) {
|
|
138
|
-
let sourceUrl = null;
|
|
139
|
-
SOURCE_URL_REGEX.lastIndex = 0;
|
|
140
|
-
const sourceMatch = SOURCE_URL_REGEX.exec(source);
|
|
141
|
-
if (sourceMatch) {
|
|
142
|
-
const url = new URL(sourceMatch[1], window.location.origin);
|
|
143
|
-
url.searchParams.set('t', Date.now().toString());
|
|
144
|
-
sourceUrl = url.toString();
|
|
145
|
-
}
|
|
146
|
-
if (!log) {
|
|
147
|
-
logger.error({
|
|
148
|
-
message: `Unknown shader compilation error.`,
|
|
149
|
-
stack: fakeStackTrace(sourceUrl, 1, 0),
|
|
150
|
-
});
|
|
151
|
-
return null;
|
|
152
|
-
}
|
|
153
|
-
let logged = false;
|
|
154
|
-
let result;
|
|
155
|
-
while ((result = INFO_LOG_REGEX.exec(log))) {
|
|
156
|
-
const [, line, message] = result;
|
|
157
|
-
let column = 0;
|
|
158
|
-
const match = message.match(INFO_TOKEN_REGEX);
|
|
159
|
-
if (match) {
|
|
160
|
-
const tokenLine = source.split('\n')[parseInt(line) - 1];
|
|
161
|
-
const index = tokenLine.indexOf(match[1]);
|
|
162
|
-
if (index !== -1) {
|
|
163
|
-
column = index;
|
|
164
|
-
}
|
|
165
|
-
if (match[1] === 'include') {
|
|
166
|
-
const line = source
|
|
167
|
-
.split('\n')
|
|
168
|
-
.find(line => line.startsWith('#include'));
|
|
169
|
-
if (line) {
|
|
170
|
-
logged = true;
|
|
171
|
-
logger.error({
|
|
172
|
-
message: `Shader compilation error: ${message}`,
|
|
173
|
-
remarks: includeWithoutPreprocessor,
|
|
174
|
-
});
|
|
175
|
-
break;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
logged = true;
|
|
180
|
-
logger.error({
|
|
181
|
-
message: `Shader compilation error: ${message}`,
|
|
182
|
-
stack: fakeStackTrace(sourceUrl, line, column),
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
if (!logged) {
|
|
186
|
-
logger.error({
|
|
187
|
-
message: `Shader compilation error: ${log}`,
|
|
188
|
-
stack: fakeStackTrace(sourceUrl, 1, 0),
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
function fakeStackTrace(file, line, column) {
|
|
193
|
-
if (!file) {
|
|
194
|
-
return undefined;
|
|
195
|
-
}
|
|
196
|
-
return navigator.userAgent.toLowerCase().includes('chrome')
|
|
197
|
-
? ` at (${file}:${line}:${column})`
|
|
198
|
-
: `@${file}:${line}:${column}`;
|
|
199
|
-
}
|
|
200
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2hhcmVkV2ViR0xDb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcC9TaGFyZWRXZWJHTENvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxnQkFBZ0IsR0FBRywwQkFBMEIsQ0FBQztBQUNwRCxNQUFNLGNBQWMsR0FBRyx5QkFBeUIsQ0FBQztBQUNqRCxNQUFNLGdCQUFnQixHQUFHLFlBQVksQ0FBQztBQUV0QyxNQUFNLDBCQUEwQixHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0F3QmxDLENBQUM7QUFnQkYsTUFBTSxPQUFPLGtCQUFrQjtJQUs3QixZQUFvQyxNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUoxQyxPQUFFLEdBQWtDLElBQUksQ0FBQztRQUN6QyxpQkFBWSxHQUE2QixJQUFJLENBQUM7UUFDckMsa0JBQWEsR0FBRyxJQUFJLEdBQUcsRUFBNEIsQ0FBQztJQUVoQixDQUFDO0lBRS9DLE1BQU0sQ0FBQyxLQUF3QjtRQUNwQyxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDaEMsT0FBTyxJQUFJLENBQUMsRUFBRyxDQUFDO1FBQ2xCLENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUMsRUFBRyxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2IsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMs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
|
package/lib/app/Stage.d.ts
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import type { Scene } from '../scenes';
|
|
2
|
-
import type { CanvasColorSpace, Color } from '../types';
|
|
3
|
-
import { Vector2 } from '../types';
|
|
4
|
-
export interface StageSettings {
|
|
5
|
-
size: Vector2;
|
|
6
|
-
resolutionScale: number;
|
|
7
|
-
colorSpace: CanvasColorSpace;
|
|
8
|
-
background: Color | string | null;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Manages canvases on which an animation can be displayed.
|
|
12
|
-
*/
|
|
13
|
-
export declare class Stage {
|
|
14
|
-
private background;
|
|
15
|
-
private resolutionScale;
|
|
16
|
-
private colorSpace;
|
|
17
|
-
private size;
|
|
18
|
-
readonly finalBuffer: HTMLCanvasElement;
|
|
19
|
-
private readonly currentBuffer;
|
|
20
|
-
private readonly previousBuffer;
|
|
21
|
-
private context;
|
|
22
|
-
private currentContext;
|
|
23
|
-
private previousContext;
|
|
24
|
-
private get canvasSize();
|
|
25
|
-
constructor();
|
|
26
|
-
configure({ colorSpace, size, resolutionScale, background, }: Partial<StageSettings>): void;
|
|
27
|
-
render(currentScene: Scene, previousScene: Scene | null): Promise<void>;
|
|
28
|
-
resizeCanvas(context: CanvasRenderingContext2D): void;
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=Stage.d.ts.map
|
package/lib/app/Stage.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Stage.d.ts","sourceRoot":"","sources":["../../src/app/Stage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,WAAW,CAAC;AAErC,OAAO,KAAK,EAAC,gBAAgB,EAAE,KAAK,EAAC,MAAM,UAAU,CAAC;AACtD,OAAO,EAAC,OAAO,EAAC,MAAM,UAAU,CAAC;AAGjC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,UAAU,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;CACnC;AAED;;GAEG;AACH,qBAAa,KAAK;IAGhB,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,IAAI,CAAgB;IAE5B,SAAgB,WAAW,EAAE,iBAAiB,CAAC;IAC/C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoB;IAEnD,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,eAAe,CAA2B;IAElD,OAAO,KAAK,UAAU,GAErB;;IAaM,SAAS,CAAC,EACf,UAA4B,EAC5B,IAAgB,EAChB,eAAsC,EACtC,UAA4B,GAC7B,EAAE,OAAO,CAAC,aAAa,CAAC;IAyBZ,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,GAAG,IAAI;IA6B7D,YAAY,CAAC,OAAO,EAAE,wBAAwB;CAKtD"}
|
package/lib/app/Stage.js
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { unwrap } from '../signals';
|
|
2
|
-
import { Vector2 } from '../types';
|
|
3
|
-
import { getContext } from '../utils';
|
|
4
|
-
/**
|
|
5
|
-
* Manages canvases on which an animation can be displayed.
|
|
6
|
-
*/
|
|
7
|
-
export class Stage {
|
|
8
|
-
get canvasSize() {
|
|
9
|
-
return this.size.scale(this.resolutionScale);
|
|
10
|
-
}
|
|
11
|
-
constructor() {
|
|
12
|
-
// TODO Consider adding pooling for canvases.
|
|
13
|
-
this.background = null;
|
|
14
|
-
this.resolutionScale = 1;
|
|
15
|
-
this.colorSpace = 'srgb';
|
|
16
|
-
this.size = Vector2.zero;
|
|
17
|
-
this.finalBuffer = document.createElement('canvas');
|
|
18
|
-
this.currentBuffer = document.createElement('canvas');
|
|
19
|
-
this.previousBuffer = document.createElement('canvas');
|
|
20
|
-
const colorSpace = this.colorSpace;
|
|
21
|
-
this.context = getContext({ colorSpace }, this.finalBuffer);
|
|
22
|
-
this.currentContext = getContext({ colorSpace }, this.currentBuffer);
|
|
23
|
-
this.previousContext = getContext({ colorSpace }, this.previousBuffer);
|
|
24
|
-
}
|
|
25
|
-
configure({ colorSpace = this.colorSpace, size = this.size, resolutionScale = this.resolutionScale, background = this.background, }) {
|
|
26
|
-
if (colorSpace !== this.colorSpace) {
|
|
27
|
-
this.colorSpace = colorSpace;
|
|
28
|
-
this.context = getContext({ colorSpace }, this.finalBuffer);
|
|
29
|
-
this.currentContext = getContext({ colorSpace }, this.currentBuffer);
|
|
30
|
-
this.previousContext = getContext({ colorSpace }, this.previousBuffer);
|
|
31
|
-
}
|
|
32
|
-
if (!size.exactlyEquals(this.size) ||
|
|
33
|
-
resolutionScale !== this.resolutionScale) {
|
|
34
|
-
this.resolutionScale = resolutionScale;
|
|
35
|
-
this.size = size;
|
|
36
|
-
this.resizeCanvas(this.context);
|
|
37
|
-
this.resizeCanvas(this.currentContext);
|
|
38
|
-
this.resizeCanvas(this.previousContext);
|
|
39
|
-
}
|
|
40
|
-
this.background =
|
|
41
|
-
typeof background === 'string'
|
|
42
|
-
? background
|
|
43
|
-
: (background?.serialize() ?? null);
|
|
44
|
-
}
|
|
45
|
-
async render(currentScene, previousScene) {
|
|
46
|
-
const previousOnTop = previousScene
|
|
47
|
-
? unwrap(currentScene.previousOnTop)
|
|
48
|
-
: false;
|
|
49
|
-
if (previousScene) {
|
|
50
|
-
await previousScene.render(this.previousContext);
|
|
51
|
-
}
|
|
52
|
-
await currentScene.render(this.currentContext);
|
|
53
|
-
const size = this.canvasSize;
|
|
54
|
-
this.context.clearRect(0, 0, size.width, size.height);
|
|
55
|
-
if (this.background) {
|
|
56
|
-
this.context.save();
|
|
57
|
-
this.context.fillStyle = this.background;
|
|
58
|
-
this.context.fillRect(0, 0, size.width, size.height);
|
|
59
|
-
this.context.restore();
|
|
60
|
-
}
|
|
61
|
-
if (previousScene && !previousOnTop) {
|
|
62
|
-
this.context.drawImage(this.previousBuffer, 0, 0);
|
|
63
|
-
}
|
|
64
|
-
this.context.drawImage(this.currentBuffer, 0, 0);
|
|
65
|
-
if (previousOnTop) {
|
|
66
|
-
this.context.drawImage(this.previousBuffer, 0, 0);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
resizeCanvas(context) {
|
|
70
|
-
const size = this.canvasSize;
|
|
71
|
-
context.canvas.width = size.width;
|
|
72
|
-
context.canvas.height = size.height;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBwL1N0YWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFFbEMsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUNqQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBU3BDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLEtBQUs7SUFnQmhCLElBQVksVUFBVTtRQUNwQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7UUFuQkEsNkNBQTZDO1FBRXJDLGVBQVUsR0FBa0IsSUFBSSxDQUFDO1FBQ2pDLG9CQUFlLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLGVBQVUsR0FBcUIsTUFBTSxDQUFDO1FBQ3RDLFNBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBZTFCLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXZELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsRUFBQyxVQUFVLEVBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxVQUFVLENBQUMsRUFBQyxVQUFVLEVBQUMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLGVBQWUsR0FB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
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* An estimate of the time remaining until the process is finished.
|
|
3
|
-
*/
|
|
4
|
-
export interface TimeEstimate {
|
|
5
|
-
/**
|
|
6
|
-
* The completion percentage ranging from `0` to `1`.
|
|
7
|
-
*/
|
|
8
|
-
completion: number;
|
|
9
|
-
/**
|
|
10
|
-
* The time passed since the beginning of the process in milliseconds.
|
|
11
|
-
*/
|
|
12
|
-
elapsed: number;
|
|
13
|
-
/**
|
|
14
|
-
* The estimated time remaining until the process is finished in milliseconds.
|
|
15
|
-
*/
|
|
16
|
-
eta: number;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Calculates the estimated time remaining until a process is finished.
|
|
20
|
-
*/
|
|
21
|
-
export declare class TimeEstimator {
|
|
22
|
-
get onCompletionChanged(): import("../events").SubscribableValueEvent<number>;
|
|
23
|
-
private readonly completion;
|
|
24
|
-
private startTimestamp;
|
|
25
|
-
private lastUpdateTimestamp;
|
|
26
|
-
private nextCompletion;
|
|
27
|
-
/**
|
|
28
|
-
* Get the current time estimate.
|
|
29
|
-
*
|
|
30
|
-
* @param timestamp - The timestamp to calculate the estimate against.
|
|
31
|
-
* Defaults to `performance.now()`.
|
|
32
|
-
*/
|
|
33
|
-
estimate(timestamp?: number): TimeEstimate;
|
|
34
|
-
/**
|
|
35
|
-
* Update the completion percentage.
|
|
36
|
-
*
|
|
37
|
-
* @param completion - The completion percentage ranging from `0` to `1`.
|
|
38
|
-
* @param timestamp - A timestamp at which the process was updated.
|
|
39
|
-
* Defaults to `performance.now()`.
|
|
40
|
-
*/
|
|
41
|
-
update(completion: number, timestamp?: number): void;
|
|
42
|
-
reportProgress(): void;
|
|
43
|
-
/**
|
|
44
|
-
* Reset the estimator.
|
|
45
|
-
*
|
|
46
|
-
* @param nextCompletion - If known, the completion percentage of the next
|
|
47
|
-
* update.
|
|
48
|
-
* @param timestamp - A timestamp at which the process started.
|
|
49
|
-
* Defaults to `performance.now()`.
|
|
50
|
-
*/
|
|
51
|
-
reset(nextCompletion?: number, timestamp?: number): void;
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=TimeEstimator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TimeEstimator.d.ts","sourceRoot":"","sources":["../../src/app/TimeEstimator.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,IAAW,mBAAmB,uDAE7B;IACD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0B;IACrD,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,cAAc,CAAK;IAE3B;;;;;OAKG;IACI,QAAQ,CAAC,SAAS,SAAoB,GAAG,YAAY;IAkB5D;;;;;;OAMG;IACI,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,SAAoB;IAKxD,cAAc;IAMrB;;;;;;;OAOG;IACI,KAAK,CAAC,cAAc,SAAI,EAAE,SAAS,SAAoB;CAM/D"}
|
package/lib/app/TimeEstimator.js
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { ValueDispatcher } from '../events';
|
|
2
|
-
import { clamp } from '../tweening';
|
|
3
|
-
/**
|
|
4
|
-
* Calculates the estimated time remaining until a process is finished.
|
|
5
|
-
*/
|
|
6
|
-
export class TimeEstimator {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.completion = new ValueDispatcher(0);
|
|
9
|
-
this.startTimestamp = 0;
|
|
10
|
-
this.lastUpdateTimestamp = 0;
|
|
11
|
-
this.nextCompletion = 0;
|
|
12
|
-
}
|
|
13
|
-
get onCompletionChanged() {
|
|
14
|
-
return this.completion.subscribable;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Get the current time estimate.
|
|
18
|
-
*
|
|
19
|
-
* @param timestamp - The timestamp to calculate the estimate against.
|
|
20
|
-
* Defaults to `performance.now()`.
|
|
21
|
-
*/
|
|
22
|
-
estimate(timestamp = performance.now()) {
|
|
23
|
-
const elapsed = timestamp - this.startTimestamp;
|
|
24
|
-
const completion = this.completion.current;
|
|
25
|
-
let eta = Infinity;
|
|
26
|
-
if (completion >= 1) {
|
|
27
|
-
eta = 0;
|
|
28
|
-
}
|
|
29
|
-
else if (completion > 0) {
|
|
30
|
-
const lastUpdateDuration = this.lastUpdateTimestamp - this.startTimestamp;
|
|
31
|
-
eta = lastUpdateDuration / completion - elapsed;
|
|
32
|
-
eta = Math.max(0, eta);
|
|
33
|
-
}
|
|
34
|
-
else if (this.nextCompletion > 0) {
|
|
35
|
-
eta = elapsed / this.nextCompletion - elapsed;
|
|
36
|
-
}
|
|
37
|
-
return { completion, elapsed, eta };
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Update the completion percentage.
|
|
41
|
-
*
|
|
42
|
-
* @param completion - The completion percentage ranging from `0` to `1`.
|
|
43
|
-
* @param timestamp - A timestamp at which the process was updated.
|
|
44
|
-
* Defaults to `performance.now()`.
|
|
45
|
-
*/
|
|
46
|
-
update(completion, timestamp = performance.now()) {
|
|
47
|
-
this.completion.current = clamp(0, 1, completion);
|
|
48
|
-
this.lastUpdateTimestamp = timestamp;
|
|
49
|
-
}
|
|
50
|
-
reportProgress() {
|
|
51
|
-
if (window.logProgress) {
|
|
52
|
-
window.logProgress(this.completion.current);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Reset the estimator.
|
|
57
|
-
*
|
|
58
|
-
* @param nextCompletion - If known, the completion percentage of the next
|
|
59
|
-
* update.
|
|
60
|
-
* @param timestamp - A timestamp at which the process started.
|
|
61
|
-
* Defaults to `performance.now()`.
|
|
62
|
-
*/
|
|
63
|
-
reset(nextCompletion = 0, timestamp = performance.now()) {
|
|
64
|
-
this.startTimestamp = timestamp;
|
|
65
|
-
this.lastUpdateTimestamp = timestamp;
|
|
66
|
-
this.completion.current = 0;
|
|
67
|
-
this.nextCompletion = nextCompletion;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGltZUVzdGltYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcHAvVGltZUVzdGltYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFvQmxDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFBMUI7UUFJbUIsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdDLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLHdCQUFtQixHQUFHLENBQUMsQ0FBQztRQUN4QixtQkFBYyxHQUFHLENBQUMsQ0FBQztJQTBEN0IsQ0FBQztJQWhFQyxJQUFXLG1CQUFtQjtRQUM1QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO0lBQ3RDLENBQUM7SUFNRDs7Ozs7T0FLRztJQUNJLFFBQVEsQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtRQUMzQyxNQUFNLE9BQU8sR0FBRyxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUNoRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUUzQyxJQUFJLEdBQUcsR0FBRyxRQUFRLENBQUM7UUFDbkIsSUFBSSxVQUFVLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDcEIsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNWLENBQUM7YUFBTSxJQUFJLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMxQixNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQzFFLEdBQUcsR0FBRyxrQkFBa0IsR0FBRyxVQUFVLEdBQUcsT0FBTyxDQUFDO1lBQ2hELEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN6QixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ25DLEdBQUcsR0FBRyxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUM7UUFDaEQsQ0FBQztRQUVELE9BQU8sRUFBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsVUFBa0IsRUFBRSxTQUFTLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtRQUM3RCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUssTUFBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQy9CLE1BQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxLQUFLLENBQUMsY0FBYyxHQUFHLENBQUMsRUFBRSxTQUFTLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtRQUM1RCxJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQztRQUNoQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztJQUN2QyxDQUFDO0NBQ0YifQ==
|
package/lib/app/index.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Main Motion Canvas classes.
|
|
3
|
-
*
|
|
4
|
-
* @packageDocumentation
|
|
5
|
-
*/
|
|
6
|
-
export * from './Logger';
|
|
7
|
-
export * from './makeProject';
|
|
8
|
-
export * from './PlaybackManager';
|
|
9
|
-
export * from './PlaybackStatus';
|
|
10
|
-
export * from './Player';
|
|
11
|
-
export * from './Project';
|
|
12
|
-
export * from './project-settings';
|
|
13
|
-
export * from './Renderer';
|
|
14
|
-
export * from './SharedWebGLContext';
|
|
15
|
-
export * from './Stage';
|
|
16
|
-
//# sourceMappingURL=index.d.ts.map
|
package/lib/app/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC"}
|
package/lib/app/index.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Main Motion Canvas classes.
|
|
3
|
-
*
|
|
4
|
-
* @packageDocumentation
|
|
5
|
-
*/
|
|
6
|
-
export * from './Logger';
|
|
7
|
-
export * from './makeProject';
|
|
8
|
-
export * from './PlaybackManager';
|
|
9
|
-
export * from './PlaybackStatus';
|
|
10
|
-
export * from './Player';
|
|
11
|
-
export * from './Project';
|
|
12
|
-
export * from './project-settings';
|
|
13
|
-
export * from './Renderer';
|
|
14
|
-
export * from './SharedWebGLContext';
|
|
15
|
-
export * from './Stage';
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsU0FBUyxDQUFDIn0=
|
package/lib/app/makeProject.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Logger } from './Logger';
|
|
2
|
-
import type { Project, UserProject, UserProjectSettings } from './Project';
|
|
3
|
-
export declare const defaultUserProjectSettings: UserProjectSettings;
|
|
4
|
-
export declare function makeProject(project: UserProject): Project;
|
|
5
|
-
export declare function addEditorToProject(project: Project): Promise<{
|
|
6
|
-
plugins: any[];
|
|
7
|
-
name: string;
|
|
8
|
-
settings: import("./Project").ProjectSettings;
|
|
9
|
-
logger: Logger;
|
|
10
|
-
versions: import("./Project").Versions;
|
|
11
|
-
scenes: import("..").SceneDescription<any>[];
|
|
12
|
-
variables?: Record<string, unknown> | undefined;
|
|
13
|
-
experimentalFeatures?: boolean | undefined;
|
|
14
|
-
}>;
|
|
15
|
-
//# sourceMappingURL=makeProject.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"makeProject.d.ts","sourceRoot":"","sources":["../../src/app/makeProject.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,EAAC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAC,MAAM,WAAW,CAAC;AAGzE,eAAO,MAAM,0BAA0B,EAAE,mBAkBxC,CAAC;AAEF,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAwCzD;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,OAAO;;;;;;;;;GAWxD"}
|
package/lib/app/makeProject.js
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import DefaultPlugin from '../plugin/DefaultPlugin';
|
|
2
|
-
import { Color, Vector2 } from '../types';
|
|
3
|
-
import { Logger } from './Logger';
|
|
4
|
-
import { createVersionObject } from './Project';
|
|
5
|
-
export const defaultUserProjectSettings = {
|
|
6
|
-
shared: {
|
|
7
|
-
background: 'FFFFFF00',
|
|
8
|
-
range: [0, Infinity],
|
|
9
|
-
size: { x: 1920, y: 1080 },
|
|
10
|
-
},
|
|
11
|
-
rendering: {
|
|
12
|
-
exporter: {
|
|
13
|
-
name: '@twick/core/wasm',
|
|
14
|
-
},
|
|
15
|
-
fps: 30,
|
|
16
|
-
resolutionScale: 1,
|
|
17
|
-
colorSpace: 'srgb',
|
|
18
|
-
},
|
|
19
|
-
preview: {
|
|
20
|
-
fps: 30,
|
|
21
|
-
resolutionScale: 1,
|
|
22
|
-
},
|
|
23
|
-
};
|
|
24
|
-
export function makeProject(project) {
|
|
25
|
-
// Don't delete, has side effects
|
|
26
|
-
// TODO(konsti): Figure out how to get rid of this
|
|
27
|
-
void DefaultPlugin;
|
|
28
|
-
const settings = {
|
|
29
|
-
...defaultUserProjectSettings,
|
|
30
|
-
...project.settings,
|
|
31
|
-
shared: {
|
|
32
|
-
...defaultUserProjectSettings.shared,
|
|
33
|
-
...project.settings?.shared,
|
|
34
|
-
},
|
|
35
|
-
rendering: {
|
|
36
|
-
...defaultUserProjectSettings.rendering,
|
|
37
|
-
...project.settings?.rendering,
|
|
38
|
-
},
|
|
39
|
-
preview: {
|
|
40
|
-
...defaultUserProjectSettings.preview,
|
|
41
|
-
...project.settings?.preview,
|
|
42
|
-
},
|
|
43
|
-
};
|
|
44
|
-
// Convert background and size to correct types
|
|
45
|
-
const convertedSettings = {
|
|
46
|
-
...settings,
|
|
47
|
-
shared: {
|
|
48
|
-
...settings.shared,
|
|
49
|
-
background: new Color(settings.shared.background),
|
|
50
|
-
size: new Vector2(settings.shared.size),
|
|
51
|
-
},
|
|
52
|
-
};
|
|
53
|
-
return {
|
|
54
|
-
...project,
|
|
55
|
-
name: project.name ?? 'project',
|
|
56
|
-
settings: convertedSettings,
|
|
57
|
-
plugins: [],
|
|
58
|
-
logger: new Logger(),
|
|
59
|
-
versions: createVersionObject('0.10.4'),
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
export async function addEditorToProject(project) {
|
|
63
|
-
const url = '/@id/@twick/2d/editor';
|
|
64
|
-
const imported = await import(
|
|
65
|
-
/* webpackIgnore: true */ /* @vite-ignore */ url);
|
|
66
|
-
const plugin = imported.default();
|
|
67
|
-
return {
|
|
68
|
-
...project,
|
|
69
|
-
plugins: [...project.plugins, plugin],
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZVByb2plY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBwL21ha2VQcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sYUFBYSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFaEMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRTlDLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUF3QjtJQUM3RCxNQUFNLEVBQUU7UUFDTixVQUFVLEVBQUUsVUFBVTtRQUN0QixLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDO1FBQ3BCLElBQUksRUFBRSxFQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBQztLQUN6QjtJQUNELFNBQVMsRUFBRTtRQUNULFFBQVEsRUFBRTtZQUNSLElBQUksRUFBRSxrQkFBa0I7U0FDekI7UUFDRCxHQUFHLEVBQUUsRUFBRTtRQUNQLGVBQWUsRUFBRSxDQUFDO1FBQ2xCLFVBQVUsRUFBRSxNQUFNO0tBQ25CO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsR0FBRyxFQUFFLEVBQUU7UUFDUCxlQUFlLEVBQUUsQ0FBQztLQUNuQjtDQUNGLENBQUM7QUFFRixNQUFNLFVBQVUsV0FBVyxDQUFDLE9BQW9CO0lBQzlDLGlDQUFpQztJQUNqQyxrREFBa0Q7SUFDbEQsS0FBSyxhQUFhLENBQUM7SUFFbkIsTUFBTSxRQUFRLEdBQUc7UUFDZixHQUFHLDBCQUEwQjtRQUM3QixHQUFHLE9BQU8sQ0FBQyxRQUFRO1FBQ25CLE1BQU0sRUFBRTtZQUNOLEdBQUcsMEJBQTBCLENBQUMsTUFBTTtZQUNwQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsTUFBTTtTQUM1QjtRQUNELFNBQVMsRUFBRTtZQUNULEdBQUcsMEJBQTBCLENBQUMsU0FBUztZQUN2QyxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsU0FBUztTQUMvQjtRQUNELE9BQU8sRUFBRTtZQUNQLEdBQUcsMEJBQTBCLENBQUMsT0FBTztZQUNyQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsT0FBTztTQUM3QjtLQUNGLENBQUM7SUFFRiwrQ0FBK0M7SUFDL0MsTUFBTSxpQkFBaUIsR0FBRztRQUN4QixHQUFHLFFBQVE7UUFDWCxNQUFNLEVBQUU7WUFDTixHQUFHLFFBQVEsQ0FBQyxNQUFNO1lBQ2xCLFVBQVUsRUFBRSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVcsQ0FBQztZQUNsRCxJQUFJLEVBQUUsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDeEM7S0FDRixDQUFDO0lBRUYsT0FBTztRQUNMLEdBQUcsT0FBTztRQUNWLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxJQUFJLFNBQVM7UUFDL0IsUUFBUSxFQUFFLGlCQUFpQjtRQUMzQixPQUFPLEVBQUUsRUFBRTtRQUNYLE1BQU0sRUFBRSxJQUFJLE1BQU0sRUFBRTtRQUNwQixRQUFRLEVBQUUsbUJBQW1CLENBQUMsUUFBUSxDQUFDO0tBQ3hDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxPQUFnQjtJQUN2RCxNQUFNLEdBQUcsR0FBRyx1QkFBdUIsQ0FBQztJQUNwQyxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU07SUFDM0IseUJBQXlCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUNqRCxDQUFDO0lBQ0YsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBRWxDLE9BQU87UUFDTCxHQUFHLE9BQU87UUFDVixPQUFPLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO0tBQ3RDLENBQUM7QUFDSixDQUFDIn0=
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { Project } from './Project';
|
|
2
|
-
type SharedSettings = Project['settings']['shared'];
|
|
3
|
-
type PreviewSettings = Project['settings']['preview'];
|
|
4
|
-
type RenderingSettings = Project['settings']['rendering'];
|
|
5
|
-
export declare function getFullPreviewSettings(project: Project): SharedSettings & PreviewSettings;
|
|
6
|
-
export declare function getFullRenderingSettings(project: Project): SharedSettings & RenderingSettings;
|
|
7
|
-
export {};
|
|
8
|
-
//# sourceMappingURL=project-settings.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"project-settings.d.ts","sourceRoot":"","sources":["../../src/app/project-settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAEvC,KAAK,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC;AACpD,KAAK,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC;AACtD,KAAK,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC;AAE1D,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,GACf,cAAc,GAAG,eAAe,CAKlC;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,GACf,cAAc,GAAG,iBAAiB,CAKpC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export function getFullPreviewSettings(project) {
|
|
2
|
-
return {
|
|
3
|
-
...project.settings.shared,
|
|
4
|
-
...project.settings.preview,
|
|
5
|
-
};
|
|
6
|
-
}
|
|
7
|
-
export function getFullRenderingSettings(project) {
|
|
8
|
-
return {
|
|
9
|
-
...project.settings.shared,
|
|
10
|
-
...project.settings.rendering,
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1zZXR0aW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcHAvcHJvamVjdC1zZXR0aW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLE9BQWdCO0lBRWhCLE9BQU87UUFDTCxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTTtRQUMxQixHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTztLQUM1QixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FDdEMsT0FBZ0I7SUFFaEIsT0FBTztRQUNMLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNO1FBQzFCLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTO0tBQzlCLENBQUM7QUFDSixDQUFDIn0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decorate.d.ts","sourceRoot":"","sources":["../../src/decorators/decorate.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,eAAe,EAAE,QAQtE"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export function decorate(fn, ...decorators) {
|
|
2
|
-
const target = { [fn.name]: fn };
|
|
3
|
-
const descriptor = Object.getOwnPropertyDescriptor(target, fn.name);
|
|
4
|
-
if (descriptor) {
|
|
5
|
-
for (let i = decorators.length - 1; i >= 0; i--) {
|
|
6
|
-
decorators[i](target, fn.name, descriptor);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjb3JhdG9ycy9kZWNvcmF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsUUFBUSxDQUFDLEVBQVksRUFBRSxHQUFHLFVBQTZCO0lBQ3JFLE1BQU0sTUFBTSxHQUFHLEVBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFDLENBQUM7SUFDL0IsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEUsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNmLEtBQUssSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2hELFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM3QyxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMifQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deprecated.d.ts","sourceRoot":"","sources":["../../src/decorators/deprecated.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,eAAe,CAuB5D"}
|