@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,175 @@
1
+ import { DebugLayer } from './DebugLayer.js';
2
+ import { Graphics } from '../rendering/primitives/Graphics.js';
3
+ import { Text } from '../rendering/text/Text.js';
4
+ import { TextStyle } from '../rendering/text/TextStyle.js';
5
+ import { Color } from '../core/Color.js';
6
+ import { Container } from '../rendering/Container.js';
7
+
8
+ // --- layout constants (camelCase to satisfy lint naming convention) ----------
9
+ const panelX = 8;
10
+ const panelY = 8;
11
+ const panelW = 180;
12
+ const panelH = 130;
13
+ const lineH = 14;
14
+ const textSize = 11;
15
+ const textRowCount = 4;
16
+ const sparklineY = panelY + 8 + textRowCount * lineH + 4;
17
+ const sparklineH = panelH - (sparklineY - panelY) - 4;
18
+ const sparklineW = panelW - 16;
19
+ const sparklineX = panelX + 8;
20
+ const fpsSampleCount = 60;
21
+ const sparklineSampleCount = 120;
22
+ const sparklineMaxMs = 33; // 100% height = 33ms (~30 fps)
23
+ // Semi-transparent dark background.
24
+ const bgColor = new Color(0, 0, 0, 0.7);
25
+ // Bright text color (light blue-white).
26
+ const textColor = Color.white.clone();
27
+ // Cyan sparkline.
28
+ const sparklineColor = new Color(0, 1, 1, 1.0);
29
+ // -----------------------------------------------------------------------------
30
+ /** Recursively count nodes under a RenderNode. */
31
+ function countNodes(node) {
32
+ let count = 1;
33
+ const container = node;
34
+ if (Array.isArray(container.children)) {
35
+ for (const child of container.children) {
36
+ count += countNodes(child);
37
+ }
38
+ }
39
+ return count;
40
+ }
41
+ class PerformanceLayer extends DebugLayer {
42
+ // Rolling FPS sample buffer (60 samples).
43
+ _fpsSamples = new Float32Array(fpsSampleCount);
44
+ _fpsSampleIndex = 0;
45
+ // Rolling frame-time buffer (120 samples) for sparkline.
46
+ _sparkSamples = new Float32Array(sparklineSampleCount);
47
+ _sparkSampleIndex = 0;
48
+ // Root container — lazily initialized on first update() call so the
49
+ // glyph atlas is not touched in environments where canvas 2D is absent.
50
+ _root = null;
51
+ _textFps = null;
52
+ _textFrame = null;
53
+ _textDraws = null;
54
+ _textNodes = null;
55
+ _sparkline = null;
56
+ constructor(app) {
57
+ super(app);
58
+ }
59
+ update(delta) {
60
+ // Lazily build the scene graph on first update so that Text (which
61
+ // touches the glyph atlas immediately) is only constructed when the
62
+ // layer is first made visible — not at DebugOverlay construction time.
63
+ if (this._root === null) {
64
+ this._build();
65
+ }
66
+ // --- FPS rolling average ---
67
+ const frameMs = delta.milliseconds;
68
+ this._fpsSamples[this._fpsSampleIndex] = frameMs;
69
+ this._fpsSampleIndex = (this._fpsSampleIndex + 1) % fpsSampleCount;
70
+ let totalMs = 0;
71
+ let validSamples = 0;
72
+ for (let i = 0; i < fpsSampleCount; i++) {
73
+ const s = this._fpsSamples[i];
74
+ if (s > 0) {
75
+ totalMs += s;
76
+ validSamples++;
77
+ }
78
+ }
79
+ const avgMs = validSamples > 0 ? totalMs / validSamples : 0;
80
+ const fps = avgMs > 0 ? 1000 / avgMs : 0;
81
+ // --- Sparkline sample ---
82
+ this._sparkSamples[this._sparkSampleIndex] = frameMs;
83
+ this._sparkSampleIndex = (this._sparkSampleIndex + 1) % sparklineSampleCount;
84
+ // --- Stats ---
85
+ const stats = this._app.backend.stats;
86
+ const scene = this._app.sceneManager.scene;
87
+ const nodeCount = scene ? countNodes(scene.root) : 0;
88
+ // --- Update text ---
89
+ if (this._textFps !== null) {
90
+ this._textFps.text = `FPS: ${fps.toFixed(1)}`;
91
+ }
92
+ if (this._textFrame !== null) {
93
+ this._textFrame.text = `Frame: ${frameMs.toFixed(1)}ms`;
94
+ }
95
+ if (this._textDraws !== null) {
96
+ this._textDraws.text = `Draws: ${stats.drawCalls}`;
97
+ }
98
+ if (this._textNodes !== null) {
99
+ this._textNodes.text = `Nodes: ${nodeCount}`;
100
+ }
101
+ // --- Rebuild sparkline geometry ---
102
+ if (this._sparkline !== null) {
103
+ this._sparkline.clear();
104
+ this._sparkline.lineWidth = 1;
105
+ this._sparkline.lineColor = sparklineColor;
106
+ // Walk samples in chronological order (oldest first).
107
+ const oldest = this._sparkSampleIndex;
108
+ const stepX = sparklineW / (sparklineSampleCount - 1);
109
+ let started = false;
110
+ for (let i = 0; i < sparklineSampleCount; i++) {
111
+ const idx = (oldest + i) % sparklineSampleCount;
112
+ const ms = this._sparkSamples[idx];
113
+ const px = sparklineX + i * stepX;
114
+ const py = sparklineY + sparklineH - Math.min(1, ms / sparklineMaxMs) * sparklineH;
115
+ if (!started) {
116
+ this._sparkline.moveTo(px, py);
117
+ started = true;
118
+ }
119
+ else {
120
+ this._sparkline.lineTo(px, py);
121
+ }
122
+ }
123
+ }
124
+ }
125
+ render(backend) {
126
+ this._root?.render(backend);
127
+ }
128
+ destroy() {
129
+ if (this._root !== null) {
130
+ this._root.destroy();
131
+ this._root = null;
132
+ }
133
+ this._textFps = null;
134
+ this._textFrame = null;
135
+ this._textDraws = null;
136
+ this._textNodes = null;
137
+ this._sparkline = null;
138
+ }
139
+ // -----------------------------------------------------------------------
140
+ _build() {
141
+ const style = new TextStyle({
142
+ fontSize: textSize,
143
+ fontFamily: 'Arial',
144
+ fontWeight: 'normal',
145
+ fillColor: textColor,
146
+ strokeThickness: 0,
147
+ });
148
+ const bg = new Graphics();
149
+ bg.fillColor = bgColor;
150
+ bg.drawRectangle(panelX, panelY, panelW, panelH);
151
+ this._textFps = new Text('FPS: -', style.clone());
152
+ this._textFrame = new Text('Frame: -', style.clone());
153
+ this._textDraws = new Text('Draws: -', style.clone());
154
+ this._textNodes = new Text('Nodes: -', style.clone());
155
+ this._textFps.x = panelX + 8;
156
+ this._textFps.y = panelY + 8;
157
+ this._textFrame.x = panelX + 8;
158
+ this._textFrame.y = panelY + 8 + lineH;
159
+ this._textDraws.x = panelX + 8;
160
+ this._textDraws.y = panelY + 8 + lineH * 2;
161
+ this._textNodes.x = panelX + 8;
162
+ this._textNodes.y = panelY + 8 + lineH * 3;
163
+ this._sparkline = new Graphics();
164
+ this._root = new Container();
165
+ this._root.addChild(bg);
166
+ this._root.addChild(this._textFps);
167
+ this._root.addChild(this._textFrame);
168
+ this._root.addChild(this._textDraws);
169
+ this._root.addChild(this._textNodes);
170
+ this._root.addChild(this._sparkline);
171
+ }
172
+ }
173
+
174
+ export { PerformanceLayer };
175
+ //# sourceMappingURL=PerformanceLayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PerformanceLayer.js","sources":["../../../../src/debug/PerformanceLayer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { DebugLayer } from './DebugLayer';
2
+ import type { DebugLayerViewMode } from './DebugLayer';
3
+ import type { Time } from '@/core/Time';
4
+ import type { RenderBackend } from '@/rendering/RenderBackend';
5
+ import type { Application } from '@/core/Application';
6
+ /**
7
+ * Debug layer that shows a screen-space panel (top-right corner) listing all
8
+ * RenderNodes under the current pointer position, sorted by zIndex descending.
9
+ * Screen-space.
10
+ */
11
+ export declare class PointerStackLayer extends DebugLayer {
12
+ private _root;
13
+ private _bg;
14
+ private _lines;
15
+ constructor(app: Application);
16
+ get viewMode(): DebugLayerViewMode;
17
+ update(_delta: Time): void;
18
+ render(backend: RenderBackend): void;
19
+ destroy(): void;
20
+ private _build;
21
+ private _buildLines;
22
+ private _collectContaining;
23
+ }
@@ -0,0 +1,152 @@
1
+ import { DebugLayer } from './DebugLayer.js';
2
+ import { Graphics } from '../rendering/primitives/Graphics.js';
3
+ import { Text } from '../rendering/text/Text.js';
4
+ import { TextStyle } from '../rendering/text/TextStyle.js';
5
+ import { Color } from '../core/Color.js';
6
+ import { Container } from '../rendering/Container.js';
7
+
8
+ // ---------------------------------------------------------------------------
9
+ // Layout constants
10
+ // ---------------------------------------------------------------------------
11
+ const panelW = 260;
12
+ const panelH = 160;
13
+ const panelPad = 8;
14
+ const lineH = 14;
15
+ const textSize = 11;
16
+ const maxEntries = 10;
17
+ // Semi-transparent dark background.
18
+ const bgColor = new Color(0, 0, 0, 0.7);
19
+ const textColor = Color.white.clone();
20
+ // ---------------------------------------------------------------------------
21
+ /**
22
+ * Debug layer that shows a screen-space panel (top-right corner) listing all
23
+ * RenderNodes under the current pointer position, sorted by zIndex descending.
24
+ * Screen-space.
25
+ */
26
+ class PointerStackLayer extends DebugLayer {
27
+ _root = null;
28
+ _bg = null;
29
+ _lines = [];
30
+ constructor(app) {
31
+ super(app);
32
+ }
33
+ get viewMode() {
34
+ return 'screen';
35
+ }
36
+ update(_delta) {
37
+ if (this._root === null) {
38
+ this._build();
39
+ }
40
+ const canvas = this._app.canvas;
41
+ const panelX = canvas.width - panelW - panelPad;
42
+ const panelY = panelPad;
43
+ // Position the panel.
44
+ if (this._root !== null) {
45
+ this._root.x = panelX;
46
+ this._root.y = panelY;
47
+ }
48
+ // Collect stack info.
49
+ const lines = this._buildLines(panelX, panelY);
50
+ // Update text nodes.
51
+ for (let i = 0; i < this._lines.length; i++) {
52
+ const lineNode = this._lines[i];
53
+ if (i < lines.length) {
54
+ lineNode.text = lines[i];
55
+ lineNode.visible = true;
56
+ }
57
+ else {
58
+ lineNode.text = '';
59
+ lineNode.visible = false;
60
+ }
61
+ }
62
+ }
63
+ render(backend) {
64
+ this._root?.render(backend);
65
+ }
66
+ destroy() {
67
+ if (this._root !== null) {
68
+ this._root.destroy();
69
+ this._root = null;
70
+ }
71
+ this._bg = null;
72
+ this._lines = [];
73
+ }
74
+ // -----------------------------------------------------------------------
75
+ _build() {
76
+ const style = new TextStyle({
77
+ fontSize: textSize,
78
+ fontFamily: 'Arial',
79
+ fontWeight: 'normal',
80
+ fillColor: textColor,
81
+ strokeThickness: 0,
82
+ });
83
+ this._bg = new Graphics();
84
+ this._bg.fillColor = bgColor;
85
+ // Panel background will be repositioned in update(); draw at local (0,0).
86
+ this._bg.drawRectangle(0, 0, panelW, panelH);
87
+ this._root = new Container();
88
+ this._root.addChild(this._bg);
89
+ // Pre-allocate enough Text nodes for header + entries.
90
+ const totalLines = maxEntries + 2; // header row + cursor row + entries
91
+ for (let i = 0; i < totalLines; i++) {
92
+ const t = new Text('', style.clone());
93
+ t.x = panelPad;
94
+ t.y = panelPad + i * lineH;
95
+ t.visible = false;
96
+ this._root.addChild(t);
97
+ this._lines.push(t);
98
+ }
99
+ }
100
+ _buildLines(_panelX, _panelY) {
101
+ const pos = this._app.inputManager.getPrimaryPointerPosition();
102
+ if (pos === null) {
103
+ return ['Pointer: (none)'];
104
+ }
105
+ const { x: sx, y: sy } = pos;
106
+ // The pointer x/y is canvas-relative. InteractionManager passes this
107
+ // directly to node.contains(), so we do the same.
108
+ const worldX = sx;
109
+ const worldY = sy;
110
+ const lines = [];
111
+ lines.push(`Cursor: (${sx.toFixed(0)}, ${sy.toFixed(0)})`);
112
+ lines.push('Stack (top→bottom):');
113
+ // Collect all visible RenderNodes whose contains() returns true.
114
+ const root = this._app.sceneManager.scene?.root;
115
+ const stack = [];
116
+ if (root) {
117
+ this._collectContaining(root, worldX, worldY, stack);
118
+ stack.sort((a, b) => b.zIndex - a.zIndex);
119
+ }
120
+ const shown = stack.slice(0, maxEntries);
121
+ for (const node of shown) {
122
+ const name = node.constructor.name;
123
+ const z = node.zIndex;
124
+ const inter = node.interactive ? ' — interactive' : '';
125
+ lines.push(` ${name} — z=${z}${inter}`);
126
+ }
127
+ if (stack.length > maxEntries) {
128
+ lines.push(` … +${stack.length - maxEntries} more`);
129
+ }
130
+ if (shown.length === 0) {
131
+ lines.push(' (none)');
132
+ }
133
+ return lines;
134
+ }
135
+ _collectContaining(node, x, y, result) {
136
+ if (!node.visible) {
137
+ return;
138
+ }
139
+ if (node.contains(x, y)) {
140
+ result.push(node);
141
+ }
142
+ const container = node;
143
+ if (Array.isArray(container.children)) {
144
+ for (const child of container.children) {
145
+ this._collectContaining(child, x, y, result);
146
+ }
147
+ }
148
+ }
149
+ }
150
+
151
+ export { PointerStackLayer };
152
+ //# sourceMappingURL=PointerStackLayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PointerStackLayer.js","sources":["../../../../src/debug/PointerStackLayer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export { DebugOverlay } from './DebugOverlay';
2
+ export { DebugLayer, type DebugLayerViewMode } from './DebugLayer';
3
+ export { PerformanceLayer } from './PerformanceLayer';
4
+ export { BoundingBoxesLayer } from './BoundingBoxesLayer';
5
+ export { HitTestLayer } from './HitTestLayer';
6
+ export { PointerStackLayer } from './PointerStackLayer';
@@ -0,0 +1,7 @@
1
+ export { DebugOverlay } from './DebugOverlay.js';
2
+ export { DebugLayer } from './DebugLayer.js';
3
+ export { PerformanceLayer } from './PerformanceLayer.js';
4
+ export { BoundingBoxesLayer } from './BoundingBoxesLayer.js';
5
+ export { HitTestLayer } from './HitTestLayer.js';
6
+ export { PointerStackLayer } from './PointerStackLayer.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
package/dist/esm/index.js CHANGED
@@ -8,7 +8,6 @@ export { Bounds } from './core/Bounds.js';
8
8
  export { Capabilities } from './core/capabilities.js';
