@supersoniks/concorde 4.9.98-visual-stack.0 → 4.9.98-visual-stack.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build-infos.json +1 -1
- package/concorde-3d.bundle.js +201 -152
- package/concorde-3d.es.js +14687 -13905
- package/concorde-core.bundle.js +1 -1
- package/concorde-core.es.js +1 -1
- package/concorde-hugging-face-infer.bundle.js +1 -1
- package/concorde-hugging-face-infer.es.js +1 -1
- package/concorde-shader.bundle.js +31 -20
- package/concorde-shader.es.js +2773 -2547
- package/concorde-webgpu.bundle.js +43 -32
- package/concorde-webgpu.es.js +1819 -1553
- package/dist/concorde-3d.bundle.js +201 -152
- package/dist/concorde-3d.es.js +14687 -13905
- package/dist/concorde-core.bundle.js +1 -1
- package/dist/concorde-core.es.js +1 -1
- package/dist/concorde-hugging-face-infer.bundle.js +1 -1
- package/dist/concorde-hugging-face-infer.es.js +1 -1
- package/dist/concorde-shader.bundle.js +31 -20
- package/dist/concorde-shader.es.js +2773 -2547
- package/dist/concorde-webgpu.bundle.js +43 -32
- package/dist/concorde-webgpu.es.js +1819 -1553
- package/dist/js/core/components/functional/3d/3d.js +90 -2
- package/dist/js/core/components/functional/3d/3d.js.map +1 -1
- package/dist/js/core/components/functional/3d/constants.js +1 -0
- package/dist/js/core/components/functional/3d/constants.js.map +1 -1
- package/dist/js/core/components/functional/3d/ensure.js +6 -3
- package/dist/js/core/components/functional/3d/ensure.js.map +1 -1
- package/dist/js/core/components/functional/3d/form-params.js +2 -0
- package/dist/js/core/components/functional/3d/form-params.js.map +1 -1
- package/dist/js/core/components/functional/3d/life.js +2 -1
- package/dist/js/core/components/functional/3d/life.js.map +1 -1
- package/dist/js/core/components/functional/3d/out-publish.js +3 -2
- package/dist/js/core/components/functional/3d/out-publish.js.map +1 -1
- package/dist/js/core/components/functional/3d/playback.js +6 -1
- package/dist/js/core/components/functional/3d/playback.js.map +1 -1
- package/dist/js/core/components/functional/3d/post-bind.js +207 -0
- package/dist/js/core/components/functional/3d/post-bind.js.map +1 -0
- package/dist/js/core/components/functional/3d/post-channels.js +39 -0
- package/dist/js/core/components/functional/3d/post-channels.js.map +1 -0
- package/dist/js/core/components/functional/3d/post-fx.js +495 -0
- package/dist/js/core/components/functional/3d/post-fx.js.map +1 -0
- package/dist/js/core/components/functional/3d/props.js +142 -0
- package/dist/js/core/components/functional/3d/props.js.map +1 -1
- package/dist/js/core/components/functional/3d/reload.js +2 -0
- package/dist/js/core/components/functional/3d/reload.js.map +1 -1
- package/dist/js/core/components/functional/3d/runtime.js +80 -3
- package/dist/js/core/components/functional/3d/runtime.js.map +1 -1
- package/dist/js/core/components/functional/3d/scene-runtime.js +1 -1
- package/dist/js/core/components/functional/3d/scene-runtime.js.map +1 -1
- package/dist/js/core/components/functional/3d/tune.js +21 -0
- package/dist/js/core/components/functional/3d/tune.js.map +1 -1
- package/dist/js/core/components/functional/3d/updated.js +13 -1
- package/dist/js/core/components/functional/3d/updated.js.map +1 -1
- package/dist/js/core/components/functional/shader/gl-runtime.js +128 -14
- package/dist/js/core/components/functional/shader/gl-runtime.js.map +1 -1
- package/dist/js/core/components/functional/shader/shader.js +154 -57
- package/dist/js/core/components/functional/shader/shader.js.map +1 -1
- package/dist/js/core/components/functional/shader/shadertoy-prelude.js +39 -5
- package/dist/js/core/components/functional/shader/shadertoy-prelude.js.map +1 -1
- package/dist/js/core/components/functional/shader/types.js +58 -7
- package/dist/js/core/components/functional/shader/types.js.map +1 -1
- package/dist/js/core/components/functional/webgpu/gl-fallback.js +27 -6
- package/dist/js/core/components/functional/webgpu/gl-fallback.js.map +1 -1
- package/dist/js/core/components/functional/webgpu/gpu-runtime.js +115 -13
- package/dist/js/core/components/functional/webgpu/gpu-runtime.js.map +1 -1
- package/dist/js/core/components/functional/webgpu/helpers.js +8 -2
- package/dist/js/core/components/functional/webgpu/helpers.js.map +1 -1
- package/dist/js/core/components/functional/webgpu/webgpu.js +34 -1
- package/dist/js/core/components/functional/webgpu/webgpu.js.map +1 -1
- package/dist/js/core/utils/mediaRef.js +37 -0
- package/dist/js/core/utils/mediaRef.js.map +1 -1
- package/dist/types/core/components/functional/3d/3d.d.ts +26 -3
- package/dist/types/core/components/functional/3d/3d.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/constants.d.ts +1 -1
- package/dist/types/core/components/functional/3d/constants.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/ensure.d.ts +3 -0
- package/dist/types/core/components/functional/3d/ensure.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/form-params.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/life.d.ts +2 -0
- package/dist/types/core/components/functional/3d/life.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/out-publish.d.ts +1 -0
- package/dist/types/core/components/functional/3d/out-publish.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/playback.d.ts +9 -0
- package/dist/types/core/components/functional/3d/playback.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/post-bind.d.ts +52 -0
- package/dist/types/core/components/functional/3d/post-bind.d.ts.map +1 -0
- package/dist/types/core/components/functional/3d/post-channels.d.ts +40 -0
- package/dist/types/core/components/functional/3d/post-channels.d.ts.map +1 -0
- package/dist/types/core/components/functional/3d/post-fx.d.ts +73 -0
- package/dist/types/core/components/functional/3d/post-fx.d.ts.map +1 -0
- package/dist/types/core/components/functional/3d/props.d.ts +42 -0
- package/dist/types/core/components/functional/3d/props.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/reload.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/runtime.d.ts +16 -1
- package/dist/types/core/components/functional/3d/runtime.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/scene-runtime.d.ts +1 -1
- package/dist/types/core/components/functional/3d/scene-runtime.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/tune.d.ts +5 -0
- package/dist/types/core/components/functional/3d/tune.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/types.d.ts +9 -0
- package/dist/types/core/components/functional/3d/types.d.ts.map +1 -1
- package/dist/types/core/components/functional/3d/updated.d.ts.map +1 -1
- package/dist/types/core/components/functional/shader/gl-runtime.d.ts +33 -1
- package/dist/types/core/components/functional/shader/gl-runtime.d.ts.map +1 -1
- package/dist/types/core/components/functional/shader/shader.d.ts +28 -7
- package/dist/types/core/components/functional/shader/shader.d.ts.map +1 -1
- package/dist/types/core/components/functional/shader/shadertoy-prelude.d.ts +16 -2
- package/dist/types/core/components/functional/shader/shadertoy-prelude.d.ts.map +1 -1
- package/dist/types/core/components/functional/shader/types.d.ts +29 -5
- package/dist/types/core/components/functional/shader/types.d.ts.map +1 -1
- package/dist/types/core/components/functional/webgpu/gl-fallback.d.ts +4 -0
- package/dist/types/core/components/functional/webgpu/gl-fallback.d.ts.map +1 -1
- package/dist/types/core/components/functional/webgpu/gpu-runtime.d.ts +14 -0
- package/dist/types/core/components/functional/webgpu/gpu-runtime.d.ts.map +1 -1
- package/dist/types/core/components/functional/webgpu/helpers.d.ts +1 -0
- package/dist/types/core/components/functional/webgpu/helpers.d.ts.map +1 -1
- package/dist/types/core/components/functional/webgpu/webgpu.d.ts +7 -1
- package/dist/types/core/components/functional/webgpu/webgpu.d.ts.map +1 -1
- package/dist/types/core/utils/mediaRef.d.ts +15 -0
- package/dist/types/core/utils/mediaRef.d.ts.map +1 -1
- package/package.json +37 -1
- package/src/core/components/functional/3d/3d.md +34 -1
- package/src/core/components/functional/3d/3d.spec.ts +42 -0
- package/src/core/components/functional/3d/3d.ts +101 -3
- package/src/core/components/functional/3d/constants.ts +1 -0
- package/src/core/components/functional/3d/ensure.ts +11 -3
- package/src/core/components/functional/3d/form-params.ts +2 -0
- package/src/core/components/functional/3d/life.ts +4 -1
- package/src/core/components/functional/3d/out-publish.ts +4 -3
- package/src/core/components/functional/3d/playback.ts +13 -1
- package/src/core/components/functional/3d/post-bind.ts +262 -0
- package/src/core/components/functional/3d/post-channels.spec.ts +36 -0
- package/src/core/components/functional/3d/post-channels.ts +69 -0
- package/src/core/components/functional/3d/post-fx.ts +594 -0
- package/src/core/components/functional/3d/props.ts +45 -0
- package/src/core/components/functional/3d/reload.ts +2 -0
- package/src/core/components/functional/3d/runtime.ts +93 -4
- package/src/core/components/functional/3d/scene-runtime.ts +3 -0
- package/src/core/components/functional/3d/tune.ts +21 -0
- package/src/core/components/functional/3d/types.ts +9 -0
- package/src/core/components/functional/3d/updated.ts +17 -1
- package/src/core/components/functional/shader/gl-runtime.ts +169 -12
- package/src/core/components/functional/shader/shader.md +27 -4
- package/src/core/components/functional/shader/shader.spec.ts +267 -0
- package/src/core/components/functional/shader/shader.ts +177 -55
- package/src/core/components/functional/shader/shadertoy-prelude.ts +49 -5
- package/src/core/components/functional/shader/types.ts +89 -12
- package/src/core/components/functional/webgpu/gl-fallback.ts +28 -4
- package/src/core/components/functional/webgpu/gpu-runtime.ts +154 -18
- package/src/core/components/functional/webgpu/helpers.ts +8 -2
- package/src/core/components/functional/webgpu/webgpu.md +13 -2
- package/src/core/components/functional/webgpu/webgpu.spec.ts +37 -0
- package/src/core/components/functional/webgpu/webgpu.ts +39 -1
- package/src/core/utils/mediaRef.spec.ts +25 -0
- package/src/core/utils/mediaRef.ts +45 -0
- package/src/docs/_misc/visual-stack.md +19 -1
- package/src/docs/components/docs-demo-sources.ts +28 -0
- package/src/docs/docs.ts +2 -0
- package/src/docs/example/docs-3d-post-depth-demo.ts +68 -0
- package/src/docs/example/docs-3d-webgpu-live-demo.ts +83 -0
- package/src/docs/example/docs-harris-webgpu-demo.ts +53 -55
- package/src/docs/search/docs-search.json +252 -2
- package/src/tsconfig.json +27 -0
- package/src/tsconfig.tsbuildinfo +1 -1
|
@@ -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;
|
|
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;
|
|
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":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,IAAI,EAAgB,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAG3D,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC;
|
|
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,
|
|
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
|
|
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":"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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;
|
|
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":"AAKA,OAAO,EACL,aAAa,EACb,YAAY,EACZ,cAAc,
|
|
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
|
-
*
|
|
73
|
-
*
|
|
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:
|
|
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":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAS5C,OAAO,
|
|
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
|
-
/**
|
|
2
|
-
|
|
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,
|
|
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
|
-
*
|
|
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?:
|
|
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
|
-
|
|
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;
|