@supersoniks/concorde 4.9.97-visual-stack.0 → 4.9.98-visual-stack.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build-infos.json +1 -1
- package/concorde-3d.bundle.js +143 -143
- package/concorde-3d.es.js +1393 -1377
- package/concorde-core.bundle.js +1 -1
- package/concorde-core.es.js +1 -1
- package/concorde-hugging-face-infer.bundle.js +1 -1
- package/concorde-hugging-face-infer.es.js +1 -1
- package/concorde-shader.bundle.js +19 -19
- package/concorde-shader.es.js +2317 -2172
- package/concorde-webgpu.bundle.js +30 -30
- package/concorde-webgpu.es.js +2439 -2346
- package/dist/concorde-3d.bundle.js +143 -143
- package/dist/concorde-3d.es.js +1393 -1377
- package/dist/concorde-core.bundle.js +1 -1
- package/dist/concorde-core.es.js +1 -1
- package/dist/concorde-hugging-face-infer.bundle.js +1 -1
- package/dist/concorde-hugging-face-infer.es.js +1 -1
- package/dist/concorde-shader.bundle.js +19 -19
- package/dist/concorde-shader.es.js +2317 -2172
- package/dist/concorde-webgpu.bundle.js +30 -30
- package/dist/concorde-webgpu.es.js +2439 -2346
- package/dist/js/core/components/functional/3d/3d.js +11 -1
- package/dist/js/core/components/functional/3d/3d.js.map +1 -1
- package/dist/js/core/components/functional/3d/constants.js +2 -0
- package/dist/js/core/components/functional/3d/constants.js.map +1 -1
- package/dist/js/core/components/functional/3d/frame-source.js +22 -0
- package/dist/js/core/components/functional/3d/frame-source.js.map +1 -0
- package/dist/js/core/components/functional/3d/reload.js +3 -0
- package/dist/js/core/components/functional/3d/reload.js.map +1 -1
- package/dist/js/core/components/functional/shader/gl-runtime.js +152 -17
- package/dist/js/core/components/functional/shader/gl-runtime.js.map +1 -1
- package/dist/js/core/components/functional/shader/shader.js +55 -6
- package/dist/js/core/components/functional/shader/shader.js.map +1 -1
- package/dist/js/core/components/functional/shader/types.js.map +1 -1
- package/dist/js/core/components/functional/webgpu/webgpu.js +9 -0
- package/dist/js/core/components/functional/webgpu/webgpu.js.map +1 -1
- package/dist/js/core/utils/mediaRef.js +49 -0
- package/dist/js/core/utils/mediaRef.js.map +1 -1
- package/dist/types/core/components/functional/3d/3d.d.ts +7 -2
- package/dist/types/core/components/functional/3d/3d.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/constants.d.ts +1 -1
- package/dist/types/core/components/functional/3d/constants.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/frame-source.d.ts +23 -0
- package/dist/types/core/components/functional/3d/frame-source.d.ts.map +1 -0
- package/dist/types/core/components/functional/3d/reload.d.ts +3 -0
- package/dist/types/core/components/functional/3d/reload.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/types.d.ts +7 -0
- package/dist/types/core/components/functional/3d/types.d.ts.map +1 -1
- package/dist/types/core/components/functional/shader/gl-runtime.d.ts +20 -1
- package/dist/types/core/components/functional/shader/gl-runtime.d.ts.map +1 -1
- package/dist/types/core/components/functional/shader/shader.d.ts +14 -3
- package/dist/types/core/components/functional/shader/shader.d.ts.map +1 -1
- package/dist/types/core/components/functional/shader/types.d.ts +6 -0
- package/dist/types/core/components/functional/shader/types.d.ts.map +1 -1
- package/dist/types/core/components/functional/webgpu/webgpu.d.ts +4 -0
- package/dist/types/core/components/functional/webgpu/webgpu.d.ts.map +1 -1
- package/dist/types/core/utils/mediaRef.d.ts +19 -0
- package/dist/types/core/utils/mediaRef.d.ts.map +1 -1
- package/package.json +13 -1
- package/src/core/components/functional/3d/3d.md +12 -2
- package/src/core/components/functional/3d/3d.ts +12 -1
- package/src/core/components/functional/3d/constants.ts +2 -0
- package/src/core/components/functional/3d/frame-source.ts +30 -0
- package/src/core/components/functional/3d/reload.ts +6 -0
- package/src/core/components/functional/3d/types.ts +5 -0
- package/src/core/components/functional/shader/gl-runtime.ts +205 -24
- package/src/core/components/functional/shader/shader.md +10 -8
- package/src/core/components/functional/shader/shader.spec.ts +83 -3
- package/src/core/components/functional/shader/shader.ts +61 -6
- package/src/core/components/functional/shader/types.ts +3 -1
- package/src/core/components/functional/webgpu/webgpu.ts +9 -0
- package/src/core/utils/mediaRef.spec.ts +36 -0
- package/src/core/utils/mediaRef.ts +63 -0
- package/src/docs/_misc/visual-stack.md +18 -2
- package/src/docs/components/docs-demo-sources.ts +14 -0
- package/src/docs/docs.ts +1 -0
- package/src/docs/example/docs-3d-shader-live-demo.ts +98 -0
- package/src/docs/search/docs-search.json +2347 -877
- package/src/tsconfig.json +9 -0
- package/src/tsconfig.tsbuildinfo +1 -1
|
@@ -33,6 +33,8 @@ export declare class Sonic3d extends Sonic3dProps {
|
|
|
33
33
|
snapshotBusy: boolean;
|
|
34
34
|
frameUrls: string[];
|
|
35
35
|
snapshotSeq: number;
|
|
36
|
+
/** Contrat SonicFrameSource — incrémenté après chaque render. */
|
|
37
|
+
frameSeq: number;
|
|
36
38
|
lastFormOrbit: FormOrbit | null;
|
|
37
39
|
onFormMutation: () => void;
|
|
38
40
|
connectedCallback(): void;
|
|
@@ -46,6 +48,8 @@ export declare class Sonic3d extends Sonic3dProps {
|
|
|
46
48
|
bindOutPublisher: () => void;
|
|
47
49
|
private loop;
|
|
48
50
|
private drawFrame;
|
|
51
|
+
/** Contrat SonicFrameSource — canvas Three (preserveDrawingBuffer). */
|
|
52
|
+
getFrameCanvas(): HTMLCanvasElement | null;
|
|
49
53
|
onPointerMove: (e: PointerEvent) => void;
|
|
50
54
|
onPointerDown: (e: PointerEvent) => void;
|
|
51
55
|
onDblClick: () => void;
|
|
@@ -55,9 +59,10 @@ export declare class Sonic3d extends Sonic3dProps {
|
|
|
55
59
|
}
|
|
56
60
|
export { Sonic3dCameraMode } from "./constants";
|
|
57
61
|
export type { Sonic3dAsset, Sonic3dConfig, Sonic3dOutput, } from "./types";
|
|
58
|
-
export type { SonicMediaRef } from "@supersoniks/concorde/core/utils/mediaRef";
|
|
59
|
-
export { toMediaUrl, cloneMediaRef, } from "@supersoniks/concorde/core/utils/mediaRef";
|
|
62
|
+
export type { SonicMediaRef, SonicFrameSource } from "@supersoniks/concorde/core/utils/mediaRef";
|
|
63
|
+
export { toMediaUrl, cloneMediaRef, isFrameSource, } from "@supersoniks/concorde/core/utils/mediaRef";
|
|
60
64
|
export { frameCapture } from "./frame-capture";
|
|
65
|
+
export { frameSource } from "./frame-source";
|
|
61
66
|
declare global {
|
|
62
67
|
interface HTMLElementTagNameMap {
|
|
63
68
|
"sonic-3d": Sonic3d;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"3d.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/3d/3d.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAGvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGvC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAKpD;;;GAGG;AACH,qBACa,OAAQ,SAAQ,YAAY;IACvC,MAAM,CAAC,MAAM,0BAAiB;IAErB,OAAO,CAAC,YAAY,CAAM;IAEnC,0EAA0E;IAC1E,OAAO,EAAE,YAAY,GAAG,IAAI,CAAQ;IACpC,GAAG,SAAK;IACR,SAAS,SAAK;IACd,KAAK,SAAK;IACV,QAAQ,UAAS;IACjB,QAAQ,SAAO;IACf,QAAQ,SAAO;IACf,OAAO,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAChC,iBAAiB,SAAK;IACtB,MAAM,UAAQ;IACd,KAAK,UAAS;IACd,SAAS,UAAS;IAClB,SAAS,SAAK;IACd,cAAc,EAAE,cAAc,GAAG,IAAI,CAAQ;IAC7C,oBAAoB,EAAE,oBAAoB,GAAG,IAAI,CAAQ;IACzD,aAAa,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;IACrE,YAAY,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;IACpE,SAAS,SAAK;IACd,cAAc,SAAK;IACnB,YAAY,UAAS;IACrB,SAAS,EAAE,MAAM,EAAE,CAAM;IACzB,WAAW,SAAK;IAChB,aAAa,EAAE,SAAS,GAAG,IAAI,CAAQ;IAEvC,cAAc,aAGZ;IAEF,iBAAiB;IAkCR,gBAAgB,CACvB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,GAAG,IAAI,EACnD,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC1C,IAAI;IAKE,mBAAmB,CAC1B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,GAAG,IAAI,EACnD,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACvC,IAAI;IAOP,oBAAoB;IAKpB,SAAS,CAAC,YAAY;IAItB,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC;IAIjE,cAAc,aAAgD;IAC9D,YAAY,aAAyD;IACrE,gBAAgB,aAA8C;IAE9D,OAAO,CAAC,IAAI,CAMV;IAEF,OAAO,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"3d.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/3d/3d.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAGvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGvC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAKpD;;;GAGG;AACH,qBACa,OAAQ,SAAQ,YAAY;IACvC,MAAM,CAAC,MAAM,0BAAiB;IAErB,OAAO,CAAC,YAAY,CAAM;IAEnC,0EAA0E;IAC1E,OAAO,EAAE,YAAY,GAAG,IAAI,CAAQ;IACpC,GAAG,SAAK;IACR,SAAS,SAAK;IACd,KAAK,SAAK;IACV,QAAQ,UAAS;IACjB,QAAQ,SAAO;IACf,QAAQ,SAAO;IACf,OAAO,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAChC,iBAAiB,SAAK;IACtB,MAAM,UAAQ;IACd,KAAK,UAAS;IACd,SAAS,UAAS;IAClB,SAAS,SAAK;IACd,cAAc,EAAE,cAAc,GAAG,IAAI,CAAQ;IAC7C,oBAAoB,EAAE,oBAAoB,GAAG,IAAI,CAAQ;IACzD,aAAa,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;IACrE,YAAY,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;IACpE,SAAS,SAAK;IACd,cAAc,SAAK;IACnB,YAAY,UAAS;IACrB,SAAS,EAAE,MAAM,EAAE,CAAM;IACzB,WAAW,SAAK;IAChB,iEAAiE;IACjE,QAAQ,SAAK;IACb,aAAa,EAAE,SAAS,GAAG,IAAI,CAAQ;IAEvC,cAAc,aAGZ;IAEF,iBAAiB;IAkCR,gBAAgB,CACvB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,GAAG,IAAI,EACnD,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC1C,IAAI;IAKE,mBAAmB,CAC1B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,GAAG,IAAI,EACnD,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACvC,IAAI;IAOP,oBAAoB;IAKpB,SAAS,CAAC,YAAY;IAItB,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC;IAIjE,cAAc,aAAgD;IAC9D,YAAY,aAAyD;IACrE,gBAAgB,aAA8C;IAE9D,OAAO,CAAC,IAAI,CAMV;IAEF,OAAO,CAAC,SAAS;IAQjB,uEAAuE;IACvE,cAAc,IAAI,iBAAiB,GAAG,IAAI;IAK1C,aAAa,GAAI,GAAG,YAAY,UAAsC;IACtE,aAAa,GAAI,GAAG,YAAY,UAAsC;IACtE,UAAU,aAA2C;IACrD,cAAc,aAAwC;IACtD,cAAc,aAAwC;IAEtD,MAAM;CAQP;AAED,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EACV,YAAY,EACZ,aAAa,EACb,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AACjG,OAAO,EACL,UAAU,EACV,aAAa,EACb,aAAa,GACd,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,OAAO,CAAC;KACrB;CACF"}
|
|
@@ -38,6 +38,6 @@ export declare const FORM_INPUT_ONLY_KEYS: readonly ["src", "asset", "camera", "
|
|
|
38
38
|
* yaw / pitch / distance exclus : un `sonic-input name="yaw"` ne doit pas
|
|
39
39
|
* activer la pub télémétrie (sinon boucle form ↔ out).
|
|
40
40
|
*/
|
|
41
|
-
export declare const OUT_CONSUMER_KEYS: readonly ["time", "frame", "ready", "loading", "hovering", "pointerX", "pointerY", "camX", "camY", "camZ", "targetX", "targetY", "targetZ", "zoom", "hitX", "hitY", "hitZ", "hitObjectId", "frameUrl", "snapshot"];
|
|
41
|
+
export declare const OUT_CONSUMER_KEYS: readonly ["time", "frame", "ready", "loading", "hovering", "pointerX", "pointerY", "camX", "camY", "camZ", "targetX", "targetY", "targetZ", "zoom", "hitX", "hitY", "hitZ", "hitObjectId", "frameUrl", "snapshot", "frameSource"];
|
|
42
42
|
export type Sonic3dFormControlKey = (typeof FORM_CONTROL_KEYS)[number];
|
|
43
43
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/3d/constants.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAC;AACX,MAAM,MAAM,iBAAiB,GAC3B,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AAE7D,sEAAsE;AACtE,eAAO,MAAM,oBAAoB,SAAO,CAAC;AAEzC,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,wFAAwF;AACxF,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAChD,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,sEAAsE;AACtE,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAC/C,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,gCAAgC;AAChC,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,qEAAqE;AACrE,eAAO,MAAM,qBAAqB,QACO,CAAC;AAE1C;;GAEG;AACH,eAAO,MAAM,iBAAiB,wJAcpB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,oBAAoB,4HAWvB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/3d/constants.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAC;AACX,MAAM,MAAM,iBAAiB,GAC3B,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AAE7D,sEAAsE;AACtE,eAAO,MAAM,oBAAoB,SAAO,CAAC;AAEzC,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,wFAAwF;AACxF,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAChD,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,sEAAsE;AACtE,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAC/C,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,gCAAgC;AAChC,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,qEAAqE;AACrE,eAAO,MAAM,qBAAqB,QACO,CAAC;AAE1C;;GAEG;AACH,eAAO,MAAM,iBAAiB,wJAcpB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,oBAAoB,4HAWvB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,mOAwBpB,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
type OutPublisherLike = {
|
|
2
|
+
_proxies_?: Map<string, {
|
|
3
|
+
hasListener?: () => boolean;
|
|
4
|
+
}>;
|
|
5
|
+
frameSource?: {
|
|
6
|
+
set: (v: unknown) => void;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
export type FrameSourceHost = {
|
|
10
|
+
outPublisher: OutPublisherLike | null;
|
|
11
|
+
bindOutPublisher: () => void;
|
|
12
|
+
ready: boolean;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Publie `{ element: host }` une fois au ready si un lecteur écoute `frameSource`.
|
|
16
|
+
* Aucun coût pendant l’animation.
|
|
17
|
+
*/
|
|
18
|
+
declare function maybePublish(host: FrameSourceHost & Element): void;
|
|
19
|
+
export declare const frameSource: {
|
|
20
|
+
readonly maybePublish: typeof maybePublish;
|
|
21
|
+
};
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=frame-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frame-source.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/3d/frame-source.ts"],"names":[],"mappings":"AAEA,KAAK,gBAAgB,GAAG;IACtB,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,OAAO,CAAA;KAAE,CAAC,CAAC;IACzD,WAAW,CAAC,EAAE;QAAE,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;KAAE,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACtC,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF;;;GAGG;AACH,iBAAS,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,QAUpD;AAED,eAAO,MAAM,WAAW;;CAA4B,CAAC"}
|
|
@@ -10,8 +10,10 @@ export type ReloadHost = {
|
|
|
10
10
|
ready: boolean;
|
|
11
11
|
startTime: number;
|
|
12
12
|
frame: number;
|
|
13
|
+
frameSeq: number;
|
|
13
14
|
lastFormOrbit: FormOrbit | null;
|
|
14
15
|
formPublisher: ReturnType<typeof PublisherManager.get> | null;
|
|
16
|
+
outPublisher: ReturnType<typeof PublisherManager.get> | null;
|
|
15
17
|
asset: Sonic3dAsset | null;
|
|
16
18
|
src: string;
|
|
17
19
|
minDistance: number;
|
|
@@ -20,6 +22,7 @@ export type ReloadHost = {
|
|
|
20
22
|
maxPolar: number;
|
|
21
23
|
onFormMutation: () => void;
|
|
22
24
|
syncPlayback: () => void;
|
|
25
|
+
bindOutPublisher: () => void;
|
|
23
26
|
dispatchEvent: (event: Event) => boolean;
|
|
24
27
|
};
|
|
25
28
|
declare function run(host: ReloadHost): Promise<void>;
|
|
@@ -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;
|
|
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"}
|
|
@@ -129,5 +129,12 @@ export type Sonic3dOutput = {
|
|
|
129
129
|
frameUrl?: string;
|
|
130
130
|
/** MediaRef du canvas (url + dimensions) — chaînable vers `sonic-shader`. */
|
|
131
131
|
snapshot?: Sonic3dSnapshot;
|
|
132
|
+
/**
|
|
133
|
+
* Pont live (Lot 1) : `{ element: sonic-3d }` pour `channel0` sans JPEG.
|
|
134
|
+
* Publié une fois au ready si un lecteur écoute `frameSource`.
|
|
135
|
+
*/
|
|
136
|
+
frameSource?: {
|
|
137
|
+
element: Element;
|
|
138
|
+
};
|
|
132
139
|
};
|
|
133
140
|
//# 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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"}
|
|
@@ -6,6 +6,15 @@ 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
|
+
};
|
|
9
18
|
export declare function parseChannelSource(value: string | undefined | null, fallbackUrl: string): ChannelSource;
|
|
10
19
|
export declare class ShaderToyRuntime {
|
|
11
20
|
private gl;
|
|
@@ -20,6 +29,7 @@ export declare class ShaderToyRuntime {
|
|
|
20
29
|
private passChannels;
|
|
21
30
|
private activePasses;
|
|
22
31
|
private blackTexture;
|
|
32
|
+
private elementResolver;
|
|
23
33
|
constructor(canvas: HTMLCanvasElement);
|
|
24
34
|
/** True si le contexte a été perdu / déjà disposé. */
|
|
25
35
|
get isLost(): boolean;
|
|
@@ -27,7 +37,14 @@ export declare class ShaderToyRuntime {
|
|
|
27
37
|
resize(width: number, height: number): void;
|
|
28
38
|
setSources(sources: ShaderSources, channels: Map<ShaderPassId, PassChannels>): void;
|
|
29
39
|
ensureTextures(urls: string[]): Promise<void>;
|
|
30
|
-
/**
|
|
40
|
+
/** Alloue un slot texture vide pour un canal `#élément` (upload live ensuite). */
|
|
41
|
+
ensureElementTexture(key: string): void;
|
|
42
|
+
/**
|
|
43
|
+
* Upload live des canaux élément / vidéo.
|
|
44
|
+
* `resolveEl(key)` fournit l’Element (résolution `#id` côté host).
|
|
45
|
+
*/
|
|
46
|
+
updateElementTextures(resolveEl?: (key: string) => Element | null): void;
|
|
47
|
+
/** @deprecated alias — préférer `updateElementTextures`. */
|
|
31
48
|
updateVideoTextures(): void;
|
|
32
49
|
setVideosPlaying(playing: boolean): void;
|
|
33
50
|
/** Size of a loaded external texture/video, if any. */
|
|
@@ -40,6 +57,8 @@ export declare class ShaderToyRuntime {
|
|
|
40
57
|
private resolveChannel;
|
|
41
58
|
private bindChannels;
|
|
42
59
|
private setCommonUniforms;
|
|
60
|
+
/** Host fournit la résolution `#id` / live Element. */
|
|
61
|
+
setElementResolver(fn: ((key: string) => Element | null) | null): void;
|
|
43
62
|
render(frame: FrameUniforms): void;
|
|
44
63
|
/**
|
|
45
64
|
* Lit un rectangle du framebuffer Image (origine bas-gauche, coords drawing buffer).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gl-runtime.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/shader/gl-runtime.ts"],"names":[],"mappings":"
|
|
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
2
|
import { 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`.
|
|
@@ -124,6 +128,8 @@ export declare class SonicShader extends LitElement {
|
|
|
124
128
|
private startTime;
|
|
125
129
|
private lastTime;
|
|
126
130
|
private frame;
|
|
131
|
+
/** Incrémenté après chaque render (contrat SonicFrameSource). */
|
|
132
|
+
frameSeq: number;
|
|
127
133
|
private mouseVec;
|
|
128
134
|
/** Cible pointeur (px drawing buffer, origine bas-gauche). */
|
|
129
135
|
private mouseTarget;
|
|
@@ -189,6 +195,10 @@ export declare class SonicShader extends LitElement {
|
|
|
189
195
|
*/
|
|
190
196
|
private releaseRuntime;
|
|
191
197
|
private getCanvas;
|
|
198
|
+
/** Contrat SonicFrameSource — canvas lisible pour un autre sonic-shader. */
|
|
199
|
+
getFrameCanvas(): HTMLCanvasElement | null;
|
|
200
|
+
/** Résout `#id` dans getRootNode() puis document ; clés live `__sonic_frame_`. */
|
|
201
|
+
private lookupElement;
|
|
192
202
|
private bindContextEvents;
|
|
193
203
|
private unbindContextEvents;
|
|
194
204
|
private onContextLost;
|
|
@@ -198,6 +208,7 @@ export declare class SonicShader extends LitElement {
|
|
|
198
208
|
private syncSize;
|
|
199
209
|
private buildChannels;
|
|
200
210
|
private collectUrls;
|
|
211
|
+
private collectElementKeys;
|
|
201
212
|
private rebuild;
|
|
202
213
|
private emitError;
|
|
203
214
|
private shouldAnimate;
|
|
@@ -260,11 +271,11 @@ export declare class SonicShader extends LitElement {
|
|
|
260
271
|
private onPointerLeave;
|
|
261
272
|
render(): import("lit-html").TemplateResult<1>;
|
|
262
273
|
}
|
|
263
|
-
export { parseChannelSource, ShaderToyRuntime } from "./gl-runtime";
|
|
274
|
+
export { parseChannelSource, ShaderToyRuntime, shouldUploadElementFrame } from "./gl-runtime";
|
|
264
275
|
export { buildFragmentSource } from "./shadertoy-prelude";
|
|
265
276
|
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";
|
|
277
|
+
export type { SonicMediaRef, SonicFrameSource, } from "@supersoniks/concorde/core/utils/mediaRef";
|
|
278
|
+
export { toMediaUrl, cloneMediaRef, isFrameSource, mediaElementKey, } from "@supersoniks/concorde/core/utils/mediaRef";
|
|
268
279
|
export { findPeaks, meanRgba, parseExtractPass, parseHoverParam, roiToPixels, ShaderCompileError, } from "./types";
|
|
269
280
|
declare global {
|
|
270
281
|
interface HTMLElementTagNameMap {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shader.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/shader/shader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAS5C,OAAO,EAGL,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EAEf,SAAS,EAQV,MAAM,SAAS,CAAC;AAEjB,QAAA,MAAM,OAAO,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"shader.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/shader/shader.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,12 @@ export type ChannelSource = {
|
|
|
9
9
|
kind: "self";
|
|
10
10
|
} | {
|
|
11
11
|
kind: "none";
|
|
12
|
+
}
|
|
13
|
+
/** Élément page (`#id`) — upload live via `updateElementTextures`. */
|
|
14
|
+
| {
|
|
15
|
+
kind: "element";
|
|
16
|
+
key: string;
|
|
17
|
+
el?: Element | null;
|
|
12
18
|
};
|
|
13
19
|
export type PassChannels = [
|
|
14
20
|
ChannelSource,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/shader/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GACpB,OAAO,GACP,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/core/components/functional/shader/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -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: {
|
|
@@ -105,6 +107,8 @@ export declare class SonicWebGpu extends LitElement {
|
|
|
105
107
|
private startLoop;
|
|
106
108
|
private stopLoop;
|
|
107
109
|
private maybePublishOut;
|
|
110
|
+
/** Contrat SonicFrameSource — canvas WebGPU / fallback. */
|
|
111
|
+
getFrameCanvas(): HTMLCanvasElement | null;
|
|
108
112
|
private revokeFrameUrl;
|
|
109
113
|
private onPointerMove;
|
|
110
114
|
private onPointerDown;
|
|
@@ -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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"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* - `url` : http(s) | blob: | data: (préféré pour les canaux shader)
|
|
5
5
|
* - `blob` : binaire (HF, upload) — le producteur publie aussi `url` quand possible
|
|
6
6
|
* - `blobUrl` : alias historique (extract shader)
|
|
7
|
+
* - `element` : sélecteur `#id` ou Element (pont live → canaux shader, ignoré par toMediaUrl)
|
|
7
8
|
*/
|
|
8
9
|
export type SonicMediaRef = {
|
|
9
10
|
url?: string;
|
|
@@ -12,7 +13,25 @@ export type SonicMediaRef = {
|
|
|
12
13
|
width?: number;
|
|
13
14
|
height?: number;
|
|
14
15
|
mime?: string;
|
|
16
|
+
/** Sélecteur `#id` ou référence Element (upload live, pas d’URL). */
|
|
17
|
+
element?: string | Element;
|
|
15
18
|
};
|
|
19
|
+
/**
|
|
20
|
+
* Contrat minimal pour qu’un composant Concorde alimente un canal shader
|
|
21
|
+
* sans JPEG / blob (`channel0="#plateau"` ou `{ element }`).
|
|
22
|
+
*/
|
|
23
|
+
export type SonicFrameSource = {
|
|
24
|
+
/** Canvas lisible (preserveDrawingBuffer ou 2D). `null` tant que pas prêt. */
|
|
25
|
+
getFrameCanvas(): HTMLCanvasElement | null;
|
|
26
|
+
/** Incrémenté après chaque rendu effectif. */
|
|
27
|
+
readonly frameSeq: number;
|
|
28
|
+
};
|
|
29
|
+
export declare function isFrameSource(el: unknown): el is SonicFrameSource;
|
|
30
|
+
/** Enregistre un Element sans id → clé `#__sonic_frame_N` (réutilisée). */
|
|
31
|
+
export declare function registerLiveElement(el: Element): string;
|
|
32
|
+
export declare function lookupLiveElement(key: string): Element | null;
|
|
33
|
+
/** Normalise `element` DP → clé canal (`#id` ou live). */
|
|
34
|
+
export declare function mediaElementKey(value: unknown): string | null;
|
|
16
35
|
/** Objet image sérialisé (sortie HF / extract) : Blob + dimensions. */
|
|
17
36
|
export declare function isMediaBlobObject(value: unknown): value is SonicMediaRef & {
|
|
18
37
|
blob: Blob;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mediaRef.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/mediaRef.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"mediaRef.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/mediaRef.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,8EAA8E;IAC9E,cAAc,IAAI,iBAAiB,GAAG,IAAI,CAAC;IAC3C,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,gBAAgB,CAMjE;AAQD,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,CAOvD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAQ7D;AAED,0DAA0D;AAC1D,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAY7D;AAED,uEAAuE;AACvE,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,aAAa,GAAG;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,CAWzC;AAaD,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAMxD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAqBT;AAED,0DAA0D;AAC1D,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAQ5D;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CA6B/B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@supersoniks/concorde",
|
|
3
|
-
"version": "4.9.
|
|
3
|
+
"version": "4.9.98-visual-stack.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "",
|
|
@@ -178,6 +178,18 @@
|
|
|
178
178
|
"types": "./dist/types/core/components/functional/3d/frame-capture.d.ts",
|
|
179
179
|
"default": "./dist/js/core/components/functional/3d/frame-capture.js"
|
|
180
180
|
},
|
|
181
|
+
"./frame-source": {
|
|
182
|
+
"types": "./dist/types/core/components/functional/3d/frame-source.d.ts",
|
|
183
|
+
"default": "./dist/js/core/components/functional/3d/frame-source.js"
|
|
184
|
+
},
|
|
185
|
+
"./functional/frame-source": {
|
|
186
|
+
"types": "./dist/types/core/components/functional/3d/frame-source.d.ts",
|
|
187
|
+
"default": "./dist/js/core/components/functional/3d/frame-source.js"
|
|
188
|
+
},
|
|
189
|
+
"./functional/3d/frame-source": {
|
|
190
|
+
"types": "./dist/types/core/components/functional/3d/frame-source.d.ts",
|
|
191
|
+
"default": "./dist/js/core/components/functional/3d/frame-source.js"
|
|
192
|
+
},
|
|
181
193
|
"./gl": {
|
|
182
194
|
"types": "./dist/types/core/components/functional/3d/gl.d.ts",
|
|
183
195
|
"default": "./dist/js/core/components/functional/3d/gl.js"
|
|
@@ -109,10 +109,20 @@ Le viewer lit `asset` ou `src` depuis le DP — la source (fetch, upload, HF) n
|
|
|
109
109
|
|
|
110
110
|
## Shader bridging
|
|
111
111
|
|
|
112
|
-
No shared WebGL context between `sonic-3d` and `sonic-shader`.
|
|
112
|
+
No shared WebGL context between `sonic-3d` and `sonic-shader`.
|
|
113
113
|
|
|
114
|
-
|
|
114
|
+
| Need | Bridge |
|
|
115
|
+
|------|--------|
|
|
116
|
+
| **Live post** | `channel0="#plateau"` on `sonic-shader` (or DP `{ element }`) — canvas copy each frame via `SonicFrameSource` |
|
|
117
|
+
| **Export / HF / freeze** | `frame-out` → `frameUrl` + `snapshot` (`SonicMediaRef` JPEG). Clone with `cloneMediaRef` before holding a frame |
|
|
115
118
|
|
|
116
119
|
```html
|
|
120
|
+
<!-- Live -->
|
|
121
|
+
<sonic-3d id="plateau" play auto-rotate …></sonic-3d>
|
|
122
|
+
<sonic-shader channel0="#plateau" image="…" play></sonic-shader>
|
|
123
|
+
|
|
124
|
+
<!-- Export / freeze -->
|
|
117
125
|
<sonic-3d frame-out out-data-provider="view3d" snapshot-interval="250" …></sonic-3d>
|
|
118
126
|
```
|
|
127
|
+
|
|
128
|
+
Demo: [Visual stack — 3D → shader live](#docs/_misc/visual-stack.md/visual-stack).
|
|
@@ -46,6 +46,8 @@ export class Sonic3d extends Sonic3dProps {
|
|
|
46
46
|
snapshotBusy = false;
|
|
47
47
|
frameUrls: string[] = [];
|
|
48
48
|
snapshotSeq = 0;
|
|
49
|
+
/** Contrat SonicFrameSource — incrémenté après chaque render. */
|
|
50
|
+
frameSeq = 0;
|
|
49
51
|
lastFormOrbit: FormOrbit | null = null;
|
|
50
52
|
|
|
51
53
|
onFormMutation = () => {
|
|
@@ -136,9 +138,16 @@ export class Sonic3d extends Sonic3dProps {
|
|
|
136
138
|
if (!this.runtime || !this.ready) return;
|
|
137
139
|
this.frame++;
|
|
138
140
|
this.runtime.render();
|
|
141
|
+
this.frameSeq++;
|
|
139
142
|
outPublish.maybePublish(this as never, now, (now - this.startTime) / 1000);
|
|
140
143
|
}
|
|
141
144
|
|
|
145
|
+
/** Contrat SonicFrameSource — canvas Three (preserveDrawingBuffer). */
|
|
146
|
+
getFrameCanvas(): HTMLCanvasElement | null {
|
|
147
|
+
if (!this.runtime || !this.ready) return null;
|
|
148
|
+
return this.runtime.renderer.domElement;
|
|
149
|
+
}
|
|
150
|
+
|
|
142
151
|
onPointerMove = (e: PointerEvent) => pointer.onMove(this as never, e);
|
|
143
152
|
onPointerDown = (e: PointerEvent) => pointer.onDown(this as never, e);
|
|
144
153
|
onDblClick = () => pointer.onDblClick(this as never);
|
|
@@ -161,12 +170,14 @@ export type {
|
|
|
161
170
|
Sonic3dConfig,
|
|
162
171
|
Sonic3dOutput,
|
|
163
172
|
} from "./types";
|
|
164
|
-
export type { SonicMediaRef } from "@supersoniks/concorde/core/utils/mediaRef";
|
|
173
|
+
export type { SonicMediaRef, SonicFrameSource } from "@supersoniks/concorde/core/utils/mediaRef";
|
|
165
174
|
export {
|
|
166
175
|
toMediaUrl,
|
|
167
176
|
cloneMediaRef,
|
|
177
|
+
isFrameSource,
|
|
168
178
|
} from "@supersoniks/concorde/core/utils/mediaRef";
|
|
169
179
|
export { frameCapture } from "./frame-capture";
|
|
180
|
+
export { frameSource } from "./frame-source";
|
|
170
181
|
|
|
171
182
|
declare global {
|
|
172
183
|
interface HTMLElementTagNameMap {
|
|
@@ -93,6 +93,8 @@ export const OUT_CONSUMER_KEYS = [
|
|
|
93
93
|
/** Canvas → ObjectURL (SonicMediaRef) pour chaînage shader. */
|
|
94
94
|
"frameUrl",
|
|
95
95
|
"snapshot",
|
|
96
|
+
/** Pont live → sonic-shader (`{ element }`), publié une fois au ready. */
|
|
97
|
+
"frameSource",
|
|
96
98
|
] as const;
|
|
97
99
|
|
|
98
100
|
export type Sonic3dFormControlKey = (typeof FORM_CONTROL_KEYS)[number];
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { publisherFieldHasListener } from "./publisher-listen";
|
|
2
|
+
|
|
3
|
+
type OutPublisherLike = {
|
|
4
|
+
_proxies_?: Map<string, { hasListener?: () => boolean }>;
|
|
5
|
+
frameSource?: { set: (v: unknown) => void };
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export type FrameSourceHost = {
|
|
9
|
+
outPublisher: OutPublisherLike | null;
|
|
10
|
+
bindOutPublisher: () => void;
|
|
11
|
+
ready: boolean;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Publie `{ element: host }` une fois au ready si un lecteur écoute `frameSource`.
|
|
16
|
+
* Aucun coût pendant l’animation.
|
|
17
|
+
*/
|
|
18
|
+
function maybePublish(host: FrameSourceHost & Element) {
|
|
19
|
+
if (!host.ready) return;
|
|
20
|
+
if (!host.outPublisher) host.bindOutPublisher();
|
|
21
|
+
const pub = host.outPublisher;
|
|
22
|
+
if (!pub || !publisherFieldHasListener(pub, "frameSource")) return;
|
|
23
|
+
try {
|
|
24
|
+
pub.frameSource?.set({ element: host });
|
|
25
|
+
} catch {
|
|
26
|
+
/* leaf manquant */
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export const frameSource = { maybePublish } as const;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { PublisherManager } from "@supersoniks/concorde/utils";
|
|
2
2
|
import { asset } from "./asset";
|
|
3
3
|
import type { FormOrbit } from "./form-params";
|
|
4
|
+
import { frameSource } from "./frame-source";
|
|
4
5
|
import { playback } from "./playback";
|
|
5
6
|
import type { SceneRuntime } from "./runtime";
|
|
6
7
|
import type { Sonic3dAsset } from "./types";
|
|
@@ -16,8 +17,10 @@ export type ReloadHost = {
|
|
|
16
17
|
ready: boolean;
|
|
17
18
|
startTime: number;
|
|
18
19
|
frame: number;
|
|
20
|
+
frameSeq: number;
|
|
19
21
|
lastFormOrbit: FormOrbit | null;
|
|
20
22
|
formPublisher: ReturnType<typeof PublisherManager.get> | null;
|
|
23
|
+
outPublisher: ReturnType<typeof PublisherManager.get> | null;
|
|
21
24
|
asset: Sonic3dAsset | null;
|
|
22
25
|
src: string;
|
|
23
26
|
minDistance: number;
|
|
@@ -26,6 +29,7 @@ export type ReloadHost = {
|
|
|
26
29
|
maxPolar: number;
|
|
27
30
|
onFormMutation: () => void;
|
|
28
31
|
syncPlayback: () => void;
|
|
32
|
+
bindOutPublisher: () => void;
|
|
29
33
|
dispatchEvent: (event: Event) => boolean;
|
|
30
34
|
};
|
|
31
35
|
|
|
@@ -43,7 +47,9 @@ async function run(host: ReloadHost) {
|
|
|
43
47
|
host.onFormMutation();
|
|
44
48
|
playback.syncAutoRotate(host as never);
|
|
45
49
|
host.runtime.render();
|
|
50
|
+
host.frameSeq++;
|
|
46
51
|
host.syncPlayback();
|
|
52
|
+
frameSource.maybePublish(host as never);
|
|
47
53
|
host.dispatchEvent(
|
|
48
54
|
new CustomEvent("ready", {
|
|
49
55
|
detail: { ready: true },
|
|
@@ -142,4 +142,9 @@ export type Sonic3dOutput = {
|
|
|
142
142
|
frameUrl?: string;
|
|
143
143
|
/** MediaRef du canvas (url + dimensions) — chaînable vers `sonic-shader`. */
|
|
144
144
|
snapshot?: Sonic3dSnapshot;
|
|
145
|
+
/**
|
|
146
|
+
* Pont live (Lot 1) : `{ element: sonic-3d }` pour `channel0` sans JPEG.
|
|
147
|
+
* Publié une fois au ready si un lecteur écoute `frameSource`.
|
|
148
|
+
*/
|
|
149
|
+
frameSource?: { element: Element };
|
|
145
150
|
};
|