9
9
  export { Clock } from './core/Clock.js';
10
10
  export { Color } from './core/Color.js';
11
- export { Quadtree } from './core/Quadtree.js';
12
11
  export { Scene } from './core/Scene.js';
13
12
  export { SceneManager } from './core/SceneManager.js';
14
13
  export { SceneNode } from './core/SceneNode.js';
@@ -18,8 +17,29 @@ export { Timer } from './core/Timer.js';
18
17
  export { AbstractMedia } from './audio/AbstractMedia.js';
19
18
  export { decodeAudioData, getAudioContext, getOfflineAudioContext, isAudioContextReady, onAudioContextReady } from './audio/audio-context.js';
20
19
  export { AudioAnalyser } from './audio/AudioAnalyser.js';
20
+ export { AudioBus } from './audio/AudioBus.js';
21
+ export { BeatDetector } from './audio/BeatDetector.js';
22
+ export { AudioFilter } from './audio/AudioFilter.js';
23
+ export { AudioListener } from './audio/AudioListener.js';
24
+ export { AudioManager, getAudioManager } from './audio/AudioManager.js';
25
+ export { LowpassFilter } from './audio/filters/LowpassFilter.js';
26
+ export { HighpassFilter } from './audio/filters/HighpassFilter.js';
27
+ export { CompressorFilter } from './audio/filters/CompressorFilter.js';
28
+ export { DelayFilter } from './audio/filters/DelayFilter.js';
29
+ export { ReverbFilter } from './audio/filters/ReverbFilter.js';
30
+ export { EqualizerFilter } from './audio/filters/EqualizerFilter.js';
31
+ export { DuckingFilter } from './audio/filters/DuckingFilter.js';
32
+ export { WorkletFilter } from './audio/filters/WorkletFilter.js';
33
+ export { ChorusFilter } from './audio/filters/ChorusFilter.js';
34
+ export { PitchShiftFilter } from './audio/filters/PitchShiftFilter.js';
35
+ export { VocoderFilter } from './audio/filters/VocoderFilter.js';
36
+ export { GranularFilter } from './audio/filters/GranularFilter.js';
21
37
  export { Music } from './audio/Music.js';
