@driftengine/core 3.61.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 (955) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +9 -0
  3. package/README.md +9 -0
  4. package/dist/behavior/behaviorTree.d.ts +140 -0
  5. package/dist/behavior/behaviorTree.js +289 -0
  6. package/dist/build/shaderComments.d.ts +64 -0
  7. package/dist/build/shaderComments.js +0 -0
  8. package/dist/cinematic/player.d.ts +80 -0
  9. package/dist/cinematic/player.js +184 -0
  10. package/dist/cinematic/script.d.ts +63 -0
  11. package/dist/cinematic/script.js +141 -0
  12. package/dist/core/bootGate.d.ts +37 -0
  13. package/dist/core/bootGate.js +47 -0
  14. package/dist/core/loadTracker.d.ts +78 -0
  15. package/dist/core/loadTracker.js +106 -0
  16. package/dist/core/loop.d.ts +118 -0
  17. package/dist/core/loop.js +84 -0
  18. package/dist/core/messageQueue.d.ts +61 -0
  19. package/dist/core/messageQueue.js +104 -0
  20. package/dist/core/onceSet.d.ts +27 -0
  21. package/dist/core/onceSet.js +62 -0
  22. package/dist/core/preferences.d.ts +47 -0
  23. package/dist/core/preferences.js +140 -0
  24. package/dist/core/remoteSave.d.ts +154 -0
  25. package/dist/core/remoteSave.js +249 -0
  26. package/dist/core/rng.d.ts +64 -0
  27. package/dist/core/rng.js +72 -0
  28. package/dist/core/stepBudget.d.ts +91 -0
  29. package/dist/core/stepBudget.js +105 -0
  30. package/dist/core/storage.d.ts +52 -0
  31. package/dist/core/storage.js +85 -0
  32. package/dist/core/tickTrace.d.ts +72 -0
  33. package/dist/core/tickTrace.js +102 -0
  34. package/dist/core/timeCurve.d.ts +83 -0
  35. package/dist/core/timeCurve.js +107 -0
  36. package/dist/core/withDefaults.d.ts +21 -0
  37. package/dist/core/withDefaults.js +29 -0
  38. package/dist/dev/contactProbe.d.ts +41 -0
  39. package/dist/dev/contactProbe.js +58 -0
  40. package/dist/dev/fpsMeter.d.ts +45 -0
  41. package/dist/dev/fpsMeter.js +86 -0
  42. package/dist/environment/celestialClock.d.ts +141 -0
  43. package/dist/environment/celestialClock.js +262 -0
  44. package/dist/geometry/decal.d.ts +61 -0
  45. package/dist/geometry/decal.js +178 -0
  46. package/dist/geometry/filmPatch.d.ts +35 -0
  47. package/dist/geometry/filmPatch.js +112 -0
  48. package/dist/geometry/growable.d.ts +70 -0
  49. package/dist/geometry/growable.js +167 -0
  50. package/dist/geometry/lightVolume.d.ts +76 -0
  51. package/dist/geometry/lightVolume.js +65 -0
  52. package/dist/geometry/meshBuilder.d.ts +426 -0
  53. package/dist/geometry/meshBuilder.js +1184 -0
  54. package/dist/geometry/pixelFont.d.ts +59 -0
  55. package/dist/geometry/pixelFont.js +179 -0
  56. package/dist/geometry/ribbon.d.ts +101 -0
  57. package/dist/geometry/ribbon.js +546 -0
  58. package/dist/geometry/shellFill.d.ts +101 -0
  59. package/dist/geometry/shellFill.js +203 -0
  60. package/dist/geometry/spline.d.ts +162 -0
  61. package/dist/geometry/spline.js +527 -0
  62. package/dist/geometry/tangents.d.ts +30 -0
  63. package/dist/geometry/tangents.js +142 -0
  64. package/dist/geometry/textMesh.d.ts +51 -0
  65. package/dist/geometry/textMesh.js +57 -0
  66. package/dist/geometry/treeBuilder.d.ts +37 -0
  67. package/dist/geometry/treeBuilder.js +56 -0
  68. package/dist/host/display.d.ts +135 -0
  69. package/dist/host/display.js +114 -0
  70. package/dist/host/files.d.ts +25 -0
  71. package/dist/host/files.js +44 -0
  72. package/dist/host/lifecycle.d.ts +45 -0
  73. package/dist/host/lifecycle.js +28 -0
  74. package/dist/host/platformServices.d.ts +23 -0
  75. package/dist/host/platformServices.js +1 -0
  76. package/dist/host/screen.d.ts +49 -0
  77. package/dist/host/screen.js +90 -0
  78. package/dist/index.d.ts +289 -0
  79. package/dist/index.js +320 -0
  80. package/dist/input/actionMap.d.ts +181 -0
  81. package/dist/input/actionMap.js +314 -0
  82. package/dist/input/activeDevice.d.ts +55 -0
  83. package/dist/input/activeDevice.js +83 -0
  84. package/dist/input/gamepadIdentity.d.ts +43 -0
  85. package/dist/input/gamepadIdentity.js +108 -0
  86. package/dist/input/gamepadMapping.d.ts +56 -0
  87. package/dist/input/gamepadMapping.js +91 -0
  88. package/dist/input/input.d.ts +281 -0
  89. package/dist/input/input.js +703 -0
  90. package/dist/input/inputHarness.d.ts +42 -0
  91. package/dist/input/inputHarness.js +193 -0
  92. package/dist/input/rightGesture.d.ts +57 -0
  93. package/dist/input/rightGesture.js +49 -0
  94. package/dist/input/rumble.d.ts +71 -0
  95. package/dist/input/rumble.js +119 -0
  96. package/dist/input/touchControls.d.ts +138 -0
  97. package/dist/input/touchControls.js +352 -0
  98. package/dist/input/typingTarget.d.ts +6 -0
  99. package/dist/input/typingTarget.js +27 -0
  100. package/dist/math/bounds.d.ts +61 -0
  101. package/dist/math/bounds.js +121 -0
  102. package/dist/math/color.d.ts +8 -0
  103. package/dist/math/color.js +35 -0
  104. package/dist/math/exact.d.ts +66 -0
  105. package/dist/math/exact.js +262 -0
  106. package/dist/math/frustum.d.ts +44 -0
  107. package/dist/math/frustum.js +90 -0
  108. package/dist/math/intersect.d.ts +76 -0
  109. package/dist/math/intersect.js +185 -0
  110. package/dist/math/scalar.d.ts +51 -0
  111. package/dist/math/scalar.js +99 -0
  112. package/dist/math/spring.d.ts +59 -0
  113. package/dist/math/spring.js +88 -0
  114. package/dist/nav/navGraph.d.ts +71 -0
  115. package/dist/nav/navGraph.js +111 -0
  116. package/dist/nav/navPath.d.ts +93 -0
  117. package/dist/nav/navPath.js +162 -0
  118. package/dist/nav/navSearch.d.ts +74 -0
  119. package/dist/nav/navSearch.js +198 -0
  120. package/dist/physics/boxSurface.d.ts +48 -0
  121. package/dist/physics/boxSurface.js +73 -0
  122. package/dist/physics/colliderSurface.d.ts +46 -0
  123. package/dist/physics/colliderSurface.js +146 -0
  124. package/dist/physics/compositeSurface.d.ts +33 -0
  125. package/dist/physics/compositeSurface.js +108 -0
  126. package/dist/physics/heightSurface.d.ts +103 -0
  127. package/dist/physics/heightSurface.js +153 -0
  128. package/dist/physics/ribbonSurface.d.ts +239 -0
  129. package/dist/physics/ribbonSurface.js +522 -0
  130. package/dist/render/ambientOcclusionPass.d.ts +53 -0
  131. package/dist/render/ambientOcclusionPass.js +179 -0
  132. package/dist/render/areaLights.d.ts +116 -0
  133. package/dist/render/areaLights.js +91 -0
  134. package/dist/render/areaShadowSet.d.ts +184 -0
  135. package/dist/render/areaShadowSet.js +277 -0
  136. package/dist/render/atmosphere.d.ts +94 -0
  137. package/dist/render/atmosphere.js +91 -0
  138. package/dist/render/backend/api.d.ts +496 -0
  139. package/dist/render/backend/api.js +1 -0
  140. package/dist/render/backend/budget.d.ts +82 -0
  141. package/dist/render/backend/budget.js +99 -0
  142. package/dist/render/backend/createRenderer.d.ts +135 -0
  143. package/dist/render/backend/createRenderer.js +201 -0
  144. package/dist/render/backend/deadline.d.ts +24 -0
  145. package/dist/render/backend/deadline.js +38 -0
  146. package/dist/render/backend/probe.d.ts +30 -0
  147. package/dist/render/backend/probe.js +129 -0
  148. package/dist/render/backend/select.d.ts +70 -0
  149. package/dist/render/backend/select.js +249 -0
  150. package/dist/render/backend/timer.d.ts +50 -0
  151. package/dist/render/backend/timer.js +1 -0
  152. package/dist/render/backend/webgl2/instanced.d.ts +21 -0
  153. package/dist/render/backend/webgl2/instanced.js +42 -0
  154. package/dist/render/backend/webgl2/morphTexture.d.ts +21 -0
  155. package/dist/render/backend/webgl2/morphTexture.js +55 -0
  156. package/dist/render/backend/webgl2/renderer.d.ts +3027 -0
  157. package/dist/render/backend/webgl2/renderer.js +6041 -0
  158. package/dist/render/backend/webgl2/skinPaletteTexture.d.ts +32 -0
  159. package/dist/render/backend/webgl2/skinPaletteTexture.js +68 -0
  160. package/dist/render/backend/webgpu/boltPass.d.ts +42 -0
  161. package/dist/render/backend/webgpu/boltPass.js +160 -0
  162. package/dist/render/backend/webgpu/buffers.d.ts +159 -0
  163. package/dist/render/backend/webgpu/buffers.js +402 -0
  164. package/dist/render/backend/webgpu/causticsPass.d.ts +36 -0
  165. package/dist/render/backend/webgpu/causticsPass.js +138 -0
  166. package/dist/render/backend/webgpu/clusterBinner.d.ts +51 -0
  167. package/dist/render/backend/webgpu/clusterBinner.js +206 -0
  168. package/dist/render/backend/webgpu/depthPass.d.ts +114 -0
  169. package/dist/render/backend/webgpu/depthPass.js +228 -0
  170. package/dist/render/backend/webgpu/device.d.ts +52 -0
  171. package/dist/render/backend/webgpu/device.js +121 -0
  172. package/dist/render/backend/webgpu/drawCommand.d.ts +43 -0
  173. package/dist/render/backend/webgpu/drawCommand.js +54 -0
  174. package/dist/render/backend/webgpu/environmentTexels.d.ts +28 -0
  175. package/dist/render/backend/webgpu/environmentTexels.js +79 -0
  176. package/dist/render/backend/webgpu/filmPass.d.ts +29 -0
  177. package/dist/render/backend/webgpu/filmPass.js +97 -0
  178. package/dist/render/backend/webgpu/flatPass.d.ts +213 -0
  179. package/dist/render/backend/webgpu/flatPass.js +482 -0
  180. package/dist/render/backend/webgpu/flockPass.d.ts +34 -0
  181. package/dist/render/backend/webgpu/flockPass.js +129 -0
  182. package/dist/render/backend/webgpu/gpuTimestamps.d.ts +94 -0
  183. package/dist/render/backend/webgpu/gpuTimestamps.js +213 -0
  184. package/dist/render/backend/webgpu/insetPass.d.ts +19 -0
  185. package/dist/render/backend/webgpu/insetPass.js +108 -0
  186. package/dist/render/backend/webgpu/instanced.d.ts +27 -0
  187. package/dist/render/backend/webgpu/instanced.js +49 -0
  188. package/dist/render/backend/webgpu/lightVolumePass.d.ts +75 -0
  189. package/dist/render/backend/webgpu/lightVolumePass.js +154 -0
  190. package/dist/render/backend/webgpu/linePass.d.ts +90 -0
  191. package/dist/render/backend/webgpu/linePass.js +220 -0
  192. package/dist/render/backend/webgpu/morphTexture.d.ts +18 -0
  193. package/dist/render/backend/webgpu/morphTexture.js +51 -0
  194. package/dist/render/backend/webgpu/panelPass.d.ts +37 -0
  195. package/dist/render/backend/webgpu/panelPass.js +114 -0
  196. package/dist/render/backend/webgpu/particlePass.d.ts +89 -0
  197. package/dist/render/backend/webgpu/particlePass.js +280 -0
  198. package/dist/render/backend/webgpu/pipelineCache.d.ts +93 -0
  199. package/dist/render/backend/webgpu/pipelineCache.js +140 -0
  200. package/dist/render/backend/webgpu/plumePass.d.ts +69 -0
  201. package/dist/render/backend/webgpu/plumePass.js +213 -0
  202. package/dist/render/backend/webgpu/pointShadowPass.d.ts +88 -0
  203. package/dist/render/backend/webgpu/pointShadowPass.js +280 -0
  204. package/dist/render/backend/webgpu/postPass.d.ts +342 -0
  205. package/dist/render/backend/webgpu/postPass.js +366 -0
  206. package/dist/render/backend/webgpu/probePass.d.ts +108 -0
  207. package/dist/render/backend/webgpu/probePass.js +188 -0
  208. package/dist/render/backend/webgpu/reflectionPass.d.ts +29 -0
  209. package/dist/render/backend/webgpu/reflectionPass.js +87 -0
  210. package/dist/render/backend/webgpu/renderer.d.ts +3082 -0
  211. package/dist/render/backend/webgpu/renderer.js +10911 -0
  212. package/dist/render/backend/webgpu/scatterPass.d.ts +95 -0
  213. package/dist/render/backend/webgpu/scatterPass.js +266 -0
  214. package/dist/render/backend/webgpu/sdfTextPass.d.ts +86 -0
  215. package/dist/render/backend/webgpu/sdfTextPass.js +190 -0
  216. package/dist/render/backend/webgpu/shaderModules.d.ts +9 -0
  217. package/dist/render/backend/webgpu/shaderModules.js +45 -0
  218. package/dist/render/backend/webgpu/shaders/clusterBin.wgsl.d.ts +23 -0
  219. package/dist/render/backend/webgpu/shaders/clusterBin.wgsl.js +208 -0
  220. package/dist/render/backend/webgpu/skinPaletteRing.d.ts +67 -0
  221. package/dist/render/backend/webgpu/skinPaletteRing.js +97 -0
  222. package/dist/render/backend/webgpu/skinPaletteTexture.d.ts +17 -0
  223. package/dist/render/backend/webgpu/skinPaletteTexture.js +68 -0
  224. package/dist/render/backend/webgpu/skyPass.d.ts +102 -0
  225. package/dist/render/backend/webgpu/skyPass.js +70 -0
  226. package/dist/render/backend/webgpu/surfaceTexturePass.d.ts +41 -0
  227. package/dist/render/backend/webgpu/surfaceTexturePass.js +228 -0
  228. package/dist/render/backend/webgpu/textPass.d.ts +73 -0
  229. package/dist/render/backend/webgpu/textPass.js +190 -0
  230. package/dist/render/backend/webgpu/uniformRing.d.ts +133 -0
  231. package/dist/render/backend/webgpu/uniformRing.js +208 -0
  232. package/dist/render/backend/webgpu/waterPass.d.ts +73 -0
  233. package/dist/render/backend/webgpu/waterPass.js +160 -0
  234. package/dist/render/backend/webgpu/windStreakPass.d.ts +46 -0
  235. package/dist/render/backend/webgpu/windStreakPass.js +153 -0
  236. package/dist/render/billboard.d.ts +27 -0
  237. package/dist/render/billboard.js +79 -0
  238. package/dist/render/bloomChain.d.ts +66 -0
  239. package/dist/render/bloomChain.js +83 -0
  240. package/dist/render/bloomPass.d.ts +54 -0
  241. package/dist/render/bloomPass.js +219 -0
  242. package/dist/render/boltBatch.d.ts +39 -0
  243. package/dist/render/boltBatch.js +121 -0
  244. package/dist/render/boltPool.d.ts +135 -0
  245. package/dist/render/boltPool.js +259 -0
  246. package/dist/render/boom.d.ts +46 -0
  247. package/dist/render/boom.js +81 -0
  248. package/dist/render/camera.d.ts +119 -0
  249. package/dist/render/camera.js +304 -0
  250. package/dist/render/causticsRenderer.d.ts +63 -0
  251. package/dist/render/causticsRenderer.js +119 -0
  252. package/dist/render/cinematicCamera.d.ts +102 -0
  253. package/dist/render/cinematicCamera.js +227 -0
  254. package/dist/render/clusteredLights.d.ts +260 -0
  255. package/dist/render/clusteredLights.js +479 -0
  256. package/dist/render/colourGrade.d.ts +62 -0
  257. package/dist/render/colourGrade.js +91 -0
  258. package/dist/render/compute.d.ts +74 -0
  259. package/dist/render/compute.js +8 -0
  260. package/dist/render/contextLoss.d.ts +32 -0
  261. package/dist/render/contextLoss.js +46 -0
  262. package/dist/render/debugLines.d.ts +75 -0
  263. package/dist/render/debugLines.js +281 -0
  264. package/dist/render/decalPass.d.ts +34 -0
  265. package/dist/render/decalPass.js +103 -0
  266. package/dist/render/decalProjector.d.ts +140 -0
  267. package/dist/render/decalProjector.js +282 -0
  268. package/dist/render/decalQueue.d.ts +53 -0
  269. package/dist/render/decalQueue.js +87 -0
  270. package/dist/render/depthConvention.d.ts +314 -0
  271. package/dist/render/depthConvention.js +346 -0
  272. package/dist/render/drawingBuffer.d.ts +52 -0
  273. package/dist/render/drawingBuffer.js +67 -0
  274. package/dist/render/emptyTexture.d.ts +60 -0
  275. package/dist/render/emptyTexture.js +103 -0
  276. package/dist/render/envProbeArray.d.ts +85 -0
  277. package/dist/render/envProbeArray.js +164 -0
  278. package/dist/render/equirectToCube.d.ts +54 -0
  279. package/dist/render/equirectToCube.js +123 -0
  280. package/dist/render/flockGeometry.d.ts +23 -0
  281. package/dist/render/flockGeometry.js +43 -0
  282. package/dist/render/flockRenderer.d.ts +37 -0
  283. package/dist/render/flockRenderer.js +70 -0
  284. package/dist/render/frame/arena.d.ts +32 -0
  285. package/dist/render/frame/arena.js +65 -0
  286. package/dist/render/frame/index.d.ts +18 -0
  287. package/dist/render/frame/index.js +4 -0
  288. package/dist/render/frame/replay.d.ts +34 -0
  289. package/dist/render/frame/replay.js +48 -0
  290. package/dist/render/frame/resources.d.ts +25 -0
  291. package/dist/render/frame/resources.js +55 -0
  292. package/dist/render/frame/schedule.d.ts +37 -0
  293. package/dist/render/frame/schedule.js +61 -0
  294. package/dist/render/frameView.d.ts +19 -0
  295. package/dist/render/frameView.js +1 -0
  296. package/dist/render/gizmo.d.ts +236 -0
  297. package/dist/render/gizmo.js +727 -0
  298. package/dist/render/globalMedium.d.ts +124 -0
  299. package/dist/render/globalMedium.js +100 -0
  300. package/dist/render/globalMediumPass.d.ts +101 -0
  301. package/dist/render/globalMediumPass.js +250 -0
  302. package/dist/render/gpuCapability.d.ts +111 -0
  303. package/dist/render/gpuCapability.js +194 -0
  304. package/dist/render/gpuTimer.d.ts +87 -0
  305. package/dist/render/gpuTimer.js +145 -0
  306. package/dist/render/halfFloat.d.ts +4 -0
  307. package/dist/render/halfFloat.js +38 -0
  308. package/dist/render/handleRegistry.d.ts +54 -0
  309. package/dist/render/handleRegistry.js +84 -0
  310. package/dist/render/iesProfile.d.ts +64 -0
  311. package/dist/render/iesProfile.js +179 -0
  312. package/dist/render/imageTexels.d.ts +50 -0
  313. package/dist/render/imageTexels.js +91 -0
  314. package/dist/render/instancedMesh.d.ts +48 -0
  315. package/dist/render/instancedMesh.js +127 -0
  316. package/dist/render/instances.d.ts +69 -0
  317. package/dist/render/instances.js +52 -0
  318. package/dist/render/lightBudget.d.ts +397 -0
  319. package/dist/render/lightBudget.js +524 -0
  320. package/dist/render/lightMatrix.d.ts +3 -0
  321. package/dist/render/lightMatrix.js +45 -0
  322. package/dist/render/lightVolumeDraw.d.ts +132 -0
  323. package/dist/render/lightVolumeDraw.js +181 -0
  324. package/dist/render/lineBatch.d.ts +60 -0
  325. package/dist/render/lineBatch.js +160 -0
  326. package/dist/render/linePoints.d.ts +33 -0
  327. package/dist/render/linePoints.js +46 -0
  328. package/dist/render/livePointShadowSet.d.ts +72 -0
  329. package/dist/render/livePointShadowSet.js +258 -0
  330. package/dist/render/lod.d.ts +35 -0
  331. package/dist/render/lod.js +65 -0
  332. package/dist/render/mesh.d.ts +177 -0
  333. package/dist/render/mesh.js +466 -0
  334. package/dist/render/occlusion.d.ts +81 -0
  335. package/dist/render/occlusion.js +378 -0
  336. package/dist/render/oitPass.d.ts +67 -0
  337. package/dist/render/oitPass.js +213 -0
  338. package/dist/render/orderIndependent.d.ts +92 -0
  339. package/dist/render/orderIndependent.js +108 -0
  340. package/dist/render/particleBatch.d.ts +140 -0
  341. package/dist/render/particleBatch.js +186 -0
  342. package/dist/render/particleMaterial.d.ts +54 -0
  343. package/dist/render/particleMaterial.js +42 -0
  344. package/dist/render/particlePool.d.ts +124 -0
  345. package/dist/render/particlePool.js +182 -0
  346. package/dist/render/pass.d.ts +195 -0
  347. package/dist/render/pass.js +9 -0
  348. package/dist/render/passTarget.d.ts +86 -0
  349. package/dist/render/passTarget.js +121 -0
  350. package/dist/render/pickable.d.ts +31 -0
  351. package/dist/render/pickable.js +172 -0
  352. package/dist/render/planarReflection.d.ts +59 -0
  353. package/dist/render/planarReflection.js +194 -0
  354. package/dist/render/planarReflectionDraw.d.ts +31 -0
  355. package/dist/render/planarReflectionDraw.js +65 -0
  356. package/dist/render/plumeGeometry.d.ts +25 -0
  357. package/dist/render/plumeGeometry.js +61 -0
  358. package/dist/render/plumeMaterial.d.ts +31 -0
  359. package/dist/render/plumeMaterial.js +64 -0
  360. package/dist/render/plumeRenderer.d.ts +96 -0
  361. package/dist/render/plumeRenderer.js +185 -0
  362. package/dist/render/pointLightSelection.d.ts +175 -0
  363. package/dist/render/pointLightSelection.js +301 -0
  364. package/dist/render/pointShadowArray.d.ts +95 -0
  365. package/dist/render/pointShadowArray.js +219 -0
  366. package/dist/render/pointShadowBudget.d.ts +118 -0
  367. package/dist/render/pointShadowBudget.js +221 -0
  368. package/dist/render/pointShadowImage.d.ts +265 -0
  369. package/dist/render/pointShadowImage.js +339 -0
  370. package/dist/render/pointShadowMap.d.ts +93 -0
  371. package/dist/render/pointShadowMap.js +167 -0
  372. package/dist/render/pointShadowSystem.d.ts +195 -0
  373. package/dist/render/pointShadowSystem.js +336 -0
  374. package/dist/render/prefilterEnvMap.d.ts +124 -0
  375. package/dist/render/prefilterEnvMap.js +146 -0
  376. package/dist/render/prefilterPass.d.ts +44 -0
  377. package/dist/render/prefilterPass.js +98 -0
  378. package/dist/render/probeGrid.d.ts +122 -0
  379. package/dist/render/probeGrid.js +174 -0
  380. package/dist/render/rainField.d.ts +99 -0
  381. package/dist/render/rainField.js +168 -0
  382. package/dist/render/reflectionProbe.d.ts +188 -0
  383. package/dist/render/reflectionProbe.js +437 -0
  384. package/dist/render/renderQuality.d.ts +699 -0
  385. package/dist/render/renderQuality.js +293 -0
  386. package/dist/render/rendererHarness.d.ts +39 -0
  387. package/dist/render/rendererHarness.js +185 -0
  388. package/dist/render/resolutionGovernor.d.ts +107 -0
  389. package/dist/render/resolutionGovernor.js +144 -0
  390. package/dist/render/scatterDeform.d.ts +17 -0
  391. package/dist/render/scatterDeform.js +46 -0
  392. package/dist/render/sceneTarget.d.ts +288 -0
  393. package/dist/render/sceneTarget.js +856 -0
  394. package/dist/render/screenSpaceReflection.d.ts +233 -0
  395. package/dist/render/screenSpaceReflection.js +415 -0
  396. package/dist/render/sdfFont.d.ts +77 -0
  397. package/dist/render/sdfFont.js +86 -0
  398. package/dist/render/sdfTextLayout.d.ts +46 -0
  399. package/dist/render/sdfTextLayout.js +145 -0
  400. package/dist/render/sdfTextRenderer.d.ts +75 -0
  401. package/dist/render/sdfTextRenderer.js +194 -0
  402. package/dist/render/seaState.d.ts +25 -0
  403. package/dist/render/seaState.js +34 -0
  404. package/dist/render/segmentQuads.d.ts +29 -0
  405. package/dist/render/segmentQuads.js +75 -0
  406. package/dist/render/shader.d.ts +5 -0
  407. package/dist/render/shader.js +172 -0
  408. package/dist/render/shaders/ambientOcclusion.d.ts +45 -0
  409. package/dist/render/shaders/ambientOcclusion.js +352 -0
  410. package/dist/render/shaders/arcane.d.ts +19 -0
  411. package/dist/render/shaders/arcane.js +102 -0
  412. package/dist/render/shaders/bloom.d.ts +70 -0
  413. package/dist/render/shaders/bloom.js +227 -0
  414. package/dist/render/shaders/bolt.d.ts +17 -0
  415. package/dist/render/shaders/bolt.js +161 -0
  416. package/dist/render/shaders/caustics.d.ts +38 -0
  417. package/dist/render/shaders/caustics.js +167 -0
  418. package/dist/render/shaders/conditionals.d.ts +21 -0
  419. package/dist/render/shaders/conditionals.js +55 -0
  420. package/dist/render/shaders/decalProject.d.ts +25 -0
  421. package/dist/render/shaders/decalProject.js +125 -0
  422. package/dist/render/shaders/depth.d.ts +14 -0
  423. package/dist/render/shaders/depth.js +114 -0
  424. package/dist/render/shaders/depthOfField.d.ts +41 -0
  425. package/dist/render/shaders/depthOfField.js +139 -0
  426. package/dist/render/shaders/film.d.ts +15 -0
  427. package/dist/render/shaders/film.js +283 -0
  428. package/dist/render/shaders/fire.d.ts +12 -0
  429. package/dist/render/shaders/fire.js +178 -0
  430. package/dist/render/shaders/flat/directionalShadow.d.ts +1 -0
  431. package/dist/render/shaders/flat/directionalShadow.js +195 -0
  432. package/dist/render/shaders/flat/index.d.ts +135 -0
  433. package/dist/render/shaders/flat/index.js +387 -0
  434. package/dist/render/shaders/flat/lobes.d.ts +1 -0
  435. package/dist/render/shaders/flat/lobes.js +398 -0
  436. package/dist/render/shaders/flat/main.d.ts +2 -0
  437. package/dist/render/shaders/flat/main.js +1630 -0
  438. package/dist/render/shaders/flat/pointShadow.d.ts +1 -0
  439. package/dist/render/shaders/flat/pointShadow.js +322 -0
  440. package/dist/render/shaders/flat/preamble.d.ts +15 -0
  441. package/dist/render/shaders/flat/preamble.js +864 -0
  442. package/dist/render/shaders/flat/probeGrid.d.ts +21 -0
  443. package/dist/render/shaders/flat/probeGrid.js +151 -0
  444. package/dist/render/shaders/flat/surface.d.ts +2 -0
  445. package/dist/render/shaders/flat/surface.js +40 -0
  446. package/dist/render/shaders/flock.d.ts +11 -0
  447. package/dist/render/shaders/flock.js +102 -0
  448. package/dist/render/shaders/fog.d.ts +37 -0
  449. package/dist/render/shaders/fog.js +98 -0
  450. package/dist/render/shaders/fullscreen.d.ts +16 -0
  451. package/dist/render/shaders/fullscreen.js +27 -0
  452. package/dist/render/shaders/generated/ambientOcclusion.wgsl.d.ts +65 -0
  453. package/dist/render/shaders/generated/ambientOcclusion.wgsl.js +71 -0
  454. package/dist/render/shaders/generated/arcane.wgsl.d.ts +90 -0
  455. package/dist/render/shaders/generated/arcane.wgsl.js +96 -0
  456. package/dist/render/shaders/generated/bloom.wgsl.d.ts +69 -0
  457. package/dist/render/shaders/generated/bloom.wgsl.js +75 -0
  458. package/dist/render/shaders/generated/bolt.wgsl.d.ts +118 -0
  459. package/dist/render/shaders/generated/bolt.wgsl.js +124 -0
  460. package/dist/render/shaders/generated/caustics.wgsl.d.ts +118 -0
  461. package/dist/render/shaders/generated/caustics.wgsl.js +124 -0
  462. package/dist/render/shaders/generated/decalProject.wgsl.d.ts +61 -0
  463. package/dist/render/shaders/generated/decalProject.wgsl.js +67 -0
  464. package/dist/render/shaders/generated/depth.wgsl.d.ts +131 -0
  465. package/dist/render/shaders/generated/depth.wgsl.js +137 -0
  466. package/dist/render/shaders/generated/film.wgsl.d.ts +134 -0
  467. package/dist/render/shaders/generated/film.wgsl.js +140 -0
  468. package/dist/render/shaders/generated/fire.wgsl.d.ts +128 -0
  469. package/dist/render/shaders/generated/fire.wgsl.js +134 -0
  470. package/dist/render/shaders/generated/flat.wgsl.d.ts +9163 -0
  471. package/dist/render/shaders/generated/flat.wgsl.js +9192 -0
  472. package/dist/render/shaders/generated/flock.wgsl.d.ts +73 -0
  473. package/dist/render/shaders/generated/flock.wgsl.js +79 -0
  474. package/dist/render/shaders/generated/fullscreen.wgsl.d.ts +12 -0
  475. package/dist/render/shaders/generated/fullscreen.wgsl.js +18 -0
  476. package/dist/render/shaders/generated/globalMedium.wgsl.d.ts +130 -0
  477. package/dist/render/shaders/generated/globalMedium.wgsl.js +136 -0
  478. package/dist/render/shaders/generated/lightVolume.wgsl.d.ts +230 -0
  479. package/dist/render/shaders/generated/lightVolume.wgsl.js +239 -0
  480. package/dist/render/shaders/generated/line.wgsl.d.ts +128 -0
  481. package/dist/render/shaders/generated/line.wgsl.js +134 -0
  482. package/dist/render/shaders/generated/octahedralResolve.wgsl.d.ts +51 -0
  483. package/dist/render/shaders/generated/octahedralResolve.wgsl.js +57 -0
  484. package/dist/render/shaders/generated/oitResolve.wgsl.d.ts +23 -0
  485. package/dist/render/shaders/generated/oitResolve.wgsl.js +29 -0
  486. package/dist/render/shaders/generated/panel.wgsl.d.ts +48 -0
  487. package/dist/render/shaders/generated/panel.wgsl.js +54 -0
  488. package/dist/render/shaders/generated/particle.wgsl.d.ts +332 -0
  489. package/dist/render/shaders/generated/particle.wgsl.js +338 -0
  490. package/dist/render/shaders/generated/prefilter.wgsl.d.ts +61 -0
  491. package/dist/render/shaders/generated/prefilter.wgsl.js +67 -0
  492. package/dist/render/shaders/generated/rush.wgsl.d.ts +131 -0
  493. package/dist/render/shaders/generated/rush.wgsl.js +137 -0
  494. package/dist/render/shaders/generated/scatter.wgsl.d.ts +195 -0
  495. package/dist/render/shaders/generated/scatter.wgsl.js +201 -0
  496. package/dist/render/shaders/generated/sdfText.wgsl.d.ts +69 -0
  497. package/dist/render/shaders/generated/sdfText.wgsl.js +75 -0
  498. package/dist/render/shaders/generated/sky.wgsl.d.ts +100 -0
  499. package/dist/render/shaders/generated/sky.wgsl.js +106 -0
  500. package/dist/render/shaders/generated/smoke.wgsl.d.ts +85 -0
  501. package/dist/render/shaders/generated/smoke.wgsl.js +91 -0
  502. package/dist/render/shaders/generated/ssrResolve.wgsl.d.ts +18 -0
  503. package/dist/render/shaders/generated/ssrResolve.wgsl.js +24 -0
  504. package/dist/render/shaders/generated/ssrTrace.wgsl.d.ts +86 -0
  505. package/dist/render/shaders/generated/ssrTrace.wgsl.js +92 -0
  506. package/dist/render/shaders/generated/temporalResolve.wgsl.d.ts +46 -0
  507. package/dist/render/shaders/generated/temporalResolve.wgsl.js +52 -0
  508. package/dist/render/shaders/generated/text.wgsl.d.ts +98 -0
  509. package/dist/render/shaders/generated/text.wgsl.js +104 -0
  510. package/dist/render/shaders/generated/water.wgsl.d.ts +247 -0
  511. package/dist/render/shaders/generated/water.wgsl.js +253 -0
  512. package/dist/render/shaders/generated/windStreaks.wgsl.d.ts +73 -0
  513. package/dist/render/shaders/generated/windStreaks.wgsl.js +79 -0
  514. package/dist/render/shaders/gerstner.d.ts +21 -0
  515. package/dist/render/shaders/gerstner.js +110 -0
  516. package/dist/render/shaders/globalMedium.d.ts +56 -0
  517. package/dist/render/shaders/globalMedium.js +393 -0
  518. package/dist/render/shaders/lightVolume.d.ts +61 -0
  519. package/dist/render/shaders/lightVolume.js +527 -0
  520. package/dist/render/shaders/line.d.ts +18 -0
  521. package/dist/render/shaders/line.js +122 -0
  522. package/dist/render/shaders/morph.d.ts +26 -0
  523. package/dist/render/shaders/morph.js +61 -0
  524. package/dist/render/shaders/octahedral.d.ts +76 -0
  525. package/dist/render/shaders/octahedral.js +161 -0
  526. package/dist/render/shaders/octahedralResolve.d.ts +25 -0
  527. package/dist/render/shaders/octahedralResolve.js +81 -0
  528. package/dist/render/shaders/oitResolve.d.ts +17 -0
  529. package/dist/render/shaders/oitResolve.js +42 -0
  530. package/dist/render/shaders/outputTransform.d.ts +37 -0
  531. package/dist/render/shaders/outputTransform.js +106 -0
  532. package/dist/render/shaders/panel.d.ts +17 -0
  533. package/dist/render/shaders/panel.js +50 -0
  534. package/dist/render/shaders/particle.d.ts +82 -0
  535. package/dist/render/shaders/particle.js +431 -0
  536. package/dist/render/shaders/prefilter.d.ts +37 -0
  537. package/dist/render/shaders/prefilter.js +276 -0
  538. package/dist/render/shaders/rush.d.ts +21 -0
  539. package/dist/render/shaders/rush.js +355 -0
  540. package/dist/render/shaders/scatter.d.ts +14 -0
  541. package/dist/render/shaders/scatter.js +206 -0
  542. package/dist/render/shaders/sdfText.d.ts +9 -0
  543. package/dist/render/shaders/sdfText.js +65 -0
  544. package/dist/render/shaders/skinning.d.ts +17 -0
  545. package/dist/render/shaders/skinning.js +59 -0
  546. package/dist/render/shaders/sky.d.ts +10 -0
  547. package/dist/render/shaders/sky.js +242 -0
  548. package/dist/render/shaders/smoke.d.ts +8 -0
  549. package/dist/render/shaders/smoke.js +88 -0
  550. package/dist/render/shaders/ssrResolve.d.ts +15 -0
  551. package/dist/render/shaders/ssrResolve.js +28 -0
  552. package/dist/render/shaders/ssrTrace.d.ts +22 -0
  553. package/dist/render/shaders/ssrTrace.js +230 -0
  554. package/dist/render/shaders/tangentFrame.d.ts +17 -0
  555. package/dist/render/shaders/tangentFrame.js +70 -0
  556. package/dist/render/shaders/temporalResolve.d.ts +1 -0
  557. package/dist/render/shaders/temporalResolve.js +150 -0
  558. package/dist/render/shaders/text.d.ts +17 -0
  559. package/dist/render/shaders/text.js +155 -0
  560. package/dist/render/shaders/vertexChannel.d.ts +39 -0
  561. package/dist/render/shaders/vertexChannel.js +69 -0
  562. package/dist/render/shaders/water.d.ts +18 -0
  563. package/dist/render/shaders/water.js +354 -0
  564. package/dist/render/shaders/windStreaks.d.ts +14 -0
  565. package/dist/render/shaders/windStreaks.js +129 -0
  566. package/dist/render/shadowCasters.d.ts +107 -0
  567. package/dist/render/shadowCasters.js +1 -0
  568. package/dist/render/shadowMap.d.ts +10 -0
  569. package/dist/render/shadowMap.js +80 -0
  570. package/dist/render/shotPlacement.d.ts +80 -0
  571. package/dist/render/shotPlacement.js +183 -0
  572. package/dist/render/skinPalette.d.ts +90 -0
  573. package/dist/render/skinPalette.js +136 -0
  574. package/dist/render/ssrPass.d.ts +59 -0
  575. package/dist/render/ssrPass.js +196 -0
  576. package/dist/render/surfaceSheet.d.ts +52 -0
  577. package/dist/render/surfaceSheet.js +99 -0
  578. package/dist/render/surfaceTexture.d.ts +197 -0
  579. package/dist/render/surfaceTexture.js +116 -0
  580. package/dist/render/temporalAa.d.ts +104 -0
  581. package/dist/render/temporalAa.js +194 -0
  582. package/dist/render/temporalPass.d.ts +54 -0
  583. package/dist/render/temporalPass.js +135 -0
  584. package/dist/render/textLayout.d.ts +88 -0
  585. package/dist/render/textLayout.js +201 -0
  586. package/dist/render/textRenderer.d.ts +32 -0
  587. package/dist/render/textRenderer.js +176 -0
  588. package/dist/render/thirdPersonCamera.d.ts +272 -0
  589. package/dist/render/thirdPersonCamera.js +479 -0
  590. package/dist/render/trample.d.ts +57 -0
  591. package/dist/render/trample.js +134 -0
  592. package/dist/render/translucentQueue.d.ts +76 -0
  593. package/dist/render/translucentQueue.js +90 -0
  594. package/dist/render/uniformVectorBudget.d.ts +105 -0
  595. package/dist/render/uniformVectorBudget.js +201 -0
  596. package/dist/render/uploadStep.d.ts +14 -0
  597. package/dist/render/uploadStep.js +14 -0
  598. package/dist/render/vertexDefaults.d.ts +48 -0
  599. package/dist/render/vertexDefaults.js +111 -0
  600. package/dist/render/visibility.d.ts +22 -0
  601. package/dist/render/visibility.js +47 -0
  602. package/dist/render/waterDraw.d.ts +57 -0
  603. package/dist/render/waterDraw.js +102 -0
  604. package/dist/render/waterGrid.d.ts +62 -0
  605. package/dist/render/waterGrid.js +151 -0
  606. package/dist/render/waterRenderer.d.ts +163 -0
  607. package/dist/render/waterRenderer.js +165 -0
  608. package/dist/render/wind.d.ts +45 -0
  609. package/dist/render/wind.js +32 -0
  610. package/dist/render/windField.d.ts +34 -0
  611. package/dist/render/windField.js +13 -0
  612. package/dist/render/windStreakDraw.d.ts +73 -0
  613. package/dist/render/windStreakDraw.js +86 -0
  614. package/dist/render/windStreakRenderer.d.ts +37 -0
  615. package/dist/render/windStreakRenderer.js +86 -0
  616. package/dist/scene/node.d.ts +128 -0
  617. package/dist/scene/node.js +319 -0
  618. package/dist/scene/visit.d.ts +38 -0
  619. package/dist/scene/visit.js +43 -0
  620. package/dist/ui/clipMime.d.ts +46 -0
  621. package/dist/ui/clipMime.js +88 -0
  622. package/dist/ui/exportTarget.d.ts +305 -0
  623. package/dist/ui/exportTarget.js +368 -0
  624. package/dist/ui/frameOverlay.d.ts +59 -0
  625. package/dist/ui/frameOverlay.js +76 -0
  626. package/dist/ui/framePacer.d.ts +142 -0
  627. package/dist/ui/framePacer.js +284 -0
  628. package/dist/ui/frameRecorder.d.ts +188 -0
  629. package/dist/ui/frameRecorder.js +221 -0
  630. package/dist/ui/fullscreen.d.ts +72 -0
  631. package/dist/ui/fullscreen.js +92 -0
  632. package/dist/ui/pixelCursor.d.ts +28 -0
  633. package/dist/ui/pixelCursor.js +66 -0
  634. package/dist/ui/splash.d.ts +86 -0
  635. package/dist/ui/splash.js +300 -0
  636. package/dist/ui/stillFrame.d.ts +22 -0
  637. package/dist/ui/stillFrame.js +40 -0
  638. package/package.json +60 -0
  639. package/src/behavior/behaviorTree.ts +346 -0
  640. package/src/build/shaderComments.ts +0 -0
  641. package/src/cinematic/player.ts +209 -0
  642. package/src/cinematic/script.ts +231 -0
  643. package/src/core/bootGate.ts +49 -0
  644. package/src/core/loadTracker.ts +144 -0
  645. package/src/core/loop.ts +211 -0
  646. package/src/core/messageQueue.ts +145 -0
  647. package/src/core/onceSet.ts +65 -0
  648. package/src/core/preferences.ts +177 -0
  649. package/src/core/remoteSave.ts +347 -0
  650. package/src/core/rng.ts +101 -0
  651. package/src/core/stepBudget.ts +136 -0
  652. package/src/core/storage.ts +114 -0
  653. package/src/core/tickTrace.ts +129 -0
  654. package/src/core/timeCurve.ts +175 -0
  655. package/src/core/withDefaults.ts +28 -0
  656. package/src/dev/contactProbe.ts +115 -0
  657. package/src/dev/fpsMeter.ts +101 -0
  658. package/src/environment/celestialClock.ts +385 -0
  659. package/src/geometry/decal.ts +260 -0
  660. package/src/geometry/filmPatch.ts +158 -0
  661. package/src/geometry/growable.ts +165 -0
  662. package/src/geometry/lightVolume.ts +161 -0
  663. package/src/geometry/meshBuilder.ts +1397 -0
  664. package/src/geometry/pixelFont.ts +189 -0
  665. package/src/geometry/ribbon.ts +790 -0
  666. package/src/geometry/shellFill.ts +265 -0
  667. package/src/geometry/spline.ts +659 -0
  668. package/src/geometry/tangents.ts +173 -0
  669. package/src/geometry/textMesh.ts +96 -0
  670. package/src/geometry/treeBuilder.ts +114 -0
  671. package/src/host/display.ts +180 -0
  672. package/src/host/files.ts +77 -0
  673. package/src/host/lifecycle.ts +63 -0
  674. package/src/host/platformServices.ts +23 -0
  675. package/src/host/screen.ts +134 -0
  676. package/src/index.ts +730 -0
  677. package/src/input/actionMap.ts +377 -0
  678. package/src/input/activeDevice.ts +86 -0
  679. package/src/input/gamepadIdentity.ts +131 -0
  680. package/src/input/gamepadMapping.ts +121 -0
  681. package/src/input/input.ts +872 -0
  682. package/src/input/inputHarness.ts +226 -0
  683. package/src/input/rightGesture.ts +76 -0
  684. package/src/input/rumble.ts +138 -0
  685. package/src/input/touchControls.ts +451 -0
  686. package/src/input/typingTarget.ts +26 -0
  687. package/src/math/bounds.ts +153 -0
  688. package/src/math/color.ts +37 -0
  689. package/src/math/exact.ts +274 -0
  690. package/src/math/frustum.ts +115 -0
  691. package/src/math/intersect.ts +228 -0
  692. package/src/math/scalar.ts +109 -0
  693. package/src/math/spring.ts +106 -0
  694. package/src/nav/navGraph.ts +168 -0
  695. package/src/nav/navPath.ts +217 -0
  696. package/src/nav/navSearch.ts +200 -0
  697. package/src/physics/boxSurface.ts +96 -0
  698. package/src/physics/colliderSurface.ts +213 -0
  699. package/src/physics/compositeSurface.ts +111 -0
  700. package/src/physics/heightSurface.ts +234 -0
  701. package/src/physics/ribbonSurface.ts +642 -0
  702. package/src/render/ambientOcclusionPass.ts +200 -0
  703. package/src/render/areaLights.ts +194 -0
  704. package/src/render/areaShadowSet.ts +405 -0
  705. package/src/render/atmosphere.ts +186 -0
  706. package/src/render/backend/api.ts +802 -0
  707. package/src/render/backend/budget.ts +139 -0
  708. package/src/render/backend/createRenderer.ts +343 -0
  709. package/src/render/backend/deadline.ts +37 -0
  710. package/src/render/backend/probe.ts +152 -0
  711. package/src/render/backend/select.ts +288 -0
  712. package/src/render/backend/timer.ts +59 -0
  713. package/src/render/backend/webgl2/instanced.ts +46 -0
  714. package/src/render/backend/webgl2/morphTexture.ts +58 -0
  715. package/src/render/backend/webgl2/renderer.ts +7484 -0
  716. package/src/render/backend/webgl2/skinPaletteTexture.ts +70 -0
  717. package/src/render/backend/webgpu/boltPass.ts +205 -0
  718. package/src/render/backend/webgpu/buffers.ts +553 -0
  719. package/src/render/backend/webgpu/causticsPass.ts +174 -0
  720. package/src/render/backend/webgpu/clusterBinner.ts +259 -0
  721. package/src/render/backend/webgpu/depthPass.ts +261 -0
  722. package/src/render/backend/webgpu/device.ts +148 -0
  723. package/src/render/backend/webgpu/drawCommand.ts +79 -0
  724. package/src/render/backend/webgpu/environmentTexels.ts +96 -0
  725. package/src/render/backend/webgpu/filmPass.ts +123 -0
  726. package/src/render/backend/webgpu/flatPass.ts +635 -0
  727. package/src/render/backend/webgpu/flockPass.ts +163 -0
  728. package/src/render/backend/webgpu/gpuTimestamps.ts +255 -0
  729. package/src/render/backend/webgpu/insetPass.ts +123 -0
  730. package/src/render/backend/webgpu/instanced.ts +55 -0
  731. package/src/render/backend/webgpu/lightVolumePass.ts +203 -0
  732. package/src/render/backend/webgpu/linePass.ts +270 -0
  733. package/src/render/backend/webgpu/morphTexture.ts +61 -0
  734. package/src/render/backend/webgpu/panelPass.ts +138 -0
  735. package/src/render/backend/webgpu/particlePass.ts +370 -0
  736. package/src/render/backend/webgpu/pipelineCache.ts +152 -0
  737. package/src/render/backend/webgpu/plumePass.ts +292 -0
  738. package/src/render/backend/webgpu/pointShadowPass.ts +368 -0
  739. package/src/render/backend/webgpu/postPass.ts +470 -0
  740. package/src/render/backend/webgpu/probePass.ts +218 -0
  741. package/src/render/backend/webgpu/reflectionPass.ts +137 -0
  742. package/src/render/backend/webgpu/renderer.ts +13004 -0
  743. package/src/render/backend/webgpu/scatterPass.ts +354 -0
  744. package/src/render/backend/webgpu/sdfTextPass.ts +220 -0
  745. package/src/render/backend/webgpu/shaderModules.ts +49 -0
  746. package/src/render/backend/webgpu/shaders/clusterBin.wgsl.ts +219 -0
  747. package/src/render/backend/webgpu/skinPaletteRing.ts +105 -0
  748. package/src/render/backend/webgpu/skinPaletteTexture.ts +79 -0
  749. package/src/render/backend/webgpu/skyPass.ts +85 -0
  750. package/src/render/backend/webgpu/surfaceTexturePass.ts +257 -0
  751. package/src/render/backend/webgpu/textPass.ts +224 -0
  752. package/src/render/backend/webgpu/uniformRing.ts +228 -0
  753. package/src/render/backend/webgpu/waterPass.ts +211 -0
  754. package/src/render/backend/webgpu/windStreakPass.ts +196 -0
  755. package/src/render/billboard.ts +108 -0
  756. package/src/render/bloomChain.ts +101 -0
  757. package/src/render/bloomPass.ts +256 -0
  758. package/src/render/boltBatch.ts +141 -0
  759. package/src/render/boltPool.ts +360 -0
  760. package/src/render/boom.ts +123 -0
  761. package/src/render/camera.ts +348 -0
  762. package/src/render/causticsRenderer.ts +171 -0
  763. package/src/render/cinematicCamera.ts +278 -0
  764. package/src/render/clusteredLights.ts +598 -0
  765. package/src/render/colourGrade.ts +109 -0
  766. package/src/render/compute.ts +83 -0
  767. package/src/render/contextLoss.ts +50 -0
  768. package/src/render/debugLines.ts +411 -0
  769. package/src/render/decalPass.ts +124 -0
  770. package/src/render/decalProjector.ts +390 -0
  771. package/src/render/decalQueue.ts +110 -0
  772. package/src/render/depthConvention.ts +383 -0
  773. package/src/render/drawingBuffer.ts +89 -0
  774. package/src/render/emptyTexture.ts +130 -0
  775. package/src/render/envProbeArray.ts +201 -0
  776. package/src/render/equirectToCube.ts +160 -0
  777. package/src/render/flockGeometry.ts +53 -0
  778. package/src/render/flockRenderer.ts +111 -0
  779. package/src/render/frame/arena.ts +93 -0
  780. package/src/render/frame/index.ts +29 -0
  781. package/src/render/frame/replay.ts +50 -0
  782. package/src/render/frame/resources.ts +61 -0
  783. package/src/render/frame/schedule.ts +85 -0
  784. package/src/render/frameView.ts +20 -0
  785. package/src/render/gizmo.ts +923 -0
  786. package/src/render/globalMedium.ts +154 -0
  787. package/src/render/globalMediumPass.ts +323 -0
  788. package/src/render/gpuCapability.ts +244 -0
  789. package/src/render/gpuTimer.ts +182 -0
  790. package/src/render/halfFloat.ts +39 -0
  791. package/src/render/handleRegistry.ts +96 -0
  792. package/src/render/iesProfile.ts +215 -0
  793. package/src/render/imageTexels.ts +109 -0
  794. package/src/render/instancedMesh.ts +187 -0
  795. package/src/render/instances.ts +92 -0
  796. package/src/render/lightBudget.ts +655 -0
  797. package/src/render/lightMatrix.ts +69 -0
  798. package/src/render/lightVolumeDraw.ts +216 -0
  799. package/src/render/lineBatch.ts +180 -0
  800. package/src/render/linePoints.ts +61 -0
  801. package/src/render/livePointShadowSet.ts +285 -0
  802. package/src/render/lod.ts +86 -0
  803. package/src/render/mesh.ts +536 -0
  804. package/src/render/occlusion.ts +406 -0
  805. package/src/render/oitPass.ts +230 -0
  806. package/src/render/orderIndependent.ts +136 -0
  807. package/src/render/particleBatch.ts +299 -0
  808. package/src/render/particleMaterial.ts +84 -0
  809. package/src/render/particlePool.ts +291 -0
  810. package/src/render/pass.ts +203 -0
  811. package/src/render/passTarget.ts +225 -0
  812. package/src/render/pickable.ts +222 -0
  813. package/src/render/planarReflection.ts +233 -0
  814. package/src/render/planarReflectionDraw.ts +87 -0
  815. package/src/render/plumeGeometry.ts +75 -0
  816. package/src/render/plumeMaterial.ts +99 -0
  817. package/src/render/plumeRenderer.ts +272 -0
  818. package/src/render/pointLightSelection.ts +447 -0
  819. package/src/render/pointShadowArray.ts +276 -0
  820. package/src/render/pointShadowBudget.ts +305 -0
  821. package/src/render/pointShadowImage.ts +470 -0
  822. package/src/render/pointShadowMap.ts +228 -0
  823. package/src/render/pointShadowSystem.ts +408 -0
  824. package/src/render/prefilterEnvMap.ts +162 -0
  825. package/src/render/prefilterPass.ts +115 -0
  826. package/src/render/probeGrid.ts +248 -0
  827. package/src/render/rainField.ts +240 -0
  828. package/src/render/reflectionProbe.ts +530 -0
  829. package/src/render/renderQuality.ts +1054 -0
  830. package/src/render/rendererHarness.ts +214 -0
  831. package/src/render/resolutionGovernor.ts +189 -0
  832. package/src/render/scatterDeform.ts +72 -0
  833. package/src/render/sceneTarget.ts +1032 -0
  834. package/src/render/screenSpaceReflection.ts +524 -0
  835. package/src/render/sdfFont.ts +157 -0
  836. package/src/render/sdfTextLayout.ts +206 -0
  837. package/src/render/sdfTextRenderer.ts +233 -0
  838. package/src/render/seaState.ts +55 -0
  839. package/src/render/segmentQuads.ts +92 -0
  840. package/src/render/shader.ts +190 -0
  841. package/src/render/shaders/ambientOcclusion.ts +354 -0
  842. package/src/render/shaders/arcane.ts +103 -0
  843. package/src/render/shaders/bloom.ts +232 -0
  844. package/src/render/shaders/bolt.ts +164 -0
  845. package/src/render/shaders/caustics.ts +169 -0
  846. package/src/render/shaders/conditionals.ts +58 -0
  847. package/src/render/shaders/decalProject.ts +127 -0
  848. package/src/render/shaders/depth.ts +131 -0
  849. package/src/render/shaders/depthOfField.ts +141 -0
  850. package/src/render/shaders/film.ts +285 -0
  851. package/src/render/shaders/fire.ts +180 -0
  852. package/src/render/shaders/flat/directionalShadow.ts +196 -0
  853. package/src/render/shaders/flat/index.ts +502 -0
  854. package/src/render/shaders/flat/lobes.ts +399 -0
  855. package/src/render/shaders/flat/main.ts +1631 -0
  856. package/src/render/shaders/flat/pointShadow.ts +323 -0
  857. package/src/render/shaders/flat/preamble.ts +875 -0
  858. package/src/render/shaders/flat/probeGrid.ts +152 -0
  859. package/src/render/shaders/flat/surface.ts +41 -0
  860. package/src/render/shaders/flock.ts +103 -0
  861. package/src/render/shaders/fog.ts +99 -0
  862. package/src/render/shaders/fullscreen.ts +28 -0
  863. package/src/render/shaders/generated/ambientOcclusion.wgsl.ts +74 -0
  864. package/src/render/shaders/generated/arcane.wgsl.ts +98 -0
  865. package/src/render/shaders/generated/bloom.wgsl.ts +79 -0
  866. package/src/render/shaders/generated/bolt.wgsl.ts +127 -0
  867. package/src/render/shaders/generated/caustics.wgsl.ts +127 -0
  868. package/src/render/shaders/generated/decalProject.wgsl.ts +69 -0
  869. package/src/render/shaders/generated/depth.wgsl.ts +142 -0
  870. package/src/render/shaders/generated/film.wgsl.ts +143 -0
  871. package/src/render/shaders/generated/fire.wgsl.ts +137 -0
  872. package/src/render/shaders/generated/flat.wgsl.ts +9195 -0
  873. package/src/render/shaders/generated/flock.wgsl.ts +82 -0
  874. package/src/render/shaders/generated/fullscreen.wgsl.ts +20 -0
  875. package/src/render/shaders/generated/globalMedium.wgsl.ts +139 -0
  876. package/src/render/shaders/generated/lightVolume.wgsl.ts +242 -0
  877. package/src/render/shaders/generated/line.wgsl.ts +137 -0
  878. package/src/render/shaders/generated/octahedralResolve.wgsl.ts +60 -0
  879. package/src/render/shaders/generated/oitResolve.wgsl.ts +31 -0
  880. package/src/render/shaders/generated/panel.wgsl.ts +57 -0
  881. package/src/render/shaders/generated/particle.wgsl.ts +343 -0
  882. package/src/render/shaders/generated/prefilter.wgsl.ts +69 -0
  883. package/src/render/shaders/generated/rush.wgsl.ts +139 -0
  884. package/src/render/shaders/generated/scatter.wgsl.ts +205 -0
  885. package/src/render/shaders/generated/sdfText.wgsl.ts +78 -0
  886. package/src/render/shaders/generated/sky.wgsl.ts +109 -0
  887. package/src/render/shaders/generated/smoke.wgsl.ts +93 -0
  888. package/src/render/shaders/generated/ssrResolve.wgsl.ts +26 -0
  889. package/src/render/shaders/generated/ssrTrace.wgsl.ts +94 -0
  890. package/src/render/shaders/generated/temporalResolve.wgsl.ts +54 -0
  891. package/src/render/shaders/generated/text.wgsl.ts +107 -0
  892. package/src/render/shaders/generated/water.wgsl.ts +256 -0
  893. package/src/render/shaders/generated/windStreaks.wgsl.ts +82 -0
  894. package/src/render/shaders/gerstner.ts +110 -0
  895. package/src/render/shaders/globalMedium.ts +396 -0
  896. package/src/render/shaders/lightVolume.ts +546 -0
  897. package/src/render/shaders/line.ts +125 -0
  898. package/src/render/shaders/morph.ts +62 -0
  899. package/src/render/shaders/octahedral.ts +170 -0
  900. package/src/render/shaders/octahedralResolve.ts +83 -0
  901. package/src/render/shaders/oitResolve.ts +42 -0
  902. package/src/render/shaders/outputTransform.ts +107 -0
  903. package/src/render/shaders/panel.ts +51 -0
  904. package/src/render/shaders/particle.ts +438 -0
  905. package/src/render/shaders/prefilter.ts +278 -0
  906. package/src/render/shaders/rush.ts +357 -0
  907. package/src/render/shaders/scatter.ts +211 -0
  908. package/src/render/shaders/sdfText.ts +68 -0
  909. package/src/render/shaders/skinning.ts +59 -0
  910. package/src/render/shaders/sky.ts +243 -0
  911. package/src/render/shaders/smoke.ts +89 -0
  912. package/src/render/shaders/ssrResolve.ts +28 -0
  913. package/src/render/shaders/ssrTrace.ts +233 -0
  914. package/src/render/shaders/tangentFrame.ts +70 -0
  915. package/src/render/shaders/temporalResolve.ts +151 -0
  916. package/src/render/shaders/text.ts +156 -0
  917. package/src/render/shaders/vertexChannel.ts +71 -0
  918. package/src/render/shaders/water.ts +356 -0
  919. package/src/render/shaders/windStreaks.ts +130 -0
  920. package/src/render/shadowCasters.ts +124 -0
  921. package/src/render/shadowMap.ts +89 -0
  922. package/src/render/shotPlacement.ts +266 -0
  923. package/src/render/skinPalette.ts +157 -0
  924. package/src/render/ssrPass.ts +241 -0
  925. package/src/render/surfaceSheet.ts +158 -0
  926. package/src/render/surfaceTexture.ts +310 -0
  927. package/src/render/temporalAa.ts +221 -0
  928. package/src/render/temporalPass.ts +153 -0
  929. package/src/render/textLayout.ts +239 -0
  930. package/src/render/textRenderer.ts +201 -0
  931. package/src/render/thirdPersonCamera.ts +578 -0
  932. package/src/render/trample.ts +140 -0
  933. package/src/render/translucentQueue.ts +161 -0
  934. package/src/render/uniformVectorBudget.ts +246 -0
  935. package/src/render/uploadStep.ts +14 -0
  936. package/src/render/vertexDefaults.ts +115 -0
  937. package/src/render/visibility.ts +56 -0
  938. package/src/render/waterDraw.ts +167 -0
  939. package/src/render/waterGrid.ts +180 -0
  940. package/src/render/waterRenderer.ts +352 -0
  941. package/src/render/wind.ts +79 -0
  942. package/src/render/windField.ts +50 -0
  943. package/src/render/windStreakDraw.ts +131 -0
  944. package/src/render/windStreakRenderer.ts +130 -0
  945. package/src/scene/node.ts +336 -0
  946. package/src/scene/visit.ts +82 -0
  947. package/src/ui/clipMime.ts +109 -0
  948. package/src/ui/exportTarget.ts +491 -0
  949. package/src/ui/frameOverlay.ts +159 -0
  950. package/src/ui/framePacer.ts +351 -0
  951. package/src/ui/frameRecorder.ts +333 -0
  952. package/src/ui/fullscreen.ts +113 -0
  953. package/src/ui/pixelCursor.ts +99 -0
  954. package/src/ui/splash.ts +347 -0
  955. package/src/ui/stillFrame.ts +44 -0
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Focus, and the end of the process.
3
+ *
4
+ * The engine needs to know when it stopped being looked at — a paused simulation, a muted mixer —
5
+ * and a shell additionally needs to be told to close. **A browser cannot close its own tab**, so
6
+ * `requestQuit` warns rather than silently doing nothing: a silent no-op reads as a working call,
7
+ * which is the failure `AGENTS.md` names where an unimplemented capability returns a plausible
8
+ * answer instead of a defined one.
9
+ *
10
+ * Every subscription returns its own unsubscribe. Nothing here is called per frame.
11
+ */
12
+ export interface Lifecycle {
13
+ /**
14
+ * Whether `requestQuit` will actually end the process.
15
+ *
16
+ * **This is what an exit button should be drawn from.** A browser cannot close its own tab and
17
+ * iOS applications do not exit programmatically, so a menu that always shows Exit has a button
18
+ * that does nothing on two of the platforms a game ships to — and a game that instead branches
19
+ * on "am I in a shell" has hard-coded an assumption that stops being true. Ask the capability.
20
+ */
21
+ readonly canQuit: boolean;
22
+ onFocusChange(handler: (focused: boolean) => void): () => void;
23
+ /**
24
+ * The shell is closing and the game may finish what it is doing.
25
+ *
26
+ * A shell calls the handler on a window-close request and waits; a browser never calls it,
27
+ * because a tab closing gives nothing that can be waited on.
28
+ */
29
+ onQuitRequest(handler: () => void): () => void;
30
+ requestQuit(): void;
31
+ }
32
+ export declare class BrowserLifecycle implements Lifecycle {
33
+ /** False: no page may close the tab it is in. An exit button here is a button that lies. */
34
+ readonly canQuit = false;
35
+ onFocusChange(handler: (focused: boolean) => void): () => void;
36
+ /**
37
+ * A browser is never asked to quit, so this handler is never called here.
38
+ *
39
+ * The unsubscribe is real rather than the handler being rejected: a consumer registers the
40
+ * same handler on both platforms and must be able to drop it on both, and code that has to
41
+ * ask which platform it is on has lost the point of the seam.
42
+ */
43
+ onQuitRequest(handler: () => void): () => void;
44
+ requestQuit(): void;
45
+ }
@@ -0,0 +1,28 @@
1
+ export class BrowserLifecycle {
2
+ /** False: no page may close the tab it is in. An exit button here is a button that lies. */
3
+ canQuit = false;
4
+ onFocusChange(handler) {
5
+ const focused = () => handler(true);
6
+ const blurred = () => handler(false);
7
+ window.addEventListener('focus', focused);
8
+ window.addEventListener('blur', blurred);
9
+ return () => {
10
+ window.removeEventListener('focus', focused);
11
+ window.removeEventListener('blur', blurred);
12
+ };
13
+ }
14
+ /**
15
+ * A browser is never asked to quit, so this handler is never called here.
16
+ *
17
+ * The unsubscribe is real rather than the handler being rejected: a consumer registers the
18
+ * same handler on both platforms and must be able to drop it on both, and code that has to
19
+ * ask which platform it is on has lost the point of the seam.
20
+ */
21
+ onQuitRequest(handler) {
22
+ void handler;
23
+ return () => undefined;
24
+ }
25
+ requestQuit() {
26
+ console.warn('[driftengine] requestQuit: a browser cannot close its own tab; a shell can');
27
+ }
28
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * A store's own features: achievements, presence, and whatever a platform adds to them.
3
+ *
4
+ * **Opt-in, and there is deliberately no default implementation.** A consumer that never asks for
5
+ * an achievement must not acquire a store SDK, must not ship one to a browser, and must not have
6
+ * to explain one in a privacy policy. That is the same promise SDF text makes, and it is the
7
+ * reason this interface has no `BrowserPlatformServices` beside it: there is nothing honest for
8
+ * one to do.
9
+ *
10
+ * A consumer that wants these supplies them from its shell. A consumer that does not passes
11
+ * nothing and the engine never calls them.
12
+ *
13
+ * **Both methods return nothing and neither may throw.** An achievement that fails to unlock is
14
+ * not a reason for a frame to stop, and a store that is offline is an ordinary state — an
15
+ * implementation that wants to report a failure logs it.
16
+ *
17
+ * **What would make this wrong** is a platform feature the engine itself needs in order to draw,
18
+ * which none of these is.
19
+ */
20
+ export interface PlatformServices {
21
+ unlockAchievement(id: string): void;
22
+ setRichPresence(text: string): void;
23
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,49 @@
1
+ /**
2
+ * What a phone has instead of a window.
3
+ *
4
+ * A handset has no window mode, no window size a game may choose and no second display, so
5
+ * `DisplayControl` has almost nothing to offer it. What it has instead is an **orientation** it
6
+ * may rotate out of, a **safe area** that a notch, a camera cut-out or a gesture bar has taken
7
+ * from the screen, and a **screen that wants to sleep** while somebody is holding a controller
8
+ * rather than touching the glass. Those are the three, and they are here rather than folded into
9
+ * the display seam because a desktop shell has no use for any of them.
10
+ *
11
+ * **Every one of them can be refused, and each says so.** iOS will not lock an orientation at
12
+ * all; Android will not lock one outside fullscreen; a browser with no Wake Lock API cannot keep
13
+ * a screen awake. A game that is told `false` can lay itself out for either orientation, or warn,
14
+ * or carry on — what it cannot do is find out later from a player.
15
+ *
16
+ * Not a hot path: a layout reads the safe area on a resize, not on a frame.
17
+ */
18
+ export type ScreenOrientation = 'portrait' | 'landscape';
19
+ /** Logical pixels the platform has taken from each edge. Zero where it has taken nothing. */
20
+ export interface SafeAreaInsets {
21
+ readonly top: number;
22
+ readonly right: number;
23
+ readonly bottom: number;
24
+ readonly left: number;
25
+ }
26
+ export interface ScreenPresentation {
27
+ orientation(): ScreenOrientation;
28
+ /** `null` unlocks. `false` where the platform refused, which iOS always does. */
29
+ lockOrientation(orientation: ScreenOrientation | null): Promise<boolean>;
30
+ safeArea(): SafeAreaInsets;
31
+ /** `false` where the platform has no wake lock, or refused this one. */
32
+ keepAwake(on: boolean): Promise<boolean>;
33
+ }
34
+ export declare class BrowserScreenPresentation implements ScreenPresentation {
35
+ private held;
36
+ /**
37
+ * Installs one stylesheet, once, and that is the only side effect in this file.
38
+ *
39
+ * `env(safe-area-inset-*)` cannot be read from script directly — it is only valid inside a CSS
40
+ * declaration — so the values are copied into custom properties on the root element and read
41
+ * back through `getComputedStyle`. The alternative is a hidden probe element whose padding is
42
+ * measured, which costs a layout on every read and a node in every consumer's tree.
43
+ */
44
+ constructor();
45
+ orientation(): ScreenOrientation;
46
+ lockOrientation(orientation: ScreenOrientation | null): Promise<boolean>;
47
+ safeArea(): SafeAreaInsets;
48
+ keepAwake(on: boolean): Promise<boolean>;
49
+ }
@@ -0,0 +1,90 @@
1
+ /** The four properties the style below defines, read back through the cascade. */
2
+ const INSET_PROPERTIES = ['top', 'right', 'bottom', 'left'];
3
+ /** Marks the one style element this installs, so a second instance does not add another. */
4
+ const STYLE_ID = 'drift-safe-area';
5
+ export class BrowserScreenPresentation {
6
+ held = null;
7
+ /**
8
+ * Installs one stylesheet, once, and that is the only side effect in this file.
9
+ *
10
+ * `env(safe-area-inset-*)` cannot be read from script directly — it is only valid inside a CSS
11
+ * declaration — so the values are copied into custom properties on the root element and read
12
+ * back through `getComputedStyle`. The alternative is a hidden probe element whose padding is
13
+ * measured, which costs a layout on every read and a node in every consumer's tree.
14
+ */
15
+ constructor() {
16
+ try {
17
+ if (document.getElementById?.(STYLE_ID) != null)
18
+ return;
19
+ const style = document.createElement('style');
20
+ style.setAttribute('id', STYLE_ID);
21
+ style.textContent = `:root{${INSET_PROPERTIES.map((edge) => `--drift-safe-${edge}:env(safe-area-inset-${edge},0px)`).join(';')}}`;
22
+ document.head.appendChild(style);
23
+ }
24
+ catch {
25
+ /* No document, or a head that will not take a child. The insets then read zero, which is
26
+ the same answer a platform with no cut-out gives, and is never worth failing a boot for. */
27
+ }
28
+ }
29
+ orientation() {
30
+ const type = window.screen?.orientation?.type;
31
+ if (typeof type === 'string')
32
+ return type.startsWith('portrait') ? 'portrait' : 'landscape';
33
+ /* No orientation API: every desktop browser, and iOS Safari for most of its life. The shape
34
+ of the window is the same answer the platform would have given. */
35
+ return window.innerHeight >= window.innerWidth ? 'portrait' : 'landscape';
36
+ }
37
+ async lockOrientation(orientation) {
38
+ const screen = window.screen?.orientation;
39
+ if (screen === undefined)
40
+ return false;
41
+ try {
42
+ if (orientation === null) {
43
+ screen.unlock?.();
44
+ return true;
45
+ }
46
+ if (typeof screen.lock !== 'function')
47
+ return false;
48
+ await screen.lock(orientation);
49
+ return true;
50
+ }
51
+ catch {
52
+ /* iOS refuses outright; Android refuses outside fullscreen. Both are ordinary. */
53
+ return false;
54
+ }
55
+ }
56
+ safeArea() {
57
+ const read = (edge) => {
58
+ try {
59
+ const raw = getComputedStyle(document.documentElement).getPropertyValue(`--drift-safe-${edge}`);
60
+ const value = Number.parseFloat(raw);
61
+ return Number.isFinite(value) ? value : 0;
62
+ }
63
+ catch {
64
+ return 0;
65
+ }
66
+ };
67
+ return { top: read('top'), right: read('right'), bottom: read('bottom'), left: read('left') };
68
+ }
69
+ async keepAwake(on) {
70
+ const wakeLock = navigator.wakeLock;
71
+ try {
72
+ if (!on) {
73
+ if (this.held === null)
74
+ return true;
75
+ await this.held.release();
76
+ this.held = null;
77
+ return true;
78
+ }
79
+ if (wakeLock === undefined)
80
+ return false;
81
+ this.held = await wakeLock.request('screen');
82
+ return true;
83
+ }
84
+ catch {
85
+ /* A lock is dropped whenever the page is hidden, and re-requesting it is the caller's
86
+ business. A failure here is not worth a throw. */
87
+ return false;
88
+ }
89
+ }
90
+ }
@@ -0,0 +1,289 @@
1
+ /*! DriftEngine | Copyright 2026 Drift Technologies | Apache-2.0 | https://github.com/drftrun/driftengine */
2
+ /** Public engine surface. Game code imports from '@driftengine/core' only. */
3
+ export { startLoop } from './core/loop.ts';
4
+ export type { LoopHooks, FrameSource, LoopOptions } from './core/loop.ts';
5
+ export { StepBudget } from './core/stepBudget.ts';
6
+ export type { StepBudgetOptions } from './core/stepBudget.ts';
7
+ export { hashToUnit, mulberry32, pickBySeed, savableMulberry32 } from './core/rng.ts';
8
+ export { exactAcos, exactCos, exactExp, exactSin } from './math/exact.ts';
9
+ export type { SavableRandom } from './core/rng.ts';
10
+ export { TickTrace } from './core/tickTrace.ts';
11
+ export type { TickTraceLike } from './core/tickTrace.ts';
12
+ export { BrowserStore, MemoryStore, defaultStore } from './core/storage.ts';
13
+ export type { KeyValueStore } from './core/storage.ts';
14
+ export { RemoteSaveStore, defaultSaveTimer } from './core/remoteSave.ts';
15
+ export type { RemoteSaveOptions, SaveBackend, SaveStatus, SaveTimer } from './core/remoteSave.ts';
16
+ export { BrowserDisplay } from './host/display.ts';
17
+ export type { DisplayControl, DisplayInfo, WindowMode } from './host/display.ts';
18
+ export { BrowserScreenPresentation } from './host/screen.ts';
19
+ export type { SafeAreaInsets, ScreenOrientation, ScreenPresentation } from './host/screen.ts';
20
+ export { BrowserLifecycle } from './host/lifecycle.ts';
21
+ export type { Lifecycle } from './host/lifecycle.ts';
22
+ export { BrowserFileDialogs } from './host/files.ts';
23
+ export type { FileDialogs, OpenedFile } from './host/files.ts';
24
+ export type { PlatformServices } from './host/platformServices.ts';
25
+ export { PreferenceStore, loadPreferences, savePreferences } from './core/preferences.ts';
26
+ export type { PreferenceSchema } from './core/preferences.ts';
27
+ export { OnceSet } from './core/onceSet.ts';
28
+ export { MAX_TIME_CURVE_AMOUNT, curveOffsetSec, curveSpanSec, linearCurve, timeCurve, } from './core/timeCurve.ts';
29
+ export type { TimeCurve, TimeCurveKind, TimeCurveOptions } from './core/timeCurve.ts';
30
+ export { CinematicPlayer } from './cinematic/player.ts';
31
+ export { defineCinematic, validateCinematic } from './cinematic/script.ts';
32
+ export type { CameraKeyframe, CinematicLine, CinematicScript, CinematicShot, } from './cinematic/script.ts';
33
+ export { MessageQueue } from './core/messageQueue.ts';
34
+ export type { MessageQueueOptions, QueuedMessage } from './core/messageQueue.ts';
35
+ export { celestialStateAt, createCelestialState, moonIllumination, } from './environment/celestialClock.ts';
36
+ export type { CelestialSite, CelestialState } from './environment/celestialClock.ts';
37
+ export { TAU, DEG_TO_RAD, clamp, lerp, smoothstep, damp, dampTracking, angleDelta, dampAngle, wrapAngle, lerpAngle, } from './math/scalar.ts';
38
+ export { hslToRgb, mixColor, mixColorInto, scaleColor } from './math/color.ts';
39
+ export type { Vec3 } from './math/color.ts';
40
+ export { Camera } from './render/camera.ts';
41
+ export { ThirdPersonCamera } from './render/thirdPersonCamera.ts';
42
+ export { CinematicCamera } from './render/cinematicCamera.ts';
43
+ export type { ShotKind, ShotParams } from './render/cinematicCamera.ts';
44
+ export type { BoomObstruction, ThirdPersonCameraOptions } from './render/thirdPersonCamera.ts';
45
+ export { Boom, DEFAULT_BOOM_TIMING } from './render/boom.ts';
46
+ export type { BoomTiming } from './render/boom.ts';
47
+ export { billboardMatrix, billboardMatrixY } from './render/billboard.ts';
48
+ export { Mesh } from './render/mesh.ts';
49
+ export type { MeshData } from './render/mesh.ts';
50
+ export { UPLOAD_BYTES_PER_STEP } from './render/uploadStep.ts';
51
+ export { MAX_DEPTH_LAYER, Renderer, WebGL2Renderer } from './render/backend/webgl2/renderer.ts';
52
+ export type { Environment, FilmOptions, LightVolumeDrawOptions, SkyColors, TranslucentMeshOptions, } from './render/backend/webgl2/renderer.ts';
53
+ export { PickableSet } from './render/pickable.ts';
54
+ export type { PickHit, PickableSource } from './render/pickable.ts';
55
+ export { boundsOfBox, boundsOfPositions, createBounds } from './math/bounds.ts';
56
+ export type { Bounds } from './math/bounds.ts';
57
+ export { createFrustum, frustumFromViewProjection, sphereInFrustum } from './math/frustum.ts';
58
+ export type { Frustum } from './math/frustum.ts';
59
+ export { boundsVisible } from './render/visibility.ts';
60
+ export { apparentSize, lodForBounds } from './render/lod.ts';
61
+ export { SceneNode } from './scene/node.ts';
62
+ export { MAX_JOINTS, MAX_MORPH_TARGETS, SKIN_PALETTE_TEXTURE_UNIT, morphTexelIndex, paletteTextureWidth, } from './render/skinPalette.ts';
63
+ export { createVisitResult, visitVisible } from './scene/visit.ts';
64
+ export type { VisitResult } from './scene/visit.ts';
65
+ export type { PassContext, PassDefinition, PassDevice, PassHandle, PrepareContext, } from './render/pass.ts';
66
+ export type { PassAttachmentOptions, PassTarget } from './render/passTarget.ts';
67
+ export { createPassAttachment } from './render/passTarget.ts';
68
+ export type { FrameResource } from './render/frame/index.ts';
69
+ export type { OcclusionOptions } from './render/occlusion.ts';
70
+ export { OcclusionBuffer } from './render/occlusion.ts';
71
+ export type { ComputeContext, ComputeDefinition, ComputeDevice, ComputeHandle, } from './render/compute.ts';
72
+ export { createRenderer } from './render/backend/createRenderer.ts';
73
+ export type { CreatedRenderer, CreateRendererOptions } from './render/backend/createRenderer.ts';
74
+ export { GRADE_PLACEHOLDER_SIZE, MAX_GRADE_SIZE, identityGradeLut } from './render/colourGrade.ts';
75
+ export type { ColourGradeLut } from './render/colourGrade.ts';
76
+ export { probeDevice } from './render/backend/probe.ts';
77
+ export type { ProbeVerdict } from './render/backend/probe.ts';
78
+ export type { BoltHandle, CausticsHandle, FlockHandle, IncrementalMeshHandle, LineHandle, MeshHandle, MeshOptions, RenderBackend, RendererApi, ParticleHandle, PlumeHandle, ScatterHandle, InstancedHandle, SdfTextHandle, SurfaceTextureHandle, TextHandle, WaterHandle, WindStreakHandle, } from './render/backend/api.ts';
79
+ /**
80
+ * What a frame asked of a backend, against the ceilings that backend imposes.
81
+ *
82
+ * Exported because a consumer's own headless check is the intended reader: `frameBudget.dropped`
83
+ * is the boolean to fail on, and typing the walk over `lines` needs the two shapes.
84
+ */
85
+ export type { BudgetLine, FrameBudget } from './render/backend/budget.ts';
86
+ export type { FrameTimer } from './render/backend/timer.ts';
87
+ export type { SceneCasterMaterial, SceneCasters, ShadowCasterSink, ShadowCasters, } from './render/shadowCasters.ts';
88
+ export type { Atmosphere, UnderwaterAtmosphere } from './render/atmosphere.ts';
89
+ export { createImageTexelDecoder } from './render/imageTexels.ts';
90
+ export type { ImageTexelDecoder, ImageTexels } from './render/imageTexels.ts';
91
+ export { DEFAULT_RENDER_QUALITY, resolveRenderQuality } from './render/renderQuality.ts';
92
+ /**
93
+ * The global medium's own arithmetic, so a consumer can clamp its numbers the way the engine will.
94
+ *
95
+ * The pass itself is not exported and should not be: `setGlobalMedium` is the whole surface, and a
96
+ * consumer holding a `GlobalMediumPass` would own a target the renderer already owns. What is here
97
+ * is the type the setter takes and the two bounds a settings screen has to know about.
98
+ */
99
+ export { DEFAULT_GLOBAL_MEDIUM, MAX_GLOBAL_MEDIUM_STEPS, WEAK_GPU_MEDIUM_STEPS, resolveGlobalMedium, } from './render/globalMedium.ts';
100
+ export type { GlobalMediumOptions } from './render/globalMedium.ts';
101
+ export { equirectToCubeFaces } from './render/equirectToCube.ts';
102
+ export type { EquirectSource } from './render/equirectToCube.ts';
103
+ export { IRRADIANCE_EDGE, PREFILTER_SAMPLE_COUNTS, ggxMaxLevelFor, irradianceLevelFor, octahedralEdgeFor, roughnessForLevel, } from './render/prefilterEnvMap.ts';
104
+ /**
105
+ * Where probes stand, and which of them light a point.
106
+ *
107
+ * Exported because placement is a consumer's decision and because a consumer sizing its own
108
+ * storage needs `MAX_ENV_PROBES` — every probe is one layer of one array texture, so the budget is
109
+ * memory rather than texture units. `nearestProbes` is the same trilinear blend the shader
110
+ * computes from three uniforms, which is what makes a consumer's bake ordering agree with what the
111
+ * lit pass will read.
112
+ */
113
+ export { MAX_ENV_PROBES, ProbeGrid, createProbeBlend, nearestProbes } from './render/probeGrid.ts';
114
+ export type { ProbeBlend, ProbeGridOptions } from './render/probeGrid.ts';
115
+ export { IES_ATLAS_WIDTH, packIesAtlas } from './render/iesProfile.ts';
116
+ export { MAX_AREA_LIGHTS, createAreaLightBuffer, selectAreaLights } from './render/areaLights.ts';
117
+ export type { AreaLightBuffer, AreaLightSource } from './render/areaLights.ts';
118
+ /**
119
+ * A rectangle's occlusion. Exported because a consumer sizing its own storage budget needs the
120
+ * layer arithmetic, and because `castingRange` is the one predicate that decides whether a
121
+ * declaration will actually cast — a consumer asserting that its fixtures do should ask the engine
122
+ * rather than re-implement the two conditions.
123
+ */
124
+ export { areaShadowLayerCount, castingRange, firstAreaShadowLayer, } from './render/areaShadowSet.ts';
125
+ export type { PhotometricProfile } from './render/iesProfile.ts';
126
+ export type { PrefilterQuality } from './render/prefilterEnvMap.ts';
127
+ /**
128
+ * What a probe bake is for: the reflection alone, or the reflection and the scene's ambient.
129
+ *
130
+ * Exported because declining the second half is a decision only a consumer can make — see
131
+ * `ProbeBakeOptions`, which is the whole of the reasoning.
132
+ */
133
+ export type { ProbeBakeOptions } from './render/reflectionProbe.ts';
134
+ export type { DirectionalShadowDepthLayers, OutputTransform, RenderQuality, RenderQualityOptions, ShadowFilterTaps, WaterReflectionFilterTaps, } from './render/renderQuality.ts';
135
+ export { MAX_POINT_LIGHTS, SURFACE_TEXTURE_UNIT } from './render/lightBudget.ts';
136
+ export { SurfaceTexture } from './render/surfaceTexture.ts';
137
+ export type { SurfaceMaterial, SurfaceTextureOptions } from './render/surfaceTexture.ts';
138
+ export { DEFAULT_GOVERNOR_LIMITS, ResolutionGovernor } from './render/resolutionGovernor.ts';
139
+ export type { GovernorLimits } from './render/resolutionGovernor.ts';
140
+ export { isWeakGpuFamily } from './render/gpuCapability.ts';
141
+ /**
142
+ * The same question `isWeakGpuFamily` answers, asked early enough to choose a profile with.
143
+ *
144
+ * `RendererApi.rendererName` and `CreatedRenderer.rendererName` are this answer after the fact,
145
+ * which is the right time for a boot log and too late for a decision.
146
+ */
147
+ export { describeGpu } from './render/gpuCapability.ts';
148
+ export type { GpuIdentity, DescribeGpuOptions } from './render/gpuCapability.ts';
149
+ export { DEFAULT_POINT_LIGHT_VIEW_RANGE, createPointLightBuffer, selectPointLights, } from './render/pointLightSelection.ts';
150
+ export type { PointLightBuffer, PointLightSource } from './render/pointLightSelection.ts';
151
+ export { computeLightMatrix } from './render/lightMatrix.ts';
152
+ export { PlumeRenderer } from './render/plumeRenderer.ts';
153
+ export { createEnvironment } from './render/backend/webgl2/renderer.ts';
154
+ export type { InsetRect } from './render/backend/webgl2/renderer.ts';
155
+ export { TrampleField, TRAMPLE_SLOTS } from './render/trample.ts';
156
+ export type { PlumePlacement, PlumeOptions, PlumeBlend } from './render/plumeRenderer.ts';
157
+ export type { PlumeMaterial } from './render/plumeMaterial.ts';
158
+ export type { ParticleMaterial } from './render/particleMaterial.ts';
159
+ export { setUniformStrictMode } from './render/shader.ts';
160
+ export { LoadTracker } from './core/loadTracker.ts';
161
+ export type { LoadTask, LoadSummary } from './core/loadTracker.ts';
162
+ export { buildShellFill, shellSkin, shellFillMatrix, DEFAULT_SHELL_PROFILE, } from './geometry/shellFill.ts';
163
+ export type { ShellStation, ShellFillOptions } from './geometry/shellFill.ts';
164
+ export { OUTPUT_TRANSFORM_GLSL } from './render/shaders/outputTransform.ts';
165
+ export { PLUME_VERT, FIRE_FRAG } from './render/shaders/fire.ts';
166
+ export { ARCANE_FRAG } from './render/shaders/arcane.ts';
167
+ export { SMOKE_FRAG } from './render/shaders/smoke.ts';
168
+ export { WaterRenderer } from './render/waterRenderer.ts';
169
+ export type { WaterBody, WaterBounds, WaterSettings } from './render/waterRenderer.ts';
170
+ export { MeshBuilder } from './geometry/meshBuilder.ts';
171
+ export { generateTangents } from './geometry/tangents.ts';
172
+ export type { MeshBuildOptions } from './geometry/meshBuilder.ts';
173
+ export { Spline, createSplineSample } from './geometry/spline.ts';
174
+ export type { SplinePoint, SplineSample } from './geometry/spline.ts';
175
+ export { RIBBON_COLLIDER_GIVE_M, RIBBON_STEP_M } from './geometry/ribbon.ts';
176
+ export { buildRibbon } from './geometry/ribbon.ts';
177
+ export { buildFilmPatch } from './geometry/filmPatch.ts';
178
+ export { buildLightVolume } from './geometry/lightVolume.ts';
179
+ export type { LightVolumeOptions } from './geometry/lightVolume.ts';
180
+ export { buildTextMesh, textMeshHeightM, textMeshWidthM } from './geometry/textMesh.ts';
181
+ export type { TextMeshStyle } from './geometry/textMesh.ts';
182
+ export { CausticsRenderer } from './render/causticsRenderer.ts';
183
+ export type { CausticSheet } from './render/causticsRenderer.ts';
184
+ export { buildSheets } from './render/surfaceSheet.ts';
185
+ export type { SheetMesh, SheetSpan } from './render/surfaceSheet.ts';
186
+ export type { FilmPatchOptions } from './geometry/filmPatch.ts';
187
+ export type { RibbonHole, RibbonMesh, RibbonOptions } from './geometry/ribbon.ts';
188
+ export { RibbonSurface, createSurfaceHit } from './physics/ribbonSurface.ts';
189
+ export type { GroundSurface, RibbonSurfaceOptions, SurfaceHit } from './physics/ribbonSurface.ts';
190
+ export { CompositeSurface } from './physics/compositeSurface.ts';
191
+ export { colliderSurface } from './physics/colliderSurface.ts';
192
+ export { DEPTH_CLEAR, DEPTH_COMPARE, DEPTH_COMPARE_EQUAL, DEPTH_FORMAT, DEPTH_OFFSET_SIGN, REVERSED_DEPTH, conventionalDepth, } from './render/depthConvention.ts';
193
+ export type { ColliderSurfaceOptions } from './physics/colliderSurface.ts';
194
+ export { BoxSurface } from './physics/boxSurface.ts';
195
+ export { heightSurface } from './physics/heightSurface.ts';
196
+ export { DebugLines } from './render/debugLines.ts';
197
+ export { GIZMO_GROUP_ACTIVE, GIZMO_GROUP_COLORS, GIZMO_GROUP_COUNT, GIZMO_GROUP_NEUTRAL, GIZMO_GROUP_X, GIZMO_GROUP_Y, GIZMO_GROUP_Z, GIZMO_NONE, GIZMO_ROTATE_X, GIZMO_ROTATE_Y, GIZMO_ROTATE_Z, GIZMO_SCALE_UNIFORM, GIZMO_SCALE_X, GIZMO_SCALE_Y, GIZMO_SCALE_Z, GIZMO_TRANSLATE_X, GIZMO_TRANSLATE_XY, GIZMO_TRANSLATE_Y, GIZMO_TRANSLATE_YZ, GIZMO_TRANSLATE_Z, GIZMO_TRANSLATE_ZX, Gizmo, gizmoScaleFor, } from './render/gizmo.ts';
198
+ export type { GizmoMode, GizmoSpace } from './render/gizmo.ts';
199
+ export { RainField } from './render/rainField.ts';
200
+ export type { RainFieldOptions } from './render/rainField.ts';
201
+ export { coveredAbove } from './physics/heightSurface.ts';
202
+ export { buildNavGraph, nearestNavNode } from './nav/navGraph.ts';
203
+ export type { NavEdge, NavGraph } from './nav/navGraph.ts';
204
+ export { NavSearch } from './nav/navSearch.ts';
205
+ export { NavPath, createNavSteer } from './nav/navPath.ts';
206
+ export { BehaviorRunner, FAILURE, RUNNING, SUCCESS, buildBehaviorTree, } from './behavior/behaviorTree.ts';
207
+ export { projectDecal } from './geometry/decal.ts';
208
+ export type { DecalOptions } from './geometry/decal.ts';
209
+ export { DecalProjector } from './render/decalProjector.ts';
210
+ export type { DecalBox, DecalProjectorOptions } from './render/decalProjector.ts';
211
+ export { ReflectiveSurface } from './render/screenSpaceReflection.ts';
212
+ export type { ReflectiveSurfaceOptions } from './render/screenSpaceReflection.ts';
213
+ export type { BehaviorSpec, BehaviorStatus, BehaviorTasks, BehaviorTree, } from './behavior/behaviorTree.ts';
214
+ export type { NavPathOptions, NavSteer } from './nav/navPath.ts';
215
+ export type { HeightField, HeightSurfaceOptions } from './physics/heightSurface.ts';
216
+ export type { SurfaceBox } from './physics/boxSurface.ts';
217
+ export * from '@driftengine/physics';
218
+ export { AXIS_X, AXIS_Y, AXIS_Z, ColliderSet, aabbFromCenter, bodyBounds, boxCollider, boxShape, capsuleShape, colliderFromShape, createBodyBounds, cylinderShape, createMassProperties, ejectFromSolid, faceCount, faceVertices, fingerprintBodies, fingerprintColliders, hullShape, moveAxis, segmentHit, shapeBounds, shapeMassProperties, sphereShape, } from '@driftengine/physics';
219
+ export { InputSource } from './input/input.ts';
220
+ export { isTypingTarget } from './input/typingTarget.ts';
221
+ export type { TouchPoint, InputCallbacks } from './input/input.ts';
222
+ export type { GamepadIdentity, GamepadView, InputOptions, InputSourceName } from './input/input.ts';
223
+ export type { InputDevice } from './input/activeDevice.ts';
224
+ export type { GamepadFamily } from './input/gamepadIdentity.ts';
225
+ export { DEFAULT_DEADZONE } from './input/gamepadMapping.ts';
226
+ export { MAX_RUMBLE_MS } from './input/rumble.ts';
227
+ export type { GamepadAxis, GamepadButton } from './input/gamepadMapping.ts';
228
+ export { ActionMap } from './input/actionMap.ts';
229
+ export type { ActionDefinition, AnalogAction, Binding, DigitalAction } from './input/actionMap.ts';
230
+ export { TouchControls } from './input/touchControls.ts';
231
+ export type { TouchControlsOptions } from './input/touchControls.ts';
232
+ export { pixelCursor } from './ui/pixelCursor.ts';
233
+ export { fullscreenWanted, requestFullscreenOnGesture } from './ui/fullscreen.ts';
234
+ export type { FullscreenConditions } from './ui/fullscreen.ts';
235
+ export { SPLASH_FADE_MS, SPLASH_HARD_CAP_MS, SPLASH_MIN_MS, forcedSplash, mountSplash, splashDecision, splashWanted, } from './ui/splash.ts';
236
+ export type { MountedSplash, SplashConditions, SplashDecision, SplashOptions, } from './ui/splash.ts';
237
+ export { DEFAULT_CLIP_FPS, FrameRecorder, offerClip } from './ui/frameRecorder.ts';
238
+ export { stillFrame } from './ui/stillFrame.ts';
239
+ export { describeClipMime, supportedClipMimeType } from './ui/clipMime.ts';
240
+ export type { ClipMimeDescription } from './ui/clipMime.ts';
241
+ export { EXPORT_FALLBACK_SCALE, ExportTarget, clipBitrate, exportAspect, exportSizeExact, isDuplicateFrame, CLIP_FPS_LADDER, clipFpsFor, exportSizeFor, } from './ui/exportTarget.ts';
242
+ export type { ExportSize, ExportTargetOptions, LockableSurface } from './ui/exportTarget.ts';
243
+ export { FramePacer } from './ui/framePacer.ts';
244
+ export type { FramePacingReport } from './ui/framePacer.ts';
245
+ export { bakeOverlay, drawPixelText, pixelTextCells, pixelTextSize } from './ui/frameOverlay.ts';
246
+ export type { FrameOverlay, OverlayImage, OverlayImageSource, OverlayText, } from './ui/frameOverlay.ts';
247
+ export type { FrameRecorderOptions } from './ui/frameRecorder.ts';
248
+ export type { PixelCursorOptions } from './ui/pixelCursor.ts';
249
+ export { FpsMeter } from './dev/fpsMeter.ts';
250
+ export type { FpsMeterOptions } from './dev/fpsMeter.ts';
251
+ export { CONTACT_LIMIT, createContactReports, describeContacts } from './dev/contactProbe.ts';
252
+ export type { ContactReport } from './dev/contactProbe.ts';
253
+ export { GPU_SLOTS, GpuTimer } from './render/gpuTimer.ts';
254
+ export type { GpuSample, GpuSlot } from './render/gpuTimer.ts';
255
+ export { classifyRightGesture } from './input/rightGesture.ts';
256
+ export type { RightGesture, RightGestureOptions } from './input/rightGesture.ts';
257
+ export { createWindState, sampleWind } from './render/wind.ts';
258
+ export { advanceWindField, createWindField } from './render/windField.ts';
259
+ export type { WindField } from './render/windField.ts';
260
+ export { seaStateForAgitation, seaStateForWind } from './render/seaState.ts';
261
+ export type { SeaState } from './render/seaState.ts';
262
+ export { InstancedMesh, createInstanceData, writeInstance } from './render/instancedMesh.ts';
263
+ export { createMeshInstances, packInstances, INSTANCE_FLOATS, INSTANCE_STRIDE, } from './render/instances.ts';
264
+ export { ParticlePool } from './render/particlePool.ts';
265
+ export type { ParticlePoolOptions, ParticleInstances } from './render/particlePool.ts';
266
+ export { ParticleBatch } from './render/particleBatch.ts';
267
+ export type { ParticleBatchOptions, ParticleBlend, ParticleFacing, } from './render/particleBatch.ts';
268
+ export { PARTICLE_MOTE_FRAG, PARTICLE_SMOKE_FRAG, PARTICLE_SPARK_FRAG, PARTICLE_VERT, } from './render/shaders/particle.ts';
269
+ export { BoltPool } from './render/boltPool.ts';
270
+ export type { BoltPoolOptions, BoltSegments, BoltColors } from './render/boltPool.ts';
271
+ export { BoltBatch } from './render/boltBatch.ts';
272
+ export { createLineSegments, setPolyline } from './render/linePoints.ts';
273
+ export type { LineSegments } from './render/linePoints.ts';
274
+ export { FlockRenderer } from './render/flockRenderer.ts';
275
+ export { DEFAULT_TEXT_STYLE, textHeightPx, textWidthPx } from './render/textLayout.ts';
276
+ export type { TextStyle } from './render/textLayout.ts';
277
+ export { GLYPH_HEIGHT, GLYPH_SPACING, GLYPH_WIDTH, countCells, forEachCell, forEachRun, glyphRows, hasGlyph, measureText, } from './geometry/pixelFont.ts';
278
+ export { parseSdfFont } from './render/sdfFont.ts';
279
+ export type { SdfFont, SdfGlyph } from './render/sdfFont.ts';
280
+ export { DEFAULT_SDF_TEXT_STYLE, SdfTextLayout } from './render/sdfTextLayout.ts';
281
+ export type { SdfTextStyle } from './render/sdfTextLayout.ts';
282
+ export { WindStreakRenderer } from './render/windStreakRenderer.ts';
283
+ export type { WindStreakOptions } from './render/windStreakRenderer.ts';
284
+ export type { FlockParams } from './render/flockRenderer.ts';
285
+ export { buildTree } from './geometry/treeBuilder.ts';
286
+ export type { TreeParams, TreeGeometry } from './geometry/treeBuilder.ts';
287
+ export type { InstanceData } from './render/instancedMesh.ts';
288
+ export type { MeshInstances } from './render/instances.ts';
289
+ export type { WindProfile, WindState } from './render/wind.ts';