@twick/core 0.11.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/LICENSE +21 -0
- package/lib/app/Logger.d.ts +105 -0
- package/lib/app/Logger.d.ts.map +1 -0
- package/lib/app/Logger.js +77 -0
- package/lib/app/PlaybackManager.d.ts +55 -0
- package/lib/app/PlaybackManager.d.ts.map +1 -0
- package/lib/app/PlaybackManager.js +179 -0
- package/lib/app/PlaybackStatus.d.ts +30 -0
- package/lib/app/PlaybackStatus.d.ts.map +1 -0
- package/lib/app/PlaybackStatus.js +46 -0
- package/lib/app/Player.d.ts +130 -0
- package/lib/app/Player.d.ts.map +1 -0
- package/lib/app/Player.js +375 -0
- package/lib/app/Project.d.ts +145 -0
- package/lib/app/Project.d.ts.map +1 -0
- package/lib/app/Project.js +10 -0
- package/lib/app/Renderer.d.ts +90 -0
- package/lib/app/Renderer.d.ts.map +1 -0
- package/lib/app/Renderer.js +318 -0
- package/lib/app/SharedWebGLContext.d.ts +24 -0
- package/lib/app/SharedWebGLContext.d.ts.map +1 -0
- package/lib/app/SharedWebGLContext.js +200 -0
- package/lib/app/Stage.d.ts +30 -0
- package/lib/app/Stage.d.ts.map +1 -0
- package/lib/app/Stage.js +75 -0
- package/lib/app/TimeEstimator.d.ts +53 -0
- package/lib/app/TimeEstimator.d.ts.map +1 -0
- package/lib/app/TimeEstimator.js +70 -0
- package/lib/app/index.d.ts +16 -0
- package/lib/app/index.d.ts.map +1 -0
- package/lib/app/index.js +16 -0
- package/lib/app/makeProject.d.ts +15 -0
- package/lib/app/makeProject.d.ts.map +1 -0
- package/lib/app/makeProject.js +72 -0
- package/lib/app/project-settings.d.ts +8 -0
- package/lib/app/project-settings.d.ts.map +1 -0
- package/lib/app/project-settings.js +13 -0
- package/lib/decorators/decorate.d.ts +2 -0
- package/lib/decorators/decorate.d.ts.map +1 -0
- package/lib/decorators/decorate.js +10 -0
- package/lib/decorators/deprecated.d.ts +5 -0
- package/lib/decorators/deprecated.d.ts.map +1 -0
- package/lib/decorators/deprecated.js +23 -0
- package/lib/decorators/index.d.ts +9 -0
- package/lib/decorators/index.d.ts.map +1 -0
- package/lib/decorators/index.js +9 -0
- package/lib/decorators/lazy.d.ts +14 -0
- package/lib/decorators/lazy.d.ts.map +1 -0
- package/lib/decorators/lazy.js +27 -0
- package/lib/decorators/threadable.d.ts +2 -0
- package/lib/decorators/threadable.d.ts.map +1 -0
- package/lib/decorators/threadable.js +7 -0
- package/lib/events/AsyncEventDispatcher.d.ts +45 -0
- package/lib/events/AsyncEventDispatcher.d.ts.map +1 -0
- package/lib/events/AsyncEventDispatcher.js +33 -0
- package/lib/events/EventDispatcher.d.ts +38 -0
- package/lib/events/EventDispatcher.d.ts.map +1 -0
- package/lib/events/EventDispatcher.js +29 -0
- package/lib/events/EventDispatcherBase.d.ts +55 -0
- package/lib/events/EventDispatcherBase.d.ts.map +1 -0
- package/lib/events/EventDispatcherBase.js +68 -0
- package/lib/events/FlagDispatcher.d.ts +54 -0
- package/lib/events/FlagDispatcher.d.ts.map +1 -0
- package/lib/events/FlagDispatcher.js +63 -0
- package/lib/events/ValueDispatcher.d.ts +81 -0
- package/lib/events/ValueDispatcher.d.ts.map +1 -0
- package/lib/events/ValueDispatcher.js +97 -0
- package/lib/events/index.d.ts +11 -0
- package/lib/events/index.d.ts.map +1 -0
- package/lib/events/index.js +11 -0
- package/lib/exporter/Exporter.d.ts +101 -0
- package/lib/exporter/Exporter.d.ts.map +1 -0
- package/lib/exporter/Exporter.js +2 -0
- package/lib/exporter/FFmpegExporter.d.ts +50 -0
- package/lib/exporter/FFmpegExporter.d.ts.map +1 -0
- package/lib/exporter/FFmpegExporter.js +140 -0
- package/lib/exporter/ImageExporter.d.ts +34 -0
- package/lib/exporter/ImageExporter.d.ts.map +1 -0
- package/lib/exporter/ImageExporter.js +80 -0
- package/lib/exporter/WasmExporter.d.ts +19 -0
- package/lib/exporter/WasmExporter.d.ts.map +1 -0
- package/lib/exporter/WasmExporter.js +78 -0
- package/lib/exporter/download-videos.d.ts +3 -0
- package/lib/exporter/download-videos.d.ts.map +1 -0
- package/lib/exporter/download-videos.js +45 -0
- package/lib/exporter/index.d.ts +5 -0
- package/lib/exporter/index.d.ts.map +1 -0
- package/lib/exporter/index.js +5 -0
- package/lib/flow/all.d.ts +18 -0
- package/lib/flow/all.d.ts.map +1 -0
- package/lib/flow/all.js +25 -0
- package/lib/flow/any.d.ts +18 -0
- package/lib/flow/any.d.ts.map +1 -0
- package/lib/flow/any.js +25 -0
- package/lib/flow/chain.d.ts +36 -0
- package/lib/flow/chain.d.ts.map +1 -0
- package/lib/flow/chain.js +46 -0
- package/lib/flow/delay.d.ts +29 -0
- package/lib/flow/delay.d.ts.map +1 -0
- package/lib/flow/delay.js +39 -0
- package/lib/flow/every.d.ts +41 -0
- package/lib/flow/every.d.ts.map +1 -0
- package/lib/flow/every.js +61 -0
- package/lib/flow/index.d.ts +17 -0
- package/lib/flow/index.d.ts.map +1 -0
- package/lib/flow/index.js +17 -0
- package/lib/flow/join.d.ts +35 -0
- package/lib/flow/join.d.ts.map +1 -0
- package/lib/flow/join.js +33 -0
- package/lib/flow/loop.d.ts +58 -0
- package/lib/flow/loop.d.ts.map +1 -0
- package/lib/flow/loop.js +51 -0
- package/lib/flow/loopFor.d.ts +25 -0
- package/lib/flow/loopFor.d.ts.map +1 -0
- package/lib/flow/loopFor.js +42 -0
- package/lib/flow/names.d.ts +3 -0
- package/lib/flow/names.d.ts.map +1 -0
- package/lib/flow/names.js +11 -0
- package/lib/flow/run.d.ts +45 -0
- package/lib/flow/run.d.ts.map +1 -0
- package/lib/flow/run.js +14 -0
- package/lib/flow/scheduling.d.ts +18 -0
- package/lib/flow/scheduling.d.ts.map +1 -0
- package/lib/flow/scheduling.js +33 -0
- package/lib/flow/sequence.d.ts +22 -0
- package/lib/flow/sequence.d.ts.map +1 -0
- package/lib/flow/sequence.js +31 -0
- package/lib/index.d.ts +16 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +16 -0
- package/lib/media/index.d.ts +7 -0
- package/lib/media/index.d.ts.map +1 -0
- package/lib/media/index.js +7 -0
- package/lib/media/loadImage.d.ts +8 -0
- package/lib/media/loadImage.d.ts.map +1 -0
- package/lib/media/loadImage.js +29 -0
- package/lib/plugin/DefaultPlugin.d.ts +10 -0
- package/lib/plugin/DefaultPlugin.d.ts.map +1 -0
- package/lib/plugin/DefaultPlugin.js +17 -0
- package/lib/plugin/Plugin.d.ts +53 -0
- package/lib/plugin/Plugin.d.ts.map +1 -0
- package/lib/plugin/Plugin.js +2 -0
- package/lib/plugin/index.d.ts +3 -0
- package/lib/plugin/index.d.ts.map +1 -0
- package/lib/plugin/index.js +3 -0
- package/lib/plugin/makePlugin.d.ts +15 -0
- package/lib/plugin/makePlugin.d.ts.map +1 -0
- package/lib/plugin/makePlugin.js +16 -0
- package/lib/scenes/GeneratorScene.d.ts +95 -0
- package/lib/scenes/GeneratorScene.d.ts.map +1 -0
- package/lib/scenes/GeneratorScene.js +273 -0
- package/lib/scenes/Inspectable.d.ts +71 -0
- package/lib/scenes/Inspectable.d.ts.map +1 -0
- package/lib/scenes/Inspectable.js +4 -0
- package/lib/scenes/LifecycleEvents.d.ts +18 -0
- package/lib/scenes/LifecycleEvents.d.ts.map +1 -0
- package/lib/scenes/LifecycleEvents.js +45 -0
- package/lib/scenes/Random.d.ts +66 -0
- package/lib/scenes/Random.d.ts.map +1 -0
- package/lib/scenes/Random.js +101 -0
- package/lib/scenes/Scene.d.ts +298 -0
- package/lib/scenes/Scene.d.ts.map +1 -0
- package/lib/scenes/Scene.js +25 -0
- package/lib/scenes/SceneState.d.ts +34 -0
- package/lib/scenes/SceneState.d.ts.map +1 -0
- package/lib/scenes/SceneState.js +35 -0
- package/lib/scenes/Shaders.d.ts +63 -0
- package/lib/scenes/Shaders.d.ts.map +1 -0
- package/lib/scenes/Shaders.js +158 -0
- package/lib/scenes/Slides.d.ts +33 -0
- package/lib/scenes/Slides.d.ts.map +1 -0
- package/lib/scenes/Slides.js +115 -0
- package/lib/scenes/Threadable.d.ts +19 -0
- package/lib/scenes/Threadable.d.ts.map +1 -0
- package/lib/scenes/Threadable.js +4 -0
- package/lib/scenes/Variables.d.ts +24 -0
- package/lib/scenes/Variables.d.ts.map +1 -0
- package/lib/scenes/Variables.js +39 -0
- package/lib/scenes/index.d.ts +16 -0
- package/lib/scenes/index.d.ts.map +1 -0
- package/lib/scenes/index.js +16 -0
- package/lib/signals/CompoundSignalContext.d.ts +21 -0
- package/lib/signals/CompoundSignalContext.d.ts.map +1 -0
- package/lib/signals/CompoundSignalContext.js +73 -0
- package/lib/signals/ComputedContext.d.ts +14 -0
- package/lib/signals/ComputedContext.d.ts.map +1 -0
- package/lib/signals/ComputedContext.js +36 -0
- package/lib/signals/DependencyContext.d.ts +32 -0
- package/lib/signals/DependencyContext.d.ts.map +1 -0
- package/lib/signals/DependencyContext.js +87 -0
- package/lib/signals/SignalContext.d.ts +120 -0
- package/lib/signals/SignalContext.d.ts.map +1 -0
- package/lib/signals/SignalContext.js +245 -0
- package/lib/signals/createComputed.d.ts +3 -0
- package/lib/signals/createComputed.d.ts.map +1 -0
- package/lib/signals/createComputed.js +5 -0
- package/lib/signals/createComputedAsync.d.ts +4 -0
- package/lib/signals/createComputedAsync.d.ts.map +1 -0
- package/lib/signals/createComputedAsync.js +15 -0
- package/lib/signals/createSignal.d.ts +5 -0
- package/lib/signals/createSignal.d.ts.map +1 -0
- package/lib/signals/createSignal.js +6 -0
- package/lib/signals/index.d.ts +16 -0
- package/lib/signals/index.d.ts.map +1 -0
- package/lib/signals/index.js +16 -0
- package/lib/signals/symbols.d.ts +2 -0
- package/lib/signals/symbols.d.ts.map +1 -0
- package/lib/signals/symbols.js +2 -0
- package/lib/signals/types.d.ts +51 -0
- package/lib/signals/types.d.ts.map +1 -0
- package/lib/signals/types.js +2 -0
- package/lib/signals/utils.d.ts +5 -0
- package/lib/signals/utils.d.ts.map +1 -0
- package/lib/signals/utils.js +10 -0
- package/lib/threading/Thread.d.ts +77 -0
- package/lib/threading/Thread.d.ts.map +1 -0
- package/lib/threading/Thread.js +169 -0
- package/lib/threading/ThreadGenerator.d.ts +39 -0
- package/lib/threading/ThreadGenerator.d.ts.map +1 -0
- package/lib/threading/ThreadGenerator.js +17 -0
- package/lib/threading/cancel.d.ts +17 -0
- package/lib/threading/cancel.d.ts.map +1 -0
- package/lib/threading/cancel.js +26 -0
- package/lib/threading/index.d.ts +11 -0
- package/lib/threading/index.d.ts.map +1 -0
- package/lib/threading/index.js +11 -0
- package/lib/threading/spawn.d.ts +28 -0
- package/lib/threading/spawn.d.ts.map +1 -0
- package/lib/threading/spawn.js +30 -0
- package/lib/threading/threads.d.ts +46 -0
- package/lib/threading/threads.d.ts.map +1 -0
- package/lib/threading/threads.js +89 -0
- package/lib/transitions/fadeTransition.d.ts +8 -0
- package/lib/transitions/fadeTransition.d.ts.map +1 -0
- package/lib/transitions/fadeTransition.js +16 -0
- package/lib/transitions/index.d.ts +11 -0
- package/lib/transitions/index.d.ts.map +1 -0
- package/lib/transitions/index.js +11 -0
- package/lib/transitions/slideTransition.d.ts +18 -0
- package/lib/transitions/slideTransition.d.ts.map +1 -0
- package/lib/transitions/slideTransition.js +14 -0
- package/lib/transitions/useTransition.d.ts +10 -0
- package/lib/transitions/useTransition.d.ts.map +1 -0
- package/lib/transitions/useTransition.js +27 -0
- package/lib/transitions/zoomInTransition.d.ts +10 -0
- package/lib/transitions/zoomInTransition.d.ts.map +1 -0
- package/lib/transitions/zoomInTransition.js +33 -0
- package/lib/transitions/zoomOutTransition.d.ts +10 -0
- package/lib/transitions/zoomOutTransition.d.ts.map +1 -0
- package/lib/transitions/zoomOutTransition.js +33 -0
- package/lib/tsconfig.build.tsbuildinfo +1 -0
- package/lib/tweening/helpers.d.ts +5 -0
- package/lib/tweening/helpers.d.ts.map +1 -0
- package/lib/tweening/helpers.js +16 -0
- package/lib/tweening/index.d.ts +11 -0
- package/lib/tweening/index.d.ts.map +1 -0
- package/lib/tweening/index.js +11 -0
- package/lib/tweening/interpolationFunctions.d.ts +38 -0
- package/lib/tweening/interpolationFunctions.d.ts.map +1 -0
- package/lib/tweening/interpolationFunctions.js +107 -0
- package/lib/tweening/spring.d.ts +20 -0
- package/lib/tweening/spring.d.ts.map +1 -0
- package/lib/tweening/spring.js +103 -0
- package/lib/tweening/timingFunctions.d.ts +46 -0
- package/lib/tweening/timingFunctions.d.ts.map +1 -0
- package/lib/tweening/timingFunctions.js +233 -0
- package/lib/tweening/tween.d.ts +3 -0
- package/lib/tweening/tween.d.ts.map +1 -0
- package/lib/tweening/tween.js +21 -0
- package/lib/types/BBox.d.ts +73 -0
- package/lib/types/BBox.d.ts.map +1 -0
- package/lib/types/BBox.js +249 -0
- package/lib/types/Canvas.d.ts +3 -0
- package/lib/types/Canvas.d.ts.map +1 -0
- package/lib/types/Canvas.js +2 -0
- package/lib/types/Color.d.ts +65 -0
- package/lib/types/Color.d.ts.map +1 -0
- package/lib/types/Color.js +185 -0
- package/lib/types/Matrix.d.ts +3 -0
- package/lib/types/Matrix.d.ts.map +1 -0
- package/lib/types/Matrix.js +10 -0
- package/lib/types/Matrix2D.d.ts +363 -0
- package/lib/types/Matrix2D.d.ts.map +1 -0
- package/lib/types/Matrix2D.js +554 -0
- package/lib/types/Origin.d.ts +17 -0
- package/lib/types/Origin.d.ts.map +1 -0
- package/lib/types/Origin.js +53 -0
- package/lib/types/Spacing.d.ts +36 -0
- package/lib/types/Spacing.d.ts.map +1 -0
- package/lib/types/Spacing.js +70 -0
- package/lib/types/Type.d.ts +9 -0
- package/lib/types/Type.d.ts.map +1 -0
- package/lib/types/Type.js +5 -0
- package/lib/types/Vector.d.ts +203 -0
- package/lib/types/Vector.d.ts.map +1 -0
- package/lib/types/Vector.js +355 -0
- package/lib/types/alignment-enums.d.ts +22 -0
- package/lib/types/alignment-enums.d.ts.map +1 -0
- package/lib/types/alignment-enums.js +25 -0
- package/lib/types/index.d.ts +17 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/index.js +17 -0
- package/lib/types/vector-transformations.d.ts +20 -0
- package/lib/types/vector-transformations.d.ts.map +1 -0
- package/lib/types/vector-transformations.js +31 -0
- package/lib/utils/DetailedError.d.ts +24 -0
- package/lib/utils/DetailedError.d.ts.map +1 -0
- package/lib/utils/DetailedError.js +16 -0
- package/lib/utils/ExperimentalError.d.ts +10 -0
- package/lib/utils/ExperimentalError.d.ts.map +1 -0
- package/lib/utils/ExperimentalError.js +32 -0
- package/lib/utils/Semaphore.d.ts +12 -0
- package/lib/utils/Semaphore.d.ts.map +1 -0
- package/lib/utils/Semaphore.js +25 -0
- package/lib/utils/beginSlide.d.ts +3 -0
- package/lib/utils/beginSlide.d.ts.map +1 -0
- package/lib/utils/beginSlide.js +12 -0
- package/lib/utils/capitalize.d.ts +2 -0
- package/lib/utils/capitalize.d.ts.map +1 -0
- package/lib/utils/capitalize.js +4 -0
- package/lib/utils/createRef.d.ts +15 -0
- package/lib/utils/createRef.d.ts.map +1 -0
- package/lib/utils/createRef.js +21 -0
- package/lib/utils/createRefArray.d.ts +27 -0
- package/lib/utils/createRefArray.d.ts.map +1 -0
- package/lib/utils/createRefArray.js +49 -0
- package/lib/utils/createRefMap.d.ts +50 -0
- package/lib/utils/createRefMap.d.ts.map +1 -0
- package/lib/utils/createRefMap.js +77 -0
- package/lib/utils/debug.d.ts +24 -0
- package/lib/utils/debug.d.ts.map +1 -0
- package/lib/utils/debug.js +47 -0
- package/lib/utils/deprecate.d.ts +9 -0
- package/lib/utils/deprecate.d.ts.map +1 -0
- package/lib/utils/deprecate.js +15 -0
- package/lib/utils/errorToLog.d.ts +3 -0
- package/lib/utils/errorToLog.d.ts.map +1 -0
- package/lib/utils/errorToLog.js +8 -0
- package/lib/utils/experimentalLog.d.ts +3 -0
- package/lib/utils/experimentalLog.d.ts.map +1 -0
- package/lib/utils/experimentalLog.js +10 -0
- package/lib/utils/getContext.d.ts +2 -0
- package/lib/utils/getContext.d.ts.map +1 -0
- package/lib/utils/getContext.js +8 -0
- package/lib/utils/index.d.ts +26 -0
- package/lib/utils/index.d.ts.map +1 -0
- package/lib/utils/index.js +26 -0
- package/lib/utils/math.d.ts +15 -0
- package/lib/utils/math.d.ts.map +1 -0
- package/lib/utils/math.js +15 -0
- package/lib/utils/range.d.ts +40 -0
- package/lib/utils/range.d.ts.map +1 -0
- package/lib/utils/range.js +18 -0
- package/lib/utils/useContext.d.ts +13 -0
- package/lib/utils/useContext.d.ts.map +1 -0
- package/lib/utils/useContext.js +18 -0
- package/lib/utils/usePlayback.d.ts +8 -0
- package/lib/utils/usePlayback.d.ts.map +1 -0
- package/lib/utils/usePlayback.js +20 -0
- package/lib/utils/useScene.d.ts +17 -0
- package/lib/utils/useScene.d.ts.map +1 -0
- package/lib/utils/useScene.js +33 -0
- package/lib/utils/useThread.d.ts +8 -0
- package/lib/utils/useThread.d.ts.map +1 -0
- package/lib/utils/useThread.js +24 -0
- package/lib/utils/useTime.d.ts +19 -0
- package/lib/utils/useTime.d.ts.map +1 -0
- package/lib/utils/useTime.js +22 -0
- package/package.json +36 -0
- package/project.d.ts +24 -0
- package/shaders/common.glsl +15 -0
- package/shaders/fragment.glsl +8 -0
- package/tsconfig.project.json +14 -0
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
import type { AssetInfo, Logger, PlaybackStatus, SharedWebGLContext } from '../app';
|
|
2
|
+
import type { SubscribableEvent, SubscribableValueEvent } from '../events';
|
|
3
|
+
import type { Plugin } from '../plugin';
|
|
4
|
+
import type { SignalValue } from '../signals';
|
|
5
|
+
import type { Vector2 } from '../types';
|
|
6
|
+
import type { LifecycleEvents } from './LifecycleEvents';
|
|
7
|
+
import type { Shaders } from './Shaders';
|
|
8
|
+
import type { Slides } from './Slides';
|
|
9
|
+
import type { Variables } from './Variables';
|
|
10
|
+
/**
|
|
11
|
+
* The constructor used when creating new scenes.
|
|
12
|
+
*
|
|
13
|
+
* @remarks
|
|
14
|
+
* Each class implementing the {@link Scene} interface should have a matching
|
|
15
|
+
* constructor.
|
|
16
|
+
*
|
|
17
|
+
* @typeParam T - The type of the configuration object. This object will be
|
|
18
|
+
* passed to the constructor from
|
|
19
|
+
* {@link SceneDescription.config}.
|
|
20
|
+
*/
|
|
21
|
+
export interface SceneConstructor<T> {
|
|
22
|
+
new (description: FullSceneDescription<T>): Scene;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Describes a scene exposed by scene files.
|
|
26
|
+
*
|
|
27
|
+
* @typeParam T - The type of the configuration object.
|
|
28
|
+
*/
|
|
29
|
+
export interface SceneDescription<T = unknown> {
|
|
30
|
+
/**
|
|
31
|
+
* Name of the scene.
|
|
32
|
+
*/
|
|
33
|
+
name: string;
|
|
34
|
+
/**
|
|
35
|
+
* The class used to instantiate the scene.
|
|
36
|
+
*/
|
|
37
|
+
klass: SceneConstructor<T>;
|
|
38
|
+
/**
|
|
39
|
+
* Configuration object.
|
|
40
|
+
*/
|
|
41
|
+
config: T;
|
|
42
|
+
/**
|
|
43
|
+
* The stack trace at the moment of creation.
|
|
44
|
+
*/
|
|
45
|
+
stack?: string;
|
|
46
|
+
/**
|
|
47
|
+
* A list of plugins to include in the project.
|
|
48
|
+
*/
|
|
49
|
+
plugins?: (Plugin | string)[];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Describes a complete scene together with the meta file.
|
|
53
|
+
*
|
|
54
|
+
* @typeParam T - The type of the configuration object.
|
|
55
|
+
*/
|
|
56
|
+
export interface FullSceneDescription<T = unknown> extends SceneDescription<T> {
|
|
57
|
+
size: Vector2;
|
|
58
|
+
resolutionScale: number;
|
|
59
|
+
playback: PlaybackStatus;
|
|
60
|
+
logger: Logger;
|
|
61
|
+
sharedWebGLContext: SharedWebGLContext;
|
|
62
|
+
experimentalFeatures?: boolean;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* A part of the {@link SceneDescription} that can be updated during reload.
|
|
66
|
+
*
|
|
67
|
+
* @typeParam T - The type of the configuration object.
|
|
68
|
+
*/
|
|
69
|
+
export interface SceneDescriptionReload<T = unknown> {
|
|
70
|
+
size?: Vector2;
|
|
71
|
+
resolutionScale?: number;
|
|
72
|
+
config?: T;
|
|
73
|
+
stack?: string;
|
|
74
|
+
}
|
|
75
|
+
export type DescriptionOf<TScene> = TScene extends Scene<infer TConfig> ? SceneDescription<TConfig> : never;
|
|
76
|
+
/**
|
|
77
|
+
* Describes cached information about the timing of a scene.
|
|
78
|
+
*/
|
|
79
|
+
export interface CachedSceneData {
|
|
80
|
+
firstFrame: number;
|
|
81
|
+
lastFrame: number;
|
|
82
|
+
transitionDuration: number;
|
|
83
|
+
duration: number;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Signifies the various stages of a {@link Scene}'s render lifecycle.
|
|
87
|
+
*/
|
|
88
|
+
export declare enum SceneRenderEvent {
|
|
89
|
+
/**
|
|
90
|
+
* Occurs before the render starts when the Scene transitions are applied.
|
|
91
|
+
*/
|
|
92
|
+
BeforeRender = 0,
|
|
93
|
+
/**
|
|
94
|
+
* Occurs at the beginning of a render when the Scene's
|
|
95
|
+
* {@link utils.useContext} handlers are applied.
|
|
96
|
+
*/
|
|
97
|
+
BeginRender = 1,
|
|
98
|
+
/**
|
|
99
|
+
* Occurs at the end of a render when the Scene's
|
|
100
|
+
* {@link utils.useContextAfter} handlers are applied.
|
|
101
|
+
*/
|
|
102
|
+
FinishRender = 2,
|
|
103
|
+
/**
|
|
104
|
+
* Occurs after a render ends.
|
|
105
|
+
*/
|
|
106
|
+
AfterRender = 3
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* The main interface for scenes.
|
|
110
|
+
*
|
|
111
|
+
* @remarks
|
|
112
|
+
* Any class implementing this interface should have a constructor matching
|
|
113
|
+
* {@link SceneConstructor}.
|
|
114
|
+
*
|
|
115
|
+
* @typeParam T - The type of the configuration object.
|
|
116
|
+
*/
|
|
117
|
+
export interface Scene<T = unknown> {
|
|
118
|
+
/**
|
|
119
|
+
* Name of the scene.
|
|
120
|
+
*
|
|
121
|
+
* @remarks
|
|
122
|
+
* Will be passed as the second argument to the constructor.
|
|
123
|
+
*/
|
|
124
|
+
readonly name: string;
|
|
125
|
+
/**
|
|
126
|
+
* Reference to the project.
|
|
127
|
+
*/
|
|
128
|
+
readonly playback: PlaybackStatus;
|
|
129
|
+
/**
|
|
130
|
+
* @experimental
|
|
131
|
+
*/
|
|
132
|
+
readonly shaders: Shaders;
|
|
133
|
+
readonly slides: Slides;
|
|
134
|
+
readonly logger: Logger;
|
|
135
|
+
readonly variables: Variables;
|
|
136
|
+
creationStack?: string;
|
|
137
|
+
/**
|
|
138
|
+
* The frame at which this scene starts.
|
|
139
|
+
*/
|
|
140
|
+
get firstFrame(): number;
|
|
141
|
+
/**
|
|
142
|
+
* The frame at which this scene ends.
|
|
143
|
+
*/
|
|
144
|
+
get lastFrame(): number;
|
|
145
|
+
/**
|
|
146
|
+
* Triggered when the cached data changes.
|
|
147
|
+
*
|
|
148
|
+
* @eventProperty
|
|
149
|
+
*/
|
|
150
|
+
get onCacheChanged(): SubscribableValueEvent<CachedSceneData>;
|
|
151
|
+
/**
|
|
152
|
+
* Triggered when the scene is reloaded.
|
|
153
|
+
*
|
|
154
|
+
* @eventProperty
|
|
155
|
+
*/
|
|
156
|
+
get onReloaded(): SubscribableEvent<void>;
|
|
157
|
+
/**
|
|
158
|
+
* Triggered after scene is recalculated.
|
|
159
|
+
*
|
|
160
|
+
* @eventProperty
|
|
161
|
+
*/
|
|
162
|
+
get onRecalculated(): SubscribableEvent<void>;
|
|
163
|
+
/**
|
|
164
|
+
* The {@link scenes.LifecycleEvents} of this scene.
|
|
165
|
+
*/
|
|
166
|
+
get lifecycleEvents(): LifecycleEvents;
|
|
167
|
+
/**
|
|
168
|
+
* The {@link scenes.LifecycleEvents} of this scene.
|
|
169
|
+
*
|
|
170
|
+
* @deprecated Use {@link lifecycleEvents} instead.
|
|
171
|
+
*/
|
|
172
|
+
get LifecycleEvents(): LifecycleEvents;
|
|
173
|
+
/**
|
|
174
|
+
* Triggered at various stages of the render lifecycle with an event title and a Context2D.
|
|
175
|
+
*
|
|
176
|
+
* @eventProperty
|
|
177
|
+
*/
|
|
178
|
+
get onRenderLifecycle(): SubscribableEvent<[
|
|
179
|
+
SceneRenderEvent,
|
|
180
|
+
CanvasRenderingContext2D
|
|
181
|
+
]>;
|
|
182
|
+
/**
|
|
183
|
+
* Triggered when the scene is reset.
|
|
184
|
+
*
|
|
185
|
+
* @eventProperty
|
|
186
|
+
*/
|
|
187
|
+
get onReset(): SubscribableEvent<void>;
|
|
188
|
+
/**
|
|
189
|
+
* The scene directly before this scene, or null if omitted for performance.
|
|
190
|
+
*/
|
|
191
|
+
get previous(): Scene | null;
|
|
192
|
+
/**
|
|
193
|
+
* Whether experimental features are enabled.
|
|
194
|
+
*/
|
|
195
|
+
get experimentalFeatures(): boolean;
|
|
196
|
+
/**
|
|
197
|
+
* Render the scene onto a canvas.
|
|
198
|
+
*
|
|
199
|
+
* @param context - The context to used when rendering.
|
|
200
|
+
*/
|
|
201
|
+
render(context: CanvasRenderingContext2D): Promise<void>;
|
|
202
|
+
/**
|
|
203
|
+
* Reload the scene.
|
|
204
|
+
*
|
|
205
|
+
* @remarks
|
|
206
|
+
* This method is called whenever something related to this scene has changed:
|
|
207
|
+
* time events, source code, metadata, etc.
|
|
208
|
+
*
|
|
209
|
+
* Should trigger {@link onReloaded}.
|
|
210
|
+
*
|
|
211
|
+
* @param description - If present, an updated version of the description.
|
|
212
|
+
*/
|
|
213
|
+
reload(description?: SceneDescriptionReload<T>): void;
|
|
214
|
+
/**
|
|
215
|
+
* Recalculate the scene.
|
|
216
|
+
*
|
|
217
|
+
* @remarks
|
|
218
|
+
* The task of this method is to calculate new timings stored in the cache.
|
|
219
|
+
* When this method is invoked, `this.project.frame` is set to the frame at
|
|
220
|
+
* which this scene should start ({@link firstFrame}).
|
|
221
|
+
*
|
|
222
|
+
* At the end of execution, this method should set `this.project.frame` to the
|
|
223
|
+
* frame at which this scene ends ({@link lastFrame}).
|
|
224
|
+
*
|
|
225
|
+
* Should trigger {@link onRecalculated}.
|
|
226
|
+
*/
|
|
227
|
+
recalculate(setFrame: (frame: number) => void): Promise<void>;
|
|
228
|
+
/**
|
|
229
|
+
* Progress this scene one frame forward.
|
|
230
|
+
*/
|
|
231
|
+
next(): Promise<void>;
|
|
232
|
+
/**
|
|
233
|
+
* Reset this scene to its initial state.
|
|
234
|
+
*
|
|
235
|
+
* @param previous - If present, the previous scene.
|
|
236
|
+
*/
|
|
237
|
+
reset(previous?: Scene): Promise<void>;
|
|
238
|
+
/**
|
|
239
|
+
* Get the size of this scene.
|
|
240
|
+
*
|
|
241
|
+
* @remarks
|
|
242
|
+
* Usually returns `this.project.getSize()`.
|
|
243
|
+
*/
|
|
244
|
+
getSize(): Vector2;
|
|
245
|
+
/**
|
|
246
|
+
* Get the real size of this scene.
|
|
247
|
+
*
|
|
248
|
+
* @remarks
|
|
249
|
+
* Returns the size of the scene multiplied by the resolution scale.
|
|
250
|
+
* This is the actual size of the canvas onto which the scene is rendered.
|
|
251
|
+
*/
|
|
252
|
+
getRealSize(): Vector2;
|
|
253
|
+
/**
|
|
254
|
+
* Is this scene in the {@link SceneState.AfterTransitionIn} state?
|
|
255
|
+
*/
|
|
256
|
+
isAfterTransitionIn(): boolean;
|
|
257
|
+
/**
|
|
258
|
+
* Is this scene in the {@link SceneState.CanTransitionOut} state?
|
|
259
|
+
*/
|
|
260
|
+
canTransitionOut(): boolean;
|
|
261
|
+
/**
|
|
262
|
+
* Is this scene in the {@link SceneState.Finished} state?
|
|
263
|
+
*/
|
|
264
|
+
isFinished(): boolean;
|
|
265
|
+
/**
|
|
266
|
+
* Enter the {@link SceneState.Initial} state.
|
|
267
|
+
*/
|
|
268
|
+
enterInitial(): void;
|
|
269
|
+
/**
|
|
270
|
+
* Enter the {@link SceneState.AfterTransitionIn} state.
|
|
271
|
+
*/
|
|
272
|
+
enterAfterTransitionIn(): void;
|
|
273
|
+
/**
|
|
274
|
+
* Enter the {@link SceneState.CanTransitionOut} state.
|
|
275
|
+
*/
|
|
276
|
+
enterCanTransitionOut(): void;
|
|
277
|
+
/**
|
|
278
|
+
* Is this scene cached?
|
|
279
|
+
*
|
|
280
|
+
* @remarks
|
|
281
|
+
* Used only by {@link GeneratorScene}. Seeking through a project that
|
|
282
|
+
* contains at least one uncached scene will log a warning to the console.
|
|
283
|
+
*
|
|
284
|
+
* Should always return `true`.
|
|
285
|
+
*/
|
|
286
|
+
isCached(): boolean;
|
|
287
|
+
/**
|
|
288
|
+
* Get all media assets
|
|
289
|
+
*/
|
|
290
|
+
getMediaAssets(): Array<AssetInfo>;
|
|
291
|
+
stopAllMedia(): void;
|
|
292
|
+
adjustVolume(volumeScale: number): void;
|
|
293
|
+
/**
|
|
294
|
+
* Should this scene be rendered below the previous scene during a transition?
|
|
295
|
+
*/
|
|
296
|
+
previousOnTop: SignalValue<boolean>;
|
|
297
|
+
}
|
|
298
|
+
//# sourceMappingURL=Scene.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Scene.d.ts","sourceRoot":"","sources":["../../src/scenes/Scene.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Signifies the various stages of a {@link Scene}'s render lifecycle.
|
|
3
|
+
*/
|
|
4
|
+
export var SceneRenderEvent;
|
|
5
|
+
(function (SceneRenderEvent) {
|
|
6
|
+
/**
|
|
7
|
+
* Occurs before the render starts when the Scene transitions are applied.
|
|
8
|
+
*/
|
|
9
|
+
SceneRenderEvent[SceneRenderEvent["BeforeRender"] = 0] = "BeforeRender";
|
|
10
|
+
/**
|
|
11
|
+
* Occurs at the beginning of a render when the Scene's
|
|
12
|
+
* {@link utils.useContext} handlers are applied.
|
|
13
|
+
*/
|
|
14
|
+
SceneRenderEvent[SceneRenderEvent["BeginRender"] = 1] = "BeginRender";
|
|
15
|
+
/**
|
|
16
|
+
* Occurs at the end of a render when the Scene's
|
|
17
|
+
* {@link utils.useContextAfter} handlers are applied.
|
|
18
|
+
*/
|
|
19
|
+
SceneRenderEvent[SceneRenderEvent["FinishRender"] = 2] = "FinishRender";
|
|
20
|
+
/**
|
|
21
|
+
* Occurs after a render ends.
|
|
22
|
+
*/
|
|
23
|
+
SceneRenderEvent[SceneRenderEvent["AfterRender"] = 3] = "AfterRender";
|
|
24
|
+
})(SceneRenderEvent || (SceneRenderEvent = {}));
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NlbmVzL1NjZW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlHQTs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLGdCQW1CWDtBQW5CRCxXQUFZLGdCQUFnQjtJQUMxQjs7T0FFRztJQUNILHVFQUFZLENBQUE7SUFDWjs7O09BR0c7SUFDSCxxRUFBVyxDQUFBO0lBQ1g7OztPQUdHO0lBQ0gsdUVBQVksQ0FBQTtJQUNaOztPQUVHO0lBQ0gscUVBQVcsQ0FBQTtBQUNiLENBQUMsRUFuQlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQW1CM0IifQ==
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Describes the state of a scene.
|
|
3
|
+
*/
|
|
4
|
+
export declare enum SceneState {
|
|
5
|
+
/**
|
|
6
|
+
* The scene has just been created/reset.
|
|
7
|
+
*/
|
|
8
|
+
Initial = 0,
|
|
9
|
+
/**
|
|
10
|
+
* The scene has finished transitioning in.
|
|
11
|
+
*
|
|
12
|
+
* @remarks
|
|
13
|
+
* Informs the Project that the previous scene is no longer necessary and can
|
|
14
|
+
* be disposed of.
|
|
15
|
+
*/
|
|
16
|
+
AfterTransitionIn = 1,
|
|
17
|
+
/**
|
|
18
|
+
* The scene is ready to transition out.
|
|
19
|
+
*
|
|
20
|
+
* @remarks
|
|
21
|
+
* Informs the project that the next scene can begin.
|
|
22
|
+
* The {@link Scene.next} method will still be invoked until the next scene
|
|
23
|
+
* enters {@link AfterTransitionIn}.
|
|
24
|
+
*/
|
|
25
|
+
CanTransitionOut = 2,
|
|
26
|
+
/**
|
|
27
|
+
* The scene has finished.
|
|
28
|
+
*
|
|
29
|
+
* @remarks
|
|
30
|
+
* Invoking {@link Scene.next} won't have any effect.
|
|
31
|
+
*/
|
|
32
|
+
Finished = 3
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=SceneState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneState.d.ts","sourceRoot":"","sources":["../../src/scenes/SceneState.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,UAAU;IACpB;;OAEG;IACH,OAAO,IAAA;IAEP;;;;;;OAMG;IACH,iBAAiB,IAAA;IAEjB;;;;;;;OAOG;IACH,gBAAgB,IAAA;IAEhB;;;;;OAKG;IACH,QAAQ,IAAA;CACT"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Describes the state of a scene.
|
|
3
|
+
*/
|
|
4
|
+
export var SceneState;
|
|
5
|
+
(function (SceneState) {
|
|
6
|
+
/**
|
|
7
|
+
* The scene has just been created/reset.
|
|
8
|
+
*/
|
|
9
|
+
SceneState[SceneState["Initial"] = 0] = "Initial";
|
|
10
|
+
/**
|
|
11
|
+
* The scene has finished transitioning in.
|
|
12
|
+
*
|
|
13
|
+
* @remarks
|
|
14
|
+
* Informs the Project that the previous scene is no longer necessary and can
|
|
15
|
+
* be disposed of.
|
|
16
|
+
*/
|
|
17
|
+
SceneState[SceneState["AfterTransitionIn"] = 1] = "AfterTransitionIn";
|
|
18
|
+
/**
|
|
19
|
+
* The scene is ready to transition out.
|
|
20
|
+
*
|
|
21
|
+
* @remarks
|
|
22
|
+
* Informs the project that the next scene can begin.
|
|
23
|
+
* The {@link Scene.next} method will still be invoked until the next scene
|
|
24
|
+
* enters {@link AfterTransitionIn}.
|
|
25
|
+
*/
|
|
26
|
+
SceneState[SceneState["CanTransitionOut"] = 2] = "CanTransitionOut";
|
|
27
|
+
/**
|
|
28
|
+
* The scene has finished.
|
|
29
|
+
*
|
|
30
|
+
* @remarks
|
|
31
|
+
* Invoking {@link Scene.next} won't have any effect.
|
|
32
|
+
*/
|
|
33
|
+
SceneState[SceneState["Finished"] = 3] = "Finished";
|
|
34
|
+
})(SceneState || (SceneState = {}));
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmVTdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2VuZXMvU2NlbmVTdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLFVBZ0NYO0FBaENELFdBQVksVUFBVTtJQUNwQjs7T0FFRztJQUNILGlEQUFPLENBQUE7SUFFUDs7Ozs7O09BTUc7SUFDSCxxRUFBaUIsQ0FBQTtJQUVqQjs7Ozs7OztPQU9HO0lBQ0gsbUVBQWdCLENBQUE7SUFFaEI7Ozs7O09BS0c7SUFDSCxtREFBUSxDQUFBO0FBQ1YsQ0FBQyxFQWhDVyxVQUFVLEtBQVYsVUFBVSxRQWdDckIifQ==
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { SharedWebGLContext, WebGLContextOwner } from '../app/SharedWebGLContext';
|
|
2
|
+
import type { Scene } from './Scene';
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export declare const UNIFORM_RESOLUTION = "resolution";
|
|
7
|
+
/**
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export declare const UNIFORM_DESTINATION_TEXTURE = "destinationTexture";
|
|
11
|
+
/**
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
export declare const UNIFORM_SOURCE_TEXTURE = "sourceTexture";
|
|
15
|
+
/**
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
export declare const UNIFORM_TIME = "time";
|
|
19
|
+
/**
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
export declare const UNIFORM_DELTA_TIME = "deltaTime";
|
|
23
|
+
/**
|
|
24
|
+
* @internal
|
|
25
|
+
*/
|
|
26
|
+
export declare const UNIFORM_FRAMERATE = "framerate";
|
|
27
|
+
/**
|
|
28
|
+
* @internal
|
|
29
|
+
*/
|
|
30
|
+
export declare const UNIFORM_FRAME = "frame";
|
|
31
|
+
/**
|
|
32
|
+
* @internal
|
|
33
|
+
*/
|
|
34
|
+
export declare const UNIFORM_SOURCE_MATRIX = "sourceMatrix";
|
|
35
|
+
/**
|
|
36
|
+
* @internal
|
|
37
|
+
*/
|
|
38
|
+
export declare const UNIFORM_DESTINATION_MATRIX = "destinationMatrix";
|
|
39
|
+
/**
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
42
|
+
export declare class Shaders implements WebGLContextOwner {
|
|
43
|
+
private readonly scene;
|
|
44
|
+
private readonly sharedContext;
|
|
45
|
+
private gl;
|
|
46
|
+
private positionBuffer;
|
|
47
|
+
private sourceTexture;
|
|
48
|
+
private destinationTexture;
|
|
49
|
+
private positionLocation;
|
|
50
|
+
private readonly quadPositions;
|
|
51
|
+
constructor(scene: Scene, sharedContext: SharedWebGLContext);
|
|
52
|
+
setup(gl: WebGL2RenderingContext): void;
|
|
53
|
+
teardown(gl: WebGL2RenderingContext): void;
|
|
54
|
+
private handleReload;
|
|
55
|
+
private updateViewport;
|
|
56
|
+
getGL(): WebGL2RenderingContext;
|
|
57
|
+
getProgram(fragment: string): WebGLProgram | null;
|
|
58
|
+
copyTextures(destination: TexImageSource, source: TexImageSource): void;
|
|
59
|
+
clear(): void;
|
|
60
|
+
render(): void;
|
|
61
|
+
private copyTexture;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=Shaders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Shaders.d.ts","sourceRoot":"","sources":["../../src/scenes/Shaders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAEnC;;GAEG;AACH,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAC/C;;GAEG;AACH,eAAO,MAAM,2BAA2B,uBAAuB,CAAC;AAChE;;GAEG;AACH,eAAO,MAAM,sBAAsB,kBAAkB,CAAC;AACtD;;GAEG;AACH,eAAO,MAAM,YAAY,SAAS,CAAC;AACnC;;GAEG;AACH,eAAO,MAAM,kBAAkB,cAAc,CAAC;AAC9C;;GAEG;AACH,eAAO,MAAM,iBAAiB,cAAc,CAAC;AAC7C;;GAEG;AACH,eAAO,MAAM,aAAa,UAAU,CAAC;AACrC;;GAEG;AACH,eAAO,MAAM,qBAAqB,iBAAiB,CAAC;AACpD;;GAEG;AACH,eAAO,MAAM,0BAA0B,sBAAsB,CAAC;AA2B9D;;GAEG;AACH,qBAAa,OAAQ,YAAW,iBAAiB;IAW7C,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAXhC,OAAO,CAAC,EAAE,CAAuC;IACjD,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAE3B;gBAGgB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,kBAAkB;IAK7C,KAAK,CAAC,EAAE,EAAE,sBAAsB,GAAG,IAAI;IAsBvC,QAAQ,CAAC,EAAE,EAAE,sBAAsB,GAAG,IAAI;IAWjD,OAAO,CAAC,YAAY,CAIlB;IAEF,OAAO,CAAC,cAAc;IASf,KAAK;IAIL,UAAU,CAAC,QAAQ,EAAE,MAAM;IA+B3B,YAAY,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc;IAKhE,KAAK;IAML,MAAM;IAKb,OAAO,CAAC,WAAW;CAMpB"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @internal
|
|
3
|
+
*/
|
|
4
|
+
export const UNIFORM_RESOLUTION = 'resolution';
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export const UNIFORM_DESTINATION_TEXTURE = 'destinationTexture';
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export const UNIFORM_SOURCE_TEXTURE = 'sourceTexture';
|
|
13
|
+
/**
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
export const UNIFORM_TIME = 'time';
|
|
17
|
+
/**
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
export const UNIFORM_DELTA_TIME = 'deltaTime';
|
|
21
|
+
/**
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
export const UNIFORM_FRAMERATE = 'framerate';
|
|
25
|
+
/**
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
28
|
+
export const UNIFORM_FRAME = 'frame';
|
|
29
|
+
/**
|
|
30
|
+
* @internal
|
|
31
|
+
*/
|
|
32
|
+
export const UNIFORM_SOURCE_MATRIX = 'sourceMatrix';
|
|
33
|
+
/**
|
|
34
|
+
* @internal
|
|
35
|
+
*/
|
|
36
|
+
export const UNIFORM_DESTINATION_MATRIX = 'destinationMatrix';
|
|
37
|
+
// language=glsl
|
|
38
|
+
const FragmentShader = `\
|
|
39
|
+
#version 300 es
|
|
40
|
+
|
|
41
|
+
in vec2 position;
|
|
42
|
+
|
|
43
|
+
out vec2 screenUV;
|
|
44
|
+
out vec2 sourceUV;
|
|
45
|
+
out vec2 destinationUV;
|
|
46
|
+
|
|
47
|
+
uniform mat4 sourceMatrix;
|
|
48
|
+
uniform mat4 destinationMatrix;
|
|
49
|
+
|
|
50
|
+
void main() {
|
|
51
|
+
vec2 position_source = position * 0.5 + 0.5;
|
|
52
|
+
vec4 position_screen = sourceMatrix * vec4(position_source, 0, 1);
|
|
53
|
+
|
|
54
|
+
screenUV = position_screen.xy;
|
|
55
|
+
sourceUV = position_source;
|
|
56
|
+
destinationUV = (destinationMatrix * position_screen).xy;
|
|
57
|
+
|
|
58
|
+
gl_Position = (position_screen - 0.5) * 2.0;
|
|
59
|
+
}
|
|
60
|
+
`;
|
|
61
|
+
/**
|
|
62
|
+
* @internal
|
|
63
|
+
*/
|
|
64
|
+
export class Shaders {
|
|
65
|
+
constructor(scene, sharedContext) {
|
|
66
|
+
this.scene = scene;
|
|
67
|
+
this.sharedContext = sharedContext;
|
|
68
|
+
this.gl = null;
|
|
69
|
+
this.positionBuffer = null;
|
|
70
|
+
this.sourceTexture = null;
|
|
71
|
+
this.destinationTexture = null;
|
|
72
|
+
this.positionLocation = 0;
|
|
73
|
+
this.quadPositions = new Float32Array([
|
|
74
|
+
-1.0, 1.0, -1.0, -1.0, 1.0, 1.0, 1.0, -1.0,
|
|
75
|
+
]);
|
|
76
|
+
this.handleReload = () => {
|
|
77
|
+
if (this.gl) {
|
|
78
|
+
this.updateViewport();
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
scene.onReloaded.subscribe(this.handleReload);
|
|
82
|
+
}
|
|
83
|
+
setup(gl) {
|
|
84
|
+
this.gl = gl;
|
|
85
|
+
this.updateViewport();
|
|
86
|
+
this.positionBuffer = gl.createBuffer();
|
|
87
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, this.positionBuffer);
|
|
88
|
+
gl.bufferData(gl.ARRAY_BUFFER, this.quadPositions, gl.STATIC_DRAW);
|
|
89
|
+
gl.vertexAttribPointer(this.positionLocation, 2, gl.FLOAT, false, 0, 0);
|
|
90
|
+
gl.enableVertexAttribArray(this.positionLocation);
|
|
91
|
+
this.sourceTexture = gl.createTexture();
|
|
92
|
+
gl.activeTexture(gl.TEXTURE0);
|
|
93
|
+
gl.bindTexture(gl.TEXTURE_2D, this.sourceTexture);
|
|
94
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
|
|
95
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
|
|
96
|
+
this.destinationTexture = gl.createTexture();
|
|
97
|
+
gl.activeTexture(gl.TEXTURE1);
|
|
98
|
+
gl.bindTexture(gl.TEXTURE_2D, this.destinationTexture);
|
|
99
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
|
|
100
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
|
|
101
|
+
}
|
|
102
|
+
teardown(gl) {
|
|
103
|
+
gl.deleteBuffer(this.positionBuffer);
|
|
104
|
+
gl.disableVertexAttribArray(this.positionLocation);
|
|
105
|
+
gl.deleteTexture(this.sourceTexture);
|
|
106
|
+
gl.deleteTexture(this.destinationTexture);
|
|
107
|
+
this.positionBuffer = null;
|
|
108
|
+
this.sourceTexture = null;
|
|
109
|
+
this.destinationTexture = null;
|
|
110
|
+
this.gl = null;
|
|
111
|
+
}
|
|
112
|
+
updateViewport() {
|
|
113
|
+
if (this.gl) {
|
|
114
|
+
const size = this.scene.getRealSize();
|
|
115
|
+
this.gl.canvas.width = size.width;
|
|
116
|
+
this.gl.canvas.height = size.height;
|
|
117
|
+
this.gl.viewport(0, 0, size.width, size.height);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
getGL() {
|
|
121
|
+
return this.gl ?? this.sharedContext.borrow(this);
|
|
122
|
+
}
|
|
123
|
+
getProgram(fragment) {
|
|
124
|
+
const program = this.sharedContext.getProgram(fragment, FragmentShader);
|
|
125
|
+
if (!program) {
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
128
|
+
const size = this.scene.getRealSize();
|
|
129
|
+
const gl = this.getGL();
|
|
130
|
+
gl.useProgram(program);
|
|
131
|
+
gl.uniform1i(gl.getUniformLocation(program, UNIFORM_SOURCE_TEXTURE), 0);
|
|
132
|
+
gl.uniform1i(gl.getUniformLocation(program, UNIFORM_DESTINATION_TEXTURE), 1);
|
|
133
|
+
gl.uniform2f(gl.getUniformLocation(program, UNIFORM_RESOLUTION), size.x, size.y);
|
|
134
|
+
gl.uniform1f(gl.getUniformLocation(program, UNIFORM_DELTA_TIME), this.scene.playback.deltaTime);
|
|
135
|
+
gl.uniform1f(gl.getUniformLocation(program, UNIFORM_FRAMERATE), this.scene.playback.fps);
|
|
136
|
+
return program;
|
|
137
|
+
}
|
|
138
|
+
copyTextures(destination, source) {
|
|
139
|
+
this.copyTexture(source, this.sourceTexture);
|
|
140
|
+
this.copyTexture(destination, this.destinationTexture);
|
|
141
|
+
}
|
|
142
|
+
clear() {
|
|
143
|
+
const gl = this.getGL();
|
|
144
|
+
gl.clearColor(0, 0, 0, 0);
|
|
145
|
+
gl.clear(gl.COLOR_BUFFER_BIT);
|
|
146
|
+
}
|
|
147
|
+
render() {
|
|
148
|
+
const gl = this.getGL();
|
|
149
|
+
gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
|
|
150
|
+
}
|
|
151
|
+
copyTexture(source, texture) {
|
|
152
|
+
const gl = this.getGL();
|
|
153
|
+
gl.bindTexture(gl.TEXTURE_2D, texture);
|
|
154
|
+
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, source);
|
|
155
|
+
gl.generateMipmap(gl.TEXTURE_2D);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2hhZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2VuZXMvU2hhZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLFlBQVksQ0FBQztBQUMvQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHLG9CQUFvQixDQUFDO0FBQ2hFOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsZUFBZSxDQUFDO0FBQ3REOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQztBQUNuQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLFdBQVcsQ0FBQztBQUM5Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLFdBQVcsQ0FBQztBQUM3Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUM7QUFDckM7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxjQUFjLENBQUM7QUFDcEQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxtQkFBbUIsQ0FBQztBQUU5RCxnQkFBZ0I7QUFDaEIsTUFBTSxjQUFjLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FzQnRCLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sT0FBTyxPQUFPO0lBVWxCLFlBQ21CLEtBQVksRUFDWixhQUFpQztRQURqQyxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ1osa0JBQWEsR0FBYixhQUFhLENBQW9CO1FBWDVDLE9BQUUsR0FBa0MsSUFBSSxDQUFDO1FBQ3pDLG1CQUFjLEdBQXVCLElBQUksQ0FBQztRQUMxQyxrQkFBYSxHQUF3QixJQUFJLENBQUM7UUFDMUMsdUJBQWtCLEdBQXdCLElBQUksQ0FBQztRQUMvQyxxQkFB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
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Scene } from './Scene';
|
|
2
|
+
export interface Slide {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
time: number;
|
|
6
|
+
scene: Scene;
|
|
7
|
+
stack?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class Slides {
|
|
10
|
+
private readonly scene;
|
|
11
|
+
get onChanged(): import("../events").SubscribableValueEvent<Slide[]>;
|
|
12
|
+
private readonly slides;
|
|
13
|
+
private readonly lookup;
|
|
14
|
+
private readonly collisionLookup;
|
|
15
|
+
private current;
|
|
16
|
+
private canResume;
|
|
17
|
+
private waitsForId;
|
|
18
|
+
private targetId;
|
|
19
|
+
constructor(scene: Scene);
|
|
20
|
+
setTarget(target: string | null): void;
|
|
21
|
+
resume(): void;
|
|
22
|
+
isWaitingFor(slide: string): boolean;
|
|
23
|
+
isWaiting(): boolean;
|
|
24
|
+
didHappen(slide: string): boolean;
|
|
25
|
+
getCurrent(): Slide | null;
|
|
26
|
+
register(name: string, initialTime: number): void;
|
|
27
|
+
shouldWait(name: string): boolean;
|
|
28
|
+
private handleReload;
|
|
29
|
+
private handleReset;
|
|
30
|
+
private handleRecalculated;
|
|
31
|
+
private toId;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=Slides.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Slides.d.ts","sourceRoot":"","sources":["../../src/scenes/Slides.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAEnC,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,MAAM;IAaE,OAAO,CAAC,QAAQ,CAAC,KAAK;IAZzC,IAAW,SAAS,wDAEnB;IACD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAE3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,QAAQ,CAAuB;gBAEH,KAAK,EAAE,KAAK;IAMzC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,MAAM;IAIN,YAAY,CAAC,KAAK,EAAE,MAAM;IAI1B,SAAS;IAIT,SAAS,CAAC,KAAK,EAAE,MAAM;IAiBvB,UAAU;IAIV,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAkC1C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAuBxC,OAAO,CAAC,YAAY,CAMlB;IAEF,OAAO,CAAC,WAAW,CAIjB;IAEF,OAAO,CAAC,kBAAkB,CAExB;IAEF,OAAO,CAAC,IAAI;CAGb"}
|