22
- export { Sound } from './audio/Sound.js';
38
+ export { Sound, SoundPoolStrategy } from './audio/Sound.js';
39
+ export { registerWorkletProcessor } from './audio/worklet/registerWorklet.js';
40
+ export { crossFade } from './audio/crossFade.js';
41
+ export { Envelope } from './audio/Envelope.js';
42
+ export { OscillatorSound } from './audio/OscillatorSound.js';
23
43
  export { ChannelOffset, ChannelSize, Keyboard, maxPointers, pointerSlotSize } from './input/types.js';
24
44
  export { GamepadChannel } from './input/GamepadChannels.js';
25
45
  export { GamepadControl } from './input/GamepadControl.js';
@@ -39,6 +59,8 @@ export { ArcadeStickGamepadMapping } from './input/ArcadeStickGamepadMapping.js'
39
59
  export { Input } from './input/Input.js';
40
60
  export { InputManager } from './input/InputManager.js';
41
61
  export { Pointer, PointerState, PointerStateFlag } from './input/Pointer.js';
62
+ export { InteractionEvent } from './input/InteractionEvent.js';
63
+ export { InteractionManager } from './input/InteractionManager.js';
42
64
  export { CollisionType } from './math/Collision.js';
43
65
  export { VoronoiRegion, bezierCurveTo, clamp, degreesPerRadian, degreesToRadians, getDistance, getVoronoiRegion, inRange, isPowerOfTwo, lerp, quadraticCurveTo, radiansPerDegree, radiansToDegrees, sign, tau, trimRotation } from './math/utils.js';
