@codexo/exojs 0.6.11 → 0.7.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/CHANGELOG.md +1356 -0
  2. package/dist/esm/audio/AbstractMedia.d.ts +18 -0
  3. package/dist/esm/audio/AbstractMedia.js +66 -0
  4. package/dist/esm/audio/AbstractMedia.js.map +1 -1
  5. package/dist/esm/audio/AudioAnalyser.d.ts +62 -23
  6. package/dist/esm/audio/AudioAnalyser.js +261 -57
  7. package/dist/esm/audio/AudioAnalyser.js.map +1 -1
  8. package/dist/esm/audio/AudioBus.d.ts +45 -0
  9. package/dist/esm/audio/AudioBus.js +219 -0
  10. package/dist/esm/audio/AudioBus.js.map +1 -0
  11. package/dist/esm/audio/AudioFilter.d.ts +9 -0
  12. package/dist/esm/audio/AudioFilter.js +7 -0
  13. package/dist/esm/audio/AudioFilter.js.map +1 -0
  14. package/dist/esm/audio/AudioListener.d.ts +20 -0
  15. package/dist/esm/audio/AudioListener.js +86 -0
  16. package/dist/esm/audio/AudioListener.js.map +1 -0
  17. package/dist/esm/audio/AudioManager.d.ts +31 -0
  18. package/dist/esm/audio/AudioManager.js +102 -0
  19. package/dist/esm/audio/AudioManager.js.map +1 -0
  20. package/dist/esm/audio/BeatDetector.d.ts +121 -0
  21. package/dist/esm/audio/BeatDetector.js +936 -0
  22. package/dist/esm/audio/BeatDetector.js.map +1 -0
  23. package/dist/esm/audio/Envelope.d.ts +44 -0
  24. package/dist/esm/audio/Envelope.js +60 -0
  25. package/dist/esm/audio/Envelope.js.map +1 -0
  26. package/dist/esm/audio/Music.d.ts +8 -0
  27. package/dist/esm/audio/Music.js +33 -4
  28. package/dist/esm/audio/Music.js.map +1 -1
  29. package/dist/esm/audio/OscillatorSound.d.ts +98 -0
  30. package/dist/esm/audio/OscillatorSound.js +342 -0
  31. package/dist/esm/audio/OscillatorSound.js.map +1 -0
  32. package/dist/esm/audio/Sound.d.ts +94 -9
  33. package/dist/esm/audio/Sound.js +283 -117
  34. package/dist/esm/audio/Sound.js.map +1 -1
  35. package/dist/esm/audio/crossFade.d.ts +19 -0
  36. package/dist/esm/audio/crossFade.js +26 -0
  37. package/dist/esm/audio/crossFade.js.map +1 -0
  38. package/dist/esm/audio/dsp/fft.d.ts +22 -0
  39. package/dist/esm/audio/dsp/mel.d.ts +43 -0
  40. package/dist/esm/audio/dsp/tempogram.d.ts +51 -0
  41. package/dist/esm/audio/filters/ChorusFilter.d.ts +47 -0
  42. package/dist/esm/audio/filters/ChorusFilter.js +139 -0
  43. package/dist/esm/audio/filters/ChorusFilter.js.map +1 -0
  44. package/dist/esm/audio/filters/CompressorFilter.d.ts +31 -0
  45. package/dist/esm/audio/filters/CompressorFilter.js +97 -0
  46. package/dist/esm/audio/filters/CompressorFilter.js.map +1 -0
  47. package/dist/esm/audio/filters/DelayFilter.d.ts +23 -0
  48. package/dist/esm/audio/filters/DelayFilter.js +100 -0
  49. package/dist/esm/audio/filters/DelayFilter.js.map +1 -0
  50. package/dist/esm/audio/filters/DuckingFilter.d.ts +31 -0
  51. package/dist/esm/audio/filters/DuckingFilter.js +152 -0
  52. package/dist/esm/audio/filters/DuckingFilter.js.map +1 -0
  53. package/dist/esm/audio/filters/EqualizerFilter.d.ts +29 -0
  54. package/dist/esm/audio/filters/EqualizerFilter.js +94 -0
  55. package/dist/esm/audio/filters/EqualizerFilter.js.map +1 -0
  56. package/dist/esm/audio/filters/GranularFilter.d.ts +56 -0
  57. package/dist/esm/audio/filters/GranularFilter.js +170 -0
  58. package/dist/esm/audio/filters/GranularFilter.js.map +1 -0
  59. package/dist/esm/audio/filters/HighpassFilter.d.ts +19 -0
  60. package/dist/esm/audio/filters/HighpassFilter.js +62 -0
  61. package/dist/esm/audio/filters/HighpassFilter.js.map +1 -0
  62. package/dist/esm/audio/filters/LowpassFilter.d.ts +19 -0
  63. package/dist/esm/audio/filters/LowpassFilter.js +62 -0
  64. package/dist/esm/audio/filters/LowpassFilter.js.map +1 -0
  65. package/dist/esm/audio/filters/PitchShiftFilter.d.ts +42 -0
  66. package/dist/esm/audio/filters/PitchShiftFilter.js +130 -0
  67. package/dist/esm/audio/filters/PitchShiftFilter.js.map +1 -0
  68. package/dist/esm/audio/filters/ReverbFilter.d.ts +24 -0
  69. package/dist/esm/audio/filters/ReverbFilter.js +107 -0
  70. package/dist/esm/audio/filters/ReverbFilter.js.map +1 -0
  71. package/dist/esm/audio/filters/VocoderFilter.d.ts +38 -0
  72. package/dist/esm/audio/filters/VocoderFilter.js +163 -0
  73. package/dist/esm/audio/filters/VocoderFilter.js.map +1 -0
  74. package/dist/esm/audio/filters/WorkletFilter.d.ts +46 -0
  75. package/dist/esm/audio/filters/WorkletFilter.js +101 -0
  76. package/dist/esm/audio/filters/WorkletFilter.js.map +1 -0
  77. package/dist/esm/audio/filters/index.d.ts +12 -0
  78. package/dist/esm/audio/index.d.ts +15 -1
  79. package/dist/esm/audio/worklet/registerWorklet.d.ts +10 -0
  80. package/dist/esm/audio/worklet/registerWorklet.js +44 -0
  81. package/dist/esm/audio/worklet/registerWorklet.js.map +1 -0
  82. package/dist/esm/core/Application.d.ts +19 -0
  83. package/dist/esm/core/Application.js +76 -2
  84. package/dist/esm/core/Application.js.map +1 -1
  85. package/dist/esm/core/SceneNode.d.ts +9 -1
  86. package/dist/esm/core/SceneNode.js +44 -6
  87. package/dist/esm/core/SceneNode.js.map +1 -1
  88. package/dist/esm/core/Time.js +1 -1
  89. package/dist/esm/core/index.d.ts +0 -1
  90. package/dist/esm/debug/BoundingBoxesLayer.d.ts +18 -0
  91. package/dist/esm/debug/BoundingBoxesLayer.js +128 -0
  92. package/dist/esm/debug/BoundingBoxesLayer.js.map +1 -0
  93. package/dist/esm/debug/DebugLayer.d.ts +29 -0
  94. package/dist/esm/debug/DebugLayer.js +26 -0
  95. package/dist/esm/debug/DebugLayer.js.map +1 -0
  96. package/dist/esm/debug/DebugOverlay.d.ts +48 -0
  97. package/dist/esm/debug/DebugOverlay.js +117 -0
  98. package/dist/esm/debug/DebugOverlay.js.map +1 -0
  99. package/dist/esm/debug/HitTestLayer.d.ts +23 -0
  100. package/dist/esm/debug/HitTestLayer.js +109 -0
  101. package/dist/esm/debug/HitTestLayer.js.map +1 -0
  102. package/dist/esm/debug/PerformanceLayer.d.ts +21 -0
  103. package/dist/esm/debug/PerformanceLayer.js +175 -0
  104. package/dist/esm/debug/PerformanceLayer.js.map +1 -0
  105. package/dist/esm/debug/PointerStackLayer.d.ts +23 -0
  106. package/dist/esm/debug/PointerStackLayer.js +152 -0
  107. package/dist/esm/debug/PointerStackLayer.js.map +1 -0
  108. package/dist/esm/debug/index.d.ts +6 -0
  109. package/dist/esm/debug/index.js +7 -0
  110. package/dist/esm/debug/index.js.map +1 -0
  111. package/dist/esm/index.js +29 -2
  112. package/dist/esm/index.js.map +1 -1
  113. package/dist/esm/input/InputManager.d.ts +10 -0
  114. package/dist/esm/input/InputManager.js +35 -5
  115. package/dist/esm/input/InputManager.js.map +1 -1
  116. package/dist/esm/input/InteractionEvent.d.ts +18 -0
  117. package/dist/esm/input/InteractionEvent.js +29 -0
  118. package/dist/esm/input/InteractionEvent.js.map +1 -0
  119. package/dist/esm/input/InteractionManager.d.ts +134 -0
  120. package/dist/esm/input/InteractionManager.js +546 -0
  121. package/dist/esm/input/InteractionManager.js.map +1 -0
  122. package/dist/esm/input/index.d.ts +2 -0
  123. package/dist/esm/input/interaction-hooks.d.ts +34 -0
  124. package/dist/esm/input/interaction-hooks.js +35 -0
  125. package/dist/esm/input/interaction-hooks.js.map +1 -0
  126. package/dist/esm/math/Circle.d.ts +12 -2
  127. package/dist/esm/math/Circle.js +82 -14
  128. package/dist/esm/math/Circle.js.map +1 -1
  129. package/dist/esm/math/Interval.js +1 -1
  130. package/dist/esm/math/ObservableVector.d.ts +2 -2
  131. package/dist/esm/math/ObservableVector.js +4 -2
  132. package/dist/esm/math/ObservableVector.js.map +1 -1
  133. package/dist/esm/math/Polygon.d.ts +15 -1
  134. package/dist/esm/math/Polygon.js +58 -6
  135. package/dist/esm/math/Polygon.js.map +1 -1
  136. package/dist/esm/math/Quadtree.d.ts +47 -0
  137. package/dist/esm/math/Quadtree.js +168 -0
  138. package/dist/esm/math/Quadtree.js.map +1 -0
  139. package/dist/esm/math/Random.js +1 -1
  140. package/dist/esm/math/Size.js +1 -1
  141. package/dist/esm/math/Vector.js +1 -1
  142. package/dist/esm/math/collision-detection.js +4 -1
  143. package/dist/esm/math/collision-detection.js.map +1 -1
  144. package/dist/esm/math/index.d.ts +2 -0
  145. package/dist/esm/math/swept-collision.d.ts +90 -0
  146. package/dist/esm/math/swept-collision.js +255 -0
  147. package/dist/esm/math/swept-collision.js.map +1 -0
  148. package/dist/esm/particles/ParticleSystem.js +1 -0
  149. package/dist/esm/particles/ParticleSystem.js.map +1 -1
  150. package/dist/esm/particles/affectors/TorqueAffector.js +1 -1
  151. package/dist/esm/rendering/Container.d.ts +1 -0
  152. package/dist/esm/rendering/Container.js +19 -0
  153. package/dist/esm/rendering/Container.js.map +1 -1
  154. package/dist/esm/rendering/RenderNode.d.ts +27 -0
  155. package/dist/esm/rendering/RenderNode.js +44 -0
  156. package/dist/esm/rendering/RenderNode.js.map +1 -1
  157. package/dist/esm/rendering/View.d.ts +6 -4
  158. package/dist/esm/rendering/View.js +12 -2
  159. package/dist/esm/rendering/View.js.map +1 -1
  160. package/dist/esm/rendering/filters/WebGl2ShaderFilter.d.ts +109 -0
  161. package/dist/esm/rendering/filters/WebGl2ShaderFilter.js +268 -0
  162. package/dist/esm/rendering/filters/WebGl2ShaderFilter.js.map +1 -0
  163. package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts +111 -0
  164. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +397 -0
  165. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -0
  166. package/dist/esm/rendering/index.d.ts +3 -0
  167. package/dist/esm/rendering/mesh/Mesh.js +1 -0
  168. package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
  169. package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.d.ts +34 -0
  170. package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.js +60 -0
  171. package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.js.map +1 -0
  172. package/dist/esm/rendering/sprite/Sprite.d.ts +6 -1
  173. package/dist/esm/rendering/sprite/Sprite.js +41 -19
  174. package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
  175. package/dist/esm/rendering/video/Video.d.ts +4 -0
  176. package/dist/esm/rendering/video/Video.js +32 -4
  177. package/dist/esm/rendering/video/Video.js.map +1 -1
  178. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +4 -4
  179. package/dist/esm/rendering/webgl2/WebGl2Backend.js +7 -16
  180. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  181. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +10 -8
  182. package/dist/esm/rendering/webgpu/WebGpuBackend.js +30 -40
  183. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  184. package/dist/exo.esm.js +8021 -2459
  185. package/dist/exo.esm.js.map +1 -1
  186. package/package.json +14 -2
  187. package/dist/esm/core/Quadtree.d.ts +0 -20
  188. package/dist/esm/core/Quadtree.js +0 -86
  189. package/dist/esm/core/Quadtree.js.map +0 -1
