@thunderclap-engine/engine 0.0.0-stage → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +390 -0
- package/LICENSE +21 -0
- package/README.md +333 -2
- package/dist/analytics/analytics.d.ts +80 -0
- package/dist/analytics/analytics.js +129 -0
- package/dist/analytics/index.d.ts +1 -0
- package/dist/analytics/index.js +1 -0
- package/dist/anim/aim.d.ts +43 -0
- package/dist/anim/aim.js +157 -0
- package/dist/anim/clip.d.ts +98 -0
- package/dist/anim/clip.js +282 -0
- package/dist/anim/compress.d.ts +65 -0
- package/dist/anim/compress.js +339 -0
- package/dist/anim/foot-ik.d.ts +74 -0
- package/dist/anim/foot-ik.js +241 -0
- package/dist/anim/graph.d.ts +153 -0
- package/dist/anim/graph.js +532 -0
- package/dist/anim/ik.d.ts +105 -0
- package/dist/anim/ik.js +435 -0
- package/dist/anim/index.d.ts +36 -0
- package/dist/anim/index.js +21 -0
- package/dist/anim/match.d.ts +66 -0
- package/dist/anim/match.js +153 -0
- package/dist/anim/mixer.d.ts +113 -0
- package/dist/anim/mixer.js +314 -0
- package/dist/anim/morph.d.ts +41 -0
- package/dist/anim/morph.js +94 -0
- package/dist/anim/pose.d.ts +74 -0
- package/dist/anim/pose.js +254 -0
- package/dist/anim/quat.d.ts +44 -0
- package/dist/anim/quat.js +187 -0
- package/dist/anim/retarget.d.ts +97 -0
- package/dist/anim/retarget.js +366 -0
- package/dist/anim/root-motion.d.ts +44 -0
- package/dist/anim/root-motion.js +224 -0
- package/dist/anim/skin-pose.d.ts +39 -0
- package/dist/anim/skin-pose.js +53 -0
- package/dist/anim/socket.d.ts +47 -0
- package/dist/anim/socket.js +84 -0
- package/dist/anim/spring-chain.d.ts +73 -0
- package/dist/anim/spring-chain.js +294 -0
- package/dist/assets/atlas.d.ts +90 -0
- package/dist/assets/atlas.js +212 -0
- package/dist/assets/baked.d.ts +33 -0
- package/dist/assets/baked.js +38 -0
- package/dist/assets/bundle.d.ts +88 -0
- package/dist/assets/bundle.js +464 -0
- package/dist/assets/cache.d.ts +56 -0
- package/dist/assets/cache.js +123 -0
- package/dist/assets/gltf-load.d.ts +252 -0
- package/dist/assets/gltf-load.js +661 -0
- package/dist/assets/gltf-skin.d.ts +36 -0
- package/dist/assets/gltf-skin.js +109 -0
- package/dist/assets/gltf.d.ts +706 -0
- package/dist/assets/gltf.js +1376 -0
- package/dist/assets/index.d.ts +20 -0
- package/dist/assets/index.js +10 -0
- package/dist/assets/ktx2.d.ts +71 -0
- package/dist/assets/ktx2.js +213 -0
- package/dist/assets/manifest.d.ts +79 -0
- package/dist/assets/manifest.js +7 -0
- package/dist/assets/meshopt.d.ts +23 -0
- package/dist/assets/meshopt.js +403 -0
- package/dist/audio/audio.d.ts +733 -0
- package/dist/audio/audio.js +2013 -0
- package/dist/audio/dsp.d.ts +61 -0
- package/dist/audio/dsp.js +159 -0
- package/dist/audio/duck.d.ts +44 -0
- package/dist/audio/duck.js +101 -0
- package/dist/audio/envelope.d.ts +53 -0
- package/dist/audio/envelope.js +106 -0
- package/dist/audio/index.d.ts +13 -0
- package/dist/audio/index.js +14 -0
- package/dist/audio/music.d.ts +113 -0
- package/dist/audio/music.js +548 -0
- package/dist/audio/occlusion.d.ts +55 -0
- package/dist/audio/occlusion.js +61 -0
- package/dist/audio/persist.d.ts +23 -0
- package/dist/audio/persist.js +27 -0
- package/dist/audio/recipes.d.ts +55 -0
- package/dist/audio/recipes.js +227 -0
- package/dist/audio/send.d.ts +41 -0
- package/dist/audio/send.js +118 -0
- package/dist/audio/sprites.d.ts +59 -0
- package/dist/audio/sprites.js +43 -0
- package/dist/audio/synth.d.ts +103 -0
- package/dist/audio/synth.js +197 -0
- package/dist/audio/variations.d.ts +25 -0
- package/dist/audio/variations.js +55 -0
- package/dist/audio/zones.d.ts +100 -0
- package/dist/audio/zones.js +167 -0
- package/dist/core/detached-surface.d.ts +44 -0
- package/dist/core/detached-surface.js +104 -0
- package/dist/core/events.d.ts +24 -0
- package/dist/core/events.js +43 -0
- package/dist/core/game.d.ts +409 -0
- package/dist/core/game.js +530 -0
- package/dist/core/hash.d.ts +24 -0
- package/dist/core/hash.js +49 -0
- package/dist/core/index.d.ts +17 -0
- package/dist/core/index.js +9 -0
- package/dist/core/loop.d.ts +113 -0
- package/dist/core/loop.js +185 -0
- package/dist/core/math.d.ts +58 -0
- package/dist/core/math.js +210 -0
- package/dist/core/noise.d.ts +40 -0
- package/dist/core/noise.js +247 -0
- package/dist/core/pool.d.ts +42 -0
- package/dist/core/pool.js +85 -0
- package/dist/core/random.d.ts +61 -0
- package/dist/core/random.js +199 -0
- package/dist/core/scene.d.ts +79 -0
- package/dist/core/scene.js +195 -0
- package/dist/core/timer.d.ts +66 -0
- package/dist/core/timer.js +286 -0
- package/dist/fx/billboard-wgsl.d.ts +29 -0
- package/dist/fx/billboard-wgsl.js +158 -0
- package/dist/fx/billboard.d.ts +249 -0
- package/dist/fx/billboard.js +702 -0
- package/dist/fx/debug-draw.d.ts +127 -0
- package/dist/fx/debug-draw.js +523 -0
- package/dist/fx/debug-wgsl.d.ts +7 -0
- package/dist/fx/debug-wgsl.js +32 -0
- package/dist/fx/decals-wgsl.d.ts +15 -0
- package/dist/fx/decals-wgsl.js +173 -0
- package/dist/fx/decals.d.ts +216 -0
- package/dist/fx/decals.js +607 -0
- package/dist/fx/effect.d.ts +129 -0
- package/dist/fx/effect.js +349 -0
- package/dist/fx/effects/hit-spark.json +48 -0
- package/dist/fx/effects/index.d.ts +8 -0
- package/dist/fx/effects/index.js +9 -0
- package/dist/fx/effects/magic-aura.json +47 -0
- package/dist/fx/effects/smoke-puff.json +34 -0
- package/dist/fx/emit-surface.d.ts +40 -0
- package/dist/fx/emit-surface.js +124 -0
- package/dist/fx/flicker.d.ts +30 -0
- package/dist/fx/flicker.js +42 -0
- package/dist/fx/index.d.ts +31 -0
- package/dist/fx/index.js +20 -0
- package/dist/fx/particles-wgsl.d.ts +57 -0
- package/dist/fx/particles-wgsl.js +828 -0
- package/dist/fx/particles.d.ts +566 -0
- package/dist/fx/particles.js +1533 -0
- package/dist/fx/random.d.ts +15 -0
- package/dist/fx/random.js +20 -0
- package/dist/fx/sky-wgsl.d.ts +23 -0
- package/dist/fx/sky-wgsl.js +127 -0
- package/dist/fx/sky.d.ts +96 -0
- package/dist/fx/sky.js +175 -0
- package/dist/fx/text-atlas.d.ts +143 -0
- package/dist/fx/text-atlas.js +327 -0
- package/dist/fx/trail-wgsl.d.ts +11 -0
- package/dist/fx/trail-wgsl.js +42 -0
- package/dist/fx/trail.d.ts +194 -0
- package/dist/fx/trail.js +555 -0
- package/dist/fx/water-wgsl.d.ts +34 -0
- package/dist/fx/water-wgsl.js +197 -0
- package/dist/fx/water.d.ts +176 -0
- package/dist/fx/water.js +371 -0
- package/dist/geom/collide/bvh.d.ts +151 -0
- package/dist/geom/collide/bvh.js +493 -0
- package/dist/geom/collide/debug.d.ts +14 -0
- package/dist/geom/collide/debug.js +74 -0
- package/dist/geom/collide/grid.d.ts +26 -0
- package/dist/geom/collide/grid.js +91 -0
- package/dist/geom/collide/index.d.ts +8 -0
- package/dist/geom/collide/index.js +8 -0
- package/dist/geom/collide/queries.d.ts +70 -0
- package/dist/geom/collide/queries.js +583 -0
- package/dist/geom/collide/serialize.d.ts +14 -0
- package/dist/geom/collide/serialize.js +145 -0
- package/dist/geom/collide/shapes.d.ts +161 -0
- package/dist/geom/collide/shapes.js +686 -0
- package/dist/geom/collide/slide.d.ts +66 -0
- package/dist/geom/collide/slide.js +375 -0
- package/dist/geom/collide/tile-slide.d.ts +88 -0
- package/dist/geom/collide/tile-slide.js +255 -0
- package/dist/geom/geometry.d.ts +95 -0
- package/dist/geom/geometry.js +322 -0
- package/dist/geom/heightfield.d.ts +72 -0
- package/dist/geom/heightfield.js +295 -0
- package/dist/geom/hull.d.ts +27 -0
- package/dist/geom/hull.js +279 -0
- package/dist/geom/index.d.ts +35 -0
- package/dist/geom/index.js +23 -0
- package/dist/geom/iso.d.ts +74 -0
- package/dist/geom/iso.js +89 -0
- package/dist/geom/lod.d.ts +29 -0
- package/dist/geom/lod.js +27 -0
- package/dist/geom/ops.d.ts +47 -0
- package/dist/geom/ops.js +285 -0
- package/dist/geom/primitives.d.ts +97 -0
- package/dist/geom/primitives.js +359 -0
- package/dist/geom/shapes.d.ts +43 -0
- package/dist/geom/shapes.js +88 -0
- package/dist/geom/simplify.d.ts +38 -0
- package/dist/geom/simplify.js +519 -0
- package/dist/geom/split.d.ts +37 -0
- package/dist/geom/split.js +413 -0
- package/dist/geom/sweep.d.ts +83 -0
- package/dist/geom/sweep.js +534 -0
- package/dist/geom/tangents.d.ts +16 -0
- package/dist/geom/tangents.js +124 -0
- package/dist/geom/triangulate.d.ts +19 -0
- package/dist/geom/triangulate.js +147 -0
- package/dist/host/default.d.ts +10 -0
- package/dist/host/default.js +10 -0
- package/dist/host/index.d.ts +4 -0
- package/dist/host/index.js +3 -0
- package/dist/host/types.d.ts +144 -0
- package/dist/host/types.js +1 -0
- package/dist/host/web-links.d.ts +38 -0
- package/dist/host/web-links.js +110 -0
- package/dist/host/web.d.ts +30 -0
- package/dist/host/web.js +216 -0
- package/dist/host/xr.d.ts +24 -0
- package/dist/host/xr.js +59 -0
- package/dist/i18n/i18n.d.ts +59 -0
- package/dist/i18n/i18n.js +241 -0
- package/dist/i18n/index.d.ts +3 -0
- package/dist/i18n/index.js +3 -0
- package/dist/i18n/message.d.ts +72 -0
- package/dist/i18n/message.js +369 -0
- package/dist/i18n/negotiate.d.ts +17 -0
- package/dist/i18n/negotiate.js +58 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +1 -0
- package/dist/input/bindings.d.ts +31 -0
- package/dist/input/bindings.js +141 -0
- package/dist/input/clock.d.ts +44 -0
- package/dist/input/clock.js +49 -0
- package/dist/input/follow.d.ts +133 -0
- package/dist/input/follow.js +218 -0
- package/dist/input/gestures.d.ts +281 -0
- package/dist/input/gestures.js +662 -0
- package/dist/input/glyphs.d.ts +35 -0
- package/dist/input/glyphs.js +216 -0
- package/dist/input/gyro.d.ts +85 -0
- package/dist/input/gyro.js +140 -0
- package/dist/input/index.d.ts +19 -0
- package/dist/input/index.js +16 -0
- package/dist/input/input.d.ts +543 -0
- package/dist/input/input.js +1492 -0
- package/dist/input/look.d.ts +327 -0
- package/dist/input/look.js +681 -0
- package/dist/input/magnify.d.ts +177 -0
- package/dist/input/magnify.js +131 -0
- package/dist/input/pointer-dispatch.d.ts +138 -0
- package/dist/input/pointer-dispatch.js +180 -0
- package/dist/input/pointer-router.d.ts +204 -0
- package/dist/input/pointer-router.js +533 -0
- package/dist/input/pointer-sources.d.ts +164 -0
- package/dist/input/pointer-sources.js +306 -0
- package/dist/input/rays.d.ts +138 -0
- package/dist/input/rays.js +615 -0
- package/dist/input/record.d.ts +209 -0
- package/dist/input/record.js +601 -0
- package/dist/input/touch-zones.d.ts +147 -0
- package/dist/input/touch-zones.js +300 -0
- package/dist/input/types.d.ts +158 -0
- package/dist/input/types.js +1 -0
- package/dist/input/xr-source.d.ts +53 -0
- package/dist/input/xr-source.js +164 -0
- package/dist/nav/astar.d.ts +45 -0
- package/dist/nav/astar.js +182 -0
- package/dist/nav/corridor.d.ts +40 -0
- package/dist/nav/corridor.js +95 -0
- package/dist/nav/crowd.d.ts +94 -0
- package/dist/nav/crowd.js +624 -0
- package/dist/nav/flow.d.ts +61 -0
- package/dist/nav/flow.js +193 -0
- package/dist/nav/grid.d.ts +108 -0
- package/dist/nav/grid.js +210 -0
- package/dist/nav/heap.d.ts +22 -0
- package/dist/nav/heap.js +92 -0
- package/dist/nav/index.d.ts +37 -0
- package/dist/nav/index.js +19 -0
- package/dist/nav/mesh/areas.d.ts +44 -0
- package/dist/nav/mesh/areas.js +98 -0
- package/dist/nav/mesh/bake-options.d.ts +33 -0
- package/dist/nav/mesh/bake-options.js +76 -0
- package/dist/nav/mesh/contour.d.ts +22 -0
- package/dist/nav/mesh/contour.js +323 -0
- package/dist/nav/mesh/flow3.d.ts +35 -0
- package/dist/nav/mesh/flow3.js +229 -0
- package/dist/nav/mesh/links.d.ts +38 -0
- package/dist/nav/mesh/links.js +72 -0
- package/dist/nav/mesh/mesh-path.d.ts +152 -0
- package/dist/nav/mesh/mesh-path.js +643 -0
- package/dist/nav/mesh/mesh-reach.d.ts +78 -0
- package/dist/nav/mesh/mesh-reach.js +450 -0
- package/dist/nav/mesh/navmesh.d.ts +117 -0
- package/dist/nav/mesh/navmesh.js +647 -0
- package/dist/nav/mesh/polymesh.d.ts +24 -0
- package/dist/nav/mesh/polymesh.js +384 -0
- package/dist/nav/mesh/regions.d.ts +12 -0
- package/dist/nav/mesh/regions.js +367 -0
- package/dist/nav/mesh/serialize.d.ts +13 -0
- package/dist/nav/mesh/serialize.js +197 -0
- package/dist/nav/mesh/voxelize.d.ts +111 -0
- package/dist/nav/mesh/voxelize.js +552 -0
- package/dist/nav/obstacles.d.ts +75 -0
- package/dist/nav/obstacles.js +294 -0
- package/dist/nav/path.d.ts +59 -0
- package/dist/nav/path.js +177 -0
- package/dist/nav/query-queue.d.ts +46 -0
- package/dist/nav/query-queue.js +308 -0
- package/dist/nav/reach.d.ts +53 -0
- package/dist/nav/reach.js +148 -0
- package/dist/nav/steer.d.ts +36 -0
- package/dist/nav/steer.js +78 -0
- package/dist/platform/boot.d.ts +28 -0
- package/dist/platform/boot.js +43 -0
- package/dist/platform/device-mode.d.ts +40 -0
- package/dist/platform/device-mode.js +104 -0
- package/dist/platform/device.d.ts +31 -0
- package/dist/platform/device.js +91 -0
- package/dist/platform/environment.d.ts +42 -0
- package/dist/platform/environment.js +82 -0
- package/dist/platform/gpu.d.ts +40 -0
- package/dist/platform/gpu.js +57 -0
- package/dist/platform/index.d.ts +18 -0
- package/dist/platform/index.js +10 -0
- package/dist/platform/letterbox.d.ts +43 -0
- package/dist/platform/letterbox.js +57 -0
- package/dist/platform/links.d.ts +20 -0
- package/dist/platform/links.js +43 -0
- package/dist/platform/screens.d.ts +36 -0
- package/dist/platform/screens.js +138 -0
- package/dist/platform/surface.d.ts +72 -0
- package/dist/platform/surface.js +157 -0
- package/dist/platform/xr-fake.d.ts +168 -0
- package/dist/platform/xr-fake.js +434 -0
- package/dist/platform/xr-surface.d.ts +120 -0
- package/dist/platform/xr-surface.js +214 -0
- package/dist/platform/xr-types.d.ts +262 -0
- package/dist/post/ao.d.ts +12 -0
- package/dist/post/ao.js +136 -0
- package/dist/post/blend.d.ts +27 -0
- package/dist/post/blend.js +129 -0
- package/dist/post/depth-pass.d.ts +43 -0
- package/dist/post/depth-pass.js +118 -0
- package/dist/post/dof.d.ts +1 -0
- package/dist/post/dof.js +66 -0
- package/dist/post/exposure.d.ts +80 -0
- package/dist/post/exposure.js +322 -0
- package/dist/post/index.d.ts +12 -0
- package/dist/post/index.js +11 -0
- package/dist/post/lens-dirt.d.ts +13 -0
- package/dist/post/lens-dirt.js +91 -0
- package/dist/post/lut.d.ts +19 -0
- package/dist/post/lut.js +50 -0
- package/dist/post/motion-blur.d.ts +9 -0
- package/dist/post/motion-blur.js +78 -0
- package/dist/post/post-stack.d.ts +302 -0
- package/dist/post/post-stack.js +1137 -0
- package/dist/post/settings.d.ts +485 -0
- package/dist/post/settings.js +416 -0
- package/dist/post/shaders.d.ts +25 -0
- package/dist/post/shaders.js +410 -0
- package/dist/post/ssr.d.ts +16 -0
- package/dist/post/ssr.js +155 -0
- package/dist/post/taa.d.ts +74 -0
- package/dist/post/taa.js +235 -0
- package/dist/post/white-balance.d.ts +25 -0
- package/dist/post/white-balance.js +98 -0
- package/dist/render/bindings.d.ts +98 -0
- package/dist/render/bindings.js +281 -0
- package/dist/render/blend.d.ts +13 -0
- package/dist/render/blend.js +26 -0
- package/dist/render/camera-2d.d.ts +72 -0
- package/dist/render/camera-2d.js +92 -0
- package/dist/render/camera.d.ts +302 -0
- package/dist/render/camera.js +671 -0
- package/dist/render/color.d.ts +16 -0
- package/dist/render/color.js +41 -0
- package/dist/render/compressed.d.ts +104 -0
- package/dist/render/compressed.js +248 -0
- package/dist/render/diagnostics.d.ts +15 -0
- package/dist/render/diagnostics.js +43 -0
- package/dist/render/dynamic-resolution.d.ts +70 -0
- package/dist/render/dynamic-resolution.js +126 -0
- package/dist/render/fake-gpu.d.ts +204 -0
- package/dist/render/fake-gpu.js +426 -0
- package/dist/render/flipbook.d.ts +56 -0
- package/dist/render/flipbook.js +87 -0
- package/dist/render/frame.d.ts +278 -0
- package/dist/render/frame.js +174 -0
- package/dist/render/fullscreen.d.ts +54 -0
- package/dist/render/fullscreen.js +91 -0
- package/dist/render/gpu-timer.d.ts +73 -0
- package/dist/render/gpu-timer.js +186 -0
- package/dist/render/index.d.ts +53 -0
- package/dist/render/index.js +29 -0
- package/dist/render/instance-list.d.ts +185 -0
- package/dist/render/instance-list.js +547 -0
- package/dist/render/lights.d.ts +181 -0
- package/dist/render/lights.js +233 -0
- package/dist/render/lod.d.ts +54 -0
- package/dist/render/lod.js +52 -0
- package/dist/render/material.d.ts +165 -0
- package/dist/render/material.js +292 -0
- package/dist/render/mesh.d.ts +284 -0
- package/dist/render/mesh.js +472 -0
- package/dist/render/mipmap.d.ts +16 -0
- package/dist/render/mipmap.js +121 -0
- package/dist/render/parallax.d.ts +50 -0
- package/dist/render/parallax.js +47 -0
- package/dist/render/pbr-wgsl.d.ts +31 -0
- package/dist/render/pbr-wgsl.js +119 -0
- package/dist/render/ping-pong.d.ts +42 -0
- package/dist/render/ping-pong.js +74 -0
- package/dist/render/renderer.d.ts +741 -0
- package/dist/render/renderer.js +2486 -0
- package/dist/render/scene-pipelines.d.ts +44 -0
- package/dist/render/scene-pipelines.js +92 -0
- package/dist/render/scene-target.d.ts +170 -0
- package/dist/render/scene-target.js +450 -0
- package/dist/render/shadow.d.ts +74 -0
- package/dist/render/shadow.js +208 -0
- package/dist/render/skin.d.ts +112 -0
- package/dist/render/skin.js +240 -0
- package/dist/render/snapshot.d.ts +36 -0
- package/dist/render/snapshot.js +34 -0
- package/dist/render/standard.d.ts +162 -0
- package/dist/render/standard.js +263 -0
- package/dist/render/texture.d.ts +142 -0
- package/dist/render/texture.js +228 -0
- package/dist/render/tile-layer.d.ts +110 -0
- package/dist/render/tile-layer.js +304 -0
- package/dist/render/transform.d.ts +115 -0
- package/dist/render/transform.js +318 -0
- package/dist/render/wgsl.d.ts +131 -0
- package/dist/render/wgsl.js +528 -0
- package/dist/save/codec.d.ts +49 -0
- package/dist/save/codec.js +169 -0
- package/dist/save/index.d.ts +8 -0
- package/dist/save/index.js +8 -0
- package/dist/save/journal.d.ts +24 -0
- package/dist/save/journal.js +102 -0
- package/dist/save/migrate.d.ts +15 -0
- package/dist/save/migrate.js +37 -0
- package/dist/save/schema.d.ts +72 -0
- package/dist/save/schema.js +154 -0
- package/dist/save/settings.d.ts +28 -0
- package/dist/save/settings.js +59 -0
- package/dist/save/slots.d.ts +56 -0
- package/dist/save/slots.js +200 -0
- package/dist/save/storage.d.ts +35 -0
- package/dist/save/storage.js +62 -0
- package/dist/save/store.d.ts +114 -0
- package/dist/save/store.js +269 -0
- package/dist/testing/fake-host.d.ts +103 -0
- package/dist/testing/fake-host.js +163 -0
- package/dist/testing/fixed-clock.d.ts +25 -0
- package/dist/testing/fixed-clock.js +30 -0
- package/dist/testing/index.d.ts +4 -0
- package/dist/testing/index.js +5 -0
- package/dist/testing/test-game.d.ts +76 -0
- package/dist/testing/test-game.js +92 -0
- package/dist/tween/ease.d.ts +77 -0
- package/dist/tween/ease.js +192 -0
- package/dist/tween/index.d.ts +8 -0
- package/dist/tween/index.js +7 -0
- package/dist/tween/timeline.d.ts +78 -0
- package/dist/tween/timeline.js +269 -0
- package/dist/tween/tween.d.ts +168 -0
- package/dist/tween/tween.js +320 -0
- package/dist/ui/anchor.d.ts +206 -0
- package/dist/ui/anchor.js +307 -0
- package/dist/ui/caption.d.ts +122 -0
- package/dist/ui/caption.js +286 -0
- package/dist/ui/cursor.d.ts +105 -0
- package/dist/ui/cursor.js +261 -0
- package/dist/ui/dom.d.ts +30 -0
- package/dist/ui/dom.js +92 -0
- package/dist/ui/floats.d.ts +86 -0
- package/dist/ui/floats.js +260 -0
- package/dist/ui/hud.d.ts +198 -0
- package/dist/ui/hud.js +431 -0
- package/dist/ui/index.d.ts +37 -0
- package/dist/ui/index.js +34 -0
- package/dist/ui/inventory-card.d.ts +52 -0
- package/dist/ui/inventory-card.js +173 -0
- package/dist/ui/inventory-context.d.ts +29 -0
- package/dist/ui/inventory-context.js +125 -0
- package/dist/ui/inventory-drag.d.ts +63 -0
- package/dist/ui/inventory-drag.js +394 -0
- package/dist/ui/inventory-grid.d.ts +66 -0
- package/dist/ui/inventory-grid.js +625 -0
- package/dist/ui/inventory-radial.d.ts +39 -0
- package/dist/ui/inventory-radial.js +168 -0
- package/dist/ui/inventory.d.ts +128 -0
- package/dist/ui/inventory.js +154 -0
- package/dist/ui/layout.d.ts +356 -0
- package/dist/ui/layout.js +856 -0
- package/dist/ui/link.d.ts +64 -0
- package/dist/ui/link.js +155 -0
- package/dist/ui/loading.d.ts +40 -0
- package/dist/ui/loading.js +157 -0
- package/dist/ui/loupe.d.ts +74 -0
- package/dist/ui/loupe.js +164 -0
- package/dist/ui/menu-nav.d.ts +33 -0
- package/dist/ui/menu-nav.js +28 -0
- package/dist/ui/minimap-canvas.d.ts +145 -0
- package/dist/ui/minimap-canvas.js +460 -0
- package/dist/ui/notify.d.ts +40 -0
- package/dist/ui/notify.js +141 -0
- package/dist/ui/orb.d.ts +53 -0
- package/dist/ui/orb.js +304 -0
- package/dist/ui/overlay.d.ts +213 -0
- package/dist/ui/overlay.js +394 -0
- package/dist/ui/padnav.d.ts +53 -0
- package/dist/ui/padnav.js +146 -0
- package/dist/ui/perf.d.ts +130 -0
- package/dist/ui/perf.js +329 -0
- package/dist/ui/rotate-card.d.ts +54 -0
- package/dist/ui/rotate-card.js +97 -0
- package/dist/ui/stack.d.ts +128 -0
- package/dist/ui/stack.js +312 -0
- package/dist/ui/styles.d.ts +13 -0
- package/dist/ui/styles.js +200 -0
- package/dist/ui/text-scale.d.ts +67 -0
- package/dist/ui/text-scale.js +102 -0
- package/dist/ui/theme.d.ts +70 -0
- package/dist/ui/theme.js +98 -0
- package/dist/ui/toast.d.ts +23 -0
- package/dist/ui/toast.js +46 -0
- package/dist/ui/tooltip.d.ts +89 -0
- package/dist/ui/tooltip.js +333 -0
- package/dist/ui/widgets-2.d.ts +134 -0
- package/dist/ui/widgets-2.js +399 -0
- package/dist/ui/widgets-3.d.ts +91 -0
- package/dist/ui/widgets-3.js +212 -0
- package/dist/ui/widgets.d.ts +34 -0
- package/dist/ui/widgets.js +50 -0
- package/dist/ui/world-panel/index.d.ts +5 -0
- package/dist/ui/world-panel/index.js +5 -0
- package/dist/ui/world-panel/layout.d.ts +38 -0
- package/dist/ui/world-panel/layout.js +68 -0
- package/dist/ui/world-panel/paint.d.ts +96 -0
- package/dist/ui/world-panel/paint.js +136 -0
- package/dist/ui/world-panel/panel.d.ts +235 -0
- package/dist/ui/world-panel/panel.js +762 -0
- package/dist/ui/world-panel/wgsl.d.ts +10 -0
- package/dist/ui/world-panel/wgsl.js +52 -0
- package/dist/ui/world-panel/widgets.d.ts +207 -0
- package/dist/ui/world-panel/widgets.js +569 -0
- package/dist/voxel/chunks.d.ts +77 -0
- package/dist/voxel/chunks.js +149 -0
- package/dist/voxel/grid.d.ts +84 -0
- package/dist/voxel/grid.js +223 -0
- package/dist/voxel/index.d.ts +22 -0
- package/dist/voxel/index.js +7 -0
- package/dist/voxel/mesher-worker.d.ts +14 -0
- package/dist/voxel/mesher-worker.js +47 -0
- package/dist/voxel/mesher.d.ts +73 -0
- package/dist/voxel/mesher.js +306 -0
- package/dist/voxel/ray.d.ts +32 -0
- package/dist/voxel/ray.js +73 -0
- package/dist/voxel/wgsl.d.ts +16 -0
- package/dist/voxel/wgsl.js +28 -0
- package/dist/voxel/worker-client.d.ts +79 -0
- package/dist/voxel/worker-client.js +122 -0
- package/package.json +177 -3
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mesh: a vertex buffer (+ optional index buffer) in one of the engine's vertex layouts.
|
|
3
|
+
*
|
|
4
|
+
* - `VERTEX_LAYOUT_2D` (the default): `pos: vec2f, uv: vec2f, color: vec4f`, 8 floats
|
|
5
|
+
* (`VERTEX_FLOATS`), 32 bytes per vertex.
|
|
6
|
+
* - `VERTEX_LAYOUT_3D`: `pos: vec3f, normal: vec3f, uv: vec2f, color: vec4f`, 12 floats
|
|
7
|
+
* (`VERTEX3D_FLOATS`), 48 bytes per vertex.
|
|
8
|
+
* - `VERTEX_LAYOUT_3D_TANGENT`: the 3D layout plus `tangent: vec4f` (xyz, handedness w),
|
|
9
|
+
* 16 floats, 64 bytes per vertex.
|
|
10
|
+
*
|
|
11
|
+
* Positions are in the mesh's local space; each draw's 3×4 instance matrix (built from
|
|
12
|
+
* `DrawParams` x, y, w, h, rotation, or taken from a `Transform`) maps local → world space.
|
|
13
|
+
* For `DrawParams` that is `xy + rotate(pos * wh)`: the built-in quad spans -0.5..0.5 so
|
|
14
|
+
* `w, h` are its size in logical pixels; for arbitrary meshes authored directly in logical
|
|
15
|
+
* pixels, draw with `x = 0, y = 0, w = 1, h = 1`.
|
|
16
|
+
*
|
|
17
|
+
* Materials build one pipeline per (vertex layout, depth mode), lazily, on first use.
|
|
18
|
+
*/
|
|
19
|
+
export declare const VERTEX_FLOATS = 8;
|
|
20
|
+
export declare const VERTEX_STRIDE: number;
|
|
21
|
+
export declare const VERTEX3D_FLOATS = 12;
|
|
22
|
+
export declare const VERTEX3D_STRIDE: number;
|
|
23
|
+
/** The 2D layout's buffer layout (locations 0..2). */
|
|
24
|
+
export declare const VERTEX_BUFFER_LAYOUT: GPUVertexBufferLayout;
|
|
25
|
+
/** The 3D layout's buffer layout: position 0, normal 10, uv 1, colour 2. */
|
|
26
|
+
export declare const VERTEX3D_BUFFER_LAYOUT: GPUVertexBufferLayout;
|
|
27
|
+
/**
|
|
28
|
+
* A vertex layout: the GPU buffer layout plus the WGSL that reads it. The material prelude is
|
|
29
|
+
* generated per layout (`materialPrelude(layout)`), so `engine_vertex`, `VSOut` and the
|
|
30
|
+
* fragment side are the same for every layout. Layouts compare by identity.
|
|
31
|
+
*/
|
|
32
|
+
export interface VertexLayout {
|
|
33
|
+
/** Short name, used in pipeline labels. */
|
|
34
|
+
readonly name: string;
|
|
35
|
+
readonly floats: number;
|
|
36
|
+
readonly stride: number;
|
|
37
|
+
readonly buffer: GPUVertexBufferLayout;
|
|
38
|
+
/** The vertex-attribute fields of WGSL `VertexIn` (the instance fields follow them). */
|
|
39
|
+
readonly wgslFields: string;
|
|
40
|
+
/** WGSL expression over `v: VertexIn` for the object-space position (`vec3f`). */
|
|
41
|
+
readonly wgslPosition: string;
|
|
42
|
+
/** WGSL expression over `v: VertexIn` for the object-space normal (`vec3f`). */
|
|
43
|
+
readonly wgslNormal: string;
|
|
44
|
+
/**
|
|
45
|
+
* Float offset of x, y, z inside a vertex (0 in every shipped layout), so a layout goes
|
|
46
|
+
* straight to `meshTester(..., { stride: layout.floats, offset: layout.positionOffset })`.
|
|
47
|
+
* Optional for a layout written by hand; read it as `layout.positionOffset ?? 0`.
|
|
48
|
+
*/
|
|
49
|
+
readonly positionOffset?: number;
|
|
50
|
+
/**
|
|
51
|
+
* The layout carries joints and weights: `materialPrelude` emits `WGSL_SKIN` (the palette
|
|
52
|
+
* binding and `engine_skin`) so `wgslPosition` / `wgslNormal` may call it. See `skin.ts`.
|
|
53
|
+
*/
|
|
54
|
+
readonly skinned?: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* WGSL expression over `v: VertexIn` for the file tangent (`vec4f`: xyz along +u, w the
|
|
57
|
+
* handedness) when the layout carries one; the prelude's `engine_local_tangent(v)` returns it,
|
|
58
|
+
* or `vec4f(0)` (w = 0: "no tangent", the derivative fallback) for a layout without.
|
|
59
|
+
*/
|
|
60
|
+
readonly wgslTangent?: string;
|
|
61
|
+
/**
|
|
62
|
+
* WGSL expression over `v: VertexIn` for the second texture coordinate set (`vec2f`), the
|
|
63
|
+
* `uv1` varying (`TEXCOORD_1`); `v.uv` is used when absent.
|
|
64
|
+
*/
|
|
65
|
+
readonly wgslUv1?: string;
|
|
66
|
+
/**
|
|
67
|
+
* WGSL expression over `v: VertexIn` for the object-space position of the previous frame as
|
|
68
|
+
* a `vec4f` (w = 0 means "unknown": the velocity target reads zero). Default: the current
|
|
69
|
+
* position with w = 1. A skinned layout reads the palette's previous block.
|
|
70
|
+
*/
|
|
71
|
+
readonly wgslPreviousPosition?: string;
|
|
72
|
+
}
|
|
73
|
+
/** 2D layout: `v.pos` is a `vec2f` (z = 0); the normal faces the viewer, `(0, 0, -1)`. */
|
|
74
|
+
export declare const VERTEX_LAYOUT_2D: VertexLayout;
|
|
75
|
+
/** 3D layout: `v.pos` and `v.normal` are `vec3f`. */
|
|
76
|
+
export declare const VERTEX_LAYOUT_3D: VertexLayout;
|
|
77
|
+
/**
|
|
78
|
+
* Tangent layout (ws/geom-2): the 3D layout's 12 floats followed by a tangent `vec4f` at
|
|
79
|
+
* `@location(13)` (3..9 are the instance buffer, 11 and 12 skinning): xyz the unit tangent
|
|
80
|
+
* along +u, w the handedness ±1, so the bitangent is `w · cross(normal, tangent)`. 16 floats,
|
|
81
|
+
* 64 bytes. `geom`'s `computeTangents` writes it; the prelude reads it like the 3D layout, so a
|
|
82
|
+
* material that ignores `v.tangent` draws unchanged.
|
|
83
|
+
*/
|
|
84
|
+
export declare const VERTEX_LAYOUT_3D_TANGENT: VertexLayout;
|
|
85
|
+
/** Floats of `VERTEX_LAYOUT_3D_UV2` (the 3D layout plus a second uv). */
|
|
86
|
+
export declare const VERTEX3D_UV2_FLOATS = 14;
|
|
87
|
+
export declare const VERTEX3D_UV2_STRIDE: number;
|
|
88
|
+
/**
|
|
89
|
+
* Two-uv layout (ws/render-4): the 3D layout's 12 floats followed by `uv1: vec2f` at
|
|
90
|
+
* `@location(14)` (glTF `TEXCOORD_1`, the usual home of a light or occlusion map): 14 floats,
|
|
91
|
+
* 56 bytes. The prelude carries it as `VSOut.uv1`; the standard material's maps pick it with
|
|
92
|
+
* `texCoord: 1`. Materials that ignore it draw as with the 3D layout.
|
|
93
|
+
*/
|
|
94
|
+
export declare const VERTEX_LAYOUT_3D_UV2: VertexLayout;
|
|
95
|
+
/**
|
|
96
|
+
* Skinned layout: the 3D layout's 12 floats followed by four joint indices (`uint8x4`, read as
|
|
97
|
+
* `vec4u`) and four weights (`unorm8x4`, read as `vec4f`), 8 bytes that occupy the slots of
|
|
98
|
+
* floats 12 and 13: 14 "floats" (`VERTEX_SKINNED_FLOATS`), 56 bytes per vertex. Write the
|
|
99
|
+
* joints and weights through a byte view of the vertex buffer (`setVertexSkin` in `skin.ts`),
|
|
100
|
+
* not as floats (a packed value may be a NaN pattern). `materialPrelude` applies the four
|
|
101
|
+
* weighted joint matrices from the material's `SkinPalette` before the instance matrix.
|
|
102
|
+
*/
|
|
103
|
+
export declare const VERTEX_SKINNED_FLOATS = 14;
|
|
104
|
+
export declare const VERTEX_SKINNED_STRIDE: number;
|
|
105
|
+
/** Byte offset of the four joint indices inside a skinned vertex. */
|
|
106
|
+
export declare const SKIN_JOINTS_BYTE_OFFSET = 48;
|
|
107
|
+
/** Byte offset of the four weights (unorm8) inside a skinned vertex. */
|
|
108
|
+
export declare const SKIN_WEIGHTS_BYTE_OFFSET = 52;
|
|
109
|
+
/** The skinned layout's buffer layout: the 3D attributes, joints at 11 and weights at 12. */
|
|
110
|
+
export declare const VERTEX_SKINNED_BUFFER_LAYOUT: GPUVertexBufferLayout;
|
|
111
|
+
/**
|
|
112
|
+
* Skinned layout: `v.pos`, `v.normal`, `v.uv`, `v.color` as in 3D plus `v.joints: vec4u` and
|
|
113
|
+
* `v.weights: vec4f`. The prelude's `engine_local_position` / `engine_local_normal` return the
|
|
114
|
+
* skinned position and normal (`engine_skin`), so `engine_vertex` and every material work
|
|
115
|
+
* unchanged. The instance's palette slot travels in `params.w` (see `skin.ts`).
|
|
116
|
+
*/
|
|
117
|
+
export declare const VERTEX_LAYOUT_SKINNED: VertexLayout;
|
|
118
|
+
/** An index sub-range of a mesh: `first` index and `count` indices (`InstanceParams.range`). */
|
|
119
|
+
export interface MeshRange {
|
|
120
|
+
first: number;
|
|
121
|
+
count: number;
|
|
122
|
+
}
|
|
123
|
+
/** Room reserved in a mesh's buffers, in vertices and indices. */
|
|
124
|
+
export interface MeshCapacity {
|
|
125
|
+
readonly vertices: number;
|
|
126
|
+
readonly indices: number;
|
|
127
|
+
}
|
|
128
|
+
export interface MeshDesc {
|
|
129
|
+
label?: string;
|
|
130
|
+
/**
|
|
131
|
+
* Interleaved vertices in `layout`: 8 floats each for 2D (x, y, u, v, r, g, b, a), 12 for
|
|
132
|
+
* 3D (x, y, z, nx, ny, nz, u, v, r, g, b, a). Optional when `capacity` is given: the mesh
|
|
133
|
+
* then starts empty (`vertexCount` 0) and is filled by `update()`.
|
|
134
|
+
*/
|
|
135
|
+
vertices?: Float32Array;
|
|
136
|
+
/** Vertex layout. Default `VERTEX_LAYOUT_2D`. */
|
|
137
|
+
layout?: VertexLayout;
|
|
138
|
+
indices?: Uint16Array | Uint32Array;
|
|
139
|
+
/**
|
|
140
|
+
* Reserve room for this many vertices and indices so `update()` can rewrite the geometry
|
|
141
|
+
* without reallocating. Defaults to the initial data's size. `indices` > 0 gives the mesh an
|
|
142
|
+
* index buffer even when no initial indices are passed.
|
|
143
|
+
*/
|
|
144
|
+
capacity?: {
|
|
145
|
+
vertices?: number;
|
|
146
|
+
indices?: number;
|
|
147
|
+
};
|
|
148
|
+
/**
|
|
149
|
+
* Index format of a mesh created with only an index capacity. Default: the format of the
|
|
150
|
+
* initial `indices`, else `uint16` when `capacity.vertices` fits, `uint32` otherwise.
|
|
151
|
+
*/
|
|
152
|
+
indexFormat?: GPUIndexFormat;
|
|
153
|
+
/**
|
|
154
|
+
* Bounding sphere in mesh space, for frustum culling (`camera.cull`). Default: computed from
|
|
155
|
+
* `vertices` when `autoBounds` is on, else unbounded (never culled).
|
|
156
|
+
*/
|
|
157
|
+
bounds?: MeshBounds;
|
|
158
|
+
/**
|
|
159
|
+
* Recompute `bounds` from the positions on every `update()` that uploads vertices without
|
|
160
|
+
* passing `bounds`. Default on under `AUTO_BOUNDS_MAX_VERTICES` (65 536) of capacity, off
|
|
161
|
+
* above it, so a chunk pipeline that knows its bounds passes them itself.
|
|
162
|
+
*/
|
|
163
|
+
autoBounds?: boolean;
|
|
164
|
+
/**
|
|
165
|
+
* Named index ranges (storage only, ws/render-4): a sub-mesh per material of a file, say.
|
|
166
|
+
* Draw one with `frame.mesh(mesh, material, transform, { range: mesh.ranges.door })`.
|
|
167
|
+
*/
|
|
168
|
+
ranges?: Record<string, MeshRange>;
|
|
169
|
+
}
|
|
170
|
+
/** A bounding sphere: `center` (x, y, z) and `radius`. `radius` Infinity means unbounded. */
|
|
171
|
+
export interface MeshBounds {
|
|
172
|
+
center: [number, number, number];
|
|
173
|
+
radius: number;
|
|
174
|
+
}
|
|
175
|
+
/** Capacity (vertices) up to which `MeshDesc.autoBounds` defaults to on. */
|
|
176
|
+
export declare const AUTO_BOUNDS_MAX_VERTICES = 65536;
|
|
177
|
+
/**
|
|
178
|
+
* One geometry upload. Views are read from their own `ArrayBuffer` (`buffer`, `byteOffset`),
|
|
179
|
+
* so a buffer transferred from a Worker is uploaded in place, with no copy on the main thread.
|
|
180
|
+
* Any view type works; counts default to the view's whole length in the mesh's layout and
|
|
181
|
+
* index format. `vertexCount`/`indexCount` without a view only move the draw range.
|
|
182
|
+
*/
|
|
183
|
+
export interface MeshUpdate {
|
|
184
|
+
vertices?: ArrayBufferView;
|
|
185
|
+
indices?: ArrayBufferView;
|
|
186
|
+
/** Vertices to upload and draw. Default: all of `vertices`. */
|
|
187
|
+
vertexCount?: number;
|
|
188
|
+
/** Indices to upload and draw. Default: all of `indices`. */
|
|
189
|
+
indexCount?: number;
|
|
190
|
+
/**
|
|
191
|
+
* New bounding sphere (copied). Without it, bounds are recomputed from `vertices` only when
|
|
192
|
+
* the mesh's `autoBounds` is on.
|
|
193
|
+
*/
|
|
194
|
+
bounds?: MeshBounds;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* The shape a meshing Worker posts back (`harness/stream.ts`): one `ArrayBuffer` holding
|
|
198
|
+
* `vertexCount` vertices of the mesh's layout from byte 0 and, when `indexCount` is given, that
|
|
199
|
+
* many indices of the mesh's index format at `indexOffset` (default: right after the vertices,
|
|
200
|
+
* rounded up to 4 bytes); an indexed mesh given no `indexCount` draws nothing until the next
|
|
201
|
+
* reply. `Mesh.update` takes it as-is, so the page never builds views over the
|
|
202
|
+
* transferred buffer. Extra fields (a chunk id) are ignored.
|
|
203
|
+
*/
|
|
204
|
+
export interface MeshReply {
|
|
205
|
+
buffer: ArrayBuffer;
|
|
206
|
+
vertexCount: number;
|
|
207
|
+
indexCount?: number;
|
|
208
|
+
/** Byte offset of the indices in `buffer`. Default: the vertices' byte length, 4-aligned. */
|
|
209
|
+
indexOffset?: number;
|
|
210
|
+
bounds?: MeshBounds;
|
|
211
|
+
}
|
|
212
|
+
export declare class Mesh {
|
|
213
|
+
private readonly device;
|
|
214
|
+
readonly label: string;
|
|
215
|
+
/** Vertex layout of this mesh's buffer; pipelines are keyed by (material, layout). */
|
|
216
|
+
readonly layout: VertexLayout;
|
|
217
|
+
vertexBuffer: GPUBuffer;
|
|
218
|
+
indexBuffer: GPUBuffer | null;
|
|
219
|
+
indexFormat: GPUIndexFormat;
|
|
220
|
+
/** Vertices drawn (non-indexed) and uploaded by the last `update`. */
|
|
221
|
+
vertexCount: number;
|
|
222
|
+
/**
|
|
223
|
+
* Indices drawn (`drawIndexed`) when > 0. With an index buffer and `indexCount` 0 the renderer
|
|
224
|
+
* skips the draw entirely (no non-indexed fallback, no draw call, nothing in
|
|
225
|
+
* `RenderStats`), so `update({ indexCount: 0 })` empties the mesh.
|
|
226
|
+
*/
|
|
227
|
+
indexCount: number;
|
|
228
|
+
/**
|
|
229
|
+
* Buffers reallocated so far, by `update()` exceeding `capacity` or changing the index format.
|
|
230
|
+
* A caller that caches `vertexBuffer`/`indexBuffer` (a drawable, a bind group) re-reads them
|
|
231
|
+
* when this changes.
|
|
232
|
+
*/
|
|
233
|
+
growths: number;
|
|
234
|
+
/**
|
|
235
|
+
* Bounding sphere in mesh space (the renderer carries it through each draw's instance matrix
|
|
236
|
+
* and culls against `camera.frustum`). From `MeshDesc.bounds`, `MeshUpdate.bounds` or, with
|
|
237
|
+
* `autoBounds`, the positions; `radius` Infinity when unknown (never culled). The object is
|
|
238
|
+
* owned by the mesh; read it, set it through `update({ bounds })`.
|
|
239
|
+
*/
|
|
240
|
+
readonly bounds: MeshBounds;
|
|
241
|
+
/** Whether `update()` recomputes `bounds` from uploaded vertices (`MeshDesc.autoBounds`). */
|
|
242
|
+
readonly autoBounds: boolean;
|
|
243
|
+
/** Named index ranges from `MeshDesc.ranges`; storage only, the renderer never reads it. */
|
|
244
|
+
readonly ranges: Record<string, MeshRange> | undefined;
|
|
245
|
+
/** The layout's position attribute (location 0) has a z component. */
|
|
246
|
+
private readonly pos3;
|
|
247
|
+
private readonly cap;
|
|
248
|
+
/** 4-byte scratch for the last index of an odd uint16 count at the end of its buffer. */
|
|
249
|
+
private readonly tail16;
|
|
250
|
+
constructor(device: GPUDevice, desc: MeshDesc);
|
|
251
|
+
/** Room in the buffers (vertices, indices); `indices` is 0 for a non-indexed mesh. */
|
|
252
|
+
get capacity(): MeshCapacity;
|
|
253
|
+
/**
|
|
254
|
+
* Replace geometry (`MeshUpdate`). Writes with `queue.writeBuffer` straight from each view's
|
|
255
|
+
* buffer and reuses the GPU buffers while the counts fit `capacity`; grows them (1.5×) only
|
|
256
|
+
* when a count exceeds it or the index format changes. Returns true when a buffer was
|
|
257
|
+
* reallocated (`growths` counts them). `bounds` are copied when given, else recomputed from
|
|
258
|
+
* the uploaded positions when `autoBounds` is on (a `Float32Array` view is read in place;
|
|
259
|
+
* any other view type gets one over the same buffer). Allocation-free otherwise.
|
|
260
|
+
*
|
|
261
|
+
* A `MeshReply` (`{ buffer, vertexCount, indexCount?, bounds? }`, a Worker's message) is the
|
|
262
|
+
* same upload read straight out of the one transferred buffer; it allocates the two views.
|
|
263
|
+
*/
|
|
264
|
+
update(u: MeshUpdate | MeshReply): boolean;
|
|
265
|
+
private updateFromReply;
|
|
266
|
+
private updateViews;
|
|
267
|
+
/**
|
|
268
|
+
* Bounding sphere of the first `count` vertices of `view` in this layout: the centre of their
|
|
269
|
+
* axis-aligned box, the radius the farthest vertex from it. 2D positions have z = 0.
|
|
270
|
+
*/
|
|
271
|
+
private computeBounds;
|
|
272
|
+
/** `writeBuffer` wants 4-byte sizes and offsets; a uint16 count may be odd. */
|
|
273
|
+
private writeIndices;
|
|
274
|
+
/** The `GPUVertexBufferLayout` of `layout` (buffer slot 0 of every pipeline drawing it). */
|
|
275
|
+
get vertexBufferLayout(): GPUVertexBufferLayout;
|
|
276
|
+
destroy(): void;
|
|
277
|
+
private makeVertexBuffer;
|
|
278
|
+
private makeIndexBuffer;
|
|
279
|
+
}
|
|
280
|
+
/** Unit quad centred on the origin (-0.5..0.5), uv (0,0) top-left, white. */
|
|
281
|
+
export declare function quadGeometry(): {
|
|
282
|
+
vertices: Float32Array;
|
|
283
|
+
indices: Uint16Array;
|
|
284
|
+
};
|