@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.
Files changed (164) hide show
  1. package/build-infos.json +1 -1
  2. package/concorde-3d.bundle.js +201 -152
  3. package/concorde-3d.es.js +14687 -13905
  4. package/concorde-core.bundle.js +1 -1
  5. package/concorde-core.es.js +1 -1
  6. package/concorde-hugging-face-infer.bundle.js +1 -1
  7. package/concorde-hugging-face-infer.es.js +1 -1
  8. package/concorde-shader.bundle.js +31 -20
  9. package/concorde-shader.es.js +2773 -2547
  10. package/concorde-webgpu.bundle.js +43 -32
  11. package/concorde-webgpu.es.js +1819 -1553
  12. package/dist/concorde-3d.bundle.js +201 -152
  13. package/dist/concorde-3d.es.js +14687 -13905
  14. package/dist/concorde-core.bundle.js +1 -1
  15. package/dist/concorde-core.es.js +1 -1
  16. package/dist/concorde-hugging-face-infer.bundle.js +1 -1
  17. package/dist/concorde-hugging-face-infer.es.js +1 -1
  18. package/dist/concorde-shader.bundle.js +31 -20
  19. package/dist/concorde-shader.es.js +2773 -2547
  20. package/dist/concorde-webgpu.bundle.js +43 -32
  21. package/dist/concorde-webgpu.es.js +1819 -1553
  22. package/dist/js/core/components/functional/3d/3d.js +90 -2
  23. package/dist/js/core/components/functional/3d/3d.js.map +1 -1
  24. package/dist/js/core/components/functional/3d/constants.js +1 -0
  25. package/dist/js/core/components/functional/3d/constants.js.map +1 -1
  26. package/dist/js/core/components/functional/3d/ensure.js +6 -3
  27. package/dist/js/core/components/functional/3d/ensure.js.map +1 -1
  28. package/dist/js/core/components/functional/3d/form-params.js +2 -0
  29. package/dist/js/core/components/functional/3d/form-params.js.map +1 -1
  30. package/dist/js/core/components/functional/3d/life.js +2 -1
  31. package/dist/js/core/components/functional/3d/life.js.map +1 -1
  32. package/dist/js/core/components/functional/3d/out-publish.js +3 -2
  33. package/dist/js/core/components/functional/3d/out-publish.js.map +1 -1
  34. package/dist/js/core/components/functional/3d/playback.js +6 -1
  35. package/dist/js/core/components/functional/3d/playback.js.map +1 -1
  36. package/dist/js/core/components/functional/3d/post-bind.js +207 -0
  37. package/dist/js/core/components/functional/3d/post-bind.js.map +1 -0
  38. package/dist/js/core/components/functional/3d/post-channels.js +39 -0
  39. package/dist/js/core/components/functional/3d/post-channels.js.map +1 -0
  40. package/dist/js/core/components/functional/3d/post-fx.js +495 -0
  41. package/dist/js/core/components/functional/3d/post-fx.js.map +1 -0
  42. package/dist/js/core/components/functional/3d/props.js +142 -0
  43. package/dist/js/core/components/functional/3d/props.js.map +1 -1
  44. package/dist/js/core/components/functional/3d/reload.js +2 -0
  45. package/dist/js/core/components/functional/3d/reload.js.map +1 -1
  46. package/dist/js/core/components/functional/3d/runtime.js +80 -3
  47. package/dist/js/core/components/functional/3d/runtime.js.map +1 -1
  48. package/dist/js/core/components/functional/3d/scene-runtime.js +1 -1
  49. package/dist/js/core/components/functional/3d/scene-runtime.js.map +1 -1
  50. package/dist/js/core/components/functional/3d/tune.js +21 -0
  51. package/dist/js/core/components/functional/3d/tune.js.map +1 -1
  52. package/dist/js/core/components/functional/3d/updated.js +13 -1
  53. package/dist/js/core/components/functional/3d/updated.js.map +1 -1
  54. package/dist/js/core/components/functional/shader/gl-runtime.js +128 -14
  55. package/dist/js/core/components/functional/shader/gl-runtime.js.map +1 -1
  56. package/dist/js/core/components/functional/shader/shader.js +154 -57
  57. package/dist/js/core/components/functional/shader/shader.js.map +1 -1
  58. package/dist/js/core/components/functional/shader/shadertoy-prelude.js +39 -5
  59. package/dist/js/core/components/functional/shader/shadertoy-prelude.js.map +1 -1
  60. package/dist/js/core/components/functional/shader/types.js +58 -7
  61. package/dist/js/core/components/functional/shader/types.js.map +1 -1
  62. package/dist/js/core/components/functional/webgpu/gl-fallback.js +27 -6
  63. package/dist/js/core/components/functional/webgpu/gl-fallback.js.map +1 -1
  64. package/dist/js/core/components/functional/webgpu/gpu-runtime.js +115 -13
  65. package/dist/js/core/components/functional/webgpu/gpu-runtime.js.map +1 -1
  66. package/dist/js/core/components/functional/webgpu/helpers.js +8 -2
  67. package/dist/js/core/components/functional/webgpu/helpers.js.map +1 -1
  68. package/dist/js/core/components/functional/webgpu/webgpu.js +34 -1
  69. package/dist/js/core/components/functional/webgpu/webgpu.js.map +1 -1
  70. package/dist/js/core/utils/mediaRef.js +37 -0
  71. package/dist/js/core/utils/mediaRef.js.map +1 -1
  72. package/dist/types/core/components/functional/3d/3d.d.ts +26 -3
  73. package/dist/types/core/components/functional/3d/3d.d.ts.map +1 -1
  74. package/dist/types/core/components/functional/3d/constants.d.ts +1 -1
  75. package/dist/types/core/components/functional/3d/constants.d.ts.map +1 -1
  76. package/dist/types/core/components/functional/3d/ensure.d.ts +3 -0
  77. package/dist/types/core/components/functional/3d/ensure.d.ts.map +1 -1
  78. package/dist/types/core/components/functional/3d/form-params.d.ts.map +1 -1
  79. package/dist/types/core/components/functional/3d/life.d.ts +2 -0
  80. package/dist/types/core/components/functional/3d/life.d.ts.map +1 -1
  81. package/dist/types/core/components/functional/3d/out-publish.d.ts +1 -0
  82. package/dist/types/core/components/functional/3d/out-publish.d.ts.map +1 -1
  83. package/dist/types/core/components/functional/3d/playback.d.ts +9 -0
  84. package/dist/types/core/components/functional/3d/playback.d.ts.map +1 -1
  85. package/dist/types/core/components/functional/3d/post-bind.d.ts +52 -0
  86. package/dist/types/core/components/functional/3d/post-bind.d.ts.map +1 -0
  87. package/dist/types/core/components/functional/3d/post-channels.d.ts +40 -0
  88. package/dist/types/core/components/functional/3d/post-channels.d.ts.map +1 -0
  89. package/dist/types/core/components/functional/3d/post-fx.d.ts +73 -0
  90. package/dist/types/core/components/functional/3d/post-fx.d.ts.map +1 -0
  91. package/dist/types/core/components/functional/3d/props.d.ts +42 -0
  92. package/dist/types/core/components/functional/3d/props.d.ts.map +1 -1
  93. package/dist/types/core/components/functional/3d/reload.d.ts.map +1 -1
  94. package/dist/types/core/components/functional/3d/runtime.d.ts +16 -1
  95. package/dist/types/core/components/functional/3d/runtime.d.ts.map +1 -1
  96. package/dist/types/core/components/functional/3d/scene-runtime.d.ts +1 -1
  97. package/dist/types/core/components/functional/3d/scene-runtime.d.ts.map +1 -1
  98. package/dist/types/core/components/functional/3d/tune.d.ts +5 -0
  99. package/dist/types/core/components/functional/3d/tune.d.ts.map +1 -1
  100. package/dist/types/core/components/functional/3d/types.d.ts +9 -0
  101. package/dist/types/core/components/functional/3d/types.d.ts.map +1 -1
  102. package/dist/types/core/components/functional/3d/updated.d.ts.map +1 -1
  103. package/dist/types/core/components/functional/shader/gl-runtime.d.ts +33 -1
  104. package/dist/types/core/components/functional/shader/gl-runtime.d.ts.map +1 -1
  105. package/dist/types/core/components/functional/shader/shader.d.ts +28 -7
  106. package/dist/types/core/components/functional/shader/shader.d.ts.map +1 -1
  107. package/dist/types/core/components/functional/shader/shadertoy-prelude.d.ts +16 -2
  108. package/dist/types/core/components/functional/shader/shadertoy-prelude.d.ts.map +1 -1
  109. package/dist/types/core/components/functional/shader/types.d.ts +29 -5
  110. package/dist/types/core/components/functional/shader/types.d.ts.map +1 -1
  111. package/dist/types/core/components/functional/webgpu/gl-fallback.d.ts +4 -0
  112. package/dist/types/core/components/functional/webgpu/gl-fallback.d.ts.map +1 -1
  113. package/dist/types/core/components/functional/webgpu/gpu-runtime.d.ts +14 -0
  114. package/dist/types/core/components/functional/webgpu/gpu-runtime.d.ts.map +1 -1
  115. package/dist/types/core/components/functional/webgpu/helpers.d.ts +1 -0
  116. package/dist/types/core/components/functional/webgpu/helpers.d.ts.map +1 -1
  117. package/dist/types/core/components/functional/webgpu/webgpu.d.ts +7 -1
  118. package/dist/types/core/components/functional/webgpu/webgpu.d.ts.map +1 -1
  119. package/dist/types/core/utils/mediaRef.d.ts +15 -0
  120. package/dist/types/core/utils/mediaRef.d.ts.map +1 -1
  121. package/package.json +37 -1
  122. package/src/core/components/functional/3d/3d.md +34 -1
  123. package/src/core/components/functional/3d/3d.spec.ts +42 -0
  124. package/src/core/components/functional/3d/3d.ts +101 -3
  125. package/src/core/components/functional/3d/constants.ts +1 -0
  126. package/src/core/components/functional/3d/ensure.ts +11 -3
  127. package/src/core/components/functional/3d/form-params.ts +2 -0
  128. package/src/core/components/functional/3d/life.ts +4 -1
  129. package/src/core/components/functional/3d/out-publish.ts +4 -3
  130. package/src/core/components/functional/3d/playback.ts +13 -1
  131. package/src/core/components/functional/3d/post-bind.ts +262 -0
  132. package/src/core/components/functional/3d/post-channels.spec.ts +36 -0
  133. package/src/core/components/functional/3d/post-channels.ts +69 -0
  134. package/src/core/components/functional/3d/post-fx.ts +594 -0
  135. package/src/core/components/functional/3d/props.ts +45 -0
  136. package/src/core/components/functional/3d/reload.ts +2 -0
  137. package/src/core/components/functional/3d/runtime.ts +93 -4
  138. package/src/core/components/functional/3d/scene-runtime.ts +3 -0
  139. package/src/core/components/functional/3d/tune.ts +21 -0
  140. package/src/core/components/functional/3d/types.ts +9 -0
  141. package/src/core/components/functional/3d/updated.ts +17 -1
  142. package/src/core/components/functional/shader/gl-runtime.ts +169 -12
  143. package/src/core/components/functional/shader/shader.md +27 -4
  144. package/src/core/components/functional/shader/shader.spec.ts +267 -0
  145. package/src/core/components/functional/shader/shader.ts +177 -55
  146. package/src/core/components/functional/shader/shadertoy-prelude.ts +49 -5
  147. package/src/core/components/functional/shader/types.ts +89 -12
  148. package/src/core/components/functional/webgpu/gl-fallback.ts +28 -4
  149. package/src/core/components/functional/webgpu/gpu-runtime.ts +154 -18
  150. package/src/core/components/functional/webgpu/helpers.ts +8 -2
  151. package/src/core/components/functional/webgpu/webgpu.md +13 -2
  152. package/src/core/components/functional/webgpu/webgpu.spec.ts +37 -0
  153. package/src/core/components/functional/webgpu/webgpu.ts +39 -1
  154. package/src/core/utils/mediaRef.spec.ts +25 -0
  155. package/src/core/utils/mediaRef.ts +45 -0
  156. package/src/docs/_misc/visual-stack.md +19 -1
  157. package/src/docs/components/docs-demo-sources.ts +28 -0
  158. package/src/docs/docs.ts +2 -0
  159. package/src/docs/example/docs-3d-post-depth-demo.ts +68 -0
  160. package/src/docs/example/docs-3d-webgpu-live-demo.ts +83 -0
  161. package/src/docs/example/docs-harris-webgpu-demo.ts +53 -55
  162. package/src/docs/search/docs-search.json +252 -2
  163. package/src/tsconfig.json +27 -0
  164. package/src/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Post-traitement ShaderToy dans le contexte Three de sonic-3d