@@ -0,0 +1,101 @@
1
+ import { AudioFilter } from '../AudioFilter.js';
2
+ import { isAudioContextReady, getAudioContext, onAudioContextReady } from '../audio-context.js';
3
+ import { registerWorkletProcessor } from '../worklet/registerWorklet.js';
4
+
5
+ /**
6
+ * Base class for filters implemented as AudioWorkletProcessors. Subclasses
7
+ * declare the worklet's name, source code, and node options; this class
8
+ * handles the async lifecycle.
9
+ *
10
+ * Stable input/output nodes (GainNodes) are created immediately on setup.
11
+ * While the worklet loads asynchronously, audio passes through directly
12
+ * (effectively bypassing the filter for ~10-50ms during initial load).
13
+ * Once the worklet loads, it's inserted into the chain and audio routes
14
+ * through it.
15
+ *
16
+ * Subclasses can override `_onWorkletReady` to perform additional wiring
17
+ * (e.g., sidechain inputs).
18
+ */
19
+ class WorkletFilter extends AudioFilter {
20
+ _inputGain = null;
21
+ _outputGain = null;
22
+ _workletNode = null;
23
+ _ready = null;
24
+ /** AudioWorkletNode constructor options. Default: 1 input, 1 output. */
25
+ get _workletOptions() {
26
+ return { numberOfInputs: 1, numberOfOutputs: 1 };
27
+ }
28
+ constructor() {
29
+ super();
30
+ if (isAudioContextReady()) {
31
+ this._setup(getAudioContext());
32
+ }
33
+ else {
34
+ onAudioContextReady.once(this._setup, this);
35
+ }
36
+ }
37
+ get inputNode() {
38
+ if (!this._inputGain) {
39
+ throw new Error(`${this.constructor.name}: input node accessed before audio context is ready.`);
40
+ }
41
+ return this._inputGain;
42
+ }
43
+ get outputNode() {
44
+ if (!this._outputGain) {
45
+ throw new Error(`${this.constructor.name}: output node accessed before audio context is ready.`);
46
+ }
47
+ return this._outputGain;
48
+ }
49
+ /**
50
+ * Resolves once the underlying worklet is loaded and inserted into the
51
+ * audio chain. Use this if you need to wait before applying parameters
52
+ * that depend on the worklet node.
53
+ */
54
+ get ready() {
55
+ return this._ready ?? Promise.resolve();
56
+ }
57
+ destroy() {
58
+ onAudioContextReady.clearByContext(this);
59
+ this._workletNode?.disconnect();
60
+ this._inputGain?.disconnect();
61
+ this._outputGain?.disconnect();
62
+ this._workletNode = null;
63
+ this._inputGain = null;
64
+ this._outputGain = null;
65
+ this._ready = null;
66
+ }
67
+ /** Helper for subclasses: ramp an AudioParam smoothly. */
68
+ _setAudioParam(name, value) {
69
+ if (!this._workletNode)
70
+ return;
71
+ const param = this._workletNode.parameters.get(name);
72
+ if (param) {
73
+ param.setTargetAtTime(value, this._workletNode.context.currentTime, 0.01);
74
+ }
75
+ }
76
+ _setup(audioContext) {
77
+ // Create stable input/output gains immediately (bus can wire them now).
78
+ const inputGain = audioContext.createGain();
79
+ const outputGain = audioContext.createGain();
80
+ // Bypass: input → output until worklet loads.
81
+ inputGain.connect(outputGain);
82
+ this._inputGain = inputGain;
83
+ this._outputGain = outputGain;
84
+ // Async-load the worklet, then re-route through it.
85
+ this._ready = registerWorkletProcessor(audioContext, this._workletName, this._workletSource)
86
+ .then(() => {
87
+ if (!this._inputGain || !this._outputGain)
88
+ return; // destroyed during load
89
+ const node = new AudioWorkletNode(audioContext, this._workletName, this._workletOptions);
90
+ this._workletNode = node;
91
+ // Re-route: input → worklet → output
92
+ this._inputGain.disconnect();
93
+ this._inputGain.connect(node);
94
+ node.connect(this._outputGain);
95
+ this._onWorkletReady?.(audioContext);
96
+ });
97
+ }
98
+ }
99
+
100
+ export { WorkletFilter };
101
+ //# sourceMappingURL=WorkletFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkletFilter.js","sources":["../../../../../src/audio/filters/WorkletFilter.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export * from './LowpassFilter';
2
+ export * from './HighpassFilter';
3
+ export * from './CompressorFilter';
4
+ export * from './DelayFilter';
5
+ export * from './ReverbFilter';
6
+ export * from './EqualizerFilter';
7
+ export * from './DuckingFilter';
8
+ export { WorkletFilter } from './WorkletFilter';
9
+ export { ChorusFilter, type ChorusFilterOptions } from './ChorusFilter';
10
+ export { PitchShiftFilter, type PitchShiftFilterOptions } from './PitchShiftFilter';
11
+ export { VocoderFilter, type VocoderFilterOptions } from './VocoderFilter';
12
+ export { GranularFilter, type GranularFilterOptions } from './GranularFilter';
@@ -2,5 +2,19 @@ export * from './AbstractMedia';
2
2
  export * from './Media';
