@supersoniks/concorde 4.9.97-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 (171) hide show
  1. package/build-infos.json +1 -1
  2. package/concorde-3d.bundle.js +201 -152
  3. package/concorde-3d.es.js +14621 -13823
  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 +3236 -2865
  10. package/concorde-webgpu.bundle.js +43 -32
  11. package/concorde-webgpu.es.js +2977 -2618
  12. package/dist/concorde-3d.bundle.js +201 -152
  13. package/dist/concorde-3d.es.js +14621 -13823
  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 +3236 -2865
  20. package/dist/concorde-webgpu.bundle.js +43 -32
  21. package/dist/concorde-webgpu.es.js +2977 -2618
  22. package/dist/js/core/components/functional/3d/3d.js +100 -2
  23. package/dist/js/core/components/functional/3d/3d.js.map +1 -1
  24. package/dist/js/core/components/functional/3d/constants.js +3 -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/frame-source.js +22 -0
  31. package/dist/js/core/components/functional/3d/frame-source.js.map +1 -0
  32. package/dist/js/core/components/functional/3d/life.js +2 -1
  33. package/dist/js/core/components/functional/3d/life.js.map +1 -1
  34. package/dist/js/core/components/functional/3d/out-publish.js +3 -2
  35. package/dist/js/core/components/functional/3d/out-publish.js.map +1 -1
  36. package/dist/js/core/components/functional/3d/playback.js +6 -1
  37. package/dist/js/core/components/functional/3d/playback.js.map +1 -1
  38. package/dist/js/core/components/functional/3d/post-bind.js +207 -0
  39. package/dist/js/core/components/functional/3d/post-bind.js.map +1 -0
  40. package/dist/js/core/components/functional/3d/post-channels.js +39 -0
  41. package/dist/js/core/components/functional/3d/post-channels.js.map +1 -0
  42. package/dist/js/core/components/functional/3d/post-fx.js +495 -0
  43. package/dist/js/core/components/functional/3d/post-fx.js.map +1 -0
  44. package/dist/js/core/components/functional/3d/props.js +142 -0
  45. package/dist/js/core/components/functional/3d/props.js.map +1 -1
  46. package/dist/js/core/components/functional/3d/reload.js +5 -0
  47. package/dist/js/core/components/functional/3d/reload.js.map +1 -1
  48. package/dist/js/core/components/functional/3d/runtime.js +80 -3
  49. package/dist/js/core/components/functional/3d/runtime.js.map +1 -1
  50. package/dist/js/core/components/functional/3d/scene-runtime.js +1 -1
  51. package/dist/js/core/components/functional/3d/scene-runtime.js.map +1 -1
  52. package/dist/js/core/components/functional/3d/tune.js +21 -0
  53. package/dist/js/core/components/functional/3d/tune.js.map +1 -1
  54. package/dist/js/core/components/functional/3d/updated.js +13 -1
  55. package/dist/js/core/components/functional/3d/updated.js.map +1 -1
  56. package/dist/js/core/components/functional/shader/gl-runtime.js +280 -31
  57. package/dist/js/core/components/functional/shader/gl-runtime.js.map +1 -1
  58. package/dist/js/core/components/functional/shader/shader.js +207 -61
  59. package/dist/js/core/components/functional/shader/shader.js.map +1 -1
  60. package/dist/js/core/components/functional/shader/shadertoy-prelude.js +39 -5
  61. package/dist/js/core/components/functional/shader/shadertoy-prelude.js.map +1 -1
  62. package/dist/js/core/components/functional/shader/types.js +58 -7
  63. package/dist/js/core/components/functional/shader/types.js.map +1 -1
  64. package/dist/js/core/components/functional/webgpu/gl-fallback.js +27 -6
  65. package/dist/js/core/components/functional/webgpu/gl-fallback.js.map +1 -1
  66. package/dist/js/core/components/functional/webgpu/gpu-runtime.js +115 -13
  67. package/dist/js/core/components/functional/webgpu/gpu-runtime.js.map +1 -1
  68. package/dist/js/core/components/functional/webgpu/helpers.js +8 -2
  69. package/dist/js/core/components/functional/webgpu/helpers.js.map +1 -1
  70. package/dist/js/core/components/functional/webgpu/webgpu.js +43 -1
  71. package/dist/js/core/components/functional/webgpu/webgpu.js.map +1 -1
  72. package/dist/js/core/utils/mediaRef.js +86 -0
  73. package/dist/js/core/utils/mediaRef.js.map +1 -1
  74. package/dist/types/core/components/functional/3d/3d.d.ts +31 -3
  75. package/dist/types/core/components/functional/3d/3d.d.ts.map +1 -1
  76. package/dist/types/core/components/functional/3d/constants.d.ts +1 -1
  77. package/dist/types/core/components/functional/3d/constants.d.ts.map +1 -1
  78. package/dist/types/core/components/functional/3d/ensure.d.ts +3 -0
  79. package/dist/types/core/components/functional/3d/ensure.d.ts.map +1 -1
  80. package/dist/types/core/components/functional/3d/form-params.d.ts.map +1 -1
  81. package/dist/types/core/components/functional/3d/frame-source.d.ts +23 -0
  82. package/dist/types/core/components/functional/3d/frame-source.d.ts.map +1 -0
  83. package/dist/types/core/components/functional/3d/life.d.ts +2 -0
  84. package/dist/types/core/components/functional/3d/life.d.ts.map +1 -1
  85. package/dist/types/core/components/functional/3d/out-publish.d.ts +1 -0
  86. package/dist/types/core/components/functional/3d/out-publish.d.ts.map +1 -1
  87. package/dist/types/core/components/functional/3d/playback.d.ts +9 -0
  88. package/dist/types/core/components/functional/3d/playback.d.ts.map +1 -1
  89. package/dist/types/core/components/functional/3d/post-bind.d.ts +52 -0
  90. package/dist/types/core/components/functional/3d/post-bind.d.ts.map +1 -0
  91. package/dist/types/core/components/functional/3d/post-channels.d.ts +40 -0
  92. package/dist/types/core/components/functional/3d/post-channels.d.ts.map +1 -0
  93. package/dist/types/core/components/functional/3d/post-fx.d.ts +73 -0
  94. package/dist/types/core/components/functional/3d/post-fx.d.ts.map +1 -0
  95. package/dist/types/core/components/functional/3d/props.d.ts +42 -0
  96. package/dist/types/core/components/functional/3d/props.d.ts.map +1 -1
  97. package/dist/types/core/components/functional/3d/reload.d.ts +3 -0
  98. package/dist/types/core/components/functional/3d/reload.d.ts.map +1 -1
  99. package/dist/types/core/components/functional/3d/runtime.d.ts +16 -1
  100. package/dist/types/core/components/functional/3d/runtime.d.ts.map +1 -1
  101. package/dist/types/core/components/functional/3d/scene-runtime.d.ts +1 -1
  102. package/dist/types/core/components/functional/3d/scene-runtime.d.ts.map +1 -1
  103. package/dist/types/core/components/functional/3d/tune.d.ts +5 -0
  104. package/dist/types/core/components/functional/3d/tune.d.ts.map +1 -1
  105. package/dist/types/core/components/functional/3d/types.d.ts +16 -0
  106. package/dist/types/core/components/functional/3d/types.d.ts.map +1 -1
  107. package/dist/types/core/components/functional/3d/updated.d.ts.map +1 -1
  108. package/dist/types/core/components/functional/shader/gl-runtime.d.ts +53 -2
  109. package/dist/types/core/components/functional/shader/gl-runtime.d.ts.map +1 -1
  110. package/dist/types/core/components/functional/shader/shader.d.ts +41 -9
  111. package/dist/types/core/components/functional/shader/shader.d.ts.map +1 -1
  112. package/dist/types/core/components/functional/shader/shadertoy-prelude.d.ts +16 -2
  113. package/dist/types/core/components/functional/shader/shadertoy-prelude.d.ts.map +1 -1
  114. package/dist/types/core/components/functional/shader/types.d.ts +35 -5
  115. package/dist/types/core/components/functional/shader/types.d.ts.map +1 -1
  116. package/dist/types/core/components/functional/webgpu/gl-fallback.d.ts +4 -0
  117. package/dist/types/core/components/functional/webgpu/gl-fallback.d.ts.map +1 -1
  118. package/dist/types/core/components/functional/webgpu/gpu-runtime.d.ts +14 -0
  119. package/dist/types/core/components/functional/webgpu/gpu-runtime.d.ts.map +1 -1
  120. package/dist/types/core/components/functional/webgpu/helpers.d.ts +1 -0
  121. package/dist/types/core/components/functional/webgpu/helpers.d.ts.map +1 -1
  122. package/dist/types/core/components/functional/webgpu/webgpu.d.ts +11 -1
  123. package/dist/types/core/components/functional/webgpu/webgpu.d.ts.map +1 -1
  124. package/dist/types/core/utils/mediaRef.d.ts +34 -0
  125. package/dist/types/core/utils/mediaRef.d.ts.map +1 -1
  126. package/package.json +49 -1
  127. package/src/core/components/functional/3d/3d.md +46 -3
  128. package/src/core/components/functional/3d/3d.spec.ts +42 -0
  129. package/src/core/components/functional/3d/3d.ts +112 -3
  130. package/src/core/components/functional/3d/constants.ts +3 -0
  131. package/src/core/components/functional/3d/ensure.ts +11 -3
  132. package/src/core/components/functional/3d/form-params.ts +2 -0
  133. package/src/core/components/functional/3d/frame-source.ts +30 -0
  134. package/src/core/components/functional/3d/life.ts +4 -1
  135. package/src/core/components/functional/3d/out-publish.ts +4 -3
  136. package/src/core/components/functional/3d/playback.ts +13 -1
  137. package/src/core/components/functional/3d/post-bind.ts +262 -0
  138. package/src/core/components/functional/3d/post-channels.spec.ts +36 -0
  139. package/src/core/components/functional/3d/post-channels.ts +69 -0
  140. package/src/core/components/functional/3d/post-fx.ts +594 -0
  141. package/src/core/components/functional/3d/props.ts +45 -0
  142. package/src/core/components/functional/3d/reload.ts +8 -0
  143. package/src/core/components/functional/3d/runtime.ts +93 -4
  144. package/src/core/components/functional/3d/scene-runtime.ts +3 -0
  145. package/src/core/components/functional/3d/tune.ts +21 -0
  146. package/src/core/components/functional/3d/types.ts +14 -0
  147. package/src/core/components/functional/3d/updated.ts +17 -1
  148. package/src/core/components/functional/shader/gl-runtime.ts +374 -36
  149. package/src/core/components/functional/shader/shader.md +36 -11
  150. package/src/core/components/functional/shader/shader.spec.ts +350 -3
  151. package/src/core/components/functional/shader/shader.ts +236 -59
  152. package/src/core/components/functional/shader/shadertoy-prelude.ts +49 -5
  153. package/src/core/components/functional/shader/types.ts +92 -13
  154. package/src/core/components/functional/webgpu/gl-fallback.ts +28 -4
  155. package/src/core/components/functional/webgpu/gpu-runtime.ts +154 -18
  156. package/src/core/components/functional/webgpu/helpers.ts +8 -2
  157. package/src/core/components/functional/webgpu/webgpu.md +13 -2
  158. package/src/core/components/functional/webgpu/webgpu.spec.ts +37 -0
  159. package/src/core/components/functional/webgpu/webgpu.ts +48 -1
  160. package/src/core/utils/mediaRef.spec.ts +61 -0
  161. package/src/core/utils/mediaRef.ts +108 -0
  162. package/src/docs/_misc/visual-stack.md +37 -3
  163. package/src/docs/components/docs-demo-sources.ts +42 -0
  164. package/src/docs/docs.ts +3 -0
  165. package/src/docs/example/docs-3d-post-depth-demo.ts +68 -0
  166. package/src/docs/example/docs-3d-shader-live-demo.ts +98 -0
  167. package/src/docs/example/docs-3d-webgpu-live-demo.ts +83 -0
  168. package/src/docs/example/docs-harris-webgpu-demo.ts +53 -55
  169. package/src/docs/search/docs-search.json +2583 -863
  170. package/src/tsconfig.json +36 -0
  171. package/src/tsconfig.tsbuildinfo +1 -1