44
66
  export { buildCircle, buildEllipse, buildLine, buildPath, buildPolygon, buildRectangle, buildStar } from './math/geometry.js';
@@ -58,6 +80,8 @@ export { Random } from './math/Random.js';
58
80
  export { Segment } from './math/Segment.js';
59
81
  export { Size } from './math/Size.js';
60
82
  export { PolarVector } from './math/PolarVector.js';
83
+ export { substepSweep, sweepCircleAgainst, sweepCircleVsCircle, sweepCircleVsRectangle, sweepRectangle, sweepRectangleAgainst } from './math/swept-collision.js';
84
+ export { Quadtree } from './math/Quadtree.js';
61
85
  export { ColorAffector } from './particles/affectors/ColorAffector.js';
62
86
  export { ForceAffector } from './particles/affectors/ForceAffector.js';
63
87
  export { ScaleAffector } from './particles/affectors/ScaleAffector.js';
@@ -71,6 +95,7 @@ export { Graphics } from './rendering/primitives/Graphics.js';
71
95
  export { Shader } from './rendering/shader/Shader.js';
72
96
  export { ShaderAttribute } from './rendering/shader/ShaderAttribute.js';
73
97
  export { ShaderUniform } from './rendering/shader/ShaderUniform.js';
98
+ export { upgradeFragmentShaderToGl300 } from './rendering/shader/upgradeFragmentShaderToGl300.js';
74
99
  export { Sprite, SpriteFlags } from './rendering/sprite/Sprite.js';