3
3
  export * from './audio-context';
4
4
  export * from './AudioAnalyser';
5
+ export * from './AudioBus';
6
+ export * from './BeatDetector';
7
+ export { AudioFilter } from './AudioFilter';
8
+ export { AudioListener, type AudioListenerTarget } from './AudioListener';
9
+ export { AudioManager, getAudioManager } from './AudioManager';
10
+ export * from './filters';
5
11
  export * from './Music';
6
- export * from './Sound';
12
+ export { Sound, SoundPoolStrategy } from './Sound';
13
+ export type { SoundOptions, PlayOptions, AudioSpriteClip } from './Sound';
14
+ export { registerWorkletProcessor } from './worklet/registerWorklet';
15
+ export { crossFade } from './crossFade';
16
+ export type { CrossFadeOptions } from './crossFade';
17
+ export { Envelope } from './Envelope';
18
+ export type { EnvelopeOptions } from './Envelope';
19
+ export { OscillatorSound } from './OscillatorSound';
20
+ export type { OscillatorSoundOptions, OscillatorType, OscillatorPlayOptions } from './OscillatorSound';
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Registers an AudioWorkletProcessor (defined by `source`) with the given
3
+ * AudioContext under `processorName`. Idempotent: subsequent calls with the
4
+ * same context+name return immediately. Concurrent calls (race-condition
5
+ * protection) share a single in-flight registration promise.
6
+ *
7
+ * Source is bundled at build time as a JavaScript string and turned into a
8
+ * Blob URL at runtime — no separate worklet asset file is shipped.
9
+ */
10
+ export declare function registerWorkletProcessor(audioContext: BaseAudioContext, processorName: string, source: string): Promise<void>;
@@ -0,0 +1,44 @@
1
+ const _registered = new WeakMap();
2
+ const _pending = new WeakMap();
3
+ /**
4
+ * Registers an AudioWorkletProcessor (defined by `source`) with the given
5
+ * AudioContext under `processorName`. Idempotent: subsequent calls with the
6
+ * same context+name return immediately. Concurrent calls (race-condition
7
+ * protection) share a single in-flight registration promise.
8
+ *
9
+ * Source is bundled at build time as a JavaScript string and turned into a
10
+ * Blob URL at runtime — no separate worklet asset file is shipped.
11
+ */
12
+ async function registerWorkletProcessor(audioContext, processorName, source) {
13
+ let registered = _registered.get(audioContext);
14
+ if (!registered) {
15
+ registered = new Set();
16
+ _registered.set(audioContext, registered);
17
+ }
18
+ if (registered.has(processorName))
19
+ return;
20
+ let pending = _pending.get(audioContext);
21
+ if (!pending) {
22
+ pending = new Map();
23
+ _pending.set(audioContext, pending);
24
+ }
25
+ const inFlight = pending.get(processorName);
26
+ if (inFlight)
27
+ return inFlight;
28
+ const blob = new Blob([source], { type: 'application/javascript' });
29
+ const url = URL.createObjectURL(blob);
30
+ const promise = audioContext.audioWorklet.addModule(url).finally(() => {
31
+ URL.revokeObjectURL(url);
32
+ }).then(() => {
33
+ registered.add(processorName);
34
+ pending.delete(processorName);
35
+ }).catch((error) => {
36
+ pending.delete(processorName);
37
+ throw error;
38
+ });
39
+ pending.set(processorName, promise);
40
+ return promise;
41
+ }
42
+
43
+ export { registerWorkletProcessor };
44
+ //# sourceMappingURL=registerWorklet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerWorklet.js","sources":["../../../../../src/audio/worklet/registerWorklet.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG,IAAI,OAAO,EAAiC;AAChE,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAgD;AAE5E;;;;;;;;AAQG;AACI,eAAe,wBAAwB,CAC1C,YAA8B,EAC9B,aAAqB,EACrB,MAAc,EAAA;IAEd,IAAI,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC;IAC9C,IAAI,CAAC,UAAU,EAAE;AACb,QAAA,UAAU,GAAG,IAAI,GAAG,EAAE;AACtB,QAAA,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC;IAC7C;AACA,IAAA,IAAI,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC;QAAE;IAEnC,IAAI,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC;IACxC,IAAI,CAAC,OAAO,EAAE;AACV,QAAA,OAAO,GAAG,IAAI,GAAG,EAAE;AACnB,QAAA,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC;IACvC;IACA,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;AAC3C,IAAA,IAAI,QAAQ;AAAE,QAAA,OAAO,QAAQ;AAE7B,IAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC;IACnE,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;AAErC,IAAA,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAK;AAClE,QAAA,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC;AAC5B,IAAA,CAAC,CAAC,CAAC,IAAI,CAAC,MAAK;AACT,QAAA,UAAW,CAAC,GAAG,CAAC,aAAa,CAAC;AAC9B,QAAA,OAAQ,CAAC,MAAM,CAAC,aAAa,CAAC;AAClC,IAAA,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAI;AACf,QAAA,OAAQ,CAAC,MAAM,CAAC,aAAa,CAAC;AAC9B,QAAA,MAAM,KAAK;AACf,IAAA,CAAC,CAAC;AAEF,IAAA,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC;AACnC,IAAA,OAAO,OAAO;AAClB;;;;"}
@@ -1,15 +1,18 @@
1
1
  import { Capabilities } from './capabilities';
