shaders 2.5.124 → 2.5.125

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/core/index.d.ts +1 -1
  2. package/dist/core/index.d.ts.map +1 -1
  3. package/dist/core/index.js +36 -4
  4. package/dist/core/renderer.d.ts +3 -2
  5. package/dist/core/renderer.d.ts.map +1 -1
  6. package/dist/core/types.d.ts +1 -0
  7. package/dist/core/types.d.ts.map +1 -1
  8. package/dist/js/createShader.d.ts.map +1 -1
  9. package/dist/js/createShader.js +2 -1
  10. package/dist/js/types.d.ts +1 -0
  11. package/dist/js/types.d.ts.map +1 -1
  12. package/dist/js/utils/generatePresetCode.d.ts +1 -1
  13. package/dist/js/utils/generatePresetCode.d.ts.map +1 -1
  14. package/dist/js/utils/generatePresetCode.js +2 -1
  15. package/dist/js/utils/generatePresetCode.template.d.ts +1 -1
  16. package/dist/js/utils/generatePresetCode.template.d.ts.map +1 -1
  17. package/dist/react/Shader.js +18 -3
  18. package/dist/react/bundle.js +52 -52
  19. package/dist/react/engine/Shader.d.ts +1 -0
  20. package/dist/react/engine/Shader.d.ts.map +1 -1
  21. package/dist/react/utils/generatePresetCode.d.ts +1 -1
  22. package/dist/react/utils/generatePresetCode.d.ts.map +1 -1
  23. package/dist/react/utils/generatePresetCode.js +2 -2
  24. package/dist/react/utils/generatePresetCode.template.d.ts +1 -1
  25. package/dist/react/utils/generatePresetCode.template.d.ts.map +1 -1
  26. package/dist/solid/engine/Shader.d.ts +1 -0
  27. package/dist/solid/engine/Shader.d.ts.map +1 -1
  28. package/dist/solid/engine/Shader.js +17 -3
  29. package/dist/solid/utils/generatePresetCode.d.ts +1 -1
  30. package/dist/solid/utils/generatePresetCode.d.ts.map +1 -1
  31. package/dist/solid/utils/generatePresetCode.js +4 -2
  32. package/dist/solid/utils/generatePresetCode.template.d.ts +1 -1
  33. package/dist/solid/utils/generatePresetCode.template.d.ts.map +1 -1
  34. package/dist/svelte/engine/Shader.svelte.d.ts +1 -0
  35. package/dist/svelte/index.js +17 -3
  36. package/dist/svelte/source/engine/Shader.svelte +20 -2
  37. package/dist/svelte/utils/generatePresetCode.d.ts +1 -1
  38. package/dist/svelte/utils/generatePresetCode.js +2 -2
  39. package/dist/svelte/utils/generatePresetCode.template.d.ts +1 -1
  40. package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +17 -2
  41. package/dist/vue/engine/Shader.vue.d.ts +4 -0
  42. package/dist/vue/engine/Shader.vue.d.ts.map +1 -1
  43. package/dist/vue/utils/generatePresetCode.d.ts +1 -1
  44. package/dist/vue/utils/generatePresetCode.d.ts.map +1 -1
  45. package/dist/vue/utils/generatePresetCode.js +2 -2
  46. package/dist/vue/utils/generatePresetCode.template.d.ts +1 -1
  47. package/dist/vue/utils/generatePresetCode.template.d.ts.map +1 -1
  48. package/package.json +1 -1
