@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,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pipeline variants of one scene-pass drawable, keyed on the pass it draws into
|
|
3
|
+
* (ws/render-10): a variant key (the depth format, or whatever names the drawable's depth
|
|
4
|
+
* state; null without depth) × the target's aux key (`frame.auxKey`, 0..3). A view into a
|
|
5
|
+
* target with other aux attachments than the last one gets its own pipeline, built on first
|
|
6
|
+
* use from `renderer.sceneTargets(blend, aux)`; nothing is rebuilt or allocated after.
|
|
7
|
+
* Internal to the engine's drawables (fx, ui world panel).
|
|
8
|
+
*/
|
|
9
|
+
export declare class ScenePipelineCache {
|
|
10
|
+
private readonly rows;
|
|
11
|
+
/** The pipeline stored for (`key`, `aux`), else undefined. */
|
|
12
|
+
get(key: unknown, aux: number): GPURenderPipeline | undefined;
|
|
13
|
+
/** Store `pipeline` for (`key`, `aux`) and return it. */
|
|
14
|
+
set(key: unknown, aux: number, pipeline: GPURenderPipeline): GPURenderPipeline;
|
|
15
|
+
}
|
|
16
|
+
/** `desc` with its fragment colour targets replaced by `targets` (and `label`, `depthStencil`). */
|
|
17
|
+
export declare function sceneVariant(desc: GPURenderPipelineDescriptor, targets: GPUColorTargetState[], label: string | undefined, depthStencil: GPUDepthStencilState | undefined): GPURenderPipelineDescriptor;
|
|
18
|
+
/** The label suffix of an aux variant: empty for a plain target (labels stay as before). */
|
|
19
|
+
export declare function auxSuffix(aux: number): string;
|
|
20
|
+
/**
|
|
21
|
+
* Where a drawable that writes its own motion puts it (ws/render-11): the fragment location of
|
|
22
|
+
* the velocity attachment for aux key `aux` (colour, emissive, rough-metal, velocity), or 0
|
|
23
|
+
* when the target has no velocity attachment (the drawable keeps its masked pipeline).
|
|
24
|
+
*/
|
|
25
|
+
export declare function velocityLocation(aux: number): number;
|
|
26
|
+
/**
|
|
27
|
+
* `targets` (a `renderer.sceneTargets` list) with the velocity entry written instead of masked
|
|
28
|
+
* and blended over what the opaque pass left, by the alpha the fragment writes in `.a` of its
|
|
29
|
+
* `vec4f(velocity, 0, alpha)` output. A copy, built once per pipeline (not per frame).
|
|
30
|
+
*/
|
|
31
|
+
export declare function velocityTargets(targets: GPUColorTargetState[], aux: number): GPUColorTargetState[];
|
|
32
|
+
/**
|
|
33
|
+
* WGSL: `engine_motion(frag, prev_clip)`, the screen motion since last frame in uv units
|
|
34
|
+
* (+x right, +y down, jitter removed) of a fragment at framebuffer position `frag` whose
|
|
35
|
+
* previous clip position is `prev_clip`; zero when `prev_clip.w <= 0` (unknown). The same
|
|
36
|
+
* formula as the prelude's `engine_velocity`, for drawables built on `WGSL_GLOBALS` (fx
|
|
37
|
+
* billboards and world particles). Needs the `camera` block.
|
|
38
|
+
*/
|
|
39
|
+
export declare const WGSL_MOTION = "\nfn engine_motion(frag: vec4f, prev_clip: vec4f) -> vec2f {\n if (prev_clip.w <= 0.0) { return vec2f(0.0); }\n let cur = (frag.xy - camera.viewport.xy) / camera.viewport.zw - camera.jitter.xy * vec2f(0.5, -0.5);\n let pn = prev_clip.xy / prev_clip.w;\n let prev = vec2f(pn.x * 0.5 + 0.5, 0.5 - pn.y * 0.5);\n return cur - prev;\n}\n";
|
|
40
|
+
/**
|
|
41
|
+
* `sceneVariant` for a drawable's motion-writing shader: the same descriptor with `module`
|
|
42
|
+
* (its velocity build) on both stages and `velocityTargets` as the colour targets.
|
|
43
|
+
*/
|
|
44
|
+
export declare function motionVariant(desc: GPURenderPipelineDescriptor, module: GPUShaderModule, targets: GPUColorTargetState[], aux: number, label: string | undefined, depthStencil: GPUDepthStencilState | undefined): GPURenderPipelineDescriptor;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pipeline variants of one scene-pass drawable, keyed on the pass it draws into
|
|
3
|
+
* (ws/render-10): a variant key (the depth format, or whatever names the drawable's depth
|
|
4
|
+
* state; null without depth) × the target's aux key (`frame.auxKey`, 0..3). A view into a
|
|
5
|
+
* target with other aux attachments than the last one gets its own pipeline, built on first
|
|
6
|
+
* use from `renderer.sceneTargets(blend, aux)`; nothing is rebuilt or allocated after.
|
|
7
|
+
* Internal to the engine's drawables (fx, ui world panel).
|
|
8
|
+
*/
|
|
9
|
+
export class ScenePipelineCache {
|
|
10
|
+
rows = new Map();
|
|
11
|
+
/** The pipeline stored for (`key`, `aux`), else undefined. */
|
|
12
|
+
get(key, aux) {
|
|
13
|
+
return this.rows.get(key)?.[aux & 3];
|
|
14
|
+
}
|
|
15
|
+
/** Store `pipeline` for (`key`, `aux`) and return it. */
|
|
16
|
+
set(key, aux, pipeline) {
|
|
17
|
+
let row = this.rows.get(key);
|
|
18
|
+
if (!row) {
|
|
19
|
+
row = [undefined, undefined, undefined, undefined];
|
|
20
|
+
this.rows.set(key, row);
|
|
21
|
+
}
|
|
22
|
+
row[aux & 3] = pipeline;
|
|
23
|
+
return pipeline;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/** `desc` with its fragment colour targets replaced by `targets` (and `label`, `depthStencil`). */
|
|
27
|
+
export function sceneVariant(desc, targets, label, depthStencil) {
|
|
28
|
+
const out = {
|
|
29
|
+
...desc,
|
|
30
|
+
label,
|
|
31
|
+
fragment: { ...desc.fragment, targets },
|
|
32
|
+
};
|
|
33
|
+
if (depthStencil)
|
|
34
|
+
out.depthStencil = depthStencil;
|
|
35
|
+
return out;
|
|
36
|
+
}
|
|
37
|
+
/** The label suffix of an aux variant: empty for a plain target (labels stay as before). */
|
|
38
|
+
export function auxSuffix(aux) {
|
|
39
|
+
return aux === 0 ? '' : `:aux${aux}`;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Where a drawable that writes its own motion puts it (ws/render-11): the fragment location of
|
|
43
|
+
* the velocity attachment for aux key `aux` (colour, emissive, rough-metal, velocity), or 0
|
|
44
|
+
* when the target has no velocity attachment (the drawable keeps its masked pipeline).
|
|
45
|
+
*/
|
|
46
|
+
export function velocityLocation(aux) {
|
|
47
|
+
return aux & 2 ? (aux & 1 ? 3 : 2) : 0;
|
|
48
|
+
}
|
|
49
|
+
/** Straight-alpha over: a translucent quad's motion is weighted by its coverage. */
|
|
50
|
+
const VELOCITY_BLEND = {
|
|
51
|
+
color: { srcFactor: 'src-alpha', dstFactor: 'one-minus-src-alpha', operation: 'add' },
|
|
52
|
+
alpha: { srcFactor: 'zero', dstFactor: 'one', operation: 'add' },
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* `targets` (a `renderer.sceneTargets` list) with the velocity entry written instead of masked
|
|
56
|
+
* and blended over what the opaque pass left, by the alpha the fragment writes in `.a` of its
|
|
57
|
+
* `vec4f(velocity, 0, alpha)` output. A copy, built once per pipeline (not per frame).
|
|
58
|
+
*/
|
|
59
|
+
export function velocityTargets(targets, aux) {
|
|
60
|
+
const at = velocityLocation(aux);
|
|
61
|
+
if (at === 0)
|
|
62
|
+
return targets;
|
|
63
|
+
const out = targets.slice();
|
|
64
|
+
out[at] = { format: targets[at].format, blend: VELOCITY_BLEND };
|
|
65
|
+
return out;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* WGSL: `engine_motion(frag, prev_clip)`, the screen motion since last frame in uv units
|
|
69
|
+
* (+x right, +y down, jitter removed) of a fragment at framebuffer position `frag` whose
|
|
70
|
+
* previous clip position is `prev_clip`; zero when `prev_clip.w <= 0` (unknown). The same
|
|
71
|
+
* formula as the prelude's `engine_velocity`, for drawables built on `WGSL_GLOBALS` (fx
|
|
72
|
+
* billboards and world particles). Needs the `camera` block.
|
|
73
|
+
*/
|
|
74
|
+
export const WGSL_MOTION = /* wgsl */ `
|
|
75
|
+
fn engine_motion(frag: vec4f, prev_clip: vec4f) -> vec2f {
|
|
76
|
+
if (prev_clip.w <= 0.0) { return vec2f(0.0); }
|
|
77
|
+
let cur = (frag.xy - camera.viewport.xy) / camera.viewport.zw - camera.jitter.xy * vec2f(0.5, -0.5);
|
|
78
|
+
let pn = prev_clip.xy / prev_clip.w;
|
|
79
|
+
let prev = vec2f(pn.x * 0.5 + 0.5, 0.5 - pn.y * 0.5);
|
|
80
|
+
return cur - prev;
|
|
81
|
+
}
|
|
82
|
+
`;
|
|
83
|
+
/**
|
|
84
|
+
* `sceneVariant` for a drawable's motion-writing shader: the same descriptor with `module`
|
|
85
|
+
* (its velocity build) on both stages and `velocityTargets` as the colour targets.
|
|
86
|
+
*/
|
|
87
|
+
export function motionVariant(desc, module, targets, aux, label, depthStencil) {
|
|
88
|
+
const out = sceneVariant(desc, velocityTargets(targets, aux), label, depthStencil);
|
|
89
|
+
out.vertex = { ...desc.vertex, module };
|
|
90
|
+
out.fragment = { ...out.fragment, module };
|
|
91
|
+
return out;
|
|
92
|
+
}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { Texture } from './texture.js';
|
|
2
|
+
/** HDR scene targets: [0] colour, [1] emissive (feeds bloom). */
|
|
3
|
+
export declare const SCENE_FORMAT: GPUTextureFormat;
|
|
4
|
+
/** Shared external emissive textures alive on `device` (tests). */
|
|
5
|
+
export declare function sharedEmissiveCount(device: GPUDevice): number;
|
|
6
|
+
/**
|
|
7
|
+
* Extra attachments a scene target carries beside colour and emissive (ws/render-4), what a
|
|
8
|
+
* screen-space post pass (SSR, TAA, motion blur) reads through `PostInputs.roughMetal` /
|
|
9
|
+
* `PostInputs.velocity`: `roughMetal` an `rg8unorm` (roughness, metalness) target,
|
|
10
|
+
* `velocity` an `rg16float` screen-space motion target (uv units since last frame). Materials
|
|
11
|
+
* declaring `aux` (the standard material) write them; others leave them cleared.
|
|
12
|
+
*/
|
|
13
|
+
export interface SceneTargetAux {
|
|
14
|
+
roughMetal?: boolean;
|
|
15
|
+
velocity?: boolean;
|
|
16
|
+
}
|
|
17
|
+
/** Format of the `roughMetal` aux attachment. */
|
|
18
|
+
export declare const ROUGH_METAL_FORMAT: GPUTextureFormat;
|
|
19
|
+
/** Format of the `velocity` aux attachment. */
|
|
20
|
+
export declare const VELOCITY_FORMAT: GPUTextureFormat;
|
|
21
|
+
export interface SceneTargetDesc {
|
|
22
|
+
width: number;
|
|
23
|
+
height: number;
|
|
24
|
+
/** Prefix of the texture labels. Default `scene`. */
|
|
25
|
+
label?: string;
|
|
26
|
+
/** Aux attachments; none by default (the target writes identical bytes to before). */
|
|
27
|
+
aux?: SceneTargetAux;
|
|
28
|
+
}
|
|
29
|
+
/** A rect in texture pixels, origin top-left. */
|
|
30
|
+
export interface SceneTargetViewport {
|
|
31
|
+
x: number;
|
|
32
|
+
y: number;
|
|
33
|
+
width: number;
|
|
34
|
+
height: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Textures a `SceneTarget.external` target adopts instead of allocating (ws/xr): the colour
|
|
38
|
+
* texture an `XRProjectionLayer` hands out per eye per frame and, when the layer has one, its
|
|
39
|
+
* depth texture. The target never destroys them. `color` must be `SCENE_FORMAT`, since every
|
|
40
|
+
* material's pipeline writes it, and `depth` `DEPTH_FORMAT`; `view` is the view descriptor
|
|
41
|
+
* (array layer, mip) both are read through, for a texture-array layer. `viewport` is the part
|
|
42
|
+
* of the texture these views draw into, recorded on the target for its caller (the renderer
|
|
43
|
+
* takes the viewport from `camera.screen`).
|
|
44
|
+
*/
|
|
45
|
+
export interface SceneTargetExternal {
|
|
46
|
+
device: GPUDevice;
|
|
47
|
+
color: GPUTexture;
|
|
48
|
+
depth?: GPUTexture | null;
|
|
49
|
+
view?: GPUTextureViewDescriptor;
|
|
50
|
+
viewport?: SceneTargetViewport;
|
|
51
|
+
/** Prefix of the labels of what the target still allocates (emissive, depth). Default `external`. */
|
|
52
|
+
label?: string;
|
|
53
|
+
/** Aux attachments, allocated at the adopted size (`SceneTargetDesc.aux`). */
|
|
54
|
+
aux?: SceneTargetAux;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* What `Renderer.render` draws into: the two HDR colour targets the scene pass writes
|
|
58
|
+
* (`color`, `emissive`, both `SCENE_FORMAT`) and, when a camera asks for depth, a
|
|
59
|
+
* `depth24plus` attachment made at the same size on first use. The renderer owns one at the
|
|
60
|
+
* scene resolution (`renderer.target`, what the post stack reads and the surface shows);
|
|
61
|
+
* `renderer.createSceneTarget(desc)` makes more for offscreen views (a portal, a minimap),
|
|
62
|
+
* whose `color` and `emissive` are sampleable like any `Texture`.
|
|
63
|
+
*
|
|
64
|
+
* `SceneTarget.external(desc)` adopts a colour (and depth) texture owned by someone else, an
|
|
65
|
+
* XR layer's eye textures; `adopt(desc)` re-points it at the next frame's. Its emissive
|
|
66
|
+
* attachment (every pipeline writes two targets) is one texture per device and size shared by
|
|
67
|
+
* all external targets, stored with `'discard'`: the post stack does not run on an external
|
|
68
|
+
* target, so its emissive is written and dropped, and two eyes allocate one, not two.
|
|
69
|
+
*
|
|
70
|
+
* Depth hooks (ws/render-hooks): when a view splits its scene pass for a `readsDepth` drawable
|
|
71
|
+
* the renderer copies `depth` into `depthCopy` (same format and size, `COPY_DST` +
|
|
72
|
+
* `TEXTURE_BINDING`, made on first use, recreated with `depth`) between the opaque pass
|
|
73
|
+
* (`passDesc`, label `scene`) and the blended pass (`blendPassDesc`, label `scene-blend`,
|
|
74
|
+
* which loads every attachment). An allocated depth texture carries `COPY_SRC`; an adopted one
|
|
75
|
+
* (an XR layer's) can be copied only if its owner gave it `COPY_SRC` (`canCopyDepth`).
|
|
76
|
+
*/
|
|
77
|
+
export declare class SceneTarget {
|
|
78
|
+
private readonly device;
|
|
79
|
+
color: Texture;
|
|
80
|
+
emissive: Texture;
|
|
81
|
+
/** The `rg8unorm` roughness/metalness attachment (`aux.roughMetal`), else null. */
|
|
82
|
+
roughMetal: Texture | null;
|
|
83
|
+
/** The `rg16float` screen-space velocity attachment (`aux.velocity`), else null. */
|
|
84
|
+
velocity: Texture | null;
|
|
85
|
+
/** Bit 0: has `roughMetal`; bit 1: has `velocity`. Keys material pipeline variants. */
|
|
86
|
+
readonly auxKey: number;
|
|
87
|
+
width: number;
|
|
88
|
+
height: number;
|
|
89
|
+
/**
|
|
90
|
+
* For an external target, the part of `color` its views draw into (texture px), or null
|
|
91
|
+
* when the whole texture is the view; always null for an allocated target.
|
|
92
|
+
*/
|
|
93
|
+
viewport: SceneTargetViewport | null;
|
|
94
|
+
/** The scene pass descriptor for this target; the renderer sets its load ops per view. */
|
|
95
|
+
readonly passDesc: GPURenderPassDescriptor;
|
|
96
|
+
readonly colorAtt: GPURenderPassColorAttachment;
|
|
97
|
+
readonly emissiveAtt: GPURenderPassColorAttachment;
|
|
98
|
+
readonly depthAtt: GPURenderPassDepthStencilAttachment;
|
|
99
|
+
/** The blended half of a split view: the same attachments, every load op `load`. */
|
|
100
|
+
readonly blendPassDesc: GPURenderPassDescriptor;
|
|
101
|
+
private readonly blendColorAtt;
|
|
102
|
+
private readonly blendEmissiveAtt;
|
|
103
|
+
/** Aux attachments in order (rough-metal, velocity), for the clear and the blend pass. */
|
|
104
|
+
private readonly auxAtts;
|
|
105
|
+
private readonly blendAuxAtts;
|
|
106
|
+
private readonly blendDepthAtt;
|
|
107
|
+
private depthTex;
|
|
108
|
+
private depthCopyTex;
|
|
109
|
+
/** `copyDepth`'s reused copy descriptors (no allocation per frame). */
|
|
110
|
+
private readonly copySrc;
|
|
111
|
+
private readonly copyDst;
|
|
112
|
+
private readonly copySize;
|
|
113
|
+
private readonly label;
|
|
114
|
+
/** The adopted colour texture of an external target; null for an allocated one. */
|
|
115
|
+
private externalColor;
|
|
116
|
+
/** The adopted depth texture of an external target, when its layer has one. */
|
|
117
|
+
private externalDepth;
|
|
118
|
+
private adoptedLayer;
|
|
119
|
+
/** `external`: internal, set by `SceneTarget.external`; the textures then come from `adopt`. */
|
|
120
|
+
constructor(device: GPUDevice, desc: SceneTargetDesc, external?: boolean);
|
|
121
|
+
/** A target over textures owned by someone else (an XR layer's); see `SceneTargetExternal`. */
|
|
122
|
+
static external(desc: SceneTargetExternal): SceneTarget;
|
|
123
|
+
/** True for a target made by `SceneTarget.external`. */
|
|
124
|
+
get isExternal(): boolean;
|
|
125
|
+
/** The adopted colour texture of an external target; null for an allocated one. */
|
|
126
|
+
get adoptedColor(): GPUTexture | null;
|
|
127
|
+
/**
|
|
128
|
+
* The depth texture, once a depth camera has rendered here; null before. Sampleable
|
|
129
|
+
* (`texture_depth_2d`) outside the scene pass that writes it.
|
|
130
|
+
*/
|
|
131
|
+
get depth(): Texture | null;
|
|
132
|
+
/**
|
|
133
|
+
* The sampleable copy of `depth` a split view fills before its blended pass
|
|
134
|
+
* (`Drawable.afterOpaque`); null until the first view that split here. Same format and
|
|
135
|
+
* size as `depth`, recreated with it.
|
|
136
|
+
*/
|
|
137
|
+
get depthCopy(): Texture | null;
|
|
138
|
+
/** Whether `depth` can be the source of a copy (an adopted texture may lack `COPY_SRC`). */
|
|
139
|
+
get canCopyDepth(): boolean;
|
|
140
|
+
/**
|
|
141
|
+
* Point an external target at this frame's textures (an XR layer rotates them). A no-op
|
|
142
|
+
* when `color`, `depth` and the view's array layer are the ones already adopted; otherwise
|
|
143
|
+
* new views are made and, if the size changed, the shared emissive is swapped for one of the
|
|
144
|
+
* new size and the own depth texture dropped.
|
|
145
|
+
*/
|
|
146
|
+
adopt(desc: Omit<SceneTargetExternal, 'device' | 'label'>): void;
|
|
147
|
+
/** Recreate the textures at a new size (no-op when unchanged). Returns whether they changed. */
|
|
148
|
+
resize(width: number, height: number): boolean;
|
|
149
|
+
/** Load op of the aux attachments for the next scene pass (the renderer: clear on first view). */
|
|
150
|
+
setAuxLoadOp(op: GPULoadOp): void;
|
|
151
|
+
/** (Re)create the aux attachments at `w × h`. */
|
|
152
|
+
private resizeAux;
|
|
153
|
+
/**
|
|
154
|
+
* The depth attachment, allocating the `depth24plus` texture at this size on first use (an
|
|
155
|
+
* external target with an adopted depth texture uses that instead).
|
|
156
|
+
*/
|
|
157
|
+
depthAttachment(): GPURenderPassDepthStencilAttachment;
|
|
158
|
+
/**
|
|
159
|
+
* `depthCopy`, allocated at `depth`'s size and format on first use (the renderer calls this
|
|
160
|
+
* when a view splits; `depth` exists by then). Null when `depth` is not copyable.
|
|
161
|
+
*/
|
|
162
|
+
depthCopyTexture(): Texture | null;
|
|
163
|
+
/**
|
|
164
|
+
* Encode a copy of `depth` (the adopted layer of an external one) into `depthCopy`, making
|
|
165
|
+
* the copy texture first; returns it, or null when `depth` is missing or not copyable.
|
|
166
|
+
* Nothing is allocated per call once the copy texture exists.
|
|
167
|
+
*/
|
|
168
|
+
copyDepth(encoder: GPUCommandEncoder): Texture | null;
|
|
169
|
+
destroy(): void;
|
|
170
|
+
}
|