2
2
  import { SceneManager } from './SceneManager';
3
3
  import { InputManager } from '@/input/InputManager';
4
+ import { InteractionManager } from '@/input/InteractionManager';
4
5
  import { Loader } from '@/resources/Loader';
5
6
  import { TweenManager } from '@/animation/TweenManager';
6
7
  import { Signal } from './Signal';
7
8
  import { Color } from './Color';
9
+ import { Texture } from '@/rendering/texture/Texture';
8
10
  import type { Time } from './Time';
9
11
  import type { Scene } from './Scene';
10
12
  import type { CacheStore } from '@/resources/CacheStore';
11
13
  import type { RenderBackend } from '@/rendering/RenderBackend';
12
14
  import type { GamepadDefinition } from '@/input/GamepadDefinitions';
15
+ import { type AudioManager } from '@/audio/AudioManager';
13
16
  export declare enum ApplicationStatus {
14
17
  Loading = 1,
15
18
  Running = 2,
@@ -47,9 +50,15 @@ export declare class Application {
47
50
  readonly canvas: HTMLCanvasElement;
48
51
  readonly loader: Loader;
49
52
  readonly inputManager: InputManager;
53
+ readonly interaction: InteractionManager;
50
54
  readonly sceneManager: SceneManager;
51
55
  readonly tweens: TweenManager;
52
56
  readonly onResize: Signal<[number, number, Application]>;
57
+ readonly onFrame: Signal<[Time]>;
58
+ readonly onCanvasFocusChange: Signal<[focused: boolean]>;
59
+ readonly onVisibilityChange: Signal<[visible: boolean]>;
60
+ readonly onBackendLost: Signal<[]>;
61
+ pauseOnHidden: boolean;
53
62
  private readonly _updateHandler;
54
63
  private readonly _startupClock;
55
64
  private readonly _activeClock;
@@ -60,6 +69,9 @@ export declare class Application {
60
69
  private _backendType;
61
70
  private _backend;
62
71
  private _capabilities;
72
+ private _documentVisible;
73
+ private _cursor;
74
+ private readonly _visibilityChangeHandler;
63
75
  constructor(appSettings?: Partial<ApplicationOptions>);
64
76
  get status(): ApplicationStatus;
65
77
  get startupTime(): Time;
@@ -73,11 +85,18 @@ export declare class Application {
73
85
  * For pre-start access use {@link Capabilities.ready} directly.
74
86
  */
75
87
  get capabilities(): Capabilities;
88
+ get canvasFocused(): boolean;
89
+ get documentVisible(): boolean;
90
+ get cursor(): string;
91
+ set cursor(cursor: string);
92
+ get audio(): AudioManager;
76
93
  start(scene: Scene): Promise<this>;
77
94
  update(): this;
78
95
  stop(): this;
79
96
  resize(width: number, height: number): this;
97
+ setCursor(cursor: string | Texture | HTMLImageElement | HTMLCanvasElement): this;
80
98
  destroy(): void;
99
+ private _onDocumentVisibilityChange;
81
100
  private resolveInitialBackendType;
82
101
  private createBackend;
83
102
  private initializeRenderManager;
@@ -4,10 +4,14 @@ import { SceneManager } from './SceneManager.js';
4
4
  import { WebGl2Backend } from '../rendering/webgl2/WebGl2Backend.js';
5
5
  import { WebGpuBackend } from '../rendering/webgpu/WebGpuBackend.js';
6
6
  import { InputManager } from '../input/InputManager.js';
7
+ import { InteractionManager } from '../input/InteractionManager.js';
7
8
  import { Loader } from '../resources/Loader.js';
8
9
  import { TweenManager } from '../animation/TweenManager.js';
9
10
  import { Signal } from './Signal.js';
10
11
  import { Color } from './Color.js';
12
+ import { Texture } from '../rendering/texture/Texture.js';
13
+ import { canvasSourceToDataUrl } from './utils.js';
14
+ import { getAudioManager } from '../audio/AudioManager.js';
11
15
 
12
16
  var ApplicationStatus;
13
17
  (function (ApplicationStatus) {
@@ -49,9 +53,15 @@ class Application {
49
53
  canvas;
50
54
  loader;
51
55
  inputManager;
56
+ interaction;
52
57
  sceneManager;
53
58
  tweens = new TweenManager();
54
59
  onResize = new Signal();
60
+ onFrame = new Signal();
61
+ onCanvasFocusChange = new Signal();
62
+ onVisibilityChange = new Signal();
63
+ onBackendLost = new Signal();
64
+ pauseOnHidden = false;
55
65
  _updateHandler;
56
66
  _startupClock = new Clock();
57
67
  _activeClock = new Clock();
@@ -62,6 +72,9 @@ class Application {
62
72
  _backendType;
63
73
  _backend;
64
74
  _capabilities = null;
75
+ _documentVisible = true;
76
+ _cursor = 'default';
77
+ _visibilityChangeHandler = this._onDocumentVisibilityChange.bind(this);
65
78
  constructor(appSettings) {
66
79
  this.options = {
67
80
  canvas: appSettings?.canvas ?? createDefaultCanvas(),
@@ -81,9 +94,20 @@ class Application {
81
94
  this._backendType = this.resolveInitialBackendType();
82
95
  this._backend = this.createBackend(this._backendType);
83
96
  this.inputManager = new InputManager(this);
97
+ this.interaction = new InteractionManager(this);
84
98
  this.sceneManager = new SceneManager(this);
85
99
  this._updateHandler = this.update.bind(this);
86
100
  this._startupClock.start();
101
+ if (typeof document !== 'undefined') {
102
+ this._documentVisible = document.visibilityState === 'visible';
103
+ document.addEventListener('visibilitychange', this._visibilityChangeHandler);
104
+ }
105
+ this.inputManager.onCanvasFocusChange.add((focused) => {
106
+ this.onCanvasFocusChange.dispatch(focused);
107
+ });
108
+ this.onVisibilityChange.add((visible) => {
109
+ getAudioManager()._applyVisibility(visible);
110
+ });
87
111
  }
88
112
  get status() {
89
113
  return this._status;
@@ -114,6 +138,21 @@ class Application {
114
138
  }
115
139
  return this._capabilities;
116
140
  }
141
+ get canvasFocused() {
142
+ return this.inputManager.canvasFocused;
143
+ }
144
+ get documentVisible() {
145
+ return this._documentVisible;
146
+ }
147
+ get cursor() {
148
+ return this._cursor;
149
+ }
150
+ set cursor(cursor) {
151
+ this.setCursor(cursor);
152
+ }
153
+ get audio() {
154
+ return getAudioManager();
155
+ }
117
156
  async start(scene) {
118
157
  if (this._status === ApplicationStatus.Stopped) {
119
158
  this._status = ApplicationStatus.Loading;
@@ -138,16 +177,23 @@ class Application {
138
177
  }
139
178
  update() {
140
179
  if (this._status === ApplicationStatus.Running) {
180
+ if (this.pauseOnHidden && !this._documentVisible) {
181
+ this._frameRequest = requestAnimationFrame(this._updateHandler);
182
+ return this;
183
+ }
141
184
  const frameDelta = this._frameClock.elapsedTime;
142
185
  const frameStart = performance.now();
143
186
  this.backend.resetStats();
144
187
  this.inputManager.update();
188
+ this.interaction.update();
189
+ getAudioManager().update();
145
190
  this.tweens.update(frameDelta.seconds);
146
191
  const runtimeView = this.backend.view;
147
192
  if (runtimeView && typeof runtimeView.update === 'function') {
148
193
  runtimeView.update(frameDelta.milliseconds);
149
194
  }
150
195
  this.sceneManager.update(frameDelta);
196
+ this.onFrame.dispatch(frameDelta);
151
197
  this.backend.flush();
152
198
  this.backend.stats.frameTimeMs = performance.now() - frameStart;
153
199
  this._frameRequest = requestAnimationFrame(this._updateHandler);
@@ -174,9 +220,22 @@ class Application {
174
220
  this.onResize.dispatch(width, height, this);
175
221
  return this;
176
222
  }
223
+ setCursor(cursor) {
224
+ const source = (cursor instanceof Texture) ? cursor.source : cursor;
225
+ if (source === null) {
226
+ throw new Error('Provided Texture has no source.');
227
+ }
228
+ this._cursor = typeof source === 'string' ? source : `url(${canvasSourceToDataUrl(source)})`;
229
+ this.canvas.style.cursor = this._cursor;
230
+ return this;
231
+ }
177
232
  destroy() {
233
+ if (typeof document !== 'undefined') {
234
+ document.removeEventListener('visibilitychange', this._visibilityChangeHandler);
235
+ }
178
236
  this.stop();
179
237
  this.loader.destroy();
238
+ this.interaction.destroy();
180
239
  this.inputManager.destroy();
181
240
  this.tweens.destroy();
182
241
  this._backend.destroy();
@@ -185,6 +244,17 @@ class Application {
185
244
  this._activeClock.destroy();
186
245
  this._frameClock.destroy();
187
246
  this.onResize.destroy();
247
+ this.onFrame.destroy();
248
+ this.onCanvasFocusChange.destroy();
249
+ this.onVisibilityChange.destroy();
250
+ this.onBackendLost.destroy();
251
+ }
252
+ _onDocumentVisibilityChange() {
253
+ const visible = document.visibilityState === 'visible';
254
+ if (visible !== this._documentVisible) {
255
+ this._documentVisible = visible;
256
+ this.onVisibilityChange.dispatch(visible);
257
+ }
188
258
  }
189
259
  resolveInitialBackendType() {
190
260
  const backendType = this.options.backend?.type;
@@ -198,9 +268,13 @@ class Application {
198
268
  }
199
269
  createBackend(backendType) {
200
270
  if (backendType === 'webgpu') {
201
- return new WebGpuBackend(this);
271
+ const backend = new WebGpuBackend(this);
272
+ backend.onDeviceLost.add(() => { this.onBackendLost.dispatch(); });
273
+ return backend;
202
274
  }
203
- return new WebGl2Backend(this);
275
+ const backend = new WebGl2Backend(this);
276
+ backend.onContextLost.add(() => { this.onBackendLost.dispatch(); });
277
+ return backend;
204
278
  }
205
279
  async initializeRenderManager() {
206
280
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"Application.js","sources":["../../../../src/core/Application.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Application.js","sources":["../../../../src/core/Application.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -16,7 +16,9 @@ declare enum SceneNodeTransformFlags {
16
16
  Scaling = 4,
17
17
  Origin = 8,
18
18
  Transform = 15,
19
- TransformInverse = 16
19
+ TransformInverse = 16,
20
+ GlobalTransform = 256,// own _globalTransform is stale
21
+ BoundsRect = 512
20
22
  }
21
23
  export declare class SceneNode implements Collidable {
22
24
  readonly collisionType: CollisionType;
@@ -89,6 +91,12 @@ export declare class SceneNode implements Collidable {
89
91
  contains(x: number, y: number): boolean;
90
92
  inView(view: View): boolean;
91
93
  destroy(): void;
94
+ /** Mark own + all descendants' GlobalTransform + Bounds dirty. */
95
+ _invalidateSubtreeTransform(): void;
96
+ /** Hook for Container to override. Default: no-op (leaf node has no children). */
97
+ protected _invalidateChildrenTransform(): void;
98
+ /** Mark own Bounds dirty AND propagate up to Container ancestors' Bounds. */
99
+ _invalidateBoundsCascade(): void;
92
100
  private _setPositionDirty;
93
101
  private _setRotationDirty;
94
102
  private _setScalingDirty;
@@ -4,6 +4,7 @@ import { Rectangle } from '../math/Rectangle.js';
4
4
  import { Bounds } from './Bounds.js';
5
5
  import { Flags } from '../math/Flags.js';
6
6
  import { degreesToRadians, trimRotation } from '../math/utils.js';
7
+ import { _getCurrentInteractionManager } from '../input/interaction-hooks.js';
7
8
  import { Interval } from '../math/Interval.js';
8
9
  import { CollisionType } from '../math/Collision.js';
9
10
  import { intersectionPointRect, intersectionLineRect, intersectionRectEllipse, intersectionRectCircle, intersectionSat, getCollisionSat } from '../math/collision-detection.js';
@@ -21,10 +22,14 @@ var SceneNodeTransformFlags;
21
22
  SceneNodeTransformFlags[SceneNodeTransformFlags["Origin"] = 8] = "Origin";
22
23
  SceneNodeTransformFlags[SceneNodeTransformFlags["Transform"] = 15] = "Transform";
23
24
  SceneNodeTransformFlags[SceneNodeTransformFlags["TransformInverse"] = 16] = "TransformInverse";
25
+ SceneNodeTransformFlags[SceneNodeTransformFlags["GlobalTransform"] = 256] = "GlobalTransform";
26
+ SceneNodeTransformFlags[SceneNodeTransformFlags["BoundsRect"] = 512] = "BoundsRect";
24
27
  })(SceneNodeTransformFlags || (SceneNodeTransformFlags = {}));
25
28
  class SceneNode {
26
29
  collisionType = CollisionType.SceneNode;
27
- flags = new Flags(SceneNodeTransformFlags.Transform);
30
+ flags = new Flags(SceneNodeTransformFlags.Transform
31
+ | SceneNodeTransformFlags.GlobalTransform
32
+ | SceneNodeTransformFlags.BoundsRect);
28
33
  _bounds = new Bounds();
29
34
  _transform = new Matrix();
30
35
  _position = new ObservableVector(this._setPositionDirty.bind(this), 0, 0);
@@ -204,8 +209,10 @@ class SceneNode {
204
209
  return this._localBounds;
205
210
  }
206
211
  getBounds() {
207
- this.updateParentTransform();
208
- this.updateBounds();
212
+ if (this.flags.has(SceneNodeTransformFlags.BoundsRect)) {
213
+ this.updateBounds();
214
+ this.flags.remove(SceneNodeTransformFlags.BoundsRect);
215
+ }
209
216
  return this._bounds.getRect();
210
217
  }
211
218
  updateBounds() {
@@ -221,9 +228,12 @@ class SceneNode {
221
228
  return this;
222
229
  }
223
230
  getGlobalTransform() {
224
- this._globalTransform.copy(this.getTransform());
225
- if (this._parentNode) {
226
- this._globalTransform.combine(this._parentNode.getGlobalTransform());
231
+ if (this.flags.has(SceneNodeTransformFlags.GlobalTransform)) {
232
+ this._globalTransform.copy(this.getTransform());
233
+ if (this._parentNode) {
234
+ this._globalTransform.combine(this._parentNode.getGlobalTransform());
235
+ }
236
+ this.flags.remove(SceneNodeTransformFlags.GlobalTransform);
227
237
  }
228
238
  return this._globalTransform;
229
239
  }
@@ -280,17 +290,45 @@ class SceneNode {
280
290
  this._bounds.destroy();
281
291
  this._anchor.destroy();
282
292
  }
293
+ /** Mark own + all descendants' GlobalTransform + Bounds dirty. */
294
+ _invalidateSubtreeTransform() {
295
+ this.flags.push(SceneNodeTransformFlags.GlobalTransform | SceneNodeTransformFlags.BoundsRect);
296
+ this._invalidateChildrenTransform();
297
+ }
298
+ /** Hook for Container to override. Default: no-op (leaf node has no children). */
299
+ _invalidateChildrenTransform() {
300
+ // overridden by Container
301
+ }
302
+ /** Mark own Bounds dirty AND propagate up to Container ancestors' Bounds. */
303
+ _invalidateBoundsCascade() {
304
+ this.flags.push(SceneNodeTransformFlags.BoundsRect);
305
+ // Notify the InteractionManager so it can mark the quadtree entry stale.
306
+ // The manager filters to only tracked interactive nodes so this call is
307
+ // O(1) for the common case (non-interactive node — fast Set.has miss).
308
+ _getCurrentInteractionManager()?._notifyBoundsInvalidated(this);
309
+ if (this._parentNode) {
310
+ this._parentNode._invalidateBoundsCascade();
311
+ }
312
+ }
283
313
  _setPositionDirty() {
284
314
  this.flags.push(SceneNodeTransformFlags.Translation);
315
+ this._invalidateSubtreeTransform();
316
+ this._invalidateBoundsCascade();
285
317
  }
286
318
  _setRotationDirty() {
287
319
  this.flags.push(SceneNodeTransformFlags.Rotation);
320
+ this._invalidateSubtreeTransform();
321
+ this._invalidateBoundsCascade();
288
322
  }
289
323
  _setScalingDirty() {
290
324
  this.flags.push(SceneNodeTransformFlags.Scaling);
325
+ this._invalidateSubtreeTransform();
326
+ this._invalidateBoundsCascade();
291
327
  }
292
328
  _setOriginDirty() {
293
329
  this.flags.push(SceneNodeTransformFlags.Origin);
330
+ this._invalidateSubtreeTransform();
331
+ this._invalidateBoundsCascade();
294
332
  }
295
333
  _updateOrigin() {
296
334
  const { x, y } = this._anchor;
@@ -1 +1 @@
1
- {"version":3,"file":"SceneNode.js","sources":["../../../../src/core/SceneNode.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SceneNode.js","sources":["../../../../src/core/SceneNode.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -84,7 +84,7 @@ class Time {
84
84
  return this;
85
85
  }
86
86
  destroy() {
87
- // todo - check if destroy is needed
87
+ // no-op pure value class, kept for Destroyable interface conformance
88
88
  }
89
89
  static milliseconds = 1;
90
90
  static seconds = 1000;