@@ -12,6 +12,7 @@ interface ShaderProps {
12
12
  children?: React.ReactNode;
13
13
  disableTelemetry?: boolean;
14
14
  colorSpace?: 'p3-linear' | 'srgb';
15
+ toneMapping?: 'linear' | 'reinhard' | 'cineon' | 'aces' | 'agx' | 'neutral' | 'hable' | 'unreal';
15
16
  isPreview?: boolean;
16
17
  onReady?: () => void;
17
18
  style?: React.CSSProperties;
@@ -1 +1 @@
1
- {"version":3,"file":"Shader.d.ts","sourceRoot":"","sources":["../../src/engine/Shader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAS9E,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,EAAE,SAAS,CAAC,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACjL,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;IAC9D,gBAAgB,EAAE,WAAW,GAAG,MAAM,CAAC;CAC1C;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,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,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,CAoUxC,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Shader.d.ts","sourceRoot":"","sources":["../../src/engine/Shader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAS9E,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,EAAE,SAAS,CAAC,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACjL,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;IAC9D,gBAAgB,EAAE,WAAW,GAAG,MAAM,CAAC;CAC1C;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,WAAW,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;IACjG,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,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,CAyVxC,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, colorSpace?: 'p3-linear' | 'srgb'): string;
10
+ export declare function generatePresetCode(preset: PresetConfig, colorSpace?: 'p3-linear' | 'srgb', toneMapping?: 'linear' | 'reinhard' | 'cineon' | 'aces' | 'agx' | 'neutral' | 'hable' | 'unreal'): 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;AA2mDD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAiFlG;AAGD,eAAO,MAAM,mBAAmB,UAuH/B,CAAA"}
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;AA2mDD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAmFpM;AAGD,eAAO,MAAM,mBAAmB,UAuH/B,CAAA"}
@@ -1553,7 +1553,7 @@ function isIdReferenced(id, allComponents) {
1553
1553
  return false;
1554
1554
  });
1555
1555
  }
1556
- function generatePresetCode(preset, colorSpace) {
1556
+ function generatePresetCode(preset, colorSpace, toneMapping) {
1557
1557
  const componentTypes = /* @__PURE__ */ new Set();
1558
1558
  function collectTypes(components) {
1559
1559
  for (const config of components) {
@@ -1580,7 +1580,7 @@ function generatePresetCode(preset, colorSpace) {
1580
1580
  else return `${indent}<${config.type} />`;
1581
1581
  };
1582
1582
  const componentStrings = preset.components.map((config) => generateComponentString(config)).join("\n");
1583
- const shaderProps = colorSpace && colorSpace !== "p3-linear" ? ` colorSpace="${colorSpace}"` : "";
1583
+ const shaderProps = (colorSpace && colorSpace !== "p3-linear" ? ` colorSpace="${colorSpace}"` : "") + (toneMapping && toneMapping !== "linear" ? ` toneMapping="${toneMapping}"` : "");
1584
1584
  const allImports = ["Shader", ...Array.from(componentTypes).sort()];
1585
1585
  return `${allImports.length > 3 ? `import {\n ${allImports.join(",\n ")},\n} from 'shaders/react'` : `import { ${allImports.join(", ")} } from 'shaders/react'`}
1586
1586
 
@@ -7,7 +7,7 @@ interface ComponentConfig {
7
7
  interface PresetConfig {
8
8
  components: ComponentConfig[];
9
9
  }
10
- export declare function generatePresetCode(preset: PresetConfig, colorSpace?: 'p3-linear' | 'srgb'): string;
10
+ export declare function generatePresetCode(preset: PresetConfig, colorSpace?: 'p3-linear' | 'srgb', toneMapping?: 'linear' | 'reinhard' | 'cineon' | 'aces' | 'agx' | 'neutral' | 'hable' | 'unreal'): 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;AAsLD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAiFlG;AAGD,eAAO,MAAM,mBAAmB,OAG/B,CAAA"}
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;AAsLD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAmFpM;AAGD,eAAO,MAAM,mBAAmB,OAG/B,CAAA"}
@@ -11,6 +11,7 @@ interface ShaderProps {
11
11
  children?: JSX.Element;
12
12
  disableTelemetry?: boolean;
13
13
  colorSpace?: 'p3-linear' | 'srgb';
14
+ toneMapping?: 'linear' | 'reinhard' | 'cineon' | 'aces' | 'agx' | 'neutral' | 'hable' | 'unreal';
14
15
  isPreview?: boolean;
15
16
  onReady?: () => void;
16
17
  style?: JSX.CSSProperties;
@@ -1 +1 @@
1
- {"version":3,"file":"Shader.d.ts","sourceRoot":"","sources":["../../src/engine/Shader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuG,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;AASzI,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,EAAE,SAAS,CAAC,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACjL,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;IAC9D,gBAAgB,EAAE,WAAW,GAAG,MAAM,CAAC;CAC1C;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,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,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,eAkRnD;AAGD,wBAAgB,gBAAgB,uBAM/B"}
1
+ {"version":3,"file":"Shader.d.ts","sourceRoot":"","sources":["../../src/engine/Shader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuG,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;AASzI,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,EAAE,SAAS,CAAC,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACjL,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;IAC9D,gBAAgB,EAAE,WAAW,GAAG,MAAM,CAAC;CAC1C;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,WAAW,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;IACjG,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,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,eAoSnD;AAGD,wBAAgB,gBAAgB,uBAM/B"}
@@ -7,7 +7,7 @@ import { setColorSpaceMode } from "../../core/utilities/transformations/index.js
7
7
  var _tmpl$ = /* @__PURE__ */ template(`<div><canvas data-renderer=shaders style=width:100%;height:100%;display:block>`);
8
8
  const ShaderContext = createContext();
9
9
  function Shader(allProps) {
10
- const [props, domProps] = splitProps(allProps, ["children", "disableTelemetry", "colorSpace", "isPreview", "onReady", "style", "class"]);
10
+ const [props, domProps] = splitProps(allProps, ["children", "disableTelemetry", "colorSpace", "toneMapping", "isPreview", "onReady", "style", "class"]);
11
11
  let containerRef;
12
12
  let canvasRef;
13
13
  const rootId = "shader-root-" + createUniqueId();
@@ -67,7 +67,7 @@ function Shader(allProps) {
67
67
  const checkRendering = () => {
68
68
  const stats = rendererInstance.getPerformanceStats();
69
69
  if (stats.fps > 0) {
70
- const version = "2.5.124";
70
+ const version = "2.5.125";
71
71
  telemetryCollector = startTelemetry(rendererInstance, version, props.disableTelemetry, props.isPreview);
72
72
  if (telemetryCollector) {
73
73
  telemetryCollector.start();
@@ -89,7 +89,8 @@ function Shader(allProps) {
89
89
  if (!rendererInstance.isInitialized()) {
90
90
  await rendererInstance.initialize({
91
91
  canvas,
92
- colorSpace: props.colorSpace || "p3-linear"
92
+ colorSpace: props.colorSpace || "p3-linear",
93
+ toneMapping: props.toneMapping || "linear"
93
94
  });
94
95
  }
95
96
  rendererInstance.registerNode(
@@ -197,6 +198,19 @@ function Shader(allProps) {
197
198
  initializeRenderer().catch(console.error);
198
199
  }
199
200
  });
201
+ let isFirstToneMappingEffect = true;
202
+ createEffect(() => {
203
+ void (props.toneMapping || "linear");
204
+ if (isFirstToneMappingEffect) {
205
+ isFirstToneMappingEffect = false;
206
+ return;
207
+ }
208
+ if (rendererInstance.isInitialized()) {
209
+ rendererInstance.cleanup();
210
+ isInitialized = false;
211
+ initializeRenderer().catch(console.error);
212
+ }
213
+ });
200
214
  return createComponent(ShaderContext.Provider, {
201
215
  get value() {
202
216
  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, colorSpace?: 'p3-linear' | 'srgb'): string;
10
+ export declare function generatePresetCode(preset: PresetConfig, colorSpace?: 'p3-linear' | 'srgb', toneMapping?: 'linear' | 'reinhard' | 'cineon' | 'aces' | 'agx' | 'neutral' | 'hable' | 'unreal'): 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;AAgmDD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAiFlG;AAGD,eAAO,MAAM,mBAAmB,UAuH/B,CAAA"}
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;AAgmDD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAmFpM;AAGD,eAAO,MAAM,mBAAmB,UAuH/B,CAAA"}
@@ -1594,7 +1594,7 @@ function isIdReferenced(id, allComponents) {
1594
1594
  return false;
1595
1595
  });
1596
1596
  }
1597
- function generatePresetCode(preset, colorSpace) {
1597
+ function generatePresetCode(preset, colorSpace, toneMapping) {
1598
1598
  const componentTypes = /* @__PURE__ */ new Set();
1599
1599
  function collectTypes(components) {
1600
1600
  for (const config of components) {
@@ -1647,7 +1647,9 @@ ${indent} ${attributes} />`;
1647
1647
  }
1648
1648
  };
1649
1649
  const componentStrings = preset.components.map((config) => generateComponentString(config)).join("\n");
1650
- const shaderProps = colorSpace && colorSpace !== "p3-linear" ? ` colorSpace="${colorSpace}"` : "";
1650
+ const colorSpaceProp = colorSpace && colorSpace !== "p3-linear" ? ` colorSpace="${colorSpace}"` : "";
1651
+ const toneMappingProp = toneMapping && toneMapping !== "linear" ? ` toneMapping="${toneMapping}"` : "";
1652
+ const shaderProps = colorSpaceProp + toneMappingProp;
1651
1653
  const sortedTypes = Array.from(componentTypes).sort();
1652
1654
  const allImports = ["Shader", ...sortedTypes];
1653
1655
  const importStatement = allImports.length > 3 ? `import {
@@ -7,7 +7,7 @@ interface ComponentConfig {
7
7
  interface PresetConfig {
8
8
  components: ComponentConfig[];
9
9
  }
10
- export declare function generatePresetCode(preset: PresetConfig, colorSpace?: 'p3-linear' | 'srgb'): string;
10
+ export declare function generatePresetCode(preset: PresetConfig, colorSpace?: 'p3-linear' | 'srgb', toneMapping?: 'linear' | 'reinhard' | 'cineon' | 'aces' | 'agx' | 'neutral' | 'hable' | 'unreal'): 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;AA2KD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAiFlG;AAGD,eAAO,MAAM,mBAAmB,OAG/B,CAAA"}
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;AA2KD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAmFpM;AAGD,eAAO,MAAM,mBAAmB,OAG/B,CAAA"}
@@ -1,6 +1,7 @@
1
1
  interface Props {
2
2
  disableTelemetry?: boolean;
3
3
  colorSpace?: 'p3-linear' | 'srgb';
4
+ toneMapping?: 'linear' | 'reinhard' | 'cineon' | 'aces' | 'agx' | 'neutral' | 'hable' | 'unreal';
4
5
  isPreview?: boolean;
5
6
  onready?: () => void;
6
7
  children?: import('svelte').Snippet;
@@ -23292,12 +23292,13 @@ var root_1$1 = $.from_html(`<canvas data-renderer="shaders" style="width: 100%;
23292
23292
  var root = $.from_html(`<div><!></div>`);
23293
23293
  function Shader($$anchor, $$props) {
23294
23294
  $.push($$props, true);
23295
- const disableTelemetry = $.prop($$props, "disableTelemetry", 3, false), colorSpace = $.prop($$props, "colorSpace", 3, "p3-linear"), isPreview = $.prop($$props, "isPreview", 3, false), rest = $.rest_props($$props, [
23295
+ const disableTelemetry = $.prop($$props, "disableTelemetry", 3, false), colorSpace = $.prop($$props, "colorSpace", 3, "p3-linear"), toneMapping = $.prop($$props, "toneMapping", 3, "linear"), isPreview = $.prop($$props, "isPreview", 3, false), rest = $.rest_props($$props, [
23296
23296
  "$$slots",
23297
23297
  "$$events",
23298
23298
  "$$legacy",
23299
23299
  "disableTelemetry",
23300
23300
  "colorSpace",
23301
+ "toneMapping",
23301
23302
  "isPreview",
23302
23303
  "onready",
23303
23304
  "children"
@@ -23331,7 +23332,7 @@ function Shader($$anchor, $$props) {
23331
23332
  const checkRendering = () => {
23332
23333
  if (!rendererInstance) return;
23333
23334
  if (rendererInstance.getPerformanceStats().fps > 0) {
23334
- telemetryCollector = startTelemetry(rendererInstance, "2.5.124", disableTelemetry(), isPreview());
23335
+ telemetryCollector = startTelemetry(rendererInstance, "2.5.125", disableTelemetry(), isPreview());
23335
23336
  if (telemetryCollector) telemetryCollector.start();
23336
23337
  telemetryStartTimeout = null;
23337
23338
  } else telemetryStartTimeout = window.setTimeout(checkRendering, 500);
@@ -23343,7 +23344,8 @@ function Shader($$anchor, $$props) {
23343
23344
  try {
23344
23345
  if (!rendererInstance.isInitialized()) await rendererInstance.initialize({
23345
23346
  canvas: canvasRef,
23346
- colorSpace: colorSpace()
23347
+ colorSpace: colorSpace(),
23348
+ toneMapping: toneMapping()
23347
23349
  });
23348
23350
  rendererInstance.registerNode(rootId, ({ childNode }) => childNode || vec4(0, 0, 0, 0), null, null, {});
23349
23351
  if (shouldSendTelemetry === null) shouldSendTelemetry = isExternalUser();
@@ -23421,6 +23423,18 @@ function Shader($$anchor, $$props) {
23421
23423
  initializeRenderer().catch(console.error);
23422
23424
  }
23423
23425
  });
23426
+ let isFirstToneMappingEffect = true;
23427
+ $.user_effect(() => {
23428
+ toneMapping();
23429
+ if (isFirstToneMappingEffect) {
23430
+ isFirstToneMappingEffect = false;
23431
+ return;
23432
+ }
23433
+ if (rendererInstance?.isInitialized()) {
23434
+ rendererInstance.cleanup();
23435
+ initializeRenderer().catch(console.error);
23436
+ }
23437
+ });
23424
23438
  var div = root();
23425
23439
  $.attribute_effect(div, () => ({
23426
23440
  class: "shader",
@@ -11,13 +11,14 @@
11
11
  interface Props {
12
12
  disableTelemetry?: boolean;
13
13
  colorSpace?: 'p3-linear' | 'srgb';
14
+ toneMapping?: 'linear' | 'reinhard' | 'cineon' | 'aces' | 'agx' | 'neutral' | 'hable' | 'unreal';
14
15
  isPreview?: boolean;
15
16
  onready?: () => void;
16
17
  children?: import('svelte').Snippet;
17
18
  [key: string]: any;
18
19
  }
19
20
 
20
- const { disableTelemetry = false, colorSpace = 'p3-linear', isPreview = false, onready, children, ...rest }: Props = $props();
21
+ const { disableTelemetry = false, colorSpace = 'p3-linear', toneMapping = 'linear', isPreview = false, onready, children, ...rest }: Props = $props();
21
22
 
22
23
  // DOM references to the container and canvas
23
24
  let containerRef: HTMLDivElement;
@@ -106,6 +107,7 @@
106
107
  await rendererInstance.initialize({
107
108
  canvas: canvasRef,
108
109
  colorSpace: colorSpace,
110
+ toneMapping: toneMapping,
109
111
  });
110
112
  }
111
113
 
@@ -244,13 +246,29 @@
244
246
  if (rendererInstance?.isInitialized()) {
245
247
  // Update the global color space mode
246
248
  setColorSpaceMode(currentColorSpace);
247
-
249
+
248
250
  // Force re-initialization to apply color space changes
249
251
  rendererInstance.cleanup();
250
252
  initializeRenderer().catch(console.error);
251
253
  }
252
254
  });
253
255
 
256
+ // Watch for toneMapping changes — re-initialize to apply the new mode
257
+ let isFirstToneMappingEffect = true;
258
+ $effect(() => {
259
+ const currentToneMapping = toneMapping;
260
+
261
+ if (isFirstToneMappingEffect) {
262
+ isFirstToneMappingEffect = false;
263
+ return;
264
+ }
265
+
266
+ if (rendererInstance?.isInitialized()) {
267
+ rendererInstance.cleanup();
268
+ initializeRenderer().catch(console.error);
269
+ }
270
+ });
271
+
254
272
  </script>
255
273
 
256
274
  <div class="shader" bind:this={containerRef} {...rest}>
@@ -7,6 +7,6 @@ interface ComponentConfig {
7
7
  interface PresetConfig {
8
8
  components: ComponentConfig[];
9
9
  }
10
- export declare function generatePresetCode(preset: PresetConfig, colorSpace?: 'p3-linear' | 'srgb'): string;
10
+ export declare function generatePresetCode(preset: PresetConfig, colorSpace?: 'p3-linear' | 'srgb', toneMapping?: 'linear' | 'reinhard' | 'cineon' | 'aces' | 'agx' | 'neutral' | 'hable' | 'unreal'): string;
11
11
  export declare const availableComponents: string[];
12
12
  export {};
@@ -1546,7 +1546,7 @@ function isIdReferenced(id, allComponents) {
1546
1546
  return false;
1547
1547
  });
1548
1548
  }
1549
- function generatePresetCode(preset, colorSpace) {
1549
+ function generatePresetCode(preset, colorSpace, toneMapping) {
1550
1550
  const componentTypes = /* @__PURE__ */ new Set();
1551
1551
  function collectTypes(components) {
1552
1552
  for (const config of components) {
@@ -1573,7 +1573,7 @@ function generatePresetCode(preset, colorSpace) {
1573
1573
  else return `${indent}<${config.type} />`;
1574
1574
  };
1575
1575
  const componentStrings = preset.components.map((config) => generateComponentString(config)).join("\n");
1576
- const shaderProps = colorSpace && colorSpace !== "p3-linear" ? ` colorSpace="${colorSpace}"` : "";
1576
+ const shaderProps = (colorSpace && colorSpace !== "p3-linear" ? ` colorSpace="${colorSpace}"` : "") + (toneMapping && toneMapping !== "linear" ? ` toneMapping="${toneMapping}"` : "");
1577
1577
  const allImports = ["Shader", ...Array.from(componentTypes).sort()];
1578
1578
  return `<script>
1579
1579
  ${allImports.length > 3 ? `import {\n ${allImports.join(",\n ")},\n } from 'shaders/svelte'` : `import { ${allImports.join(", ")} } from 'shaders/svelte'`}
@@ -7,6 +7,6 @@ interface ComponentConfig {
7
7
  interface PresetConfig {
8
8
  components: ComponentConfig[];
9
9
  }
10
- export declare function generatePresetCode(preset: PresetConfig, colorSpace?: 'p3-linear' | 'srgb'): string;
10
+ export declare function generatePresetCode(preset: PresetConfig, colorSpace?: 'p3-linear' | 'srgb', toneMapping?: 'linear' | 'reinhard' | 'cineon' | 'aces' | 'agx' | 'neutral' | 'hable' | 'unreal'): string;
11
11
  export declare const availableComponents: any[];
12
12
  export {};
@@ -15,6 +15,7 @@ var Shader_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
15
15
  default: true
16
16
  },
17
17
  colorSpace: { default: "p3-linear" },
18
+ toneMapping: { default: "linear" },
18
19
  isPreview: {
19
20
  type: Boolean,
20
21
  default: false
@@ -51,7 +52,8 @@ var Shader_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
51
52
  if (!rendererInstance.value.isInitialized()) await rendererInstance.value.initialize({
52
53
  canvas: canvasRef.value,
53
54
  enablePerformanceTracking: props.enablePerformanceTracking,
54
- colorSpace: props.colorSpace
55
+ colorSpace: props.colorSpace,
56
+ toneMapping: props.toneMapping
55
57
  });
56
58
  rendererInstance.value.registerNode(rootId.value, ({ childNode }) => childNode || vec4(0, 0, 0, 0), null, null, {}, void 0);
57
59
  if (shouldSendTelemetry === null) shouldSendTelemetry = isExternalUser();
@@ -60,7 +62,7 @@ var Shader_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
60
62
  const startTelemetryWhenReady = () => {
61
63
  const checkRendering = () => {
62
64
  if (rendererInstance.value.getPerformanceStats().fps > 0) {
63
- telemetryCollector = startTelemetry(rendererInstance.value, "2.5.124", props.disableTelemetry, props.isPreview);
65
+ telemetryCollector = startTelemetry(rendererInstance.value, "2.5.125", props.disableTelemetry, props.isPreview);
64
66
  if (telemetryCollector) telemetryCollector.start();
65
67
  telemetryStartTimeout = null;
66
68
  } else telemetryStartTimeout = setTimeout(checkRendering, 500);
@@ -112,6 +114,19 @@ var Shader_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
112
114
  rendererResetSignal.value++;
113
115
  }
114
116
  });
117
+ let isFirstToneMappingRun = true;
118
+ watch(() => props.toneMapping, () => {
119
+ if (isFirstToneMappingRun) {
120
+ isFirstToneMappingRun = false;
121
+ return;
122
+ }
123
+ if (rendererInstance.value.isInitialized()) {
124
+ rendererInstance.value.cleanup();
125
+ initializeRenderer().then(() => {
126
+ rendererResetSignal.value++;
127
+ }).catch(console.error);
128
+ }
129
+ });
115
130
  const renderForCapture = async () => {
116
131
  try {
117
132
  await rendererInstance.value.renderAndWait();
@@ -2,6 +2,7 @@ interface Props {
2
2
  disableTelemetry?: boolean;
3
3
  enablePerformanceTracking?: boolean;
4
4
  colorSpace?: 'p3-linear' | 'srgb';
5
+ toneMapping?: 'linear' | 'reinhard' | 'cineon' | 'aces' | 'agx' | 'neutral' | 'hable' | 'unreal';
5
6
  isPreview?: boolean;
6
7
  }
7
8
  type CaptureFormat = 'png' | 'jpeg' | 'webp';
@@ -18,6 +19,7 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
18
19
  disableTelemetry: boolean;
19
20
  enablePerformanceTracking: boolean;
20
21
  colorSpace: string;
22
+ toneMapping: string;
21
23
  isPreview: boolean;
22
24
  }>>, {
23
25
  captureImage: (options?: CaptureImageOptions) => Promise<Blob>;
@@ -31,6 +33,7 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
31
33
  disableTelemetry: boolean;
32
34
  enablePerformanceTracking: boolean;
33
35
  colorSpace: string;
36
+ toneMapping: string;
34
37
  isPreview: boolean;
35
38
  }>>> & Readonly<{
36
39
  onReady?: (() => any) | undefined;
@@ -38,6 +41,7 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
38
41
  colorSpace: "p3-linear" | "srgb";
39
42
  disableTelemetry: boolean;
40
43
  enablePerformanceTracking: boolean;
44
+ toneMapping: "linear" | "reinhard" | "cineon" | "aces" | "agx" | "neutral" | "hable" | "unreal";
41
45
  isPreview: boolean;
42
46
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
43
47
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
@@ -1 +1 @@
1
- {"version":3,"file":"Shader.vue.d.ts","sourceRoot":"","sources":["../../src/engine/Shader.vue"],"names":[],"mappings":"AAYA,UAAU,KAAK;IACb,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,yBAAyB,CAAC,EAAE,OAAO,CAAA;IACnC,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,CAAA;IACjC,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAgND,KAAK,aAAa,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAA;AAE5C,UAAU,mBAAmB;IAC3B,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AA4MD,iBAAS,cAAc;qBAkDO,GAAG;EAKhC;AAWD,QAAA,MAAM,eAAe;;;;;;6BAzMgB,mBAAmB,KAAQ,OAAO,CAAC,IAAI,CAAC;8CAsB1B,OAAO,CAAC,IAAI,CAAC;;2CAkCZ,MAAM,KAAG,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;;;;;;;;;;;;gBAtV1E,WAAW,GAAG,MAAM;sBAFd,OAAO;+BACE,OAAO;eAEvB,OAAO;4EA8enB,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"}
1
+ {"version":3,"file":"Shader.vue.d.ts","sourceRoot":"","sources":["../../src/engine/Shader.vue"],"names":[],"mappings":"AAYA,UAAU,KAAK;IACb,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,yBAAyB,CAAC,EAAE,OAAO,CAAA;IACnC,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,CAAA;IACjC,WAAW,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAA;IAChG,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAkOD,KAAK,aAAa,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAA;AAE5C,UAAU,mBAAmB;IAC3B,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AA6MD,iBAAS,cAAc;qBAkDO,GAAG;EAKhC;AAWD,QAAA,MAAM,eAAe;;;;;;;6BA1MgB,mBAAmB,KAAQ,OAAO,CAAC,IAAI,CAAC;8CAsB1B,OAAO,CAAC,IAAI,CAAC;;2CAkCZ,MAAM,KAAG,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;;;;;;;;;;;;;gBAzW1E,WAAW,GAAG,MAAM;sBAFd,OAAO;+BACE,OAAO;iBAErB,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ;eACpF,OAAO;4EAigBnB,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, colorSpace?: 'p3-linear' | 'srgb'): string;
10
+ export declare function generatePresetCode(preset: PresetConfig, colorSpace?: 'p3-linear' | 'srgb', toneMapping?: 'linear' | 'reinhard' | 'cineon' | 'aces' | 'agx' | 'neutral' | 'hable' | 'unreal'): 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;AA+lDD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CA4FlG;AAGD,eAAO,MAAM,mBAAmB,UAuH/B,CAAA"}
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;AA+lDD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CA8FpM;AAGD,eAAO,MAAM,mBAAmB,UAuH/B,CAAA"}
@@ -1549,7 +1549,7 @@ function isIdReferenced(id, allComponents) {
1549
1549
  return false;
1550
1550
  });
1551
1551
  }
1552
- function generatePresetCode(preset, colorSpace) {
1552
+ function generatePresetCode(preset, colorSpace, toneMapping) {
1553
1553
  const componentTypes = /* @__PURE__ */ new Set();
1554
1554
  function collectTypes(components) {
1555
1555
  for (const config of components) {
@@ -1576,7 +1576,7 @@ function generatePresetCode(preset, colorSpace) {
1576
1576
  else return `${indent}<${config.type}/>`;
1577
1577
  };
1578
1578
  const componentStrings = preset.components.map((config) => generateComponentString(config)).join("\n");
1579
- const shaderProps = colorSpace && colorSpace !== "p3-linear" ? ` color-space="${colorSpace}"` : "";
1579
+ const shaderProps = (colorSpace && colorSpace !== "p3-linear" ? ` color-space="${colorSpace}"` : "") + (toneMapping && toneMapping !== "linear" ? ` tone-mapping="${toneMapping}"` : "");
1580
1580
  const allImports = ["Shader", ...Array.from(componentTypes).sort()];
1581
1581
  const uniqueImports = [...new Set(allImports)];
1582
1582
  const imports = uniqueImports.length > 3 ? uniqueImports.join(",\n ") : uniqueImports.join(", ");
@@ -7,7 +7,7 @@ interface ComponentConfig {
7
7
  interface PresetConfig {
8
8
  components: ComponentConfig[];
9
9
  }
10
- export declare function generatePresetCode(preset: PresetConfig, colorSpace?: 'p3-linear' | 'srgb'): string;
10
+ export declare function generatePresetCode(preset: PresetConfig, colorSpace?: 'p3-linear' | 'srgb', toneMapping?: 'linear' | 'reinhard' | 'cineon' | 'aces' | 'agx' | 'neutral' | 'hable' | 'unreal'): 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;AA0KD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CA4FlG;AAGD,eAAO,MAAM,mBAAmB,OAG/B,CAAA"}
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;AA0KD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CA8FpM;AAGD,eAAO,MAAM,mBAAmB,OAG/B,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shaders",
3
- "version": "2.5.124",
3
+ "version": "2.5.125",
4
4
  "description": "Shader magic for modern frontends",
5
5
  "author": "Shader Effects Inc.",
6
6
  "homepage": "https://shaders.com/",