75
100
  export { Spritesheet } from './rendering/sprite/Spritesheet.js';
76
101
  export { AnimatedSprite } from './rendering/sprite/AnimatedSprite.js';
@@ -113,6 +138,8 @@ export { View, ViewFlags } from './rendering/View.js';
113
138
  export { Filter } from './rendering/filters/Filter.js';
114
139
  export { BlurFilter } from './rendering/filters/BlurFilter.js';
115
140
  export { ColorFilter } from './rendering/filters/ColorFilter.js';
141
+ export { WebGl2ShaderFilter } from './rendering/filters/WebGl2ShaderFilter.js';
142
+ export { WebGpuShaderFilter } from './rendering/filters/WebGpuShaderFilter.js';
116
143
  export { AbstractAssetFactory } from './resources/AbstractAssetFactory.js';
117
144
  export { Json, SvgAsset, TextAsset, VttAsset } from './resources/tokens.js';
118
145
  export { CacheFirstStrategy } from './resources/CacheFirstStrategy.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -34,6 +34,7 @@ export declare class InputManager {
34
34
  private readonly pointerMoveHandler;
35
35
  private readonly pointerUpHandler;
36
36
  private readonly pointerCancelHandler;
37
+ readonly onCanvasFocusChange: Signal<[focused: boolean]>;
37
38
  readonly onPointerEnter: Signal<[Pointer]>;
