shaders 2.3.59 → 2.3.60
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/dist/core/{AngularBlur-CHTeMEG5.js → AngularBlur-m_DWR-a1.js} +1 -1
- package/dist/core/{Aurora-CF3ANMDG.js → Aurora-CYCPE1wp.js} +1 -1
- package/dist/core/{Beam-DtcIK_b_.js → Beam-COjEb2JI.js} +1 -1
- package/dist/core/{Blob-BnpAPM8l.js → Blob-jHnoxt2N.js} +1 -1
- package/dist/core/{Bulge-C3jFPuOK.js → Bulge-CsNj4Jew.js} +1 -1
- package/dist/core/{Checkerboard-D1ae-0n2.js → Checkerboard-DwiW08iJ.js} +1 -1
- package/dist/core/{ChromaFlow-CeXcR6pL.js → ChromaFlow-DfP9ZDg0.js} +1 -1
- package/dist/core/{ChromaticAberration-B4012BNj.js → ChromaticAberration-VL5tfOeo.js} +1 -1
- package/dist/core/{Circle-DOQ5F63j.js → Circle-CUYMdgd5.js} +1 -1
- package/dist/core/{ConcentricSpin-Ct7YyQP3.js → ConcentricSpin-DBqXmCjg.js} +1 -1
- package/dist/core/{ContourLines-DWw0CHEU.js → ContourLines-D2KRIOBw.js} +1 -1
- package/dist/core/{CursorRipples-Dl6VZaiT.js → CursorRipples-JWrDL_dU.js} +1 -1
- package/dist/core/{CursorTrail-B7RS5cXG.js → CursorTrail-D2_14ZEz.js} +1 -1
- package/dist/core/{DiffuseBlur-o0h84ibu.js → DiffuseBlur-siJmc-84.js} +1 -1
- package/dist/core/{Dither-BIhaGd7d.js → Dither-GoyNQ4_v.js} +1 -1
- package/dist/core/{DotGrid-CrBCbO3M.js → DotGrid-B8bSufr6.js} +1 -1
- package/dist/core/{Duotone-HYxV5a8V.js → Duotone-CRiDL3YN.js} +1 -1
- package/dist/core/{FloatingParticles-DeWwEtlq.js → FloatingParticles-CtrWM2rw.js} +1 -1
- package/dist/core/{FlowField-Bo4T5OFm.js → FlowField-B-sNApu9.js} +1 -1
- package/dist/core/{Godrays-CcJx19_L.js → Godrays-BV94FCDI.js} +1 -1
- package/dist/core/{Grid-Cvpth9Oi.js → Grid-Czxa6-My.js} +1 -1
- package/dist/core/{GridDistortion-cTIdpRyG.js → GridDistortion-CKhOZRpM.js} +1 -1
- package/dist/core/{Halftone-BEPTnKW6.js → Halftone-YTJAc3Ie.js} +1 -1
- package/dist/core/{Kaleidoscope-Cnfedu-B.js → Kaleidoscope-BDTIWTFC.js} +1 -1
- package/dist/core/{LensFlare-DNO4UQG8.js → LensFlare-CxyJBEvr.js} +1 -1
- package/dist/core/{LinearBlur-C_bpZQcG.js → LinearBlur-BtsleV0J.js} +1 -1
- package/dist/core/{LinearGradient-Bc1INE7C.js → LinearGradient-BP91wtXm.js} +1 -1
- package/dist/core/{Liquify-D5sl_Rtk.js → Liquify-2u2lkBhB.js} +1 -1
- package/dist/core/{Mirror-C0hacD-B.js → Mirror-BonA1elw.js} +1 -1
- package/dist/core/{Perspective-CfC6bKsJ.js → Perspective-Cwpv4683.js} +1 -1
- package/dist/core/{Plasma-D5gyjFl8.js → Plasma-BU4ujuLB.js} +1 -1
- package/dist/core/{PolarCoordinates-BhAihp7Z.js → PolarCoordinates-6BZYZFoj.js} +1 -1
- package/dist/core/{ProgressiveBlur-CJavcHQI.js → ProgressiveBlur-Y8YqC7HM.js} +1 -1
- package/dist/core/{RadialGradient-D4yl6nJ-.js → RadialGradient-DauSwpwY.js} +1 -1
- package/dist/core/{RectangularCoordinates-CtXnf1mj.js → RectangularCoordinates-C5585uvf.js} +1 -1
- package/dist/core/{Ripples-DbZdh29z.js → Ripples-QWGujQgy.js} +1 -1
- package/dist/core/{Shatter-CYHavYlJ.js → Shatter-DRSn9uGZ.js} +1 -1
- package/dist/core/{SimplexNoise-VmkKWJJ_.js → SimplexNoise-W0fx_Y5Q.js} +1 -1
- package/dist/core/{SineWave-BJiQQ5mH.js → SineWave-C-r5bVGK.js} +1 -1
- package/dist/core/{SolidColor-Dym-TMi_.js → SolidColor-BY2tBGcO.js} +1 -1
- package/dist/core/{Spherize-tGTqCifk.js → Spherize-DF4iTTzb.js} +1 -1
- package/dist/core/{Spiral-q4HnjiwB.js → Spiral-DWBdkW7Y.js} +1 -1
- package/dist/core/{Strands-BPQ8qqBR.js → Strands-BFVI3C04.js} +1 -1
- package/dist/core/{Stretch-DnMB46Ey.js → Stretch-CB92XLiC.js} +1 -1
- package/dist/core/{Stripes-Bb3sqRlB.js → Stripes-CTmvjI0U.js} +1 -1
- package/dist/core/{StudioBackground-DNezGoE_.js → StudioBackground-DXHPEKcb.js} +1 -1
- package/dist/core/{Swirl-BnoTw2v_.js → Swirl-DVaTB8HY.js} +1 -1
- package/dist/core/{TiltShift-B35F5fNx.js → TiltShift-CMTVpEBO.js} +1 -1
- package/dist/core/{Tint-BmwtUjg4.js → Tint-COD37j4D.js} +1 -1
- package/dist/core/{Tritone-BplKm991.js → Tritone-BETUi-og.js} +1 -1
- package/dist/core/{Twirl-Dn5j12Yk.js → Twirl-BUlMUymT.js} +1 -1
- package/dist/core/{WaveDistortion-Dv8k3RMK.js → WaveDistortion-DzwdX6Wj.js} +1 -1
- package/dist/core/{ZoomBlur-CCSC20me.js → ZoomBlur-BE1vT38D.js} +1 -1
- package/dist/core/index.js +4 -3
- package/dist/core/registry.js +54 -54
- package/dist/core/renderer.d.ts +2 -1
- package/dist/core/renderer.d.ts.map +1 -1
- package/dist/core/shaders/AngularBlur/index.js +2 -2
- package/dist/core/shaders/Aurora/index.js +2 -2
- package/dist/core/shaders/Beam/index.js +2 -2
- package/dist/core/shaders/Blob/index.js +2 -2
- package/dist/core/shaders/Bulge/index.js +2 -2
- package/dist/core/shaders/Checkerboard/index.js +2 -2
- package/dist/core/shaders/ChromaFlow/index.js +2 -2
- package/dist/core/shaders/ChromaticAberration/index.js +2 -2
- package/dist/core/shaders/Circle/index.js +2 -2
- package/dist/core/shaders/ConcentricSpin/index.js +2 -2
- package/dist/core/shaders/ContourLines/index.js +2 -2
- package/dist/core/shaders/CursorRipples/index.js +2 -2
- package/dist/core/shaders/CursorTrail/index.js +2 -2
- package/dist/core/shaders/DiffuseBlur/index.js +2 -2
- package/dist/core/shaders/Dither/index.js +2 -2
- package/dist/core/shaders/DotGrid/index.js +2 -2
- package/dist/core/shaders/Duotone/index.js +2 -2
- package/dist/core/shaders/FloatingParticles/index.js +2 -2
- package/dist/core/shaders/FlowField/index.js +2 -2
- package/dist/core/shaders/Godrays/index.js +2 -2
- package/dist/core/shaders/Grid/index.js +2 -2
- package/dist/core/shaders/GridDistortion/index.js +2 -2
- package/dist/core/shaders/Halftone/index.js +2 -2
- package/dist/core/shaders/Kaleidoscope/index.js +2 -2
- package/dist/core/shaders/LensFlare/index.js +2 -2
- package/dist/core/shaders/LinearBlur/index.js +2 -2
- package/dist/core/shaders/LinearGradient/index.js +2 -2
- package/dist/core/shaders/Liquify/index.js +2 -2
- package/dist/core/shaders/Mirror/index.js +2 -2
- package/dist/core/shaders/Perspective/index.js +2 -2
- package/dist/core/shaders/Plasma/index.js +2 -2
- package/dist/core/shaders/PolarCoordinates/index.js +2 -2
- package/dist/core/shaders/ProgressiveBlur/index.js +2 -2
- package/dist/core/shaders/RadialGradient/index.js +2 -2
- package/dist/core/shaders/RectangularCoordinates/index.js +2 -2
- package/dist/core/shaders/Ripples/index.js +2 -2
- package/dist/core/shaders/Shatter/index.js +2 -2
- package/dist/core/shaders/SimplexNoise/index.js +2 -2
- package/dist/core/shaders/SineWave/index.js +2 -2
- package/dist/core/shaders/SolidColor/index.js +2 -2
- package/dist/core/shaders/Spherize/index.js +2 -2
- package/dist/core/shaders/Spiral/index.js +2 -2
- package/dist/core/shaders/Strands/index.js +2 -2
- package/dist/core/shaders/Stretch/index.js +2 -2
- package/dist/core/shaders/Stripes/index.js +2 -2
- package/dist/core/shaders/StudioBackground/index.js +2 -2
- package/dist/core/shaders/Swirl/index.js +2 -2
- package/dist/core/shaders/TiltShift/index.js +2 -2
- package/dist/core/shaders/Tint/index.js +2 -2
- package/dist/core/shaders/Tritone/index.js +2 -2
- package/dist/core/shaders/Twirl/index.js +2 -2
- package/dist/core/shaders/WaveDistortion/index.js +2 -2
- package/dist/core/shaders/ZoomBlur/index.js +2 -2
- package/dist/core/telemetry/collector.d.ts.map +1 -1
- package/dist/core/telemetry/index.js +1 -0
- package/dist/core/telemetry/types.d.ts +1 -0
- package/dist/core/telemetry/types.d.ts.map +1 -1
- package/dist/core/{transformations-DM6huB9g.js → transformations-B5lM6fYX.js} +10 -3
- package/dist/core/utilities/transformations/index.js +2 -0
- package/dist/core/utilities/transformations.d.ts +3 -0
- package/dist/core/utilities/transformations.d.ts.map +1 -1
- package/dist/react/Shader.js +27 -4
- package/dist/react/engine/Shader.d.ts +1 -0
- package/dist/react/engine/Shader.d.ts.map +1 -1
- package/dist/react/utils/generatePresetCode.d.ts +1 -1
- package/dist/react/utils/generatePresetCode.d.ts.map +1 -1
- package/dist/react/utils/generatePresetCode.js +3 -2
- package/dist/react/utils/generatePresetCode.template.d.ts +1 -1
- package/dist/react/utils/generatePresetCode.template.d.ts.map +1 -1
- package/dist/solid/engine/Shader.d.ts +1 -0
- package/dist/solid/engine/Shader.d.ts.map +1 -1
- package/dist/solid/engine/Shader.js +25 -5
- package/dist/solid/utils/generatePresetCode.d.ts +1 -1
- package/dist/solid/utils/generatePresetCode.d.ts.map +1 -1
- package/dist/solid/utils/generatePresetCode.js +3 -2
- package/dist/solid/utils/generatePresetCode.template.d.ts +1 -1
- package/dist/solid/utils/generatePresetCode.template.d.ts.map +1 -1
- package/dist/svelte/engine/Shader.svelte.d.ts +1 -0
- package/dist/svelte/{generatePresetCode-CO9fAymD.js → generatePresetCode-EA1bmNOJ.js} +3 -2
- package/dist/svelte/index.js +25 -5
- package/dist/svelte/utils/generatePresetCode.d.ts +1 -1
- package/dist/svelte/utils/generatePresetCode.js +1 -1
- package/dist/svelte/utils/generatePresetCode.template.d.ts +1 -1
- package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +23 -6
- package/dist/vue/engine/Shader.vue.d.ts +4 -0
- package/dist/vue/engine/Shader.vue.d.ts.map +1 -1
- package/dist/vue/utils/generatePresetCode.d.ts +1 -1
- package/dist/vue/utils/generatePresetCode.d.ts.map +1 -1
- package/dist/vue/utils/generatePresetCode.js +3 -2
- package/dist/vue/utils/generatePresetCode.template.d.ts +1 -1
- package/dist/vue/utils/generatePresetCode.template.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformations.d.ts","sourceRoot":"","sources":["../../src/utilities/transformations.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"transformations.d.ts","sourceRoot":"","sources":["../../src/utilities/transformations.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,MAAM,OAAO,CAAA;AA4BtC,eAAO,MAAM,iBAAiB,SAAU,WAAW,GAAG,MAAM,SAE3D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,UAAW,OAAO,WAAkB,CAAA;AAEjE;;;;;GAKG;AACH,eAAO,MAAM,cAAc,UAAW,MAAM;UAMV,GAAG;;CAGpC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,UAAW,MAAM,KAAG,OAKpD,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,UAAW;IAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAC,GAAG,MAAM;UA4DzD,GAAG;;CAGnC,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,UAAW;IAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAC,GAAG,MAAM,KAAG,OAiDlG,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,UAAW,MAAM,GAAG,MAAM,KAAG,MAyEvD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,UAAW,MAAM,KAAG,MAe9C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;GAO7B,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,UAAW,MAAM,KAAG,MAiBnD,CAAA"}
|
package/dist/react/Shader.js
CHANGED
|
@@ -2,9 +2,10 @@ import { createContext, useEffect, useMemo, useRef } from "react";
|
|
|
2
2
|
import { shaderRenderer } from "../core/index.js";
|
|
3
3
|
import { vec4 } from "three/tsl";
|
|
4
4
|
import { TelemetryCollector, isExternalUser, shouldCollectTelemetry } from "../core/telemetry/index.js";
|
|
5
|
+
import { setColorSpaceMode } from "../core/utilities/transformations/index.js";
|
|
5
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
7
|
const ShaderContext = createContext(null);
|
|
7
|
-
const Shader = ({ children, disableTelemetry = false, style = {}, className = "",...rest }) => {
|
|
8
|
+
const Shader = ({ children, disableTelemetry = false, colorSpace = "p3-linear", style = {}, className = "",...rest }) => {
|
|
8
9
|
const containerRef = useRef(null);
|
|
9
10
|
const canvasRef = useRef(null);
|
|
10
11
|
const rootId = useMemo(() => "shader-root-" + Math.random().toString(36).substring(7), []);
|
|
@@ -12,6 +13,7 @@ const Shader = ({ children, disableTelemetry = false, style = {}, className = ""
|
|
|
12
13
|
if (rendererRef.current === null) rendererRef.current = shaderRenderer();
|
|
13
14
|
const telemetryCollectorRef = useRef(null);
|
|
14
15
|
const telemetryStartTimeoutRef = useRef(null);
|
|
16
|
+
const shouldSendTelemetryRef = useRef(null);
|
|
15
17
|
const nodeRegister = useMemo(() => {
|
|
16
18
|
return (id, fragmentNodeFunc, parentId, metadata, uniforms = null, componentDefinition = null) => {
|
|
17
19
|
if (fragmentNodeFunc === null) {
|
|
@@ -89,11 +91,15 @@ const Shader = ({ children, disableTelemetry = false, style = {}, className = ""
|
|
|
89
91
|
isInitializingRef.current = true;
|
|
90
92
|
try {
|
|
91
93
|
const renderer = rendererRef.current;
|
|
92
|
-
if (!renderer.isInitialized()) await renderer.initialize({
|
|
94
|
+
if (!renderer.isInitialized()) await renderer.initialize({
|
|
95
|
+
canvas,
|
|
96
|
+
colorSpace
|
|
97
|
+
});
|
|
93
98
|
renderer.registerNode(rootId, ({ childNode }) => childNode || vec4(0, 0, 0, 0), null, null, {});
|
|
94
99
|
isInitializedRef.current = true;
|
|
95
100
|
isInitializingRef.current = false;
|
|
96
|
-
if (isExternalUser() && shouldCollectTelemetry(disableTelemetry)
|
|
101
|
+
if (shouldSendTelemetryRef.current === null) shouldSendTelemetryRef.current = isExternalUser() && shouldCollectTelemetry(disableTelemetry);
|
|
102
|
+
if (shouldSendTelemetryRef.current && !telemetryCollectorRef.current) startTelemetryWhenReady();
|
|
97
103
|
} catch (err) {
|
|
98
104
|
console.error("[Shader] Initialization failed:", err);
|
|
99
105
|
isInitializingRef.current = false;
|
|
@@ -111,7 +117,7 @@ const Shader = ({ children, disableTelemetry = false, style = {}, className = ""
|
|
|
111
117
|
if (isCurrentlyVisible && !wasVisibleRef.current) {
|
|
112
118
|
if (rendererRef.current.isInitialized()) {
|
|
113
119
|
rendererRef.current.startAnimation();
|
|
114
|
-
if (
|
|
120
|
+
if (shouldSendTelemetryRef.current && !telemetryCollectorRef.current && !telemetryStartTimeoutRef.current) startTelemetryWhenReady();
|
|
115
121
|
} else initializeRenderer().catch(console.error);
|
|
116
122
|
wasVisibleRef.current = true;
|
|
117
123
|
} else if (!isCurrentlyVisible && wasVisibleRef.current) {
|
|
@@ -155,6 +161,23 @@ const Shader = ({ children, disableTelemetry = false, style = {}, className = ""
|
|
|
155
161
|
isInitializingRef.current = false;
|
|
156
162
|
};
|
|
157
163
|
}, []);
|
|
164
|
+
const isFirstRenderRef = useRef(true);
|
|
165
|
+
useEffect(() => {
|
|
166
|
+
if (isFirstRenderRef.current) {
|
|
167
|
+
isFirstRenderRef.current = false;
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
if (rendererRef.current && isInitializedRef.current) {
|
|
171
|
+
setColorSpaceMode(colorSpace);
|
|
172
|
+
try {
|
|
173
|
+
rendererRef.current.cleanup();
|
|
174
|
+
isInitializedRef.current = false;
|
|
175
|
+
initializeRenderer().catch(console.error);
|
|
176
|
+
} catch (err) {
|
|
177
|
+
console.error("[Shader] Error updating colorSpace:", err);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}, [colorSpace]);
|
|
158
181
|
return /* @__PURE__ */ jsx(ShaderContext.Provider, {
|
|
159
182
|
value: contextValue,
|
|
160
183
|
children: /* @__PURE__ */ jsxs("div", {
|
|
@@ -10,6 +10,7 @@ export declare const ShaderContext: React.Context<ShaderContextValue | null>;
|
|
|
10
10
|
interface ShaderProps {
|
|
11
11
|
children?: React.ReactNode;
|
|
12
12
|
disableTelemetry?: boolean;
|
|
13
|
+
colorSpace?: 'p3-linear' | 'srgb';
|
|
13
14
|
style?: React.CSSProperties;
|
|
14
15
|
className?: string;
|
|
15
16
|
[key: string]: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Shader.d.ts","sourceRoot":"","sources":["../../src/engine/Shader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Shader.d.ts","sourceRoot":"","sources":["../../src/engine/Shader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAOvE,MAAM,WAAW,kBAAkB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAClJ,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/E,oBAAoB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,IAAI,CAAC;CACjE;AAED,eAAO,MAAM,aAAa,0CAAiD,CAAC;AAE5E,UAAU,WAAW;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAClC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA2SxC,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -7,7 +7,7 @@ interface ComponentConfig {
|
|
|
7
7
|
interface PresetConfig {
|
|
8
8
|
components: ComponentConfig[];
|
|
9
9
|
}
|
|
10
|
-
export declare function generatePresetCode(preset: PresetConfig): string;
|
|
10
|
+
export declare function generatePresetCode(preset: PresetConfig, colorSpace?: 'p3-linear' | 'srgb'): string;
|
|
11
11
|
export declare const availableComponents: string[];
|
|
12
12
|
export {};
|
|
13
13
|
//# sourceMappingURL=generatePresetCode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatePresetCode.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;AAy4BD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"generatePresetCode.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;AAy4BD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CA4ClG;AAGD,eAAO,MAAM,mBAAmB,UA4E/B,CAAA"}
|
|
@@ -841,7 +841,7 @@ function isIdUsedAsMaskSource(id, allComponents) {
|
|
|
841
841
|
flattenComponents(allComponents);
|
|
842
842
|
return flatComponents.some((component) => component.props?.maskSource === id);
|
|
843
843
|
}
|
|
844
|
-
function generatePresetCode(preset) {
|
|
844
|
+
function generatePresetCode(preset, colorSpace) {
|
|
845
845
|
const generateComponentString = (config, indent = " ") => {
|
|
846
846
|
const propString = config.props ? generatePropString(config.props, config.type, indent) : "";
|
|
847
847
|
let idString = "";
|
|
@@ -856,7 +856,8 @@ function generatePresetCode(preset) {
|
|
|
856
856
|
} else if (attributes) return `${indent}<${config.type}\n${indent} ${attributes} />`;
|
|
857
857
|
else return `${indent}<${config.type} />`;
|
|
858
858
|
};
|
|
859
|
-
|
|
859
|
+
const componentStrings = preset.components.map((config) => generateComponentString(config)).join("\n");
|
|
860
|
+
return `<Shader${colorSpace && colorSpace !== "p3-linear" ? ` colorSpace="${colorSpace}"` : ""}>\n${componentStrings}\n</Shader>`;
|
|
860
861
|
}
|
|
861
862
|
const availableComponents = [
|
|
862
863
|
"AngularBlur",
|
|
@@ -7,7 +7,7 @@ interface ComponentConfig {
|
|
|
7
7
|
interface PresetConfig {
|
|
8
8
|
components: ComponentConfig[];
|
|
9
9
|
}
|
|
10
|
-
export declare function generatePresetCode(preset: PresetConfig): string;
|
|
10
|
+
export declare function generatePresetCode(preset: PresetConfig, colorSpace?: 'p3-linear' | 'srgb'): string;
|
|
11
11
|
export declare const availableComponents: any[];
|
|
12
12
|
export {};
|
|
13
13
|
//# sourceMappingURL=generatePresetCode.template.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatePresetCode.template.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.template.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;AA4HD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"generatePresetCode.template.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.template.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;AA4HD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CA4ClG;AAGD,eAAO,MAAM,mBAAmB,OAG/B,CAAA"}
|
|
@@ -9,6 +9,7 @@ export declare const ShaderContext: import('solid-js').Context<ShaderContextValu
|
|
|
9
9
|
interface ShaderProps {
|
|
10
10
|
children?: JSX.Element;
|
|
11
11
|
disableTelemetry?: boolean;
|
|
12
|
+
colorSpace?: 'p3-linear' | 'srgb';
|
|
12
13
|
style?: JSX.CSSProperties;
|
|
13
14
|
class?: string;
|
|
14
15
|
[key: string]: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Shader.d.ts","sourceRoot":"","sources":["../../src/engine/Shader.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Shader.d.ts","sourceRoot":"","sources":["../../src/engine/Shader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuF,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;AAOzH,MAAM,WAAW,kBAAkB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAClJ,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/E,oBAAoB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,IAAI,CAAC;CACjE;AAED,eAAO,MAAM,aAAa,4DAAsC,CAAC;AAEjE,UAAU,WAAW;IACjB,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAClC,KAAK,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,QAAQ,EAAE,WAAW,eAsQnD;AAGD,wBAAgB,gBAAgB,uBAM/B"}
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
import { createComponent, template, spread, mergeProps, insert, use } from "solid-js/web";
|
|
2
|
-
import { createContext, splitProps, createMemo, onMount, onCleanup, useContext } from "solid-js";
|
|
2
|
+
import { createContext, splitProps, createMemo, onMount, onCleanup, createEffect, useContext } from "solid-js";
|
|
3
3
|
import { shaderRenderer } from "../../core/index.js";
|
|
4
4
|
import { vec4 } from "three/tsl";
|
|
5
5
|
import { isExternalUser, shouldCollectTelemetry, TelemetryCollector } from "../../core/telemetry/index.js";
|
|
6
|
+
import { setColorSpaceMode } from "../../core/utilities/transformations/index.js";
|
|
6
7
|
var _tmpl$ = /* @__PURE__ */ template(`<div><canvas data-renderer=shaders style=width:100%;height:100%;display:block>`);
|
|
7
8
|
const ShaderContext = createContext();
|
|
8
9
|
function Shader(allProps) {
|
|
9
|
-
const [props, domProps] = splitProps(allProps, ["children", "disableTelemetry", "style", "class"]);
|
|
10
|
+
const [props, domProps] = splitProps(allProps, ["children", "disableTelemetry", "colorSpace", "style", "class"]);
|
|
10
11
|
let containerRef;
|
|
11
12
|
let canvasRef;
|
|
12
13
|
const rootId = "shader-root-" + Math.random().toString(36).substring(7);
|
|
13
14
|
const rendererInstance = shaderRenderer();
|
|
14
15
|
let telemetryCollector = null;
|
|
15
16
|
let telemetryStartTimeout = null;
|
|
17
|
+
let shouldSendTelemetry = null;
|
|
16
18
|
let wasVisible = false;
|
|
17
19
|
let visibilityObserver = null;
|
|
18
20
|
let isInitialized = false;
|
|
@@ -78,7 +80,8 @@ function Shader(allProps) {
|
|
|
78
80
|
try {
|
|
79
81
|
if (!rendererInstance.isInitialized()) {
|
|
80
82
|
await rendererInstance.initialize({
|
|
81
|
-
canvas
|
|
83
|
+
canvas,
|
|
84
|
+
colorSpace: props.colorSpace || "p3-linear"
|
|
82
85
|
});
|
|
83
86
|
}
|
|
84
87
|
rendererInstance.registerNode(
|
|
@@ -96,7 +99,10 @@ function Shader(allProps) {
|
|
|
96
99
|
);
|
|
97
100
|
isInitialized = true;
|
|
98
101
|
isInitializing = false;
|
|
99
|
-
if (
|
|
102
|
+
if (shouldSendTelemetry === null) {
|
|
103
|
+
shouldSendTelemetry = isExternalUser() && shouldCollectTelemetry(props.disableTelemetry);
|
|
104
|
+
}
|
|
105
|
+
if (shouldSendTelemetry && !telemetryCollector) {
|
|
100
106
|
startTelemetryWhenReady();
|
|
101
107
|
}
|
|
102
108
|
} catch (err) {
|
|
@@ -116,7 +122,7 @@ function Shader(allProps) {
|
|
|
116
122
|
if (isCurrentlyVisible && !wasVisible) {
|
|
117
123
|
if (rendererInstance.isInitialized()) {
|
|
118
124
|
rendererInstance.startAnimation();
|
|
119
|
-
if (
|
|
125
|
+
if (shouldSendTelemetry && !telemetryCollector && !telemetryStartTimeout) {
|
|
120
126
|
startTelemetryWhenReady();
|
|
121
127
|
}
|
|
122
128
|
} else {
|
|
@@ -169,6 +175,20 @@ function Shader(allProps) {
|
|
|
169
175
|
}
|
|
170
176
|
}
|
|
171
177
|
});
|
|
178
|
+
let isFirstEffect = true;
|
|
179
|
+
createEffect(() => {
|
|
180
|
+
const currentColorSpace = props.colorSpace || "p3-linear";
|
|
181
|
+
if (isFirstEffect) {
|
|
182
|
+
isFirstEffect = false;
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
if (rendererInstance.isInitialized()) {
|
|
186
|
+
setColorSpaceMode(currentColorSpace);
|
|
187
|
+
rendererInstance.cleanup();
|
|
188
|
+
isInitialized = false;
|
|
189
|
+
initializeRenderer().catch(console.error);
|
|
190
|
+
}
|
|
191
|
+
});
|
|
172
192
|
return createComponent(ShaderContext.Provider, {
|
|
173
193
|
get value() {
|
|
174
194
|
return contextValue();
|
|
@@ -7,7 +7,7 @@ interface ComponentConfig {
|
|
|
7
7
|
interface PresetConfig {
|
|
8
8
|
components: ComponentConfig[];
|
|
9
9
|
}
|
|
10
|
-
export declare function generatePresetCode(preset: PresetConfig): string;
|
|
10
|
+
export declare function generatePresetCode(preset: PresetConfig, colorSpace?: 'p3-linear' | 'srgb'): string;
|
|
11
11
|
export declare const availableComponents: string[];
|
|
12
12
|
export {};
|
|
13
13
|
//# sourceMappingURL=generatePresetCode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatePresetCode.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;AA24BD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"generatePresetCode.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;AA24BD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CA4ClG;AAGD,eAAO,MAAM,mBAAmB,UA4E/B,CAAA"}
|
|
@@ -871,7 +871,7 @@ function isIdUsedAsMaskSource(id, allComponents) {
|
|
|
871
871
|
}
|
|
872
872
|
);
|
|
873
873
|
}
|
|
874
|
-
function generatePresetCode(preset) {
|
|
874
|
+
function generatePresetCode(preset, colorSpace) {
|
|
875
875
|
const generateComponentString = (config, indent = " ") => {
|
|
876
876
|
const propString = config.props ? generatePropString(config.props, config.type, indent) : "";
|
|
877
877
|
let idString = "";
|
|
@@ -904,7 +904,8 @@ ${indent} ${attributes} />`;
|
|
|
904
904
|
}
|
|
905
905
|
};
|
|
906
906
|
const componentStrings = preset.components.map((config) => generateComponentString(config)).join("\n");
|
|
907
|
-
|
|
907
|
+
const shaderProps = colorSpace && colorSpace !== "p3-linear" ? ` colorSpace="${colorSpace}"` : "";
|
|
908
|
+
return `<Shader${shaderProps}>
|
|
908
909
|
${componentStrings}
|
|
909
910
|
</Shader>`;
|
|
910
911
|
}
|
|
@@ -7,7 +7,7 @@ interface ComponentConfig {
|
|
|
7
7
|
interface PresetConfig {
|
|
8
8
|
components: ComponentConfig[];
|
|
9
9
|
}
|
|
10
|
-
export declare function generatePresetCode(preset: PresetConfig): string;
|
|
10
|
+
export declare function generatePresetCode(preset: PresetConfig, colorSpace?: 'p3-linear' | 'srgb'): string;
|
|
11
11
|
export declare const availableComponents: any[];
|
|
12
12
|
export {};
|
|
13
13
|
//# sourceMappingURL=generatePresetCode.template.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatePresetCode.template.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.template.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;AA8HD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"generatePresetCode.template.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.template.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;AA8HD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CA4ClG;AAGD,eAAO,MAAM,mBAAmB,OAG/B,CAAA"}
|
|
@@ -841,7 +841,7 @@ function isIdUsedAsMaskSource(id, allComponents) {
|
|
|
841
841
|
flattenComponents(allComponents);
|
|
842
842
|
return flatComponents.some((component) => component.props?.maskSource === id);
|
|
843
843
|
}
|
|
844
|
-
function generatePresetCode(preset) {
|
|
844
|
+
function generatePresetCode(preset, colorSpace) {
|
|
845
845
|
const generateComponentString = (config, indent = " ") => {
|
|
846
846
|
const propString = config.props ? generatePropString(config.props, config.type, indent) : "";
|
|
847
847
|
let idString = "";
|
|
@@ -856,7 +856,8 @@ function generatePresetCode(preset) {
|
|
|
856
856
|
} else if (attributes) return `${indent}<${config.type}\n${indent} ${attributes} />`;
|
|
857
857
|
else return `${indent}<${config.type} />`;
|
|
858
858
|
};
|
|
859
|
-
|
|
859
|
+
const componentStrings = preset.components.map((config) => generateComponentString(config)).join("\n");
|
|
860
|
+
return `<Shader${colorSpace && colorSpace !== "p3-linear" ? ` colorSpace="${colorSpace}"` : ""}>\n${componentStrings}\n</Shader>`;
|
|
860
861
|
}
|
|
861
862
|
const availableComponents = [
|
|
862
863
|
"AngularBlur",
|
package/dist/svelte/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as generatePresetCode } from "./generatePresetCode-
|
|
1
|
+
import { n as generatePresetCode } from "./generatePresetCode-EA1bmNOJ.js";
|
|
2
2
|
import "svelte/internal/disclose-version";
|
|
3
3
|
import * as $ from "svelte/internal/client";
|
|
4
4
|
import { getContext, onDestroy, onMount, setContext } from "svelte";
|
|
@@ -79,6 +79,7 @@ import { componentDefinition as componentDefinition$72 } from "../core/shaders/W
|
|
|
79
79
|
import { componentDefinition as componentDefinition$73 } from "../core/shaders/ZoomBlur/index.js";
|
|
80
80
|
import { vec4 } from "three/tsl";
|
|
81
81
|
import { TelemetryCollector, isExternalUser, shouldCollectTelemetry } from "../core/telemetry/index.js";
|
|
82
|
+
import { setColorSpaceMode } from "../core/utilities/transformations/index.js";
|
|
82
83
|
var root$74 = $.from_html(`<span style="display:contents"><!></span>`);
|
|
83
84
|
function AngularBlur($$anchor, $$props) {
|
|
84
85
|
$.push($$props, true);
|
|
@@ -9629,11 +9630,12 @@ var root_1 = $.from_html(`<canvas data-renderer="shaders" style="width: 100%; he
|
|
|
9629
9630
|
var root = $.from_html(`<div><!></div>`);
|
|
9630
9631
|
function Shader($$anchor, $$props) {
|
|
9631
9632
|
$.push($$props, true);
|
|
9632
|
-
const disableTelemetry = $.prop($$props, "disableTelemetry", 3, false), rest = $.rest_props($$props, [
|
|
9633
|
+
const disableTelemetry = $.prop($$props, "disableTelemetry", 3, false), colorSpace = $.prop($$props, "colorSpace", 3, "p3-linear"), rest = $.rest_props($$props, [
|
|
9633
9634
|
"$$slots",
|
|
9634
9635
|
"$$events",
|
|
9635
9636
|
"$$legacy",
|
|
9636
9637
|
"disableTelemetry",
|
|
9638
|
+
"colorSpace",
|
|
9637
9639
|
"children"
|
|
9638
9640
|
]);
|
|
9639
9641
|
let containerRef;
|
|
@@ -9643,6 +9645,7 @@ function Shader($$anchor, $$props) {
|
|
|
9643
9645
|
let rendererInstance = null;
|
|
9644
9646
|
let telemetryCollector = null;
|
|
9645
9647
|
let telemetryStartTimeout = null;
|
|
9648
|
+
let shouldSendTelemetry = null;
|
|
9646
9649
|
setContext("shaderParentId", rootId);
|
|
9647
9650
|
setContext("shaderNodeRegister", (id, fragmentNodeFunc, parentId, metadata, uniforms = null) => {
|
|
9648
9651
|
if (!rendererInstance) return;
|
|
@@ -9673,9 +9676,13 @@ function Shader($$anchor, $$props) {
|
|
|
9673
9676
|
const initializeRenderer = async () => {
|
|
9674
9677
|
if (!canvasRef || !rendererInstance) return;
|
|
9675
9678
|
try {
|
|
9676
|
-
if (!rendererInstance.isInitialized()) await rendererInstance.initialize({
|
|
9679
|
+
if (!rendererInstance.isInitialized()) await rendererInstance.initialize({
|
|
9680
|
+
canvas: canvasRef,
|
|
9681
|
+
colorSpace: colorSpace()
|
|
9682
|
+
});
|
|
9677
9683
|
rendererInstance.registerNode(rootId, ({ childNode }) => childNode || vec4(0, 0, 0, 0), null, null, {});
|
|
9678
|
-
if (isExternalUser() && shouldCollectTelemetry(disableTelemetry())
|
|
9684
|
+
if (shouldSendTelemetry === null) shouldSendTelemetry = isExternalUser() && shouldCollectTelemetry(disableTelemetry());
|
|
9685
|
+
if (shouldSendTelemetry && !telemetryCollector) startTelemetryWhenReady();
|
|
9679
9686
|
} catch (err) {
|
|
9680
9687
|
console.error("[Shader] Initialization failed:", err);
|
|
9681
9688
|
throw err;
|
|
@@ -9691,7 +9698,7 @@ function Shader($$anchor, $$props) {
|
|
|
9691
9698
|
if (isCurrentlyVisible && !wasVisible) {
|
|
9692
9699
|
if (rendererInstance?.isInitialized()) {
|
|
9693
9700
|
rendererInstance.startAnimation();
|
|
9694
|
-
if (
|
|
9701
|
+
if (shouldSendTelemetry && !telemetryCollector && !telemetryStartTimeout) startTelemetryWhenReady();
|
|
9695
9702
|
} else initializeRenderer().catch(console.error);
|
|
9696
9703
|
wasVisible = true;
|
|
9697
9704
|
} else if (!isCurrentlyVisible && wasVisible) {
|
|
@@ -9735,6 +9742,19 @@ function Shader($$anchor, $$props) {
|
|
|
9735
9742
|
console.warn("[Shader] Error during cleanup:", err);
|
|
9736
9743
|
}
|
|
9737
9744
|
});
|
|
9745
|
+
let isFirstEffect = true;
|
|
9746
|
+
$.user_effect(() => {
|
|
9747
|
+
const currentColorSpace = colorSpace();
|
|
9748
|
+
if (isFirstEffect) {
|
|
9749
|
+
isFirstEffect = false;
|
|
9750
|
+
return;
|
|
9751
|
+
}
|
|
9752
|
+
if (rendererInstance?.isInitialized()) {
|
|
9753
|
+
setColorSpaceMode(currentColorSpace);
|
|
9754
|
+
rendererInstance.cleanup();
|
|
9755
|
+
initializeRenderer().catch(console.error);
|
|
9756
|
+
}
|
|
9757
|
+
});
|
|
9738
9758
|
var div = root();
|
|
9739
9759
|
$.attribute_effect(div, () => ({
|
|
9740
9760
|
class: "shader",
|
|
@@ -7,6 +7,6 @@ interface ComponentConfig {
|
|
|
7
7
|
interface PresetConfig {
|
|
8
8
|
components: ComponentConfig[];
|
|
9
9
|
}
|
|
10
|
-
export declare function generatePresetCode(preset: PresetConfig): string;
|
|
10
|
+
export declare function generatePresetCode(preset: PresetConfig, colorSpace?: 'p3-linear' | 'srgb'): string;
|
|
11
11
|
export declare const availableComponents: string[];
|
|
12
12
|
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as generatePresetCode, t as availableComponents } from "../generatePresetCode-
|
|
1
|
+
import { n as generatePresetCode, t as availableComponents } from "../generatePresetCode-EA1bmNOJ.js";
|
|
2
2
|
export { availableComponents, generatePresetCode };
|
|
@@ -7,6 +7,6 @@ interface ComponentConfig {
|
|
|
7
7
|
interface PresetConfig {
|
|
8
8
|
components: ComponentConfig[];
|
|
9
9
|
}
|
|
10
|
-
export declare function generatePresetCode(preset: PresetConfig): string;
|
|
10
|
+
export declare function generatePresetCode(preset: PresetConfig, colorSpace?: 'p3-linear' | 'srgb'): string;
|
|
11
11
|
export declare const availableComponents: any[];
|
|
12
12
|
export {};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { createElementBlock, createElementVNode, defineComponent, mergeProps, onBeforeUnmount, onMounted, openBlock, provide, ref, renderSlot, shallowRef } from "vue";
|
|
1
|
+
import { createElementBlock, createElementVNode, defineComponent, mergeProps, onBeforeUnmount, onMounted, openBlock, provide, ref, renderSlot, shallowRef, watch } from "vue";
|
|
2
2
|
import { shaderRenderer } from "../core/index.js";
|
|
3
3
|
import { vec4 } from "three/tsl";
|
|
4
4
|
import { TelemetryCollector, isExternalUser, shouldCollectTelemetry } from "../core/telemetry/index.js";
|
|
5
|
+
import { setColorSpaceMode } from "../core/utilities/transformations/index.js";
|
|
5
6
|
var Shader_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
6
7
|
__name: "Shader",
|
|
7
8
|
props: {
|
|
@@ -11,11 +12,13 @@ var Shader_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
|
|
|
11
12
|
},
|
|
12
13
|
enablePerformanceTracking: {
|
|
13
14
|
type: Boolean,
|
|
14
|
-
default:
|
|
15
|
-
}
|
|
15
|
+
default: true
|
|
16
|
+
},
|
|
17
|
+
colorSpace: { default: "p3-linear" }
|
|
16
18
|
},
|
|
17
19
|
setup(__props, { expose: __expose }) {
|
|
18
20
|
const props = __props;
|
|
21
|
+
setColorSpaceMode(props.colorSpace);
|
|
19
22
|
const containerRef = ref(null);
|
|
20
23
|
const canvasRef = ref(null);
|
|
21
24
|
const rootId = ref("shader-root-" + Math.random().toString(36).substring(7));
|
|
@@ -23,6 +26,7 @@ var Shader_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
|
|
|
23
26
|
const rendererResetSignal = ref(0);
|
|
24
27
|
let telemetryCollector = null;
|
|
25
28
|
let telemetryStartTimeout = null;
|
|
29
|
+
let shouldSendTelemetry = null;
|
|
26
30
|
provide("shaderParentId", rootId.value);
|
|
27
31
|
provide("shaderRendererResetSignal", rendererResetSignal);
|
|
28
32
|
provide("shaderNodeRegister", (id, fragmentNodeFunc, parentId, metadata, uniforms = null, componentDefinition = null) => {
|
|
@@ -39,10 +43,12 @@ var Shader_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
|
|
|
39
43
|
if (!canvasRef.value) return;
|
|
40
44
|
if (!rendererInstance.value.isInitialized()) await rendererInstance.value.initialize({
|
|
41
45
|
canvas: canvasRef.value,
|
|
42
|
-
enablePerformanceTracking: props.enablePerformanceTracking
|
|
46
|
+
enablePerformanceTracking: props.enablePerformanceTracking,
|
|
47
|
+
colorSpace: props.colorSpace
|
|
43
48
|
});
|
|
44
49
|
rendererInstance.value.registerNode(rootId.value, ({ childNode }) => childNode || vec4(0, 0, 0, 0), null, null, {}, void 0);
|
|
45
|
-
if (isExternalUser() && shouldCollectTelemetry(props.disableTelemetry)
|
|
50
|
+
if (shouldSendTelemetry === null) shouldSendTelemetry = isExternalUser() && shouldCollectTelemetry(props.disableTelemetry);
|
|
51
|
+
if (shouldSendTelemetry && !telemetryCollector) startTelemetryWhenReady();
|
|
46
52
|
};
|
|
47
53
|
const startTelemetryWhenReady = () => {
|
|
48
54
|
const checkRendering = () => {
|
|
@@ -65,7 +71,7 @@ var Shader_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
|
|
|
65
71
|
if (isCurrentlyVisible && !wasVisible) {
|
|
66
72
|
if (rendererInstance.value.isInitialized()) {
|
|
67
73
|
rendererInstance.value.startAnimation();
|
|
68
|
-
if (
|
|
74
|
+
if (shouldSendTelemetry && !telemetryCollector && !telemetryStartTimeout) startTelemetryWhenReady();
|
|
69
75
|
} else initializeRenderer().then(() => {
|
|
70
76
|
rendererResetSignal.value++;
|
|
71
77
|
}).catch(console.error);
|
|
@@ -88,6 +94,17 @@ var Shader_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
|
|
|
88
94
|
setupVisibilityObserver();
|
|
89
95
|
}
|
|
90
96
|
});
|
|
97
|
+
let isFirstRun = true;
|
|
98
|
+
watch(() => props.colorSpace, (newColorSpace) => {
|
|
99
|
+
if (isFirstRun) {
|
|
100
|
+
isFirstRun = false;
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
if (rendererInstance.value.isInitialized()) {
|
|
104
|
+
setColorSpaceMode(newColorSpace);
|
|
105
|
+
rendererResetSignal.value++;
|
|
106
|
+
}
|
|
107
|
+
});
|
|
91
108
|
const captureScreenshot = async (maxWidth = 1200) => {
|
|
92
109
|
if (!canvasRef.value) throw new Error("Canvas not available");
|
|
93
110
|
try {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
interface Props {
|
|
2
2
|
disableTelemetry?: boolean;
|
|
3
3
|
enablePerformanceTracking?: boolean;
|
|
4
|
+
colorSpace?: 'p3-linear' | 'srgb';
|
|
4
5
|
}
|
|
5
6
|
declare function __VLS_template(): {
|
|
6
7
|
default?(_: {}): any;
|
|
@@ -8,13 +9,16 @@ declare function __VLS_template(): {
|
|
|
8
9
|
declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<Props>, {
|
|
9
10
|
disableTelemetry: boolean;
|
|
10
11
|
enablePerformanceTracking: boolean;
|
|
12
|
+
colorSpace: string;
|
|
11
13
|
}>>, {
|
|
12
14
|
captureScreenshot: (maxWidth?: number) => Promise<Blob>;
|
|
13
15
|
getPerformanceStats: () => import('../../core').PerformanceStats;
|
|
14
16
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<Props>, {
|
|
15
17
|
disableTelemetry: boolean;
|
|
16
18
|
enablePerformanceTracking: boolean;
|
|
19
|
+
colorSpace: string;
|
|
17
20
|
}>>> & Readonly<{}>, {
|
|
21
|
+
colorSpace: "p3-linear" | "srgb";
|
|
18
22
|
disableTelemetry: boolean;
|
|
19
23
|
enablePerformanceTracking: boolean;
|
|
20
24
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Shader.vue.d.ts","sourceRoot":"","sources":["../../src/engine/Shader.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Shader.vue.d.ts","sourceRoot":"","sources":["../../src/engine/Shader.vue"],"names":[],"mappings":"AAUA,UAAU,KAAK;IACb,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,yBAAyB,CAAC,EAAE,OAAO,CAAA;IACnC,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,CAAA;CAClC;AA+SD,iBAAS,cAAc;qBAkDO,GAAG;EAKhC;AAUD,QAAA,MAAM,eAAe;;;;;8CAhL8B,OAAO,CAAC,IAAI,CAAC;;;;;;;gBAjMjD,WAAW,GAAG,MAAM;sBAFd,OAAO;+BACE,OAAO;4EAyXnC,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAAvG,wBAAwG;AACxG,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC;AAC9M,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAE1B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QACxE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KACb,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AACN,KAAK,cAAc,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC;AACxD,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAAE,QAAO;QAClD,MAAM,EAAE,CAAC,CAAC;KACT,CAAA;CAAE,CAAC"}
|
|
@@ -7,7 +7,7 @@ interface ComponentConfig {
|
|
|
7
7
|
interface PresetConfig {
|
|
8
8
|
components: ComponentConfig[];
|
|
9
9
|
}
|
|
10
|
-
export declare function generatePresetCode(preset: PresetConfig): string;
|
|
10
|
+
export declare function generatePresetCode(preset: PresetConfig, colorSpace?: 'p3-linear' | 'srgb'): string;
|
|
11
11
|
export declare const availableComponents: string[];
|
|
12
12
|
export {};
|
|
13
13
|
//# sourceMappingURL=generatePresetCode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatePresetCode.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;AAs4BD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"generatePresetCode.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;AAs4BD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CA4ClG;AAGD,eAAO,MAAM,mBAAmB,UA4E/B,CAAA"}
|
|
@@ -840,7 +840,7 @@ function isIdUsedAsMaskSource(id, allComponents) {
|
|
|
840
840
|
flattenComponents(allComponents);
|
|
841
841
|
return flatComponents.some((component) => component.props?.maskSource === id);
|
|
842
842
|
}
|
|
843
|
-
function generatePresetCode(preset) {
|
|
843
|
+
function generatePresetCode(preset, colorSpace) {
|
|
844
844
|
const generateComponentString = (config, indent = " ") => {
|
|
845
845
|
const propString = config.props ? generatePropString(config.props, config.type, indent) : "";
|
|
846
846
|
let idString = "";
|
|
@@ -855,7 +855,8 @@ function generatePresetCode(preset) {
|
|
|
855
855
|
} else if (attributes) return `${indent}<${config.type}\n${indent} ${attributes}/>`;
|
|
856
856
|
else return `${indent}<${config.type}/>`;
|
|
857
857
|
};
|
|
858
|
-
|
|
858
|
+
const componentStrings = preset.components.map((config) => generateComponentString(config)).join("\n");
|
|
859
|
+
return `<Shader${colorSpace && colorSpace !== "p3-linear" ? ` color-space="${colorSpace}"` : ""}>\n${componentStrings}\n</Shader>`;
|
|
859
860
|
}
|
|
860
861
|
const availableComponents = [
|
|
861
862
|
"AngularBlur",
|
|
@@ -7,7 +7,7 @@ interface ComponentConfig {
|
|
|
7
7
|
interface PresetConfig {
|
|
8
8
|
components: ComponentConfig[];
|
|
9
9
|
}
|
|
10
|
-
export declare function generatePresetCode(preset: PresetConfig): string;
|
|
10
|
+
export declare function generatePresetCode(preset: PresetConfig, colorSpace?: 'p3-linear' | 'srgb'): string;
|
|
11
11
|
export declare const availableComponents: any[];
|
|
12
12
|
export {};
|
|
13
13
|
//# sourceMappingURL=generatePresetCode.template.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatePresetCode.template.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.template.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;AAyHD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"generatePresetCode.template.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.template.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;AAyHD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CA4ClG;AAGD,eAAO,MAAM,mBAAmB,OAG/B,CAAA"}
|