@supersoniks/concorde 4.9.98-visual-stack.0 → 4.9.98-visual-stack.1
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/build-infos.json +1 -1
- package/concorde-3d.bundle.js +201 -152
- package/concorde-3d.es.js +14687 -13905
- package/concorde-core.bundle.js +1 -1
- package/concorde-core.es.js +1 -1
- package/concorde-hugging-face-infer.bundle.js +1 -1
- package/concorde-hugging-face-infer.es.js +1 -1
- package/concorde-shader.bundle.js +31 -20
- package/concorde-shader.es.js +2773 -2547
- package/concorde-webgpu.bundle.js +43 -32
- package/concorde-webgpu.es.js +1819 -1553
- package/dist/concorde-3d.bundle.js +201 -152
- package/dist/concorde-3d.es.js +14687 -13905
- package/dist/concorde-core.bundle.js +1 -1
- package/dist/concorde-core.es.js +1 -1
- package/dist/concorde-hugging-face-infer.bundle.js +1 -1
- package/dist/concorde-hugging-face-infer.es.js +1 -1
- package/dist/concorde-shader.bundle.js +31 -20
- package/dist/concorde-shader.es.js +2773 -2547
- package/dist/concorde-webgpu.bundle.js +43 -32
- package/dist/concorde-webgpu.es.js +1819 -1553
- package/dist/js/core/components/functional/3d/3d.js +90 -2
- package/dist/js/core/components/functional/3d/3d.js.map +1 -1
- package/dist/js/core/components/functional/3d/constants.js +1 -0
- package/dist/js/core/components/functional/3d/constants.js.map +1 -1
- package/dist/js/core/components/functional/3d/ensure.js +6 -3
- package/dist/js/core/components/functional/3d/ensure.js.map +1 -1
- package/dist/js/core/components/functional/3d/form-params.js +2 -0
- package/dist/js/core/components/functional/3d/form-params.js.map +1 -1
- package/dist/js/core/components/functional/3d/life.js +2 -1
- package/dist/js/core/components/functional/3d/life.js.map +1 -1
- package/dist/js/core/components/functional/3d/out-publish.js +3 -2
- package/dist/js/core/components/functional/3d/out-publish.js.map +1 -1
- package/dist/js/core/components/functional/3d/playback.js +6 -1
- package/dist/js/core/components/functional/3d/playback.js.map +1 -1
- package/dist/js/core/components/functional/3d/post-bind.js +207 -0
- package/dist/js/core/components/functional/3d/post-bind.js.map +1 -0
- package/dist/js/core/components/functional/3d/post-channels.js +39 -0
- package/dist/js/core/components/functional/3d/post-channels.js.map +1 -0
- package/dist/js/core/components/functional/3d/post-fx.js +495 -0
- package/dist/js/core/components/functional/3d/post-fx.js.map +1 -0
- package/dist/js/core/components/functional/3d/props.js +142 -0
- package/dist/js/core/components/functional/3d/props.js.map +1 -1
- package/dist/js/core/components/functional/3d/reload.js +2 -0
- package/dist/js/core/components/functional/3d/reload.js.map +1 -1
- package/dist/js/core/components/functional/3d/runtime.js +80 -3
- package/dist/js/core/components/functional/3d/runtime.js.map +1 -1
- package/dist/js/core/components/functional/3d/scene-runtime.js +1 -1
- package/dist/js/core/components/functional/3d/scene-runtime.js.map +1 -1
- package/dist/js/core/components/functional/3d/tune.js +21 -0
- package/dist/js/core/components/functional/3d/tune.js.map +1 -1
- package/dist/js/core/components/functional/3d/updated.js +13 -1
- package/dist/js/core/components/functional/3d/updated.js.map +1 -1
- package/dist/js/core/components/functional/shader/gl-runtime.js +128 -14
- package/dist/js/core/components/functional/shader/gl-runtime.js.map +1 -1
- package/dist/js/core/components/functional/shader/shader.js +154 -57
- package/dist/js/core/components/functional/shader/shader.js.map +1 -1
- package/dist/js/core/components/functional/shader/shadertoy-prelude.js +39 -5
- package/dist/js/core/components/functional/shader/shadertoy-prelude.js.map +1 -1
- package/dist/js/core/components/functional/shader/types.js +58 -7
- package/dist/js/core/components/functional/shader/types.js.map +1 -1
- package/dist/js/core/components/functional/webgpu/gl-fallback.js +27 -6
- package/dist/js/core/components/functional/webgpu/gl-fallback.js.map +1 -1
- package/dist/js/core/components/functional/webgpu/gpu-runtime.js +115 -13
- package/dist/js/core/components/functional/webgpu/gpu-runtime.js.map +1 -1
- package/dist/js/core/components/functional/webgpu/helpers.js +8 -2
- package/dist/js/core/components/functional/webgpu/helpers.js.map +1 -1
- package/dist/js/core/components/functional/webgpu/webgpu.js +34 -1
- package/dist/js/core/components/functional/webgpu/webgpu.js.map +1 -1
- package/dist/js/core/utils/mediaRef.js +37 -0
- package/dist/js/core/utils/mediaRef.js.map +1 -1
- package/dist/types/core/components/functional/3d/3d.d.ts +26 -3
- package/dist/types/core/components/functional/3d/3d.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/constants.d.ts +1 -1
- package/dist/types/core/components/functional/3d/constants.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/ensure.d.ts +3 -0
- package/dist/types/core/components/functional/3d/ensure.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/form-params.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/life.d.ts +2 -0
- package/dist/types/core/components/functional/3d/life.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/out-publish.d.ts +1 -0
- package/dist/types/core/components/functional/3d/out-publish.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/playback.d.ts +9 -0
- package/dist/types/core/components/functional/3d/playback.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/post-bind.d.ts +52 -0
- package/dist/types/core/components/functional/3d/post-bind.d.ts.map +1 -0
- package/dist/types/core/components/functional/3d/post-channels.d.ts +40 -0
- package/dist/types/core/components/functional/3d/post-channels.d.ts.map +1 -0
- package/dist/types/core/components/functional/3d/post-fx.d.ts +73 -0
- package/dist/types/core/components/functional/3d/post-fx.d.ts.map +1 -0
- package/dist/types/core/components/functional/3d/props.d.ts +42 -0
- package/dist/types/core/components/functional/3d/props.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/reload.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/runtime.d.ts +16 -1
- package/dist/types/core/components/functional/3d/runtime.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/scene-runtime.d.ts +1 -1
- package/dist/types/core/components/functional/3d/scene-runtime.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/tune.d.ts +5 -0
- package/dist/types/core/components/functional/3d/tune.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/types.d.ts +9 -0
- package/dist/types/core/components/functional/3d/types.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/updated.d.ts.map +1 -1
- package/dist/types/core/components/functional/shader/gl-runtime.d.ts +33 -1
- package/dist/types/core/components/functional/shader/gl-runtime.d.ts.map +1 -1
- package/dist/types/core/components/functional/shader/shader.d.ts +28 -7
- package/dist/types/core/components/functional/shader/shader.d.ts.map +1 -1
- package/dist/types/core/components/functional/shader/shadertoy-prelude.d.ts +16 -2
- package/dist/types/core/components/functional/shader/shadertoy-prelude.d.ts.map +1 -1
- package/dist/types/core/components/functional/shader/types.d.ts +29 -5
- package/dist/types/core/components/functional/shader/types.d.ts.map +1 -1
- package/dist/types/core/components/functional/webgpu/gl-fallback.d.ts +4 -0
- package/dist/types/core/components/functional/webgpu/gl-fallback.d.ts.map +1 -1
- package/dist/types/core/components/functional/webgpu/gpu-runtime.d.ts +14 -0
- package/dist/types/core/components/functional/webgpu/gpu-runtime.d.ts.map +1 -1
- package/dist/types/core/components/functional/webgpu/helpers.d.ts +1 -0
- package/dist/types/core/components/functional/webgpu/helpers.d.ts.map +1 -1
- package/dist/types/core/components/functional/webgpu/webgpu.d.ts +7 -1
- package/dist/types/core/components/functional/webgpu/webgpu.d.ts.map +1 -1
- package/dist/types/core/utils/mediaRef.d.ts +15 -0
- package/dist/types/core/utils/mediaRef.d.ts.map +1 -1
- package/package.json +37 -1
- package/src/core/components/functional/3d/3d.md +34 -1
- package/src/core/components/functional/3d/3d.spec.ts +42 -0
- package/src/core/components/functional/3d/3d.ts +101 -3
- package/src/core/components/functional/3d/constants.ts +1 -0
- package/src/core/components/functional/3d/ensure.ts +11 -3
- package/src/core/components/functional/3d/form-params.ts +2 -0
- package/src/core/components/functional/3d/life.ts +4 -1
- package/src/core/components/functional/3d/out-publish.ts +4 -3
- package/src/core/components/functional/3d/playback.ts +13 -1
- package/src/core/components/functional/3d/post-bind.ts +262 -0
- package/src/core/components/functional/3d/post-channels.spec.ts +36 -0
- package/src/core/components/functional/3d/post-channels.ts +69 -0
- package/src/core/components/functional/3d/post-fx.ts +594 -0
- package/src/core/components/functional/3d/props.ts +45 -0
- package/src/core/components/functional/3d/reload.ts +2 -0
- package/src/core/components/functional/3d/runtime.ts +93 -4
- package/src/core/components/functional/3d/scene-runtime.ts +3 -0
- package/src/core/components/functional/3d/tune.ts +21 -0
- package/src/core/components/functional/3d/types.ts +9 -0
- package/src/core/components/functional/3d/updated.ts +17 -1
- package/src/core/components/functional/shader/gl-runtime.ts +169 -12
- package/src/core/components/functional/shader/shader.md +27 -4
- package/src/core/components/functional/shader/shader.spec.ts +267 -0
- package/src/core/components/functional/shader/shader.ts +177 -55
- package/src/core/components/functional/shader/shadertoy-prelude.ts +49 -5
- package/src/core/components/functional/shader/types.ts +89 -12
- package/src/core/components/functional/webgpu/gl-fallback.ts +28 -4
- package/src/core/components/functional/webgpu/gpu-runtime.ts +154 -18
- package/src/core/components/functional/webgpu/helpers.ts +8 -2
- package/src/core/components/functional/webgpu/webgpu.md +13 -2
- package/src/core/components/functional/webgpu/webgpu.spec.ts +37 -0
- package/src/core/components/functional/webgpu/webgpu.ts +39 -1
- package/src/core/utils/mediaRef.spec.ts +25 -0
- package/src/core/utils/mediaRef.ts +45 -0
- package/src/docs/_misc/visual-stack.md +19 -1
- package/src/docs/components/docs-demo-sources.ts +28 -0
- package/src/docs/docs.ts +2 -0
- package/src/docs/example/docs-3d-post-depth-demo.ts +68 -0
- package/src/docs/example/docs-3d-webgpu-live-demo.ts +83 -0
- package/src/docs/example/docs-harris-webgpu-demo.ts +53 -55
- package/src/docs/search/docs-search.json +252 -2
- package/src/tsconfig.json +27 -0
- package/src/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/shader/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/shader/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GACpB,OAAO,GACP,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,CAAC;AAEd,yEAAyE;AACzE,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAEjE,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/B,kBAAkB,CAKpB;AAED;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,CAAC;AAEhD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/B,gBAAgB,CAOlB;AAED,4DAA4D;AAC5D,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,QAAQ,CAAC,SAAS,aAAa,EAAE,CAAC,GAC3C,OAAO,CAOT;AAED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,gBAAgB,EACtB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAIT;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE;AAClB,sEAAsE;GACpE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;CAAE,CAAC;AAE1D,MAAM,MAAM,YAAY,GAAG;IACzB,aAAa;IACb,aAAa;IACb,aAAa;IACb,aAAa;CACd,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE3D,MAAM,MAAM,oBAAoB,GAAG,OAAO,CACxC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAC7D,CAAC;AAEF,wCAAwC;AACxC,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE5C;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAElD;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GACxB,eAAe,GACf,GAAG,eAAe,EAAE,GACpB,QAAQ,eAAe,EAAE,GACzB,EAAE,CAAC;AAEP;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,kFAAkF;IAClF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,qDAAqD;IACrD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6BAA6B;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAElC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC;AAEF,oEAAoE;AACpE,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GACxC,eAAe,GAAG,IAAI,CAYxB;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,0DAA0D;AAC1D,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAE7C,sFAAsF;AACtF,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,oEAAoE;IACpE,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,gFAAgF;IAChF,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,0DAA0D;IAC1D,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,iBAAiB,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,IAAI,EAAE,UAAU,GAAG,YAAY,CAAC;CACjC,CAAC;AAEF,iEAAiE;AACjE,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/B,YAAY,GAAG,IAAI,CAUrB;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,UAAU,GAAG,YAAY,EAC/B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,gBAAqB,GAC7B,UAAU,EAAE,CAgDd;AAED,mEAAmE;AACnE,wBAAgB,WAAW,CACzB,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,UAAU,SAAM,GACf;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA6CvD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,GAAG;IACzD,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;CACd,CA2BA;AAED,gFAAgF;AAChF,wBAAgB,WAAW,CACzB,IAAI,EAAE,UAAU,GAAG,YAAY,GAC9B,UAAU,CAOZ;AAED,qBAAa,kBAAmB,SAAQ,KAAK;aAGzB,IAAI,EAAE,YAAY,GAAG,QAAQ,GAAG,MAAM;aACtC,OAAO,EAAE,MAAM;gBAF/B,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,YAAY,GAAG,QAAQ,GAAG,MAAM,EACtC,OAAO,EAAE,MAAM;CAKlC"}
|
|
@@ -10,8 +10,10 @@ export declare class WebGl2FallbackRuntime {
|
|
|
10
10
|
private lastTime;
|
|
11
11
|
private disposed;
|
|
12
12
|
private channelQueue;
|
|
13
|
+
private elementResolver;
|
|
13
14
|
private constructor();
|
|
14
15
|
static create(canvas: HTMLCanvasElement): WebGl2FallbackRuntime;
|
|
16
|
+
setElementResolver(fn: ((key: string) => Element | null) | null): void;
|
|
15
17
|
/** WGSL ignoré — effet GLSL fixe (canaux / params OK). */
|
|
16
18
|
setShader(_userBody: string): Promise<void>;
|
|
17
19
|
setChannel(index: 0 | 1 | 2 | 3, url: string): Promise<void>;
|
|
@@ -23,8 +25,10 @@ export declare class WebGl2FallbackRuntime {
|
|
|
23
25
|
height: number;
|
|
24
26
|
} | null;
|
|
25
27
|
resize(width: number, height: number): void;
|
|
28
|
+
updateLiveChannels(resolveEl: (key: string) => Element | null): void;
|
|
26
29
|
draw(state: WebGpuFrameState): void;
|
|
27
30
|
dispose(loseContext?: boolean): void;
|
|
31
|
+
private ensureChannelAssets;
|
|
28
32
|
private applySources;
|
|
29
33
|
private assertAlive;
|
|
30
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gl-fallback.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/webgpu/gl-fallback.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AA8BtD;;GAEG;AACH,qBAAa,qBAAqB;IAChC,QAAQ,CAAC,OAAO,EAAG,QAAQ,CAAU;IACrC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,OAAO,CAAC,GAAG,CAAmB;IAC9B,OAAO,CAAC,WAAW,CAAsD;IACzE,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAoC;
|
|
1
|
+
{"version":3,"file":"gl-fallback.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/webgpu/gl-fallback.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AA8BtD;;GAEG;AACH,qBAAa,qBAAqB;IAChC,QAAQ,CAAC,OAAO,EAAG,QAAQ,CAAU;IACrC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,OAAO,CAAC,GAAG,CAAmB;IAC9B,OAAO,CAAC,WAAW,CAAsD;IACzE,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,eAAe,CAAkD;IAEzE,OAAO;IAMP,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,qBAAqB;IAK/D,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI;IAK/D,0DAA0D;IACpD,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,UAAU,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAQpD,aAAa;IAsB3B,yDAAyD;IACnD,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAexE,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAIrE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAKpC,kBAAkB,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI;IAK7D,IAAI,CAAC,KAAK,EAAE,gBAAgB;IAmB5B,OAAO,CAAC,WAAW,UAAO;YAMZ,mBAAmB;IAQjC,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,WAAW;CAGpB"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/** `true` si la texture existante peut être réécrite (même taille). */
|
|
2
|
+
export declare function channelTextureNeedsRecreate(current: {
|
|
3
|
+
width: number;
|
|
4
|
+
height: number;
|
|
5
|
+
} | null | undefined, nextW: number, nextH: number): boolean;
|
|
1
6
|
/** Adapter WebGPU : high-performance → low-power → défaut. */
|
|
2
7
|
export declare function requestBestAdapter(gpu?: GPU): Promise<GPUAdapter | null>;
|
|
3
8
|
export type WebGpuFrameState = {
|
|
@@ -24,6 +29,8 @@ export declare class WebGpuRuntime {
|
|
|
24
29
|
private channelViews;
|
|
25
30
|
private channelSizes;
|
|
26
31
|
private channelUrls;
|
|
32
|
+
private channelLastSeq;
|
|
33
|
+
private channelLastSrc;
|
|
27
34
|
private placeholder;
|
|
28
35
|
private placeholderView;
|
|
29
36
|
private bindGroup;
|
|
@@ -39,6 +46,11 @@ export declare class WebGpuRuntime {
|
|
|
39
46
|
static create(canvas: HTMLCanvasElement): Promise<WebGpuRuntime>;
|
|
40
47
|
setShader(userBody: string): Promise<void>;
|
|
41
48
|
setChannel(index: 0 | 1 | 2 | 3, url: string): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Upload live des canaux `#id` / FrameSource / video / canvas.
|
|
51
|
+
* Recrée la texture seulement si la taille change (pas de createTexture chaque frame).
|
|
52
|
+
*/
|
|
53
|
+
updateLiveChannels(resolveEl: (key: string) => Element | null): void;
|
|
42
54
|
getTextureSize(url: string): {
|
|
43
55
|
width: number;
|
|
44
56
|
height: number;
|
|
@@ -46,6 +58,8 @@ export declare class WebGpuRuntime {
|
|
|
46
58
|
resize(width: number, height: number): void;
|
|
47
59
|
draw(state: WebGpuFrameState): void;
|
|
48
60
|
dispose(destroyDevice?: boolean): void;
|
|
61
|
+
private bindElementChannel;
|
|
62
|
+
private uploadExternal;
|
|
49
63
|
private writeUniforms;
|
|
50
64
|
private destroyChannel;
|
|
51
65
|
private assertAlive;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gpu-runtime.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/webgpu/gpu-runtime.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gpu-runtime.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/webgpu/gpu-runtime.ts"],"names":[],"mappings":"AAaA,uEAAuE;AACvE,wBAAgB,2BAA2B,CACzC,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,EAC7D,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,OAAO,CAGT;AA6BD,8DAA8D;AAC9D,wBAAsB,kBAAkB,CACtC,GAAG,GAAE,GAAoB,GACxB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAM5B;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C,CAAC;AAsBF;;GAEG;AACH,qBAAa,aAAa;IACxB,QAAQ,CAAC,OAAO,EAAG,QAAQ,CAAU;IACrC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,eAAe,CAKrB;IACF,OAAO,CAAC,YAAY,CAKlB;IACF,OAAO,CAAC,YAAY,CAKlB;IACF,OAAO,CAAC,WAAW,CAAsD;IACzE,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,cAAc,CAKpB;IACF,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,QAAQ,CAAS;IACzB,+EAA+E;IAC/E,OAAO,CAAC,iBAAiB,CAAgB;IAEzC,OAAO;IAsBP;;;OAGG;WACU,KAAK,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;WAc/B,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;IA2BhE,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B1C,UAAU,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBlE;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI;IAwB7D,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAMrE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAcpC,IAAI,CAAC,KAAK,EAAE,gBAAgB;IA+C5B,OAAO,CAAC,aAAa,UAAQ;IA2B7B,OAAO,CAAC,kBAAkB;IA8B1B,OAAO,CAAC,cAAc;IAwCtB,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,WAAW;CAGpB"}
|
|
@@ -5,5 +5,6 @@ export declare const CHANNEL_FORM_KEYS: readonly ["channel0", "channel1", "chann
|
|
|
5
5
|
export declare const FRAME_OUT_KEYS: readonly ["frameUrl", "snapshot"];
|
|
6
6
|
export declare function prefersReducedMotion(): boolean;
|
|
7
7
|
export declare function toNum(v: unknown, fallback: number): number;
|
|
8
|
+
/** string (url / #id) | MediaRef → url | { element }. */
|
|
8
9
|
export declare function channelFormValue(value: unknown): string | undefined;
|
|
9
10
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/webgpu/helpers.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,mBAAmB,CAAC;AAE3C,eAAO,MAAM,aAAa,4DAMhB,CAAC;AAEX,eAAO,MAAM,cAAc,mDAAoD,CAAC;AAEhF,eAAO,MAAM,iBAAiB,2DAKpB,CAAC;AAEX,eAAO,MAAM,cAAc,mCAAoC,CAAC;AAEhE,wBAAgB,oBAAoB,IAAI,OAAO,CAK9C;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAO1D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/webgpu/helpers.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,mBAAmB,CAAC;AAE3C,eAAO,MAAM,aAAa,4DAMhB,CAAC;AAEX,eAAO,MAAM,cAAc,mDAAoD,CAAC;AAEhF,eAAO,MAAM,iBAAiB,2DAKpB,CAAC;AAEX,eAAO,MAAM,cAAc,mCAAoC,CAAC;AAEhE,wBAAgB,oBAAoB,IAAI,OAAO,CAK9C;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAO1D;AAED,yDAAyD;AACzD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAYnE"}
|
|
@@ -72,6 +72,7 @@ export declare class SonicWebGpu extends LitElement {
|
|
|
72
72
|
private resizeObserver;
|
|
73
73
|
private intersectionObserver;
|
|
74
74
|
private rebuildToken;
|
|
75
|
+
private frameConsumers;
|
|
75
76
|
ready: boolean;
|
|
76
77
|
/** Évite deux boots concurrents (IO + rAF) qui disposent le fallback. */
|
|
77
78
|
private boot;
|
|
@@ -98,7 +99,11 @@ export declare class SonicWebGpu extends LitElement {
|
|
|
98
99
|
private ensureCanvas;
|
|
99
100
|
/** Jette le canvas (verrouillé webgpu/webgl) et en crée un neuf. */
|
|
100
101
|
private replaceCanvas;
|
|
102
|
+
/** Résout `#id` dans getRootNode() puis document ; clés live `__sonic_frame_`. */
|
|
103
|
+
private lookupElement;
|
|
101
104
|
private releaseRuntime;
|
|
105
|
+
/** Enregistre les producteurs live pour play-offscreen auto. */
|
|
106
|
+
private syncFrameConsumers;
|
|
102
107
|
private rebuild;
|
|
103
108
|
private syncSize;
|
|
104
109
|
private syncVisibility;
|
|
@@ -120,8 +125,9 @@ export declare class SonicWebGpu extends LitElement {
|
|
|
120
125
|
export type { SonicWebGpuBackend, SonicWebGpuBackendPrefer, SonicWebGpuConfig, SonicWebGpuKernel, SonicWebGpuOutput, } from "./types";
|
|
121
126
|
export { parseBackendPrefer, parseKernel, WebGpuCompileError } from "./types";
|
|
122
127
|
export { buildWgslSource, DEFAULT_MAIN_IMAGE } from "./wgsl-prelude";
|
|
123
|
-
export { WebGpuRuntime } from "./gpu-runtime";
|
|
128
|
+
export { WebGpuRuntime, channelTextureNeedsRecreate } from "./gpu-runtime";
|
|
124
129
|
export { WebGl2FallbackRuntime } from "./gl-fallback";
|
|
125
130
|
export { Canvas2dFallbackRuntime } from "./canvas2d-fallback";
|
|
126
131
|
export { ParticlesRuntime } from "./particles-runtime";
|
|
132
|
+
export { channelFormValue } from "./helpers";
|
|
127
133
|
//# sourceMappingURL=webgpu.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgpu.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/webgpu/webgpu.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"webgpu.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/webgpu/webgpu.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,22 @@ export type SonicFrameSource = {
|
|
|
26
26
|
/** Incrémenté après chaque rendu effectif. */
|
|
27
27
|
readonly frameSeq: number;
|
|
28
28
|
};
|
|
29
|
+
/**
|
|
30
|
+
* Producteur de frames live qui peut rester actif hors viewport
|
|
31
|
+
* tant qu’un consommateur est enregistré (`sonic-3d` Lot 9).
|
|
32
|
+
*/
|
|
33
|
+
export type SonicFrameConsumerHost = {
|
|
34
|
+
registerFrameConsumer(token?: object): void;
|
|
35
|
+
unregisterFrameConsumer(token?: object): void;
|
|
36
|
+
};
|
|
29
37
|
export declare function isFrameSource(el: unknown): el is SonicFrameSource;
|
|
38
|
+
export declare function isFrameConsumerHost(el: unknown): el is SonicFrameConsumerHost;
|
|
39
|
+
/** Suit les `#id` résolus → register/unregister auprès du producteur. */
|
|
40
|
+
export declare class FrameConsumerRegistry {
|
|
41
|
+
private tokens;
|
|
42
|
+
sync(elements: Iterable<Element | null | undefined>): void;
|
|
43
|
+
clear(): void;
|
|
44
|
+
}
|
|
30
45
|
/** Enregistre un Element sans id → clé `#__sonic_frame_N` (réutilisée). */
|
|
31
46
|
export declare function registerLiveElement(el: Element): string;
|
|
32
47
|
export declare function lookupLiveElement(key: string): Element | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mediaRef.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/mediaRef.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,8EAA8E;IAC9E,cAAc,IAAI,iBAAiB,GAAG,IAAI,CAAC;IAC3C,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,gBAAgB,CAMjE;AAQD,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,CAOvD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAQ7D;AAED,0DAA0D;AAC1D,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAY7D;AAED,uEAAuE;AACvE,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,aAAa,GAAG;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAWzC;AAaD,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAMxD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAqBT;AAED,0DAA0D;AAC1D,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAQ5D;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CA6B/B"}
|
|
1
|
+
{"version":3,"file":"mediaRef.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/mediaRef.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,8EAA8E;IAC9E,cAAc,IAAI,iBAAiB,GAAG,IAAI,CAAC;IAC3C,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,qBAAqB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,uBAAuB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/C,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,gBAAgB,CAMjE;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,sBAAsB,CAO7E;AAED,yEAAyE;AACzE,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAA8B;IAE5C,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IAkBnD,KAAK;CAGN;AAQD,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,CAOvD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAQ7D;AAED,0DAA0D;AAC1D,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAY7D;AAED,uEAAuE;AACvE,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,aAAa,GAAG;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAWzC;AAaD,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAMxD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAqBT;AAED,0DAA0D;AAC1D,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAQ5D;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CA6B/B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@supersoniks/concorde",
|
|
3
|
-
"version": "4.9.98-visual-stack.
|
|
3
|
+
"version": "4.9.98-visual-stack.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "",
|
|
@@ -322,6 +322,42 @@
|
|
|
322
322
|
"types": "./dist/types/core/components/functional/3d/pointer.d.ts",
|
|
323
323
|
"default": "./dist/js/core/components/functional/3d/pointer.js"
|
|
324
324
|
},
|
|
325
|
+
"./post-bind": {
|
|
326
|
+
"types": "./dist/types/core/components/functional/3d/post-bind.d.ts",
|
|
327
|
+
"default": "./dist/js/core/components/functional/3d/post-bind.js"
|
|
328
|
+
},
|
|
329
|
+
"./functional/post-bind": {
|
|
330
|
+
"types": "./dist/types/core/components/functional/3d/post-bind.d.ts",
|
|
331
|
+
"default": "./dist/js/core/components/functional/3d/post-bind.js"
|
|
332
|
+
},
|
|
333
|
+
"./functional/3d/post-bind": {
|
|
334
|
+
"types": "./dist/types/core/components/functional/3d/post-bind.d.ts",
|
|
335
|
+
"default": "./dist/js/core/components/functional/3d/post-bind.js"
|
|
336
|
+
},
|
|
337
|
+
"./post-channels": {
|
|
338
|
+
"types": "./dist/types/core/components/functional/3d/post-channels.d.ts",
|
|
339
|
+
"default": "./dist/js/core/components/functional/3d/post-channels.js"
|
|
340
|
+
},
|
|
341
|
+
"./functional/post-channels": {
|
|
342
|
+
"types": "./dist/types/core/components/functional/3d/post-channels.d.ts",
|
|
343
|
+
"default": "./dist/js/core/components/functional/3d/post-channels.js"
|
|
344
|
+
},
|
|
345
|
+
"./functional/3d/post-channels": {
|
|
346
|
+
"types": "./dist/types/core/components/functional/3d/post-channels.d.ts",
|
|
347
|
+
"default": "./dist/js/core/components/functional/3d/post-channels.js"
|
|
348
|
+
},
|
|
349
|
+
"./post-fx": {
|
|
350
|
+
"types": "./dist/types/core/components/functional/3d/post-fx.d.ts",
|
|
351
|
+
"default": "./dist/js/core/components/functional/3d/post-fx.js"
|
|
352
|
+
},
|
|
353
|
+
"./functional/post-fx": {
|
|
354
|
+
"types": "./dist/types/core/components/functional/3d/post-fx.d.ts",
|
|
355
|
+
"default": "./dist/js/core/components/functional/3d/post-fx.js"
|
|
356
|
+
},
|
|
357
|
+
"./functional/3d/post-fx": {
|
|
358
|
+
"types": "./dist/types/core/components/functional/3d/post-fx.d.ts",
|
|
359
|
+
"default": "./dist/js/core/components/functional/3d/post-fx.js"
|
|
360
|
+
},
|
|
325
361
|
"./props": {
|
|
326
362
|
"types": "./dist/types/core/components/functional/3d/props.d.ts",
|
|
327
363
|
"default": "./dist/js/core/components/functional/3d/props.js"
|
|
@@ -85,7 +85,9 @@ Le viewer lit `asset` ou `src` depuis le DP — la source (fetch, upload, HF) n
|
|
|
85
85
|
| `fit` | Fit bbox après load (défaut true) |
|
|
86
86
|
| `pick` | Survol highlight + clic → event `pick` + `hit*` ; double-clic = fit |
|
|
87
87
|
| `play` / `play-on-hover` | Boucle RAF |
|
|
88
|
-
| `
|
|
88
|
+
| `play-offscreen` | Garde RAF / runtime hors viewport (pont live `#id`) |
|
|
89
|
+
| `release-offscreen` | Dispose renderer hors viewport (défaut true) sauf si `play-offscreen` / consommateur live |
|
|
90
|
+
| `damping` | Inertie OrbitControls (défaut `0.08`, `0` = off) |
|
|
89
91
|
| `dpr-max` | Cap devicePixelRatio (défaut 2) |
|
|
90
92
|
| `dataProvider` / `out-data-provider` | Entrée / sortie |
|
|
91
93
|
| `out-interval` | Throttle publication ms (défaut 80) |
|
|
@@ -126,3 +128,34 @@ No shared WebGL context between `sonic-3d` and `sonic-shader`.
|
|
|
126
128
|
```
|
|
127
129
|
|
|
128
130
|
Demo: [Visual stack — 3D → shader live](#docs/_misc/visual-stack.md/visual-stack).
|
|
131
|
+
|
|
132
|
+
Un `sonic-shader` / `sonic-webgpu` qui pointe `#id` s’enregistre via `registerFrameConsumer` : le 3D **continue hors viewport** (pas de dispose). Option explicite : `play-offscreen`.
|
|
133
|
+
|
|
134
|
+
### Arrêt net
|
|
135
|
+
|
|
136
|
+
`el.stopMotion()` coupe `autoRotate` et l’inertie OrbitControls. Quand la caméra est immobile depuis ~8 frames : event `rest` + champ out `moving: 0|1`. Attribut `damping` (défaut `0.08`, `0` = off).
|
|
137
|
+
|
|
138
|
+
## Post FX (in-viewer)
|
|
139
|
+
|
|
140
|
+
When `post-image` is set, the scene renders to an offscreen target with a **depth texture**, then ShaderToy-style passes run inside the same Three context (`post-buffer-a`…`post-image`). Same GLSL as `sonic-shader` (`mainImage`, `iChannel0–3`, `uParam0–3`, `sonicLinearDepth`).
|
|
141
|
+
|
|
142
|
+
| Channel token | Source |
|
|
143
|
+
|---------------|--------|
|
|
144
|
+
| `scene` (default ch0) | Color render target |
|
|
145
|
+
| `depth` | Depth texture from the scene pass |
|
|
146
|
+
| `buffer-a`…`d` | Ping-pong buffers |
|
|
147
|
+
| URL / `#id` | External texture (same as shader live bridge) |
|
|
148
|
+
|
|
149
|
+
```html
|
|
150
|
+
<sonic-3d
|
|
151
|
+
post-image="…GLSL…"
|
|
152
|
+
post-image-ch0="scene"
|
|
153
|
+
post-image-ch1="depth"
|
|
154
|
+
param0="0.5"
|
|
155
|
+
post-scale="1"
|
|
156
|
+
></sonic-3d>
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Demo: [Visual stack — post depth edges](#docs/_misc/visual-stack.md/visual-stack).
|
|
160
|
+
|
|
161
|
+
Pick / orbit still use scene geometry; `frame-out` captures the **final** canvas after post.
|
|
@@ -169,3 +169,45 @@ describe("orbit.wheelAffectsZoom", () => {
|
|
|
169
169
|
expect(orbit.wheelAffectsZoom(atMaxZoom, 1)).toBe(true);
|
|
170
170
|
});
|
|
171
171
|
});
|
|
172
|
+
|
|
173
|
+
describe("wantsOffscreenPlay / frame consumers", () => {
|
|
174
|
+
it("playOffscreen ou consumers → true", async () => {
|
|
175
|
+
const { wantsOffscreenPlay } = await import("./playback");
|
|
176
|
+
expect(wantsOffscreenPlay({ playOffscreen: false, frameConsumerCount: 0 })).toBe(
|
|
177
|
+
false,
|
|
178
|
+
);
|
|
179
|
+
expect(wantsOffscreenPlay({ playOffscreen: true, frameConsumerCount: 0 })).toBe(
|
|
180
|
+
true,
|
|
181
|
+
);
|
|
182
|
+
expect(wantsOffscreenPlay({ playOffscreen: false, frameConsumerCount: 1 })).toBe(
|
|
183
|
+
true,
|
|
184
|
+
);
|
|
185
|
+
});
|
|
186
|
+
|
|
187
|
+
it("registerFrameConsumer incrémente le compteur", async () => {
|
|
188
|
+
const el = TestUtils.bootstrap(
|
|
189
|
+
`<sonic-3d style="width:64px;height:64px"></sonic-3d>`,
|
|
190
|
+
true,
|
|
191
|
+
)[0] as Sonic3d;
|
|
192
|
+
await el.updateComplete;
|
|
193
|
+
expect(el.frameConsumerCount).toBe(0);
|
|
194
|
+
const token = {};
|
|
195
|
+
el.registerFrameConsumer(token);
|
|
196
|
+
expect(el.frameConsumerCount).toBe(1);
|
|
197
|
+
expect(el.playOffscreen).toBe(false);
|
|
198
|
+
el.unregisterFrameConsumer(token);
|
|
199
|
+
expect(el.frameConsumerCount).toBe(0);
|
|
200
|
+
});
|
|
201
|
+
|
|
202
|
+
it("stopMotion coupe autoRotate", async () => {
|
|
203
|
+
const el = TestUtils.bootstrap(
|
|
204
|
+
`<sonic-3d auto-rotate style="width:64px;height:64px"></sonic-3d>`,
|
|
205
|
+
true,
|
|
206
|
+
)[0] as Sonic3d;
|
|
207
|
+
await el.updateComplete;
|
|
208
|
+
expect(el.autoRotate).toBe(true);
|
|
209
|
+
el.stopMotion();
|
|
210
|
+
expect(el.autoRotate).toBe(false);
|
|
211
|
+
expect(el.moving).toBe(0);
|
|
212
|
+
});
|
|
213
|
+
});
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { html } from "lit";
|
|
2
2
|
import { customElement, state } from "lit/decorators.js";
|
|
3
3
|
import { PublisherManager } from "@supersoniks/concorde/utils";
|
|
4
|
+
import { ensure } from "./ensure";
|
|
4
5
|
import { formBind, type FormOrbit } from "./form-bind";
|
|
5
6
|
import { life } from "./life";
|
|
6
7
|
import { outPublish } from "./out-publish";
|
|
8
|
+
import { postBind } from "./post-bind";
|
|
7
9
|
import type { SceneHit } from "./pick";
|
|
8
10
|
import { playback } from "./playback";
|
|
9
11
|
import { pointer } from "./pointer";
|
|
@@ -13,6 +15,8 @@ import { sonic3dStyles } from "./styles";
|
|
|
13
15
|
import { propUpdate } from "./updated";
|
|
14
16
|
import { wire } from "./wire";
|
|
15
17
|
|
|
18
|
+
/** Frames sans mouvement avant `rest` / `moving=0`. */
|
|
19
|
+
const REST_STILL_FRAMES = 8;
|
|
16
20
|
/**
|
|
17
21
|
* Viewer 3D Concorde (Three.js) — glTF/GLB, caméra orbit/perspective/ortho,
|
|
18
22
|
* outputs dataProvider paresseux. Opt-in : `@supersoniks/concorde/3d`.
|
|
@@ -21,7 +25,7 @@ import { wire } from "./wire";
|
|
|
21
25
|
export class Sonic3d extends Sonic3dProps {
|
|
22
26
|
static styles = sonic3dStyles;
|
|
23
27
|
|
|
24
|
-
@state()
|
|
28
|
+
@state() errorMessage = "";
|
|
25
29
|
|
|
26
30
|
/** État runtime partagé avec les helpers (lu ici pour noUnusedLocals). */
|
|
27
31
|
runtime: SceneRuntime | null = null;
|
|
@@ -48,7 +52,20 @@ export class Sonic3d extends Sonic3dProps {
|
|
|
48
52
|
snapshotSeq = 0;
|
|
49
53
|
/** Contrat SonicFrameSource — incrémenté après chaque render. */
|
|
50
54
|
frameSeq = 0;
|
|
55
|
+
lastDrawAt = 0;
|
|
51
56
|
lastFormOrbit: FormOrbit | null = null;
|
|
57
|
+
/** Consommateurs live (`registerFrameConsumer`). */
|
|
58
|
+
private frameConsumers = new Set<object>();
|
|
59
|
+
/** 1 si caméra en mouvement, 0 sinon (publié en out). */
|
|
60
|
+
moving = 0;
|
|
61
|
+
private stillFrames = 0;
|
|
62
|
+
private lastMotionYaw = NaN;
|
|
63
|
+
private lastMotionPitch = NaN;
|
|
64
|
+
private lastMotionDist = NaN;
|
|
65
|
+
|
|
66
|
+
get frameConsumerCount() {
|
|
67
|
+
return this.frameConsumers.size;
|
|
68
|
+
}
|
|
52
69
|
|
|
53
70
|
onFormMutation = () => {
|
|
54
71
|
const data = (this.formPublisher?.get() ?? {}) as Record<string, unknown>;
|
|
@@ -137,9 +154,87 @@ export class Sonic3d extends Sonic3dProps {
|
|
|
137
154
|
private drawFrame(now: number) {
|
|
138
155
|
if (!this.runtime || !this.ready) return;
|
|
139
156
|
this.frame++;
|
|
157
|
+
const time = (now - this.startTime) / 1000;
|
|
158
|
+
const timeDelta = Math.max(0, (now - this.lastDrawAt) / 1000);
|
|
159
|
+
this.lastDrawAt = now;
|
|
160
|
+
postBind.syncFrame(this as never, time, timeDelta, this.frame);
|
|
140
161
|
this.runtime.render();
|
|
141
162
|
this.frameSeq++;
|
|
142
|
-
|
|
163
|
+
this.trackMotion(time);
|
|
164
|
+
outPublish.maybePublish(this as never, now, time);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Enregistre un consommateur live (`sonic-shader` / `sonic-webgpu` via `#id`).
|
|
169
|
+
* Garde le RAF hors viewport tant qu’il reste au moins un token.
|
|
170
|
+
*/
|
|
171
|
+
registerFrameConsumer(token: object = {}) {
|
|
172
|
+
this.frameConsumers.add(token);
|
|
173
|
+
ensure.syncVisibility(this as never);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
unregisterFrameConsumer(token: object = {}) {
|
|
177
|
+
this.frameConsumers.delete(token);
|
|
178
|
+
ensure.syncVisibility(this as never);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Coupe `autoRotate` + inertie OrbitControls.
|
|
183
|
+
* Émet `rest` si la caméra était en mouvement.
|
|
184
|
+
*/
|
|
185
|
+
stopMotion() {
|
|
186
|
+
this.autoRotate = false;
|
|
187
|
+
this.runtime?.stopMotion();
|
|
188
|
+
this.stillFrames = REST_STILL_FRAMES;
|
|
189
|
+
if (this.moving !== 0) {
|
|
190
|
+
this.moving = 0;
|
|
191
|
+
this.dispatchEvent(
|
|
192
|
+
new CustomEvent("rest", {
|
|
193
|
+
detail: { moving: 0 },
|
|
194
|
+
bubbles: true,
|
|
195
|
+
composed: true,
|
|
196
|
+
}),
|
|
197
|
+
);
|
|
198
|
+
}
|
|
199
|
+
this.syncPlayback();
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
private trackMotion(time: number) {
|
|
203
|
+
if (!this.runtime) return;
|
|
204
|
+
const snap = this.runtime.snapshot({
|
|
205
|
+
time,
|
|
206
|
+
frame: this.frame,
|
|
207
|
+
hovering: this.hovering ? 1 : 0,
|
|
208
|
+
pointerX: this.pointerX,
|
|
209
|
+
pointerY: this.pointerY,
|
|
210
|
+
hit: this.lastHit,
|
|
211
|
+
});
|
|
212
|
+
const eps = 1e-5;
|
|
213
|
+
const still =
|
|
214
|
+
Number.isFinite(this.lastMotionYaw) &&
|
|
215
|
+
Math.abs(snap.yaw - this.lastMotionYaw) < eps &&
|
|
216
|
+
Math.abs(snap.pitch - this.lastMotionPitch) < eps &&
|
|
217
|
+
Math.abs(snap.distance - this.lastMotionDist) < eps &&
|
|
218
|
+
!this.autoRotate;
|
|
219
|
+
this.lastMotionYaw = snap.yaw;
|
|
220
|
+
this.lastMotionPitch = snap.pitch;
|
|
221
|
+
this.lastMotionDist = snap.distance;
|
|
222
|
+
if (still) {
|
|
223
|
+
this.stillFrames++;
|
|
224
|
+
if (this.stillFrames >= REST_STILL_FRAMES && this.moving !== 0) {
|
|
225
|
+
this.moving = 0;
|
|
226
|
+
this.dispatchEvent(
|
|
227
|
+
new CustomEvent("rest", {
|
|
228
|
+
detail: { moving: 0, yaw: snap.yaw, pitch: snap.pitch },
|
|
229
|
+
bubbles: true,
|
|
230
|
+
composed: true,
|
|
231
|
+
}),
|
|
232
|
+
);
|
|
233
|
+
}
|
|
234
|
+
} else {
|
|
235
|
+
this.stillFrames = 0;
|
|
236
|
+
this.moving = 1;
|
|
237
|
+
}
|
|
143
238
|
}
|
|
144
239
|
|
|
145
240
|
/** Contrat SonicFrameSource — canvas Three (preserveDrawingBuffer). */
|
|
@@ -170,12 +265,15 @@ export type {
|
|
|
170
265
|
Sonic3dConfig,
|
|
171
266
|
Sonic3dOutput,
|
|
172
267
|
} from "./types";
|
|
173
|
-
export type { SonicMediaRef, SonicFrameSource } from "@supersoniks/concorde/core/utils/mediaRef";
|
|
268
|
+
export type { SonicMediaRef, SonicFrameSource, SonicFrameConsumerHost } from "@supersoniks/concorde/core/utils/mediaRef";
|
|
174
269
|
export {
|
|
175
270
|
toMediaUrl,
|
|
176
271
|
cloneMediaRef,
|
|
177
272
|
isFrameSource,
|
|
273
|
+
isFrameConsumerHost,
|
|
274
|
+
FrameConsumerRegistry,
|
|
178
275
|
} from "@supersoniks/concorde/core/utils/mediaRef";
|
|
276
|
+
export { wantsOffscreenPlay } from "./playback";
|
|
179
277
|
export { frameCapture } from "./frame-capture";
|
|
180
278
|
export { frameSource } from "./frame-source";
|
|
181
279
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Sonic3dCameraMode } from "./constants";
|
|
2
2
|
import { parse } from "./parse";
|
|
3
|
-
import { playback } from "./playback";
|
|
3
|
+
import { playback, wantsOffscreenPlay } from "./playback";
|
|
4
4
|
import { reload } from "./reload";
|
|
5
5
|
import { SceneRuntime } from "./scene-runtime";
|
|
6
6
|
|
|
@@ -16,10 +16,13 @@ export type EnsureHost = {
|
|
|
16
16
|
maxDistance: number;
|
|
17
17
|
minPolar: number;
|
|
18
18
|
maxPolar: number;
|
|
19
|
+
damping: number;
|
|
19
20
|
loadToken: number;
|
|
20
21
|
ready: boolean;
|
|
21
22
|
inView: boolean;
|
|
22
23
|
releaseOffscreen: boolean;
|
|
24
|
+
playOffscreen: boolean;
|
|
25
|
+
frameConsumerCount: number;
|
|
23
26
|
getBoundingClientRect: () => DOMRect;
|
|
24
27
|
clientWidth: number;
|
|
25
28
|
clientHeight: number;
|
|
@@ -52,6 +55,7 @@ async function ensureRuntime(host: EnsureHost) {
|
|
|
52
55
|
minPolar: reload.degToRad(host.minPolar),
|
|
53
56
|
maxPolar: reload.degToRad(host.maxPolar),
|
|
54
57
|
});
|
|
58
|
+
host.runtime.setDamping(host.damping);
|
|
55
59
|
reload.applyOrbitLimits(host as never);
|
|
56
60
|
syncSize(host);
|
|
57
61
|
await reload.run(host as never);
|
|
@@ -71,11 +75,15 @@ function releaseRuntime(host: EnsureHost) {
|
|
|
71
75
|
}
|
|
72
76
|
|
|
73
77
|
function syncVisibility(host: EnsureHost) {
|
|
74
|
-
|
|
78
|
+
const keepOffscreen = wantsOffscreenPlay(host);
|
|
79
|
+
if (!host.inView && host.releaseOffscreen && !keepOffscreen) {
|
|
75
80
|
releaseRuntime(host);
|
|
76
81
|
return;
|
|
77
82
|
}
|
|
78
|
-
if (
|
|
83
|
+
if (
|
|
84
|
+
(!host.runtime || host.runtime.isLost) &&
|
|
85
|
+
(host.inView || keepOffscreen || !host.releaseOffscreen)
|
|
86
|
+
) {
|
|
79
87
|
void ensureRuntime(host);
|
|
80
88
|
return;
|
|
81
89
|
}
|
|
@@ -2,6 +2,7 @@ import { ORBIT_CHANGE_EPSILON } from "./constants";
|
|
|
2
2
|
import { formFields } from "./form-fields";
|
|
3
3
|
import { parse } from "./parse";
|
|
4
4
|
import { playback } from "./playback";
|
|
5
|
+
import { postBind } from "./post-bind";
|
|
5
6
|
import { reload } from "./reload";
|
|
6
7
|
import type { SceneRuntime } from "./runtime";
|
|
7
8
|
import type { Sonic3dAsset, Sonic3dCameraMode } from "./types";
|
|
@@ -91,6 +92,7 @@ function applyFormParams(host: FormBindHost, data: Record<string, unknown>) {
|
|
|
91
92
|
|
|
92
93
|
formFields.pushToRuntime(host, data);
|
|
93
94
|
applyFormOrbit(host, data);
|
|
95
|
+
postBind.applyFormPost(host as never, data);
|
|
94
96
|
if (needReload) void reload.run(host as never);
|
|
95
97
|
}
|
|
96
98
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { PublisherManager } from "@supersoniks/concorde/utils";
|
|
2
2
|
import { ensure } from "./ensure";
|
|
3
3
|
import { formBind } from "./form-bind";
|
|
4
|
+
import { wantsOffscreenPlay } from "./playback";
|
|
4
5
|
import type { SceneRuntime } from "./runtime";
|
|
5
6
|
|
|
6
7
|
/** Host Lit pour cycle de vie / observers / bind DP. */
|
|
@@ -9,6 +10,8 @@ export type LifeHost = {
|
|
|
9
10
|
dataProvider: string;
|
|
10
11
|
outDataProvider: string;
|
|
11
12
|
releaseOffscreen: boolean;
|
|
13
|
+
playOffscreen: boolean;
|
|
14
|
+
frameConsumerCount: number;
|
|
12
15
|
inView: boolean;
|
|
13
16
|
runtime: SceneRuntime | null;
|
|
14
17
|
camera: string;
|
|
@@ -86,7 +89,7 @@ function firstUpdated(host: LifeHost) {
|
|
|
86
89
|
bindFormProvider(host);
|
|
87
90
|
bindOutPublisher(host);
|
|
88
91
|
requestAnimationFrame(() => {
|
|
89
|
-
if (host.inView || !host.releaseOffscreen) {
|
|
92
|
+
if (host.inView || !host.releaseOffscreen || wantsOffscreenPlay(host)) {
|
|
90
93
|
void ensure.ensureRuntime(host as never);
|
|
91
94
|
}
|
|
92
95
|
});
|
|
@@ -33,6 +33,7 @@ export type OutPublishHost = {
|
|
|
33
33
|
pointerY: number;
|
|
34
34
|
lastHit: SceneHit | null;
|
|
35
35
|
fov: number;
|
|
36
|
+
moving: number;
|
|
36
37
|
formPublisher: OutPublisherLike | null;
|
|
37
38
|
bindOutPublisher: () => void;
|
|
38
39
|
dispatchEvent: (event: Event) => boolean;
|
|
@@ -64,7 +65,7 @@ function shouldSkipFormControlOutWrite(
|
|
|
64
65
|
}
|
|
65
66
|
|
|
66
67
|
function buildOutput(host: OutPublishHost, time: number): Sonic3dOutput {
|
|
67
|
-
|
|
68
|
+
const base =
|
|
68
69
|
host.runtime?.snapshot({
|
|
69
70
|
time,
|
|
70
71
|
frame: host.frame,
|
|
@@ -91,8 +92,8 @@ function buildOutput(host: OutPublishHost, time: number): Sonic3dOutput {
|
|
|
91
92
|
distance: 0,
|
|
92
93
|
yaw: 0,
|
|
93
94
|
pitch: 0,
|
|
94
|
-
}
|
|
95
|
-
|
|
95
|
+
};
|
|
96
|
+
return { ...base, moving: host.moving };
|
|
96
97
|
}
|
|
97
98
|
|
|
98
99
|
function writePayload(host: OutPublishHost, payload: Sonic3dOutput) {
|