@woosh/meep-engine 3.10.0 → 3.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.
Files changed (142) hide show
  1. package/README.md +168 -152
  2. package/package.json +1 -1
  3. package/src/REVIEW_2026_08_06.md +610 -610
  4. package/src/core/geom/3d/shape/ConvexHullShape3D.d.ts.map +1 -1
  5. package/src/core/geom/3d/shape/ConvexHullShape3D.js +28 -4
  6. package/src/engine/graphics/render/frame_graph/FrameGraph.d.ts +26 -0
  7. package/src/engine/graphics/render/frame_graph/FrameGraph.d.ts.map +1 -1
  8. package/src/engine/graphics/render/frame_graph/FrameGraph.js +47 -0
  9. package/src/engine/physics/ecs/PhysicsSystem.d.ts +0 -3
  10. package/src/engine/physics/ecs/PhysicsSystem.d.ts.map +1 -1
  11. package/src/engine/physics/ecs/PhysicsSystem.js +0 -3
  12. package/src/shade/device/ShadeGPUCommandContext.d.ts +21 -0
  13. package/src/shade/device/ShadeGPUCommandContext.d.ts.map +1 -1
  14. package/src/shade/device/ShadeGPUCommandContext.js +940 -749
  15. package/src/shade/device/timing/GPUTimerArray.d.ts +22 -4
  16. package/src/shade/device/timing/GPUTimerArray.d.ts.map +1 -1
  17. package/src/shade/device/timing/GPUTimerArray.js +88 -14
  18. package/src/shade/device/timing/GPU_PROFILER_PROPOSAL_2026_08_28.md +349 -98
  19. package/src/shade/device/timing/profile/GPUFrameRecorder.d.ts +93 -0
  20. package/src/shade/device/timing/profile/GPUFrameRecorder.d.ts.map +1 -0
  21. package/src/shade/device/timing/profile/GPUFrameRecorder.js +297 -0
  22. package/src/shade/device/timing/profile/GPUProfileCapture.d.ts +62 -0
  23. package/src/shade/device/timing/profile/GPUProfileCapture.d.ts.map +1 -0
  24. package/src/shade/device/timing/profile/GPUProfileCapture.js +77 -0
  25. package/src/shade/device/timing/profile/GPUProfileFrame.d.ts +73 -0
  26. package/src/shade/device/timing/profile/GPUProfileFrame.d.ts.map +1 -0
  27. package/src/shade/device/timing/profile/GPUProfileFrame.js +88 -0
  28. package/src/shade/device/timing/profile/GPUProfileLevel.d.ts +20 -0
  29. package/src/shade/device/timing/profile/GPUProfileLevel.d.ts.map +1 -0
  30. package/src/shade/device/timing/profile/GPUProfileLevel.js +50 -0
  31. package/src/shade/device/timing/profile/GPUProfileMeta.d.ts +63 -0
  32. package/src/shade/device/timing/profile/GPUProfileMeta.d.ts.map +1 -0
  33. package/src/shade/device/timing/profile/GPUProfileMeta.js +73 -0
  34. package/src/shade/device/timing/profile/GPUProfileSession.d.ts +173 -0
  35. package/src/shade/device/timing/profile/GPUProfileSession.d.ts.map +1 -0
  36. package/src/shade/device/timing/profile/GPUProfileSession.js +470 -0
  37. package/src/shade/device/timing/profile/GPUProfileSpan.d.ts +60 -0
  38. package/src/shade/device/timing/profile/GPUProfileSpan.d.ts.map +1 -0
  39. package/src/shade/device/timing/profile/GPUProfileSpan.js +65 -0
  40. package/src/shade/device/timing/profile/GPUProfileSpanKind.d.ts +19 -0
  41. package/src/shade/device/timing/profile/GPUProfileSpanKind.d.ts.map +1 -0
  42. package/src/shade/device/timing/profile/GPUProfileSpanKind.js +25 -0
  43. package/src/shade/device/timing/profile/GPUProfileTopology.d.ts +159 -0
  44. package/src/shade/device/timing/profile/GPUProfileTopology.d.ts.map +1 -0
  45. package/src/shade/device/timing/profile/GPUProfileTopology.js +202 -0
  46. package/src/shade/device/timing/profile/GPUProfileWork.d.ts +90 -0
  47. package/src/shade/device/timing/profile/GPUProfileWork.d.ts.map +1 -0
  48. package/src/shade/device/timing/profile/GPUProfileWork.js +115 -0
  49. package/src/shade/device/timing/profile/SGPTDefect.d.ts +43 -0
  50. package/src/shade/device/timing/profile/SGPTDefect.d.ts.map +1 -0
  51. package/src/shade/device/timing/profile/SGPTDefect.js +65 -0
  52. package/src/shade/device/timing/profile/SGPTHeader.d.ts +38 -0
  53. package/src/shade/device/timing/profile/SGPTHeader.d.ts.map +1 -0
  54. package/src/shade/device/timing/profile/SGPTHeader.js +46 -0
  55. package/src/shade/device/timing/profile/SGPTRecordRef.d.ts +37 -0
  56. package/src/shade/device/timing/profile/SGPTRecordRef.d.ts.map +1 -0
  57. package/src/shade/device/timing/profile/SGPTRecordRef.js +45 -0
  58. package/src/shade/device/timing/profile/SGPTWriteStream.d.ts +103 -0
  59. package/src/shade/device/timing/profile/SGPTWriteStream.d.ts.map +1 -0
  60. package/src/shade/device/timing/profile/SGPTWriteStream.js +287 -0
  61. package/src/shade/device/timing/profile/SGPT_DEFECT.d.ts +19 -0
  62. package/src/shade/device/timing/profile/SGPT_DEFECT.d.ts.map +1 -0
  63. package/src/shade/device/timing/profile/SGPT_DEFECT.js +26 -0
  64. package/src/shade/device/timing/profile/SGPT_FLAG.d.ts +8 -0
  65. package/src/shade/device/timing/profile/SGPT_FLAG.d.ts.map +1 -0
  66. package/src/shade/device/timing/profile/SGPT_FLAG.js +15 -0
  67. package/src/shade/device/timing/profile/SGPT_FORMAT.md +345 -0
  68. package/src/shade/device/timing/profile/SGPT_FORMAT_VERSION.d.ts +10 -0
  69. package/src/shade/device/timing/profile/SGPT_FORMAT_VERSION.d.ts.map +1 -0
  70. package/src/shade/device/timing/profile/SGPT_FORMAT_VERSION.js +9 -0
  71. package/src/shade/device/timing/profile/SGPT_FRAME_SLACK.d.ts +17 -0
  72. package/src/shade/device/timing/profile/SGPT_FRAME_SLACK.d.ts.map +1 -0
  73. package/src/shade/device/timing/profile/SGPT_FRAME_SLACK.js +16 -0
  74. package/src/shade/device/timing/profile/SGPT_HEADER_CHECKSUM_COVERAGE.d.ts +16 -0
  75. package/src/shade/device/timing/profile/SGPT_HEADER_CHECKSUM_COVERAGE.d.ts.map +1 -0
  76. package/src/shade/device/timing/profile/SGPT_HEADER_CHECKSUM_COVERAGE.js +15 -0
  77. package/src/shade/device/timing/profile/SGPT_HEADER_OFFSET.d.ts +15 -0
  78. package/src/shade/device/timing/profile/SGPT_HEADER_OFFSET.d.ts.map +1 -0
  79. package/src/shade/device/timing/profile/SGPT_HEADER_OFFSET.js +29 -0
  80. package/src/shade/device/timing/profile/SGPT_HEADER_SIZE.d.ts +7 -0
  81. package/src/shade/device/timing/profile/SGPT_HEADER_SIZE.d.ts.map +1 -0
  82. package/src/shade/device/timing/profile/SGPT_HEADER_SIZE.js +6 -0
  83. package/src/shade/device/timing/profile/SGPT_MAGIC.d.ts +7 -0
  84. package/src/shade/device/timing/profile/SGPT_MAGIC.d.ts.map +1 -0
  85. package/src/shade/device/timing/profile/SGPT_MAGIC.js +6 -0
  86. package/src/shade/device/timing/profile/SGPT_MIN_READER_VERSION.d.ts +16 -0
  87. package/src/shade/device/timing/profile/SGPT_MIN_READER_VERSION.d.ts.map +1 -0
  88. package/src/shade/device/timing/profile/SGPT_MIN_READER_VERSION.js +15 -0
  89. package/src/shade/device/timing/profile/SGPT_RECORD_HEADER_SIZE.d.ts +7 -0
  90. package/src/shade/device/timing/profile/SGPT_RECORD_HEADER_SIZE.d.ts.map +1 -0
  91. package/src/shade/device/timing/profile/SGPT_RECORD_HEADER_SIZE.js +6 -0
  92. package/src/shade/device/timing/profile/SGPT_RECORD_OFFSET.d.ts +13 -0
  93. package/src/shade/device/timing/profile/SGPT_RECORD_OFFSET.d.ts.map +1 -0
  94. package/src/shade/device/timing/profile/SGPT_RECORD_OFFSET.js +23 -0
  95. package/src/shade/device/timing/profile/SGPT_RECORD_SYNC.d.ts +12 -0
  96. package/src/shade/device/timing/profile/SGPT_RECORD_SYNC.d.ts.map +1 -0
  97. package/src/shade/device/timing/profile/SGPT_RECORD_SYNC.js +11 -0
  98. package/src/shade/device/timing/profile/SGPT_RECORD_TYPE.d.ts +18 -0
  99. package/src/shade/device/timing/profile/SGPT_RECORD_TYPE.d.ts.map +1 -0
  100. package/src/shade/device/timing/profile/SGPT_RECORD_TYPE.js +46 -0
  101. package/src/shade/device/timing/profile/frame_graph_extract_topology.d.ts +20 -0
  102. package/src/shade/device/timing/profile/frame_graph_extract_topology.d.ts.map +1 -0
  103. package/src/shade/device/timing/profile/frame_graph_extract_topology.js +174 -0
  104. package/src/shade/device/timing/profile/make_profiling_pass_encoder.d.ts +21 -0
  105. package/src/shade/device/timing/profile/make_profiling_pass_encoder.d.ts.map +1 -0
  106. package/src/shade/device/timing/profile/make_profiling_pass_encoder.js +114 -0
  107. package/src/shade/device/timing/profile/parse_workgroup_size.d.ts +20 -0
  108. package/src/shade/device/timing/profile/parse_workgroup_size.d.ts.map +1 -0
  109. package/src/shade/device/timing/profile/parse_workgroup_size.js +43 -0
  110. package/src/shade/device/timing/profile/sgpt_fourcc.d.ts +18 -0
  111. package/src/shade/device/timing/profile/sgpt_fourcc.d.ts.map +1 -0
  112. package/src/shade/device/timing/profile/sgpt_fourcc.js +34 -0
  113. package/src/shade/device/timing/profile/sgpt_frame_codec.d.ts +42 -0
  114. package/src/shade/device/timing/profile/sgpt_frame_codec.d.ts.map +1 -0
  115. package/src/shade/device/timing/profile/sgpt_frame_codec.js +172 -0
  116. package/src/shade/device/timing/profile/sgpt_meta_codec.d.ts +20 -0
  117. package/src/shade/device/timing/profile/sgpt_meta_codec.d.ts.map +1 -0
  118. package/src/shade/device/timing/profile/sgpt_meta_codec.js +65 -0
  119. package/src/shade/device/timing/profile/sgpt_read_capture.d.ts +19 -0
  120. package/src/shade/device/timing/profile/sgpt_read_capture.d.ts.map +1 -0
  121. package/src/shade/device/timing/profile/sgpt_read_capture.js +134 -0
  122. package/src/shade/device/timing/profile/sgpt_read_header.d.ts +22 -0
  123. package/src/shade/device/timing/profile/sgpt_read_header.d.ts.map +1 -0
  124. package/src/shade/device/timing/profile/sgpt_read_header.js +94 -0
  125. package/src/shade/device/timing/profile/sgpt_read_records.d.ts +27 -0
  126. package/src/shade/device/timing/profile/sgpt_read_records.d.ts.map +1 -0
  127. package/src/shade/device/timing/profile/sgpt_read_records.js +153 -0
  128. package/src/shade/device/timing/profile/sgpt_topology_codec.d.ts +54 -0
  129. package/src/shade/device/timing/profile/sgpt_topology_codec.d.ts.map +1 -0
  130. package/src/shade/device/timing/profile/sgpt_topology_codec.js +329 -0
  131. package/src/shade/device/timing/profile/sgpt_write_header.d.ts +22 -0
  132. package/src/shade/device/timing/profile/sgpt_write_header.d.ts.map +1 -0
  133. package/src/shade/device/timing/profile/sgpt_write_header.js +47 -0
  134. package/src/shade/device/timing/profile/sgpt_write_record.d.ts +23 -0
  135. package/src/shade/device/timing/profile/sgpt_write_record.d.ts.map +1 -0
  136. package/src/shade/device/timing/profile/sgpt_write_record.js +62 -0
  137. package/src/shade/renderer/Renderer.d.ts +21 -0
  138. package/src/shade/renderer/Renderer.d.ts.map +1 -1
  139. package/src/shade/renderer/Renderer.js +2513 -2455
  140. package/src/engine/save/GameStateLoader.d.ts +0 -49
  141. package/src/engine/save/GameStateLoader.d.ts.map +0 -1
  142. package/src/engine/save/GameStateLoader.js +0 -168