3
+ * (RenderTarget scène + DepthTexture → passes A–D → image).
4
+ */
5
+ import * as THREE from "three";
6
+ import { type PostChannels, type PostPassId, type PostSources } from "./post-channels";
7
+ export type PostFxUniforms = {
8
+ time: number;
9
+ timeDelta: number;
10
+ frame: number;
11
+ mouse: [number, number, number, number];
12
+ params: [number, number, number, number];
13
+ near: number;
14
+ far: number;
15
+ };
16
+ export type PostFxConfig = {
17
+ sources: PostSources;
18
+ channels: Map<PostPassId, PostChannels>;
19
+ scale: number;
20
+ };
21
+ export declare class PostFxCompileError extends Error {
22
+ pass: string;
23
+ infoLog: string;
24
+ constructor(message: string, pass: string, infoLog?: string);
25
+ }
26
+ /**
27
+ * Pipeline post FX attaché à un WebGLRenderer Three.
28
+ */
29
+ export declare class PostFxPipeline {
30
+ private renderer;
31
+ private sceneRT;
32
+ private buffers;
33
+ private passes;
34
+ private channels;
35
+ private activePasses;
36
+ private quadScene;
37
+ private quadCam;
38
+ private quadMesh;
39
+ private width;
40
+ private height;
41
+ private scale;
42
+ private urlTextures;
43
+ private loader;
44
+ private elementResolver;
45
+ private elementTextures;
46
+ private elementLastSeq;
47
+ private enabled;
48
+ constructor(renderer: THREE.WebGLRenderer);
49
+ get isEnabled(): boolean;
50
+ setElementResolver(fn: ((key: string) => Element | null) | null): void;
51
+ /**
52
+ * Compile / (re)configure. `image` vide → désactive (rendu direct).
53
+ * Lève `PostFxCompileError` si une passe échoue.
54
+ */
55
+ setConfig(config: PostFxConfig | null): void;
56
+ resize(pixelW: number, pixelH: number): void;
57
+ /**
58
+ * Rend la scène 3D dans le RT, puis les passes post vers le canvas.
59
+ */
60
+ render(scene: THREE.Scene, camera: THREE.Camera, frame: PostFxUniforms): void;
61
+ dispose(): void;
62
+ private compilePass;
63
+ private validateGlsl;
64
+ private ensureTargets;
65
+ private disposeTargets;
66
+ private clearPasses;
67
+ private drawPass;
68
+ private resolveChannel;
69
+ private getUrlTexture;
70
+ private getElementTexture;
71
+ private updateElementTextures;
72
+ }
73
+ //# sourceMappingURL=post-fx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-fx.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/3d/post-fx.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,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;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;gBACJ,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,SAAK;CAMxD;AAiGD;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,OAAO,CAAqD;IACpE,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,OAAO,CAAoD;IACnE,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,eAAe,CAAkD;IACzE,OAAO,CAAC,eAAe,CAA0C;IACjE,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,OAAO,CAAS;gBAEZ,QAAQ,EAAE,KAAK,CAAC,aAAa;IAUzC,IAAI,SAAS,YAEZ;IAED,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI;IAI/D;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IA6CrC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAWrC;;OAEG;IACH,MAAM,CACJ,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,KAAK,EAAE,cAAc;IAyBvB,OAAO;IAWP,OAAO,CAAC,WAAW;IA8CnB,OAAO,CAAC,YAAY;IAwBpB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,QAAQ;IA2GhB,OAAO,CAAC,cAAc;IA6BtB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,iBAAiB;IAmDzB,OAAO,CAAC,qBAAqB;CAS9B"}
@@ -17,7 +17,17 @@ export declare class Sonic3dProps extends LitElement {
17
17
  pick: boolean;
18
18
  play: boolean;
19
19
  playOnHover: boolean;
20
+ /**
21
+ * Garde le RAF / runtime hors viewport (pont live `#id`).
22
+ * Aussi auto si un consommateur a appelé `registerFrameConsumer`.
23
+ */
24
+ playOffscreen: boolean;
20
25
  releaseOffscreen: boolean;
26
+ /**
27
+ * Inertie OrbitControls (`dampingFactor`). `0` = pas d’inertie.
28
+ * Défaut `0.08`.
29
+ */
30
+ damping: number;
21
31
  dprMax: number;
22
32
  aspectRatio: string;
23
33
  dataProvider: string;
@@ -26,5 +36,37 @@ export declare class Sonic3dProps extends LitElement {
26
36
  snapshotInterval: number;
27
37
  /** Publie `frameUrl` / `snapshot` (canvas) pour chaînage shader / jsonata. */
28
38
  frameOut: boolean;
39
+ postImage: string;
40
+ postBufferA: string;
41
+ postBufferB: string;
42
+ postBufferC: string;
43
+ postBufferD: string;
44
+ postCommon: string;
45
+ postImageCh0: string;
46
+ postImageCh1: string;
47
+ postImageCh2: string;
48
+ postImageCh3: string;
49
+ postBufferACh0: string;
50
+ postBufferACh1: string;
51
+ postBufferACh2: string;
52
+ postBufferACh3: string;
53
+ postBufferBCh0: string;
54
+ postBufferBCh1: string;
55
+ postBufferBCh2: string;
56
+ postBufferBCh3: string;
57
+ postBufferCCh0: string;
58
+ postBufferCCh1: string;
59
+ postBufferCCh2: string;
60
+ postBufferCCh3: string;
61
+ postBufferDCh0: string;
62
+ postBufferDCh1: string;
63
+ postBufferDCh2: string;
64
+ postBufferDCh3: string;
65
+ param0: number;
66
+ param1: number;
67
+ param2: number;
68
+ param3: number;
69
+ /** Échelle des cibles post (0.25–1, défaut 1). */
70
+ postScale: number;
29
71
  }
30
72
  //# sourceMappingURL=props.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/3d/props.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAEjC,OAAO,EASL,iBAAiB,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,gDAAgD;AAChD,qBAAa,YAAa,SAAQ,UAAU;IAC9B,GAAG,SAAM;IACW,KAAK,EAAE,YAAY,GAAG,IAAI,CAAQ;IAElE,MAAM,EAAE,iBAAiB,CAA2B;IACxB,GAAG,SAAe;IAClB,QAAQ,SAAoB;IAExD,WAAW,SAAwB;IAEnC,WAAW,SAAwB;IAEnC,QAAQ,SAAyB;IAEjC,QAAQ,SAAyB;IACsB,UAAU,UAAS;IAC7C,GAAG,UAAQ;IACX,IAAI,UAAS;IACE,IAAI,UAAQ;IACC,WAAW,UAAS;IAE7E,gBAAgB,UAAQ;IAC0B,MAAM,SAAK;IACN,WAAW,SAAM;IAC5C,YAAY,SAAM;IAE9C,eAAe,SAAM;IAErB,WAAW,SAA2B;IAEtC,gBAAgB,SAAgC;IAChD,8EAA8E;IACzB,QAAQ,UAAS;CACvE"}
1
+ {"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/3d/props.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAEjC,OAAO,EASL,iBAAiB,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,gDAAgD;AAChD,qBAAa,YAAa,SAAQ,UAAU;IAC9B,GAAG,SAAM;IACW,KAAK,EAAE,YAAY,GAAG,IAAI,CAAQ;IAElE,MAAM,EAAE,iBAAiB,CAA2B;IACxB,GAAG,SAAe;IAClB,QAAQ,SAAoB;IAExD,WAAW,SAAwB;IAEnC,WAAW,SAAwB;IAEnC,QAAQ,SAAyB;IAEjC,QAAQ,SAAyB;IACsB,UAAU,UAAS;IAC7C,GAAG,UAAQ;IACX,IAAI,UAAS;IACE,IAAI,UAAQ;IACC,WAAW,UAAS;IAC7E;;;OAGG;IAEH,aAAa,UAAS;IAEtB,gBAAgB,UAAQ;IACxB;;;OAGG;IACyB,OAAO,SAAQ;IACO,MAAM,SAAK;IACN,WAAW,SAAM;IAC5C,YAAY,SAAM;IAE9C,eAAe,SAAM;IAErB,WAAW,SAA2B;IAEtC,gBAAgB,SAAgC;IAChD,8EAA8E;IACzB,QAAQ,UAAS;IAG/B,SAAS,SAAM;IACZ,WAAW,SAAM;IACjB,WAAW,SAAM;IACjB,WAAW,SAAM;IACjB,WAAW,SAAM;IACnB,UAAU,SAAM;IACb,YAAY,SAAM;IAClB,YAAY,SAAM;IAClB,YAAY,SAAM;IAClB,YAAY,SAAM;IACf,cAAc,SAAM;IACpB,cAAc,SAAM;IACpB,cAAc,SAAM;IACpB,cAAc,SAAM;IACpB,cAAc,SAAM;IACpB,cAAc,SAAM;IACpB,cAAc,SAAM;IACpB,cAAc,SAAM;IACpB,cAAc,SAAM;IACpB,cAAc,SAAM;IACpB,cAAc,SAAM;IACpB,cAAc,SAAM;IACpB,cAAc,SAAM;IACpB,cAAc,SAAM;IACpB,cAAc,SAAM;IACpB,cAAc,SAAM;IACtC,MAAM,SAAK;IACX,MAAM,SAAK;IACX,MAAM,SAAK;IACX,MAAM,SAAK;IACvC,kDAAkD;IACG,SAAS,SAAK;CACpE"}
@@ -1 +1 @@
1
- {"version":3,"file":"reload.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/3d/reload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,iBAAS,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAErC;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,SAAS,GAAG,IAAI,CAAC;IAChC,aAAa,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAC9D,YAAY,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAC7D,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;CAC1C,CAAC;AAEF,iBAAe,GAAG,CAAC,IAAI,EAAE,UAAU,iBA8BlC;AAED,iBAAS,gBAAgB,CAAC,IAAI,EAAE,UAAU,QAOzC;AAED,iBAAS,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,QAUhD;AAED,eAAO,MAAM,MAAM;;;;;CAKT,CAAC"}
1
+ {"version":3,"file":"reload.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/3d/reload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,iBAAS,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAErC;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,SAAS,GAAG,IAAI,CAAC;IAChC,aAAa,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAC9D,YAAY,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAC7D,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;CAC1C,CAAC;AAEF,iBAAe,GAAG,CAAC,IAAI,EAAE,UAAU,iBA+BlC;AAED,iBAAS,gBAAgB,CAAC,IAAI,EAAE,UAAU,QAOzC;AAED,iBAAS,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,QAUhD;AAED,eAAO,MAAM,MAAM;;;;;CAKT,CAAC"}
@@ -2,11 +2,14 @@ import * as THREE from "three";
2
2
  import type { Sonic3dCameraMode } from "./constants";
3
3
  import type { SceneRuntimeOptions } from "./opts";
4
4
  import type { SceneHit } from "./pick";
5
+ import { PostFxCompileError, type PostFxConfig, type PostFxUniforms } from "./post-fx";
5
6
  import { tune } from "./tune";
6
7
  import type { Sonic3dAsset, Sonic3dOutput } from "./types";
7
8
  export type { SceneHit, SceneRuntimeOptions };
9
+ export { PostFxCompileError };
10
+ export type { PostFxConfig, PostFxUniforms };
8
11
  /**
9
- * Runtime Three.js encapsulé : renderer, scène, caméra, load, fit, pick.
12
+ * Runtime Three.js encapsulé : renderer, scène, caméra, load, fit, pick, post FX.
10
13
  * Le composant Lit gère RAF / viewport / DP.
11
14
  */
12
15
  export declare class SceneRuntime {
@@ -39,22 +42,34 @@ export declare class SceneRuntime {
39
42
  private highlighted;
40
43
  private prevEmissive;
41
44
  private prevEmissiveIntensity;
45
+ private postFx;
46
+ private lastCssW;
47
+ private lastCssH;
48
+ private damping;
49
+ private postFrame;
42
50
  constructor(opts: SceneRuntimeOptions);
43
51
  get ready(): boolean;
44
52
  get loading(): boolean;
45
53
  get error(): string | null;
46
54
  get isLost(): boolean;
55
+ get hasPostFx(): boolean;
47
56
  setDprMax(v: number): void;
48
57
  setExposure(v: number): void;
49
58
  setFov(v: number): void;
50
59
  setFit(v: boolean): void;
51
60
  setAutoRotate(v: boolean): void;
61
+ setDamping(v: number): void;
62
+ /** Coupe autoRotate + inertie OrbitControls. */
63
+ stopMotion(): void;
52
64
  setOrbitLimits(opts: Parameters<typeof tune.setOrbitLimits>[1]): void;
53
65
  setOrbitSpherical(yaw: number, pitch: number, distance: number): void;
54
66
  applyCameraMode(mode: Sonic3dCameraMode): void;
55
67
  resize(cssW: number, cssH: number): void;
56
68
  load(asset: Sonic3dAsset | null): Promise<void>;
57
69
  fitToContent(): void;
70
+ setPostConfig(config: PostFxConfig | null): void;
71
+ setPostElementResolver(fn: ((key: string) => Element | null) | null): void;
72
+ setPostFrame(frame: Partial<PostFxUniforms>): void;
58
73
  render(): void;
59
74
  pick(normX: number, normY: number): SceneHit | null;
60
75
  setHoverAt(normX: number, normY: number): SceneHit | null;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/3d/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/3d/runtime.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,5 @@
2
2
  * Entrée publique `@supersoniks/concorde/3d/scene-runtime`.
3
3
  * Implémentation : `runtime.ts` + helpers orbit/pick/load/….
4
4
  */
5
- export { SceneRuntime, type SceneHit, type SceneRuntimeOptions, } from "./runtime";
5
+ export { SceneRuntime, PostFxCompileError, type SceneHit, type SceneRuntimeOptions, type PostFxConfig, type PostFxUniforms, } from "./runtime";
6
6
  //# sourceMappingURL=scene-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scene-runtime.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/3d/scene-runtime.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,YAAY,EACZ,KAAK,QAAQ,EACb,KAAK,mBAAmB,GACzB,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"scene-runtime.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/3d/scene-runtime.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,KAAK,QAAQ,EACb,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,cAAc,GACpB,MAAM,WAAW,CAAC"}
@@ -17,6 +17,9 @@ declare function setExposure(ctx: TuneCtx, v: number): void;
17
17
  declare function setFov(ctx: TuneCtx, v: number): void;
18
18
  declare function setFit(ctx: TuneCtx, v: boolean): void;
19
19
  declare function setAutoRotate(ctx: TuneCtx, v: boolean): void;
20
+ declare function setDamping(ctx: TuneCtx, v: number): void;
21
+ /** Coupe autoRotate + vide l’inertie OrbitControls. */
22
+ declare function stopMotion(ctx: TuneCtx): void;
20
23
  declare function setOrbitLimits(ctx: TuneCtx, opts: Partial<OrbitLimits>): void;
21
24
  declare function setOrbitSpherical(ctx: TuneCtx, yaw: number, pitch: number, distance: number): void;
22
25
  export declare const tune: {
@@ -25,6 +28,8 @@ export declare const tune: {
25
28
  readonly setFov: typeof setFov;
26
29
  readonly setFit: typeof setFit;
27
30
  readonly setAutoRotate: typeof setAutoRotate;
31
+ readonly setDamping: typeof setDamping;
32
+ readonly stopMotion: typeof stopMotion;
28
33
  readonly setOrbitLimits: typeof setOrbitLimits;
29
34
  readonly setOrbitSpherical: typeof setOrbitSpherical;
30
35
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tune.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/3d/tune.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,KAAK,CAAC,iBAAiB,CAAC;IAClC,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC;IACxB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;CACvB,CAAC;AAEF,iBAAS,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,QAEzC;AAED,iBAAS,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,QAE3C;AAED,iBAAS,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,QAItC;AAED,iBAAS,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,QAEvC;AAED,iBAAS,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,QAE9C;AAED,iBAAS,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,QAG/D;AAED,iBAAS,iBAAiB,CACxB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,QAajB;AAED,eAAO,MAAM,IAAI;;;;;;;;CAQP,CAAC"}
1
+ {"version":3,"file":"tune.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/3d/tune.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,KAAK,CAAC,iBAAiB,CAAC;IAClC,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC;IACxB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;CACvB,CAAC;AAEF,iBAAS,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,QAEzC;AAED,iBAAS,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,QAE3C;AAED,iBAAS,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,QAItC;AAED,iBAAS,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,QAEvC;AAED,iBAAS,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,QAE9C;AAED,iBAAS,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,QAK1C;AAED,uDAAuD;AACvD,iBAAS,UAAU,CAAC,GAAG,EAAE,OAAO,QAS/B;AAED,iBAAS,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,QAG/D;AAED,iBAAS,iBAAiB,CACxB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,QAajB;AAED,eAAO,MAAM,IAAI;;;;;;;;;;CAUP,CAAC"}
@@ -55,6 +55,13 @@ export type Sonic3dConfig = {
55
55
  playOnHover?: boolean;
56
56
  /** Libère le renderer hors viewport (défaut true). */
57
57
  releaseOffscreen?: boolean;
58
+ /**
59
+ * Garde RAF / runtime hors viewport (pont live).
60
+ * Aussi auto via `registerFrameConsumer`.
61
+ */
62
+ playOffscreen?: boolean;
63
+ /** Inertie OrbitControls (défaut 0.08, 0 = off). */
64
+ damping?: number;
58
65
  dprMax?: number;
59
66
  aspectRatio?: string;
60
67
  /**
@@ -111,6 +118,8 @@ export type Sonic3dOutput = {
111
118
  distance: number;
112
119
  yaw: number;
113
120
  pitch: number;
121
+ /** 1 si la caméra bouge (orbit / inertie / autoRotate), sinon 0. */
122
+ moving?: number;
114
123
  /** Présents après un pick réussi. */
115
124
  hitX?: number;
116
125
  hitY?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/3d/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/3d/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,CAAC;AAEzD,gFAAgF;AAChF,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAEtE;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,2CAA2C;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,KAAK,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAE5B,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,wCAAwC;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uDAAuD;IACvD,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,uDAAuD;IACvD,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,sEAAsE;IACtE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uDAAuD;IACvD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,sEAAsE;AACtE,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,IAAI,CAAC;CACb,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B;;;OAGG;IACH,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;CACpC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"updated.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/3d/updated.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAoDvC,iBAAS,OAAO,CACd,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,QAYhD;AAED,eAAO,MAAM,UAAU;;CAAuB,CAAC"}
1
+ {"version":3,"file":"updated.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/3d/updated.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAqDvC,iBAAS,OAAO,CACd,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,QA2BhD;AAED,eAAO,MAAM,UAAU;;CAAuB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { ChannelSource, PassChannels, ReadRectResult, ShaderPassId, ShaderSources } from "./types";
1
+ import { ChannelSource, PassChannels, ReadRectResult, ShaderBufferFormat, ShaderPassId, ShaderSources } from "./types";
2
2
  export type FrameUniforms = {
3
3
  time: number;
4
4
  timeDelta: number;
@@ -15,6 +15,22 @@ export declare function shouldUploadElementFrame(source: unknown, lastSeq: numbe
15
15
  texSource: TexImageSource | null;
16
16
  nextSrc?: string;
17
17
  };
18
+ type BufferGlFormat = {
19
+ requested: ShaderBufferFormat;
20
+ active: ShaderBufferFormat;
21
+ internal: number;
22
+ format: number;
23
+ type: number;
24
+ filter: number;
25
+ float: boolean;
26
+ };
27
+ /**
28
+ * Résout le format GPU des buffers A–D.
29
+ * Exporté pour tests (mock `getExtension`).
30
+ */
31
+ export declare function resolveBufferGlFormat(gl: WebGL2RenderingContext, requested: ShaderBufferFormat): BufferGlFormat;
32
+ /** Reset du warn unique (tests). */
33
+ export declare function resetBufferFormatWarnFlag(): void;
18
34
  export declare function parseChannelSource(value: string | undefined | null, fallbackUrl: string): ChannelSource;
19
35
  export declare class ShaderToyRuntime {
20
36
  private gl;
@@ -30,12 +46,26 @@ export declare class ShaderToyRuntime {
30
46
  private activePasses;
31
47
  private blackTexture;
32
48
  private elementResolver;
49
+ private bufferFmt;
33
50
  constructor(canvas: HTMLCanvasElement);
51
+ /** Format réellement utilisé pour les buffers A–D (après repli éventuel). */
52
+ get activeBufferFormat(): ShaderBufferFormat;
53
+ /**
54
+ * Change le format des buffers A–D. Recrée les FBO si la taille est déjà connue.
55
+ * Retourne le format actif (peut différer si extension manquante).
56
+ */
57
+ setBufferFormat(requested: ShaderBufferFormat): ShaderBufferFormat;
34
58
  /** True si le contexte a été perdu / déjà disposé. */
35
59
  get isLost(): boolean;
36
60
  private initGeometry;
37
61
  resize(width: number, height: number): void;
38
62
  setSources(sources: ShaderSources, channels: Map<ShaderPassId, PassChannels>): void;
63
+ /**
64
+ * Met à jour les bindings de canaux sans recompiler les programmes.
65
+ * Les URLs / clés `#élément` absentes des textures sont allouées à la demande
66
+ * (via `ensureTextures` / `ensureElementTexture` côté composant).
67
+ */
68
+ setPassChannels(channels: Map<ShaderPassId, PassChannels>): void;
39
69
  ensureTextures(urls: string[]): Promise<void>;
40
70
  /** Alloue un slot texture vide pour un canal `#élément` (upload live ensuite). */
41
71
  ensureElementTexture(key: string): void;
@@ -67,6 +97,7 @@ export declare class ShaderToyRuntime {
67
97
  readRect(x: number, y: number, w: number, h: number): ReadRectResult | null;
68
98
  /**
69
99
  * Lit un rectangle d’un buffer ping-pong (dernier write) ou de l’Image (`pass === "image"`).
100
+ * Les buffers flottants renvoient un `Float32Array` ; Image / rgba8 → `Uint8Array`.
70
101
  */
71
102
  readBufferRect(pass: ShaderPassId, x: number, y: number, w: number, h: number): ReadRectResult | null;
72
103
  /**
@@ -87,4 +118,5 @@ export declare class ShaderToyRuntime {
87
118
  */
88
119
  dispose(loseContext?: boolean): void;
89
120
  }
121
+ export {};
90
122
  //# sourceMappingURL=gl-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gl-runtime.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/shader/gl-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gl-runtime.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/shader/gl-runtime.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { LitElement } from "lit";
2
- import { ShaderExtractItem, ShaderExtractOutput, ShaderHoverParam, ShaderMouseMode, ShaderRoi } from "./types";
2
+ import { ReleaseOffscreen, ShaderBufferFormat, ShaderExtractItem, ShaderExtractOutput, ShaderHoverParam, ShaderMouseMode, ShaderRoi } from "./types";
3
3
  declare const tagName = "sonic-shader";
4
4
  /** Valeur canal depuis DP : string (url, buffer-a, #id) | MediaRef → url | { element }. */
5
5
  declare function channelFormValue(value: unknown): string | undefined;
@@ -69,11 +69,19 @@ export declare class SonicShader extends LitElement {
69
69
  /** Vitesse d’easing hover on/off (1/s, défaut 10). */
70
70
  hoverSpeed: number;
71
71
  /**
72
- * Libère le contexte WebGL hors viewport (défaut true).
73
- * Les navigateurs limitent ~8–16 contextes.
72
+ * Hors viewport : libère textures/FBO (garde le contexte).
73
+ * `auto` (défaut) : ne libère pas si une passe lit `self`.
74
+ * `true` / `false` forcent le comportement.
74
75
  */
75
- releaseOffscreen: boolean;
76
+ releaseOffscreen: ReleaseOffscreen;
76
77
  dprMax: number;
78
+ /**
79
+ * Format des buffers A–D : `rgba8` (défaut) | `rgba16f` | `rgba32f`.
80
+ * Attribut reflété `active-buffer-format` = format réellement utilisé.
81
+ */
82
+ bufferFormat: ShaderBufferFormat | string;
83
+ /** Format actif après repli éventuel (lecture seule, reflect). */
84
+ activeBufferFormat: ShaderBufferFormat;
77
85
  /** Generic float uniforms `uParam0`…`uParam3` (no shader rebuild). */
78
86
  param0: number;
79
87
  param1: number;
@@ -155,6 +163,9 @@ export declare class SonicShader extends LitElement {
155
163
  private resizeObserver;
156
164
  private intersectionObserver;
157
165
  private rebuildToken;
166
+ /** Annule un `rebindChannels` en vol si rebuild / release intervient. */
167
+ private rebindToken;
168
+ private frameConsumers;
158
169
  private ready;
159
170
  private formPublisher;
160
171
  private outPublisher;
@@ -209,6 +220,16 @@ export declare class SonicShader extends LitElement {
209
220
  private buildChannels;
210
221
  private collectUrls;
211
222
  private collectElementKeys;
223
+ /** Enregistre les producteurs live (`sonic-3d`…) pour play-offscreen auto. */
224
+ private syncFrameConsumers;
225
+ /** Map canaux courante (tous les passes). */
226
+ private collectPassChannels;
227
+ /** `true` si hors viewport on doit libérer textures/FBO. */
228
+ private wantsReleaseOffscreen;
229
+ /**
230
+ * Re-lie les canaux sans recompiler ni vider les FBO (Vague A Lot 2).
231
+ */
232
+ private rebindChannels;
212
233
  private rebuild;
213
234
  private emitError;
214
235
  private shouldAnimate;
@@ -271,12 +292,12 @@ export declare class SonicShader extends LitElement {
271
292
  private onPointerLeave;
272
293
  render(): import("lit-html").TemplateResult<1>;
273
294
  }
274
- export { parseChannelSource, ShaderToyRuntime, shouldUploadElementFrame } from "./gl-runtime";
295
+ export { parseChannelSource, ShaderToyRuntime, shouldUploadElementFrame, resolveBufferGlFormat, resetBufferFormatWarnFlag } from "./gl-runtime";
275
296
  export { buildFragmentSource } from "./shadertoy-prelude";
276
- export type { ChannelSource, ShaderExtractItem, ShaderExtractOutput, ShaderExtractPass, ShaderHoverParam, ShaderMouseMode, ShaderParamSlot, ShaderPassId, ShaderPeak, ShaderRoi, ShaderSources, SonicShaderConfig, SonicShaderOutput, } from "./types";
297
+ export type { ChannelSource, ReleaseOffscreen, ShaderBufferFormat, ShaderExtractItem, ShaderExtractOutput, ShaderExtractPass, ShaderHoverParam, ShaderMouseMode, ShaderParamSlot, ShaderPassId, ShaderPeak, ShaderRoi, ShaderSources, SonicShaderConfig, SonicShaderOutput, } from "./types";
277
298
  export type { SonicMediaRef, SonicFrameSource, } from "@supersoniks/concorde/core/utils/mediaRef";
278
299
  export { toMediaUrl, cloneMediaRef, isFrameSource, mediaElementKey, } from "@supersoniks/concorde/core/utils/mediaRef";
279
- export { findPeaks, meanRgba, parseExtractPass, parseHoverParam, roiToPixels, ShaderCompileError, } from "./types";
300
+ export { channelsUseSelf, findPeaks, meanRgba, parseBufferFormat, parseExtractPass, parseHoverParam, parseReleaseOffscreen, roiToPixels, rgbaToUint8, shouldReleaseWhenOffscreen, ShaderCompileError, } from "./types";
280
301
  declare global {
281
302
  interface HTMLElementTagNameMap {
282
303
  [tagName]: SonicShader;
@@ -1 +1 @@
1
- {"version":3,"file":"shader.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/shader/shader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shader.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/shader/shader.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,20 @@
1
- /** ShaderToy-compatible GLSL ES 3.0 prelude (fragment). User code is inserted before main(). */
2
- export declare const SHADERTOY_FRAGMENT_PRELUDE = "#version 300 es\nprecision highp float;\nprecision highp int;\nprecision mediump sampler2D;\n\nuniform vec3 iResolution;\nuniform float iTime;\nuniform float iTimeDelta;\nuniform float iFrameRate;\nuniform int iFrame;\nuniform float iChannelTime[4];\nuniform vec3 iChannelResolution[4];\nuniform vec4 iMouse;\nuniform vec4 iDate;\nuniform float iSampleRate;\nuniform sampler2D iChannel0;\nuniform sampler2D iChannel1;\nuniform sampler2D iChannel2;\nuniform sampler2D iChannel3;\nuniform float uParam0;\nuniform float uParam1;\nuniform float uParam2;\nuniform float uParam3;\n\nout vec4 sonicFragColor;\n\n";
1
+ /**
2
+ * ShaderToy-compatible GLSL ES 3.0 prelude (fragment body, sans `#version`).
3
+ * - `sonic-shader` préfixe `#version 300 es` via `buildFragmentSource`.
4
+ * - `sonic-3d` post passe le corps à Three `RawShaderMaterial` (GLSL3).
5
+ */
6
+ export declare const GLSL_VERSION_300 = "#version 300 es\n";
7
+ /** Corps des uniforms / out (sans version). */
8
+ export declare const SHADERTOY_FRAGMENT_BODY = "precision highp float;\nprecision highp int;\nprecision mediump sampler2D;\n\nuniform vec3 iResolution;\nuniform float iTime;\nuniform float iTimeDelta;\nuniform float iFrameRate;\nuniform int iFrame;\nuniform float iChannelTime[4];\nuniform vec3 iChannelResolution[4];\nuniform vec4 iMouse;\nuniform vec4 iDate;\nuniform float iSampleRate;\nuniform sampler2D iChannel0;\nuniform sampler2D iChannel1;\nuniform sampler2D iChannel2;\nuniform sampler2D iChannel3;\nuniform float uParam0;\nuniform float uParam1;\nuniform float uParam2;\nuniform float uParam3;\n/** Near / far cam\u00E9ra (0 dans sonic-shader standalone). */\nuniform float uNear;\nuniform float uFar;\n\nout vec4 sonicFragColor;\n\n/** Profondeur lin\u00E9aire monde depuis une DepthTexture (0\u20131). */\nfloat sonicLinearDepth(float d) {\n float z = d * 2.0 - 1.0;\n float n = max(uNear, 1e-4);\n float f = max(uFar, n + 1e-4);\n return (2.0 * n * f) / (f + n - z * (f - n));\n}\n\n";
9
+ /** @deprecated Préférer SHADERTOY_FRAGMENT_BODY + buildFragmentSource. */
10
+ export declare const SHADERTOY_FRAGMENT_PRELUDE: string;
3
11
  export declare const SHADERTOY_FRAGMENT_EPILOGUE = "\nvoid main() {\n mainImage(sonicFragColor, gl_FragCoord.xy);\n}\n";
4
12
  export declare const FULLSCREEN_VERTEX = "#version 300 es\nprecision highp float;\nlayout(location = 0) in vec2 aPos;\nvoid main() {\n gl_Position = vec4(aPos, 0.0, 1.0);\n}\n";
13
+ /** Vertex Three RawShaderMaterial GLSL3 (fullscreen triangle via PlaneGeometry 2×2). */
14
+ export declare const THREE_FULLSCREEN_VERTEX = "precision highp float;\nin vec3 position;\nvoid main() {\n gl_Position = vec4(position.xy, 0.0, 1.0);\n}\n";
15
+ export declare function buildFragmentBody(common: string, userCode: string): string;
16
+ /** Source fragment WebGL2 native (`sonic-shader`). */
5
17
  export declare function buildFragmentSource(common: string, userCode: string): string;
18
+ /** Source fragment pour Three RawShaderMaterial (GLSL3, sans #version). */
19
+ export declare function buildThreeFragmentSource(common: string, userCode: string): string;
6
20
  //# sourceMappingURL=shadertoy-prelude.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shadertoy-prelude.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/shader/shadertoy-prelude.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,eAAO,MAAM,0BAA0B,gqBA0BtC,CAAC;AAEF,eAAO,MAAM,2BAA2B,wEAIvC,CAAC;AAEF,eAAO,MAAM,iBAAiB,2IAM7B,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQ5E"}
1
+ {"version":3,"file":"shadertoy-prelude.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/shader/shadertoy-prelude.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,gBAAgB,sBAC5B,CAAC;AAEF,+CAA+C;AAC/C,eAAO,MAAM,uBAAuB,ogCAoCnC,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,0BAA0B,QACK,CAAC;AAE7C,eAAO,MAAM,2BAA2B,wEAIvC,CAAC;AAEF,eAAO,MAAM,iBAAiB,2IAM7B,CAAC;AAEF,wFAAwF;AACxF,eAAO,MAAM,uBAAuB,gHAKnC,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQ1E;AAED,sDAAsD;AACtD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED,2EAA2E;AAC3E,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,MAAM,CAER"}
@@ -1,4 +1,17 @@
1
1
  export type ShaderPassId = "image" | "bufferA" | "bufferB" | "bufferC" | "bufferD";
2
+ /** Format interne des buffers A–D (Image = toujours le canvas RGBA8). */
3
+ export type ShaderBufferFormat = "rgba8" | "rgba16f" | "rgba32f";
4
+ export declare function parseBufferFormat(value: string | null | undefined): ShaderBufferFormat;
5
+ /**
6
+ * Hors viewport : libérer textures/FBO ?
7
+ * - `true` / `false` — forcé
8
+ * - `auto` (défaut) — libère sauf si une passe lit `self` (état conservé)
9
+ */
10
+ export type ReleaseOffscreen = boolean | "auto";
11
+ export declare function parseReleaseOffscreen(value: string | null | undefined): ReleaseOffscreen;
12
+ /** Au moins un canal `self` (feedback frame précédente). */
13
+ export declare function channelsUseSelf(channels: Iterable<readonly ChannelSource[]>): boolean;
14
+ export declare function shouldReleaseWhenOffscreen(mode: ReleaseOffscreen, usesSelf: boolean): boolean;
2
15
  export type ChannelSource = {
3
16
  kind: "url";
4
17
  url: string;
@@ -141,10 +154,17 @@ export type SonicShaderConfig = {
141
154
  aspectRatio?: string;
142
155
  dprMax?: number;
143
156
  /**
144
- * Hors viewport : libère textures/FBO (défaut `true`), sans loseContext.
157
+ * Format des buffers A–D : `rgba8` (défaut) \| `rgba16f` \| `rgba32f`.
158
+ * Requis pour des valeurs signées / hors [0,1] (ex. tenseur Harris).
159
+ * Repli auto en `rgba8` si `EXT_color_buffer_float` manque.
160
+ */
161
+ bufferFormat?: ShaderBufferFormat;
162
+ /**
163
+ * Hors viewport : libère textures/FBO, sans loseContext.
164
+ * `auto` (défaut) : ne libère pas si une passe lit `self`.
145
165
  * Le slot navigateur est libéré au disconnect.
146
166
  */
147
- releaseOffscreen?: boolean;
167
+ releaseOffscreen?: ReleaseOffscreen;
148
168
  };
149
169
  /** Parse `hover-param` → slot ou `null` si désactivé / invalide. */
150
170
  export declare function parseHoverParam(value: string | number | null | undefined): ShaderParamSlot | null;
@@ -231,15 +251,17 @@ export type ReadRectResult = {
231
251
  y: number;
232
252
  width: number;
233
253
  height: number;
234
- data: Uint8Array;
254
+ /** `Uint8Array` (RGBA8) ou `Float32Array` (buffers flottants). */
255
+ data: Uint8Array | Float32Array;
235
256
  };
236
257
  /** Parse `extract-source` / `extract-mask` → pass id ou null. */
237
258
  export declare function parseExtractPass(value: string | null | undefined): ShaderPassId | null;
238
259
  /**
239
260
  * NMS simple sur canal R (RGBA row-major, origine bas-gauche comme WebGL).
240
261
  * Retourne peaks triés par score décroissant.
262
+ * Accepte Uint8 (0–255) ou Float32 (scores déjà dans ~[0,1]).
241
263
  */
242
- export declare function findPeaks(data: Uint8Array, width: number, height: number, options?: FindPeaksOptions): ShaderPeak[];
264
+ export declare function findPeaks(data: Uint8Array | Float32Array, width: number, height: number, options?: FindPeaksOptions): ShaderPeak[];
243
265
  /** Clamp + convertit un ROI normalisé en pixels drawing-buffer. */
244
266
  export declare function roiToPixels(roi: ShaderRoi, bufW: number, bufH: number, defaultPatchPx: number, maxPatchPx?: number): {
245
267
  x: number;
@@ -247,13 +269,15 @@ export declare function roiToPixels(roi: ShaderRoi, bufW: number, bufH: number,
247
269
  w: number;
248
270
  h: number;
249
271
  } | null;
250
- export declare function meanRgba(data: Uint8Array): {
272
+ export declare function meanRgba(data: Uint8Array | Float32Array): {
251
273
  r: number;
252
274
  g: number;
253
275
  b: number;
254
276
  a: number;
255
277
  luma: number;
256
278
  };
279
+ /** Convertit un buffer RGBA (byte ou float 0–1) en Uint8 pour canvas / blob. */
280
+ export declare function rgbaToUint8(data: Uint8Array | Float32Array): Uint8Array;
257
281
  export declare class ShaderCompileError extends Error {
258
282
  readonly pass: ShaderPassId | "vertex" | "link";
259
283
  readonly infoLog: string;