@@ -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;
@@ -129,5 +138,12 @@ export type Sonic3dOutput = {
129
138
  frameUrl?: string;
130
139
  /** MediaRef du canvas (url + dimensions) — chaînable vers `sonic-shader`. */
131
140
  snapshot?: Sonic3dSnapshot;
141
+ /**
142
+ * Pont live (Lot 1) : `{ element: sonic-3d }` pour `channel0` sans JPEG.
143
+ * Publié une fois au ready si un lecteur écoute `frameSource`.
144
+ */
145
+ frameSource?: {
146
+ element: Element;
147
+ };
132
148
  };
133
149
  //# sourceMappingURL=types.d.ts.map
@@ -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":"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"}
@@ -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;
@@ -6,6 +6,31 @@ export type FrameUniforms = {
6
6
  mouse: [number, number, number, number];
7
7
  params: [number, number, number, number];
8
8
  };
9
+ /**
10
+ * Décide si un slot élément doit être re-uploadé cette frame.
11
+ * Exporté pour les tests unitaires (stratégie par type).
12
+ */
13
+ export declare function shouldUploadElementFrame(source: unknown, lastSeq: number, lastSrc?: string): {
14
+ upload: boolean;
15
+ texSource: TexImageSource | null;
16
+ nextSrc?: string;
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;
9
34
  export declare function parseChannelSource(value: string | undefined | null, fallbackUrl: string): ChannelSource;
10
35
  export declare class ShaderToyRuntime {
11
36
  private gl;
@@ -20,14 +45,36 @@ export declare class ShaderToyRuntime {
20
45
  private passChannels;
21
46
  private activePasses;
22
47
  private blackTexture;
48
+ private elementResolver;
49
+ private bufferFmt;
23
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;
24
58
  /** True si le contexte a été perdu / déjà disposé. */
25
59
  get isLost(): boolean;
26
60
  private initGeometry;
27
61
  resize(width: number, height: number): void;
28
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;
29
69
  ensureTextures(urls: string[]): Promise<void>;
30
- /** Upload the current video frame for any channel backed by a video element. */
70
+ /** Alloue un slot texture vide pour un canal `#élément` (upload live ensuite). */
71
+ ensureElementTexture(key: string): void;
72
+ /**
73
+ * Upload live des canaux élément / vidéo.
74
+ * `resolveEl(key)` fournit l’Element (résolution `#id` côté host).
75
+ */
76
+ updateElementTextures(resolveEl?: (key: string) => Element | null): void;
77
+ /** @deprecated alias — préférer `updateElementTextures`. */
31
78
  updateVideoTextures(): void;
32
79
  setVideosPlaying(playing: boolean): void;
33
80
  /** Size of a loaded external texture/video, if any. */
@@ -40,6 +87,8 @@ export declare class ShaderToyRuntime {
40
87
  private resolveChannel;
41
88
  private bindChannels;
42
89
  private setCommonUniforms;
90
+ /** Host fournit la résolution `#id` / live Element. */
91
+ setElementResolver(fn: ((key: string) => Element | null) | null): void;
43
92
  render(frame: FrameUniforms): void;
44
93
  /**
45
94
  * Lit un rectangle du framebuffer Image (origine bas-gauche, coords drawing buffer).
@@ -48,6 +97,7 @@ export declare class ShaderToyRuntime {
48
97
  readRect(x: number, y: number, w: number, h: number): ReadRectResult | null;
49
98
  /**
50
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`.
51
101
  */
52
102
  readBufferRect(pass: ShaderPassId, x: number, y: number, w: number, h: number): ReadRectResult | null;
53
103
  /**
@@ -68,4 +118,5 @@ export declare class ShaderToyRuntime {
68
118
  */
69
119
  dispose(loseContext?: boolean): void;
70
120
  }
121
+ export {};
71
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":"AACA,OAAO,EACL,aAAa,EACb,YAAY,EACZ,cAAc,EAEd,YAAY,EACZ,aAAa,EACd,MAAM,SAAS,CAAC;AAmDjB,MAAM,MAAM,aAAa,GAAG;IAC1B,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;CAC1C,CAAC;AAwJF,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAChC,WAAW,EAAE,MAAM,GAClB,aAAa,CAuBf;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,GAAG,CAAuC;IAClD,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,QAAQ,CAAsC;IACtD,OAAO,CAAC,OAAO,CAAuD;IACtE,OAAO,CAAC,QAAQ,CAAsC;IACtD,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,YAAY,CAAyC;IAC7D,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,YAAY,CAA6B;gBAErC,MAAM,EAAE,iBAAiB;IA8BrC,sDAAsD;IACtD,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,OAAO,CAAC,YAAY;IAmBpB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAiBpC,UAAU,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC;IAkDtE,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;IAKnC,gFAAgF;IAChF,mBAAmB;IAqBnB,gBAAgB,CAAC,OAAO,EAAE,OAAO;IAWjC,uDAAuD;IACvD,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAMrE,OAAO,CAAC,WAAW;IAmCnB,OAAO,CAAC,gBAAgB;IAwDxB,OAAO,CAAC,cAAc;IAkCtB,OAAO,CAAC,YAAY;IA4BpB,OAAO,CAAC,iBAAiB;IA4CzB,MAAM,CAAC,KAAK,EAAE,aAAa;IAmC3B;;;OAGG;IACH,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAI3E;;OAEG;IACH,cAAc,CACZ,IAAI,EAAE,YAAY,EAClB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,cAAc,GAAG,IAAI;IAOxB;;;OAGG;IACH,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IAMjE,OAAO,CAAC,mBAAmB;IAgC3B,IAAI,IAAI,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAE5C;IAED,eAAe;IAYf;;;;OAIG;IACH,OAAO,CAAC,WAAW,UAAO;CAqC3B"}
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,6 +1,10 @@
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
+ /** Valeur canal depuis DP : string (url, buffer-a, #id) | MediaRef → url | { element }. */
5
+ declare function channelFormValue(value: unknown): string | undefined;
6
+ /** Exposé pour tests. */
7
+ export { channelFormValue };
4
8
  /**
5
9
  * ShaderToy-compatible multipass renderer (Image + Buffer A–D + Common).
6
10
  * Opt-in: import `@supersoniks/concorde/shader`.
@@ -65,11 +69,19 @@ export declare class SonicShader extends LitElement {
65
69
  /** Vitesse d’easing hover on/off (1/s, défaut 10). */
66
70
  hoverSpeed: number;
67
71
  /**
68
- * Libère le contexte WebGL hors viewport (défaut true).
69
- * 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.
70
75
  */
71
- releaseOffscreen: boolean;
76
+ releaseOffscreen: ReleaseOffscreen;
72
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;
73
85
  /** Generic float uniforms `uParam0`…`uParam3` (no shader rebuild). */
74
86
  param0: number;
75
87
  param1: number;
@@ -124,6 +136,8 @@ export declare class SonicShader extends LitElement {
124
136
  private startTime;
125
137
  private lastTime;
126
138
  private frame;
139
+ /** Incrémenté après chaque render (contrat SonicFrameSource). */
140
+ frameSeq: number;
127
141
  private mouseVec;
128
142
  /** Cible pointeur (px drawing buffer, origine bas-gauche). */
129
143
  private mouseTarget;
@@ -149,6 +163,9 @@ export declare class SonicShader extends LitElement {
149
163
  private resizeObserver;
150
164
  private intersectionObserver;
151
165
  private rebuildToken;
166
+ /** Annule un `rebindChannels` en vol si rebuild / release intervient. */
167
+ private rebindToken;
168
+ private frameConsumers;
152
169
  private ready;
153
170
  private formPublisher;
154
171
  private outPublisher;
@@ -189,6 +206,10 @@ export declare class SonicShader extends LitElement {
189
206
  */
190
207
  private releaseRuntime;
191
208
  private getCanvas;
209
+ /** Contrat SonicFrameSource — canvas lisible pour un autre sonic-shader. */
210
+ getFrameCanvas(): HTMLCanvasElement | null;
211
+ /** Résout `#id` dans getRootNode() puis document ; clés live `__sonic_frame_`. */
212
+ private lookupElement;
192
213
  private bindContextEvents;
193
214
  private unbindContextEvents;
194
215
  private onContextLost;
@@ -198,6 +219,17 @@ export declare class SonicShader extends LitElement {
198
219
  private syncSize;
199
220
  private buildChannels;
200
221
  private collectUrls;
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;
201
233
  private rebuild;
202
234
  private emitError;
203
235
  private shouldAnimate;
@@ -260,12 +292,12 @@ export declare class SonicShader extends LitElement {
260
292
  private onPointerLeave;
261
293
  render(): import("lit-html").TemplateResult<1>;
262
294
  }
263
- export { parseChannelSource, ShaderToyRuntime } from "./gl-runtime";
295
+ export { parseChannelSource, ShaderToyRuntime, shouldUploadElementFrame, resolveBufferGlFormat, resetBufferFormatWarnFlag } from "./gl-runtime";
264
296
  export { buildFragmentSource } from "./shadertoy-prelude";
265
- export type { ChannelSource, ShaderExtractItem, ShaderExtractOutput, ShaderExtractPass, ShaderHoverParam, ShaderMouseMode, ShaderParamSlot, ShaderPassId, ShaderPeak, ShaderRoi, ShaderSources, SonicShaderConfig, SonicShaderOutput, } from "./types";
266
- export type { SonicMediaRef } from "@supersoniks/concorde/core/utils/mediaRef";
267
- export { toMediaUrl, cloneMediaRef, } from "@supersoniks/concorde/core/utils/mediaRef";
268
- export { findPeaks, meanRgba, parseExtractPass, parseHoverParam, roiToPixels, ShaderCompileError, } from "./types";
297
+ export type { ChannelSource, ReleaseOffscreen, ShaderBufferFormat, ShaderExtractItem, ShaderExtractOutput, ShaderExtractPass, ShaderHoverParam, ShaderMouseMode, ShaderParamSlot, ShaderPassId, ShaderPeak, ShaderRoi, ShaderSources, SonicShaderConfig, SonicShaderOutput, } from "./types";
298
+ export type { SonicMediaRef, SonicFrameSource, } from "@supersoniks/concorde/core/utils/mediaRef";
299
+ export { toMediaUrl, cloneMediaRef, isFrameSource, mediaElementKey, } from "@supersoniks/concorde/core/utils/mediaRef";
300
+ export { channelsUseSelf, findPeaks, meanRgba, parseBufferFormat, parseExtractPass, parseHoverParam, parseReleaseOffscreen, roiToPixels, rgbaToUint8, shouldReleaseWhenOffscreen, ShaderCompileError, } from "./types";
269
301
  declare global {
270
302
  interface HTMLElementTagNameMap {
271
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;
@@ -9,6 +22,12 @@ export type ChannelSource = {
9
22
  kind: "self";
10
23
  } | {
11
24
  kind: "none";
25
+ }
26
+ /** Élément page (`#id`) — upload live via `updateElementTextures`. */
27
+ | {
28
+ kind: "element";
29
+ key: string;
30
+ el?: Element | null;
12
31
  };
13
32
  export type PassChannels = [
14
33
  ChannelSource,
@@ -135,10 +154,17 @@ export type SonicShaderConfig = {
135
154
  aspectRatio?: string;
136
155
  dprMax?: number;
137
156
  /**
138
- * 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`.
139
165
  * Le slot navigateur est libéré au disconnect.
140
166
  */
141
- releaseOffscreen?: boolean;
167
+ releaseOffscreen?: ReleaseOffscreen;
142
168
  };
143
169
  /** Parse `hover-param` → slot ou `null` si désactivé / invalide. */
144
170
  export declare function parseHoverParam(value: string | number | null | undefined): ShaderParamSlot | null;
@@ -225,15 +251,17 @@ export type ReadRectResult = {
225
251
  y: number;
226
252
  width: number;
227
253
  height: number;
228
- data: Uint8Array;
254
+ /** `Uint8Array` (RGBA8) ou `Float32Array` (buffers flottants). */
255
+ data: Uint8Array | Float32Array;
229
256
  };
230
257
  /** Parse `extract-source` / `extract-mask` → pass id ou null. */
231
258
  export declare function parseExtractPass(value: string | null | undefined): ShaderPassId | null;
232
259
  /**
233
260
  * NMS simple sur canal R (RGBA row-major, origine bas-gauche comme WebGL).
234
261
  * Retourne peaks triés par score décroissant.
262
+ * Accepte Uint8 (0–255) ou Float32 (scores déjà dans ~[0,1]).
235
263
  */
236
- 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[];
237
265
  /** Clamp + convertit un ROI normalisé en pixels drawing-buffer. */
238
266
  export declare function roiToPixels(roi: ShaderRoi, bufW: number, bufH: number, defaultPatchPx: number, maxPatchPx?: number): {
239
267
  x: number;
@@ -241,13 +269,15 @@ export declare function roiToPixels(roi: ShaderRoi, bufW: number, bufH: number,
241
269
  w: number;
242
270
  h: number;
243
271
  } | null;
244
- export declare function meanRgba(data: Uint8Array): {
272
+ export declare function meanRgba(data: Uint8Array | Float32Array): {
245
273
  r: number;
246
274
  g: number;
247
275
  b: number;
248
276
  a: number;
249
277
  luma: number;
250
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;
251
281
  export declare class ShaderCompileError extends Error {
252
282
  readonly pass: ShaderPassId | "vertex" | "link";
253
283
  readonly infoLog: string;
@@ -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":"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"}
@@ -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;IAExD,OAAO;IAMP,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,qBAAqB;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;IAmB3B,yDAAyD;IACnD,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBxE,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,IAAI,CAAC,KAAK,EAAE,gBAAgB;IAgB5B,OAAO,CAAC,WAAW,UAAO;IAM1B,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,WAAW;CAGpB"}
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":"AAQA,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,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;IAmClE,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,aAAa;IAkBrB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,WAAW;CAGpB"}
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,CAOnE"}
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"}
@@ -57,6 +57,8 @@ export declare class SonicWebGpu extends LitElement {
57
57
  raf: number;
58
58
  startTime: number;
59
59
  frame: number;
60
+ /** Contrat SonicFrameSource — incrémenté après chaque draw. */
61
+ frameSeq: number;
60
62
  mouseVec: [number, number, number, number];
61
63
  /** Cible normalisée (0–1, origine haut-gauche) depuis dataProvider — tracking / DP. */
62
64
  remoteTarget: {
@@ -70,6 +72,7 @@ export declare class SonicWebGpu extends LitElement {
70
72
  private resizeObserver;
71
73
  private intersectionObserver;
72
74
  private rebuildToken;
75
+ private frameConsumers;
73
76
  ready: boolean;
74
77
  /** Évite deux boots concurrents (IO + rAF) qui disposent le fallback. */
75
78
  private boot;
@@ -96,7 +99,11 @@ export declare class SonicWebGpu extends LitElement {
96
99
  private ensureCanvas;
97
100
  /** Jette le canvas (verrouillé webgpu/webgl) et en crée un neuf. */
98
101
  private replaceCanvas;
102
+ /** Résout `#id` dans getRootNode() puis document ; clés live `__sonic_frame_`. */
103
+ private lookupElement;
99
104
  private releaseRuntime;
105
+ /** Enregistre les producteurs live pour play-offscreen auto. */
106
+ private syncFrameConsumers;
100
107
  private rebuild;
101
108
  private syncSize;
102
109
  private syncVisibility;
@@ -105,6 +112,8 @@ export declare class SonicWebGpu extends LitElement {
105
112
  private startLoop;
106
113
  private stopLoop;
107
114
  private maybePublishOut;
115
+ /** Contrat SonicFrameSource — canvas WebGPU / fallback. */
116
+ getFrameCanvas(): HTMLCanvasElement | null;
108
117
  private revokeFrameUrl;
109
118
  private onPointerMove;
110
119
  private onPointerDown;
@@ -116,8 +125,9 @@ export declare class SonicWebGpu extends LitElement {
116
125
  export type { SonicWebGpuBackend, SonicWebGpuBackendPrefer, SonicWebGpuConfig, SonicWebGpuKernel, SonicWebGpuOutput, } from "./types";
117
126
  export { parseBackendPrefer, parseKernel, WebGpuCompileError } from "./types";
118
127
  export { buildWgslSource, DEFAULT_MAIN_IMAGE } from "./wgsl-prelude";
119
- export { WebGpuRuntime } from "./gpu-runtime";
128
+ export { WebGpuRuntime, channelTextureNeedsRecreate } from "./gpu-runtime";
120
129
  export { WebGl2FallbackRuntime } from "./gl-fallback";
121
130
  export { Canvas2dFallbackRuntime } from "./canvas2d-fallback";
122
131
  export { ParticlesRuntime } from "./particles-runtime";
132
+ export { channelFormValue } from "./helpers";
123
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":"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"}
1
+ {"version":3,"file":"webgpu.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/webgpu/webgpu.ts"],"names":[],"mappings":"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"}