@@ -1,49 +0,0 @@
1
- export default GameStateLoader;
2
- declare class GameStateLoader extends EnginePlugin {
3
- /**
4
- *
5
- * @type {Storage}
6
- */
7
- storage: Storage;
8
- startup(): Promise<void>;
9
- save(name: any, resolve: any, reject: any, progress: any): void;
10
- /**
11
- * @deprecated
12
- * @param {string} name
13
- * @param {function} resolve
14
- * @param {function} reject
15
- * @param {function} progress
16
- */
17
- legacyLoad(name: string, resolve: Function, reject: Function, progress: Function): void;
18
- /**
19
- * @deprecated
20
- * @param name
21
- * @param resolve
22
- * @param reject
23
- */
24
- legacyExists(name: any, resolve: any, reject: any): void;
25
- /**
26
- *
27
- * @param {string} name
28
- * @param {function(ArrayBuffer)} resolve
29
- * @param {(reason: *) => void} reject
30
- * @param {function(number)} [progress]
31
- */
32
- load(name: string, resolve: (arg0: ArrayBuffer) => any, reject: (reason: any) => void, progress?: (arg0: number) => any): void;
33
- /**
34
- *
35
- * @param {string} name
36
- * @param {function(number)} resolve
37
- * @param {function} reject
38
- */
39
- count(name: string, resolve: (arg0: number) => any, reject: Function): void;
40
- /**
41
- *
42
- * @param {string} name
43
- * @param {function(boolean)} resolve
44
- * @param {function} reject
45
- */
46
- exists(name: string, resolve: (arg0: boolean) => any, reject: Function): void;
47
- }
48
- import { EnginePlugin } from "../plugin/EnginePlugin.js";
49
- //# sourceMappingURL=GameStateLoader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GameStateLoader.d.ts","sourceRoot":"","sources":["../../../../src/engine/save/GameStateLoader.js"],"names":[],"mappings":";AAIA;IAII;;;OAGG;IACH,SAFU,OAAO,CAEF;IAEf,yBAEC;IAED,gEAeC;IAED;;;;;;OAMG;IACH,iBALW,MAAM,iEAShB;IAED;;;;;OAKG;IACH,yDAIC;IAED;;;;;;OAMG;IACH,WALW,MAAM,kBACG,WAAW,mCACL,IAAI,oBACV,MAAM,gBA6CzB;IAED;;;;;OAKG;IACH,YAJW,MAAM,kBACG,MAAM,kCAoBzB;IAED;;;;;OAKG;IACH,aAJW,MAAM,kBACG,OAAO,kCAwB1B;CACJ;6BAnK4B,2BAA2B"}
@@ -1,168 +0,0 @@
1
- import { GameSaveStateMetadata } from "../../../../view/game/save/GameSaveStateMetadata.js";
2
- import { array_pick_best_element } from "../../core/collection/array/array_pick_best_element.js";
3
- import { EnginePlugin } from "../plugin/EnginePlugin.js";
4
-
5
- class GameStateLoader extends EnginePlugin {
6
-
7
- id = 'game-state-loader';
8
-
9
- /**
10
- *
11
- * @type {Storage}
12
- */
13
- storage = null;
14
-
15
- async startup() {
16
- this.storage = this.engine.storage;
17
- }
18
-
19
- save(name, resolve, reject, progress) {
20
- const engine = this.engine;
21
-
22
- const currentScene = engine.sceneManager.current_scene;
23
-
24
-
25
- /**
26
- *
27
- * @type {GameSaveStateManager}
28
- */
29
- const gameSaves = engine.plugins.getById('game-save-state-manager');
30
-
31
- const saveComplete = gameSaves.store({ scene: currentScene, name });
32
- saveComplete.then(resolve, reject);
33
-
34
- }
35
-
36
- /**
37
- * @deprecated
38
- * @param {string} name
39
- * @param {function} resolve
40
- * @param {function} reject
41
- * @param {function} progress
42
- */
43
- legacyLoad(name, resolve, reject, progress) {
44
- console.warn('legacyLoad', name);
45
-
46
- this.storage.loadBinary(name, resolve, reject, progress);
47
- }
48
-
49
- /**
50
- * @deprecated
51
- * @param name
52
- * @param resolve
53
- * @param reject
54
- */
55
- legacyExists(name, resolve, reject) {
56
- console.warn('legacyExists', name);
57
-
58
- this.storage.contains(name, resolve, reject);
59
- }
60
-
61
- /**
62
- *
63
- * @param {string} name
64
- * @param {function(ArrayBuffer)} resolve
65
- * @param {(reason: *) => void} reject
66
- * @param {function(number)} [progress]
67
- */
68
- load(name, resolve, reject, progress) {
69
- const engine = this.engine;
70
-
71
-
72
- /**
73
- *
74
- * @type {GameSaveStateManager}
75
- */
76
- const gameSaves = engine.plugins.getById('game-save-state-manager');
77
-
78
- gameSaves.update()
79
- .then(() => {
80
- /**
81
- *
82
- * @type {Array<GameSaveStateMetadata>}
83
- */
84
- const matches = gameSaves.data.filter(m => {
85
-
86
- if (m.locked) {
87
- return false;
88
- }
89
-
90
- if (m.name === name) {
91
- return true;
92
- } else {
93
- return false;
94
- }
95
- });
96
-
97
- //find most recent
98
- const mostRecent = array_pick_best_element(matches, m => m.timestamp);
99
-
100
-
101
- if (mostRecent === undefined) {
102
- //try legacy
103
- return new Promise((lResolve, lReject) => this.legacyLoad(name, lResolve, lReject, progress));
104
-
105
- } else {
106
-
107
- return gameSaves.loadData(mostRecent.id);
108
- }
109
-
110
- }).then(resolve, reject);
111
- }
112
-
113
- /**
114
- *
115
- * @param {string} name
116
- * @param {function(number)} resolve
117
- * @param {function} reject
118
- */
119
- count(name, resolve, reject) {
120
- const engine = this.engine;
121
-
122
- /**
123
- *
124
- * @type {GameSaveStateManager}
125
- */
126
- const gameSaves = engine.plugins.getById('game-save-state-manager');
127
-
128
- gameSaves.update()
129
- .then(() => {
130
-
131
- const matches = gameSaves.data.filter(m => m.name === name);
132
-
133
- resolve(matches.length);
134
-
135
- });
136
- }
137
-
138
- /**
139
- *
140
- * @param {string} name
141
- * @param {function(boolean)} resolve
142
- * @param {function} reject
143
- */
144
- exists(name, resolve, reject) {
145
- const engine = this.engine;
146
-
147
- /**
148
- *
149
- * @type {GameSaveStateManager}
150
- */
151
- const gameSaves = engine.plugins.getById('game-save-state-manager');
152
-
153
- gameSaves.update()
154
- .then(() => {
155
- const exists = gameSaves.data.some(m => !m.locked && (m.name === name));
156
-
157
- if (!exists) {
158
- //try legacy
159
- this.legacyExists(name, resolve, reject);
160
- } else {
161
- resolve(exists);
162
- }
163
-
164
- }).catch(reject);
165
- }
166
- }
167
-
168
- export default GameStateLoader;