shaders 2.3.57 → 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-BNL2_pBD.js → AngularBlur-m_DWR-a1.js} +1 -1
- package/dist/core/{Aurora-DtnRdRC-.js → Aurora-CYCPE1wp.js} +2 -2
- package/dist/core/{Beam-qJlv6CVV.js → Beam-COjEb2JI.js} +2 -2
- package/dist/core/{Blob-DGRz-vGs.js → Blob-jHnoxt2N.js} +2 -2
- package/dist/core/{Bulge-54fwrqfj.js → Bulge-CsNj4Jew.js} +1 -1
- package/dist/core/{Checkerboard-DwFfxCnj.js → Checkerboard-DwiW08iJ.js} +2 -2
- package/dist/core/{ChromaFlow-EXxrLXaR.js → ChromaFlow-DfP9ZDg0.js} +1 -1
- package/dist/core/{ChromaticAberration-CNR09GFf.js → ChromaticAberration-VL5tfOeo.js} +1 -1
- package/dist/core/{Circle-zhbK6F5c.js → Circle-CUYMdgd5.js} +2 -2
- package/dist/core/{ConcentricSpin-CDjyEIxy.js → ConcentricSpin-DBqXmCjg.js} +1 -1
- package/dist/core/{ContourLines-zyy6CCUx.js → ContourLines-D2KRIOBw.js} +1 -1
- package/dist/core/{CursorRipples-CmE0GhQh.js → CursorRipples-JWrDL_dU.js} +1 -1
- package/dist/core/{CursorTrail--yjKF5x6.js → CursorTrail-D2_14ZEz.js} +2 -2
- package/dist/core/{DiffuseBlur-CfZ3V94k.js → DiffuseBlur-siJmc-84.js} +1 -1
- package/dist/core/{Dither-Cro5_SzL.js → Dither-GoyNQ4_v.js} +1 -1
- package/dist/core/{DotGrid-BOS1G6mL.js → DotGrid-B8bSufr6.js} +1 -1
- package/dist/core/{Duotone-bPh-N4wz.js → Duotone-CRiDL3YN.js} +2 -2
- package/dist/core/{FloatingParticles-DzTtE8CB.js → FloatingParticles-CtrWM2rw.js} +1 -1
- package/dist/core/{FlowField-Cuy2JAYR.js → FlowField-B-sNApu9.js} +1 -1
- package/dist/core/{Godrays-CbslvOsk.js → Godrays-BV94FCDI.js} +1 -1
- package/dist/core/{Grid-CGHXquxS.js → Grid-Czxa6-My.js} +1 -1
- package/dist/core/{GridDistortion-B3b17eue.js → GridDistortion-CKhOZRpM.js} +1 -1
- package/dist/core/{Halftone-iU8wtr1b.js → Halftone-YTJAc3Ie.js} +1 -1
- package/dist/core/{Kaleidoscope-BL6E3BVU.js → Kaleidoscope-BDTIWTFC.js} +1 -1
- package/dist/core/{LensFlare-B-SuRYrs.js → LensFlare-CxyJBEvr.js} +1 -1
- package/dist/core/{LinearBlur-C022H2bm.js → LinearBlur-BtsleV0J.js} +1 -1
- package/dist/core/{LinearGradient-Bw4cgU2M.js → LinearGradient-BP91wtXm.js} +2 -2
- package/dist/core/{Liquify-C6s_nyRi.js → Liquify-2u2lkBhB.js} +1 -1
- package/dist/core/{Mirror-uDxrbYeY.js → Mirror-BonA1elw.js} +1 -1
- package/dist/core/{Perspective-C2l3C8d0.js → Perspective-Cwpv4683.js} +1 -1
- package/dist/core/{Plasma-B4lUXy1l.js → Plasma-BU4ujuLB.js} +2 -2
- package/dist/core/{PolarCoordinates-CxxFpdz2.js → PolarCoordinates-6BZYZFoj.js} +1 -1
- package/dist/core/{ProgressiveBlur-BnWdDciO.js → ProgressiveBlur-Y8YqC7HM.js} +1 -1
- package/dist/core/{RadialGradient-RBdy6zz7.js → RadialGradient-DauSwpwY.js} +2 -2
- package/dist/core/{RectangularCoordinates-CuKEfncN.js → RectangularCoordinates-C5585uvf.js} +1 -1
- package/dist/core/{Ripples-DPp17BSt.js → Ripples-QWGujQgy.js} +2 -2
- package/dist/core/{Shatter-CABbAt_A.js → Shatter-DRSn9uGZ.js} +1 -1
- package/dist/core/{SimplexNoise-B6NBzB1e.js → SimplexNoise-W0fx_Y5Q.js} +2 -2
- package/dist/core/{SineWave-6gxiNlvQ.js → SineWave-C-r5bVGK.js} +1 -1
- package/dist/core/{SolidColor-DEXByN1S.js → SolidColor-BY2tBGcO.js} +1 -1
- package/dist/core/{Spherize-DRGaSHzl.js → Spherize-DF4iTTzb.js} +1 -1
- package/dist/core/{Spiral-DT16M2Ky.js → Spiral-DWBdkW7Y.js} +2 -2
- package/dist/core/{Strands-CQBNeiNL.js → Strands-BFVI3C04.js} +1 -1
- package/dist/core/{Stretch-DFVmX2dB.js → Stretch-CB92XLiC.js} +1 -1
- package/dist/core/{Stripes-80nKu5P2.js → Stripes-CTmvjI0U.js} +2 -2
- package/dist/core/{StudioBackground-81057m29.js → StudioBackground-DXHPEKcb.js} +1 -1
- package/dist/core/{Swirl-C0caKRGI.js → Swirl-DVaTB8HY.js} +2 -2
- package/dist/core/{TiltShift-CNn3Yo34.js → TiltShift-CMTVpEBO.js} +1 -1
- package/dist/core/{Tint-CfVQjPxR.js → Tint-COD37j4D.js} +1 -1
- package/dist/core/{Tritone-CM5ZgDQ5.js → Tritone-BETUi-og.js} +2 -2
- package/dist/core/{Twirl-Bc95ho0B.js → Twirl-BUlMUymT.js} +1 -1
- package/dist/core/{WaveDistortion-w4LX_3ES.js → WaveDistortion-DzwdX6Wj.js} +1 -1
- package/dist/core/{ZoomBlur-D2DwyQKZ.js → ZoomBlur-BE1vT38D.js} +1 -1
- package/dist/core/colorMixing-D_wMclqL.js +196 -0
- package/dist/core/index.js +4 -3
- package/dist/core/registry.js +55 -55
- 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 +3 -3
- package/dist/core/shaders/Beam/index.js +3 -3
- package/dist/core/shaders/Blob/index.js +3 -3
- package/dist/core/shaders/Bulge/index.js +2 -2
- package/dist/core/shaders/Checkerboard/index.js +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- package/dist/core/shaders/RectangularCoordinates/index.js +2 -2
- package/dist/core/shaders/Ripples/index.js +3 -3
- package/dist/core/shaders/Shatter/index.js +2 -2
- package/dist/core/shaders/SimplexNoise/index.js +3 -3
- 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 +3 -3
- 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 +3 -3
- package/dist/core/shaders/StudioBackground/index.js +2 -2
- package/dist/core/shaders/Swirl/index.js +3 -3
- 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 +3 -3
- 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-CC_c-QAT.js → transformations-B5lM6fYX.js} +26 -4
- package/dist/core/utilities/colorMixing.d.ts +2 -1
- package/dist/core/utilities/colorMixing.d.ts.map +1 -1
- package/dist/core/utilities/transformations/index.js +2 -0
- package/dist/core/utilities/transformations.d.ts +5 -2
- 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/registry.js +336 -0
- 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
- package/dist/core/colorMixing-DZpckBhm.js +0 -68
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"}
|
package/package.json
CHANGED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { abs, atan, cos, float, max, pow, sign, sin, sqrt, vec3, vec4 } from "three/tsl";
|
|
2
|
-
var p3ToSRGB = (p3) => {
|
|
3
|
-
return vec3(p3.x.mul(1.2249401).sub(p3.y.mul(.2249404)).sub(p3.z.mul(0)), p3.x.mul(-.0420569).add(p3.y.mul(1.0420571)).add(p3.z.mul(0)), p3.x.mul(-.0196376).sub(p3.y.mul(.0786361)).add(p3.z.mul(1.0982735)));
|
|
4
|
-
};
|
|
5
|
-
var sRGBToP3 = (srgb) => {
|
|
6
|
-
return vec3(srgb.x.mul(.8224621).add(srgb.y.mul(.177538)).add(srgb.z.mul(0)), srgb.x.mul(.0331941).add(srgb.y.mul(.9668058)).add(srgb.z.mul(0)), srgb.x.mul(.0170826).add(srgb.y.mul(.0723974)).add(srgb.z.mul(.9105199)));
|
|
7
|
-
};
|
|
8
|
-
var rgbToOklab = (rgb) => {
|
|
9
|
-
const r = rgb.x;
|
|
10
|
-
const g = rgb.y;
|
|
11
|
-
const b = rgb.z;
|
|
12
|
-
const l = r.mul(.4122214708).add(g.mul(.5363325363)).add(b.mul(.0514459929));
|
|
13
|
-
const m = r.mul(.2119034982).add(g.mul(.6806995451).add(b.mul(.1073969566)));
|
|
14
|
-
const s = r.mul(.0883024619).add(g.mul(.2817188376)).add(b.mul(.6299787005));
|
|
15
|
-
const l_ = sign(l).mul(pow(abs(l), float(1 / 3)));
|
|
16
|
-
const m_ = sign(m).mul(pow(abs(m), float(1 / 3)));
|
|
17
|
-
const s_ = sign(s).mul(pow(abs(s), float(1 / 3)));
|
|
18
|
-
return vec3(l_.mul(.2104542553).add(m_.mul(.793617785)).sub(s_.mul(.0040720468)), l_.mul(1.9779984951).sub(m_.mul(2.428592205)).add(s_.mul(.4505937099)), l_.mul(.0259040371).add(m_.mul(.7827717662)).sub(s_.mul(.808675766)));
|
|
19
|
-
};
|
|
20
|
-
var oklabToRgb = (lab) => {
|
|
21
|
-
const L = lab.x;
|
|
22
|
-
const a = lab.y;
|
|
23
|
-
const b = lab.z;
|
|
24
|
-
const l_ = L.add(a.mul(.3963377774)).add(b.mul(.2158037573));
|
|
25
|
-
const m_ = L.sub(a.mul(.1055613458)).sub(b.mul(.0638541728));
|
|
26
|
-
const s_ = L.sub(a.mul(.0894841775)).sub(b.mul(1.291485548));
|
|
27
|
-
const l = pow(l_, float(3));
|
|
28
|
-
const m = pow(m_, float(3));
|
|
29
|
-
const s = pow(s_, float(3));
|
|
30
|
-
return vec3(l.mul(4.0767416621).sub(m.mul(3.3077115913)).add(s.mul(.2309699292)), l.mul(-1.2684380046).add(m.mul(2.6097574011)).sub(s.mul(.3413193965)), l.mul(-.0041960863).sub(m.mul(.7034186147)).add(s.mul(1.707614701)));
|
|
31
|
-
};
|
|
32
|
-
var oklabToOklch = (lab) => {
|
|
33
|
-
const L = lab.x;
|
|
34
|
-
const a = lab.y;
|
|
35
|
-
const b = lab.z;
|
|
36
|
-
return vec3(L, sqrt(a.mul(a).add(b.mul(b))), atan(b, a));
|
|
37
|
-
};
|
|
38
|
-
var oklchToOklab = (lch) => {
|
|
39
|
-
const L = lch.x;
|
|
40
|
-
const C = lch.y;
|
|
41
|
-
const h = lch.z;
|
|
42
|
-
return vec3(L, C.mul(cos(h)), C.mul(sin(h)));
|
|
43
|
-
};
|
|
44
|
-
const mixColors = (colorA, colorB, t, colorSpaceMode) => {
|
|
45
|
-
const p3A = vec3(colorA.x, colorA.y, colorA.z);
|
|
46
|
-
const p3B = vec3(colorB.x, colorB.y, colorB.z);
|
|
47
|
-
const alphaA = colorA.w;
|
|
48
|
-
const alphaB = colorB.w;
|
|
49
|
-
const weightA = alphaA.mul(float(1).sub(t));
|
|
50
|
-
const weightB = alphaB.mul(t);
|
|
51
|
-
const totalWeight = weightA.add(weightB);
|
|
52
|
-
const safeWeight = max(totalWeight, float(.001));
|
|
53
|
-
const alphaWeightedMix = (rgbA, rgbB) => {
|
|
54
|
-
return rgbA.mul(weightA).add(rgbB.mul(weightB)).div(safeWeight);
|
|
55
|
-
};
|
|
56
|
-
const linearMix = alphaWeightedMix(p3A, p3B);
|
|
57
|
-
const srgbA = p3ToSRGB(p3A);
|
|
58
|
-
const srgbB = p3ToSRGB(p3B);
|
|
59
|
-
const oklabA = rgbToOklab(srgbA);
|
|
60
|
-
const oklabB = rgbToOklab(srgbB);
|
|
61
|
-
const oklchResult = sRGBToP3(oklabToRgb(oklchToOklab(alphaWeightedMix(oklabToOklch(oklabA), oklabToOklch(oklabB)))));
|
|
62
|
-
const oklabResult = sRGBToP3(oklabToRgb(alphaWeightedMix(oklabA, oklabB)));
|
|
63
|
-
const isMode1OrHigher = colorSpaceMode.greaterThanEqual(float(.5));
|
|
64
|
-
const rgb = colorSpaceMode.greaterThanEqual(float(1.5)).select(oklabResult, isMode1OrHigher.select(oklchResult, linearMix));
|
|
65
|
-
const alpha = totalWeight;
|
|
66
|
-
return vec4(rgb.x, rgb.y, rgb.z, alpha);
|
|
67
|
-
};
|
|
68
|
-
export { mixColors as t };
|