38
39
  readonly onPointerLeave: Signal<[Pointer]>;
39
40
  readonly onPointerDown: Signal<[Pointer]>;
@@ -55,6 +56,15 @@ export declare class InputManager {
55
56
  /** Fires when a pointer has been held without significant movement for ≥ 500 ms. */
56
57
  readonly onLongPress: Signal<[pointer: Pointer]>;
57
58
  constructor(app: Application);
59
+ /**
60
+ * Returns the canvas-relative position of the primary pointer (isPrimary = true),
61
+ * or the first non-cancelled pointer if no primary is found. Returns null when
62
+ * no active pointer is present. Used by debug layers to show cursor info.
63
+ */
64
+ getPrimaryPointerPosition(): {
65
+ x: number;
66
+ y: number;
67
+ } | null;
58
68
  get pointersInCanvas(): boolean;
59
69
  get canvasFocused(): boolean;
60
70
  get gamepads(): Array<Gamepad>;
@@ -48,6 +48,7 @@ class InputManager {
48
48
  pointerMoveHandler = this.handlePointerMove.bind(this);
49
49
  pointerUpHandler = this.handlePointerUp.bind(this);
50
50
  pointerCancelHandler = this.handlePointerCancel.bind(this);
51
+ onCanvasFocusChange = new Signal();
51
52
  onPointerEnter = new Signal();
52
53
  onPointerLeave = new Signal();
53
54
  onPointerDown = new Signal();
@@ -81,6 +82,25 @@ class InputManager {
81
82
  this.gestureRecognizer = new GestureRecognizer(pointerDistanceThreshold, this.onPinch, this.onRotate, this.onLongPress);
82
83
  this.addEventListeners();
83
84
  }
85
+ /**
86
+ * Returns the canvas-relative position of the primary pointer (isPrimary = true),
87
+ * or the first non-cancelled pointer if no primary is found. Returns null when
88
+ * no active pointer is present. Used by debug layers to show cursor info.
89
+ */
90
+ getPrimaryPointerPosition() {
91
+ for (const pointer of Object.values(this.pointers)) {
92
+ if (pointer.isPrimary && pointer.currentState !== PointerState.Cancelled) {
93
+ return { x: pointer.x, y: pointer.y };
94
+ }
95
+ }
96
+ // Fall back to first non-cancelled pointer.
97
+ for (const pointer of Object.values(this.pointers)) {
98
+ if (pointer.currentState !== PointerState.Cancelled) {
99
+ return { x: pointer.x, y: pointer.y };
100
+ }
101
+ }
102
+ return null;
103
+ }
84
104
  get pointersInCanvas() {
85
105
  return Object.values(this.pointers).some((pointer) => (pointer.currentState !== PointerState.OutsideCanvas
86
106
  && pointer.currentState !== PointerState.Cancelled));
@@ -164,6 +184,7 @@ class InputManager {
164
184
  this.onPinch.destroy();
165
185
  this.onRotate.destroy();
166
186
  this.onLongPress.destroy();
187
+ this.onCanvasFocusChange.destroy();
167
188
  }
168
189
  _assignSlot(pointerId) {
169
190
  if (this.pointerSlots.has(pointerId)) {
@@ -282,15 +303,24 @@ class InputManager {
282
303
  stopEvent(event);
283
304
  }
284
305
  handleCanvasFocus() {
285
- this.canvasFocusedValue = true;
306
+ if (!this.canvasFocusedValue) {
307
+ this.canvasFocusedValue = true;
308
+ this.onCanvasFocusChange.dispatch(true);
309
+ }
286
310
  }
287
311
  handleCanvasBlur() {
288
- this.canvasFocusedValue = false;
289
- this.releaseAllKeyboardChannels();
312
+ if (this.canvasFocusedValue) {
313
+ this.canvasFocusedValue = false;
314
+ this.releaseAllKeyboardChannels();
315
+ this.onCanvasFocusChange.dispatch(false);
316
+ }
290
317
  }
291
318
  handleWindowBlur() {
292
- this.canvasFocusedValue = false;
293
- this.releaseAllKeyboardChannels();
319
+ if (this.canvasFocusedValue) {
320
+ this.canvasFocusedValue = false;
321
+ this.releaseAllKeyboardChannels();
322
+ this.onCanvasFocusChange.dispatch(false);
323
+ }
294
324
  }
295
325
  /**
296
326
  * Force every currently-held keyboard channel back to zero and emit
@@ -1 +1 @@
1
- {"version":3,"file":"InputManager.js","sources":["../../../../src/input/InputManager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InputManager.js","sources":["../../../../src/input/InputManager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}