shaders 2.5.105 → 2.5.106

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.
@@ -774,6 +774,11 @@ function shaderRenderer() {
774
774
  let previousTextures = /* @__PURE__ */ new Set();
775
775
  let pendingResize = null;
776
776
  let isResizeScheduled = false;
777
+ const COMPUTE_REBUILD_DEBOUNCE_MS = 200;
778
+ const COMPUTE_REBUILD_SKIP_TOLERANCE = .02;
779
+ let computeRebuildTimeout = null;
780
+ let lastComputeRebuildWidth = 0;
781
+ let lastComputeRebuildHeight = 0;
777
782
  const updateRendererDimensions = (width, height) => {
778
783
  if (width <= 0 || height <= 0) return;
779
784
  if (width === currentWidth && height === currentHeight) return;
@@ -792,6 +797,8 @@ function shaderRenderer() {
792
797
  currentHeight = height$1;
793
798
  if (!hasInitialDimensions) {
794
799
  hasInitialDimensions = true;
800
+ lastComputeRebuildWidth = width$1;
801
+ lastComputeRebuildHeight = height$1;
795
802
  if (nodeRegistry.nodes.size > 0 && materialUpdateBatchRAF === null) materialUpdateBatchRAF = requestAnimationFrame(() => {
796
803
  materialUpdateBatchRAF = null;
797
804
  updateMaterial();
@@ -825,10 +832,22 @@ function shaderRenderer() {
825
832
  hasComputeNodes = true;
826
833
  break;
827
834
  }
828
- if (hasComputeNodes && materialUpdateBatchRAF === null) materialUpdateBatchRAF = requestAnimationFrame(() => {
829
- materialUpdateBatchRAF = null;
830
- updateMaterial();
831
- });
835
+ if (hasComputeNodes) {
836
+ const lastW = lastComputeRebuildWidth;
837
+ const lastH = lastComputeRebuildHeight;
838
+ const widthDelta = lastW > 0 ? Math.abs(width$1 - lastW) / lastW : 1;
839
+ const heightDelta = lastH > 0 ? Math.abs(height$1 - lastH) / lastH : 1;
840
+ if (!(widthDelta < COMPUTE_REBUILD_SKIP_TOLERANCE && heightDelta < COMPUTE_REBUILD_SKIP_TOLERANCE)) {
841
+ if (computeRebuildTimeout !== null) clearTimeout(computeRebuildTimeout);
842
+ computeRebuildTimeout = setTimeout(() => {
843
+ computeRebuildTimeout = null;
844
+ if (materialUpdateBatchRAF === null) materialUpdateBatchRAF = requestAnimationFrame(() => {
845
+ materialUpdateBatchRAF = null;
846
+ updateMaterial();
847
+ });
848
+ }, COMPUTE_REBUILD_DEBOUNCE_MS);
849
+ }
850
+ }
832
851
  lastRenderTime = 0;
833
852
  renderFrame();
834
853
  });
@@ -923,6 +942,8 @@ function shaderRenderer() {
923
942
  material = newMaterial;
924
943
  needsMaterialRefresh = false;
925
944
  lastComposedNodes = currentComposedNodes;
945
+ lastComputeRebuildWidth = currentWidth;
946
+ lastComputeRebuildHeight = currentHeight;
926
947
  if (!hasEmittedReady && currentComposedNodes.size > 0) firstRenderPending = true;
927
948
  }
928
949
  }
@@ -2159,6 +2180,10 @@ function shaderRenderer() {
2159
2180
  };
2160
2181
  const cleanup = () => {
2161
2182
  if (initializationAbortController) initializationAbortController.abort();
2183
+ if (computeRebuildTimeout !== null) {
2184
+ clearTimeout(computeRebuildTimeout);
2185
+ computeRebuildTimeout = null;
2186
+ }
2162
2187
  if (resizeObserver) {
2163
2188
  resizeObserver.disconnect();
2164
2189
  resizeObserver = null;
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,KAAK,IAAI,EAMT,cAAc,EACjB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAC,aAAa,EAAC,MAAM,OAAO,CAAA;AAInC,OAAO,EAAoB,eAAe,EAAE,mBAAmB,EAAE,UAAU,EAA8D,YAAY,EAAE,cAAc,EAAE,cAAc,EAAqB,WAAW,EAAC,MAAM,SAAS,CAAA;AACrO,OAAO,EAAqB,gBAAgB,EAAC,MAAM,sBAAsB,CAAA;AAMzE;;GAEG;AACH,UAAU,QAAQ;IAEd;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAA;IAEV;;OAEG;IACH,aAAa,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,gBAAgB,EAAE,mBAAmB,CAAC,cAAc,CAAC,CAAA;IAErD;;OAEG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAEvB;;OAEG;IACH,WAAW,EAAE,OAAO,CAAA;IAEpB;;;;OAIG;IACH,aAAa,EAAE,OAAO,CAAA;IAEtB;;OAEG;IACH,cAAc,EAAE,GAAG,CAAA;IAEnB;;OAEG;IACH,QAAQ,EAAE,YAAY,CAAA;IAEtB;;OAEG;IACH,QAAQ,EAAE,WAAW,CAAA;IAErB;;;OAGG;IACH,gBAAgB,EAAE,eAAe,EAAE,CAAA;IAEnC;;;OAGG;IACH,qBAAqB,EAAE,cAAc,EAAE,CAAA;IAEvC;;;OAGG;IACH,oBAAoB,EAAE,cAAc,EAAE,CAAA;IAEtC;;;OAGG;IACH,eAAe,EAAE,cAAc,EAAE,CAAA;IAEjC;;OAEG;IACH,SAAS,CAAC,EAAE,iBAAiB,CAAA;IAE7B;;;OAGG;IACH,iBAAiB,CAAC,EAAE;QAChB,OAAO,EAAE,GAAG,CAAA;QACZ,OAAO,EAAE,GAAG,CAAA;QACZ,QAAQ,EAAE,GAAG,CAAA;QACb,KAAK,EAAE,GAAG,CAAA;QACV,OAAO,EAAE,GAAG,CAAA;QACZ,OAAO,EAAE,GAAG,CAAA;QACZ,KAAK,EAAE,GAAG,CAAA;QACV,WAAW,EAAE,GAAG,CAAA;KACnB,CAAA;IAED;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAE5B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAEjE;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QACzB,QAAQ,EAAE,GAAG,CAAA;QACb,QAAQ,EAAE,GAAG,CAAA;QACb,SAAS,EAAE,GAAG,CAAA;QACd,SAAS,EAAE,GAAG,CAAA;QACd,KAAK,EAAE,GAAG,CAAA;QACV,aAAa,CAAC,EAAE,GAAG,CAAA;QACnB,OAAO,CAAC,EAAE,UAAU,CAAA;KACvB,CAAC,CAAA;IAEF;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAC9B,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,MAAM,CAAA;QACjB,SAAS,EAAE,MAAM,CAAA;QACjB,eAAe,EAAE,GAAG,CAAA;KACvB,CAAC,CAAA;IAEF;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAC9B,eAAe,EAAE,GAAG,CAAA;KACvB,CAAC,CAAA;IAEF;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,CAAA;IAEtC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAEpC;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,EAAE,GAAG,IAAI,CAAA;CAElD;AAED;;GAEG;AACH,UAAU,YAAY;IAClB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC5B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClC;AAED;;GAEG;AACH,UAAU,iBAAiB;IACvB,MAAM,EAAE,iBAAiB,CAAA;IACzB;mGAC+F;IAC/F,YAAY,CAAC,EAAE,WAAW,CAAA;IAC1B,yBAAyB,CAAC,EAAE,OAAO,CAAA;IACnC,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAClC,OAAO,CAAC,EAAE,qBAAqB,GAAG,sBAAsB,CAAA;IACxD,GAAG,CAAC,EAAE;QACF,MAAM,EAAE,SAAS,CAAA;QACjB,OAAO,EAAE,UAAU,CAAA;KACtB,CAAA;IACD,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC/B;AAiHD;;GAEG;AACH,wBAAgB,cAAc;kJAu3EG,iBAAiB;;uBAhkCpB,MAAM,oBAAoB,mBAAmB,CAAC,cAAc,CAAC,GAAG,IAAI,YAAY,MAAM,GAAG,IAAI,YAAY,YAAY,GAAG,IAAI,aAAY,WAAW,wBAA6B,mBAAmB,cAAc,iBAAiB,KAAG,IAAI;qBA0b3O,MAAM,KAAG,IAAI;iCA1RD,MAAM,eAAe,MAAM,SAAS,GAAG,KAAG,IAAI;iCA8D9C,MAAM,YAAY,OAAO,CAAC,YAAY,CAAC,KAAG,IAAI;;oBA+rC9D,MAAM,UAAU,MAAM;0BAngBf,IAAI;yBAyBL,IAAI;yBA1OE,OAAO,CAAC,IAAI,CAAC;+BAgMb,gBAAgB;;eA4hBmB,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC;;2BArBpE,QAAQ,GAAG,OAAO,GAAG,IAAI;;2BAwB1B,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI;;;mCA9zEZ,MAAM,KAAG,QAAQ,EAAE;oCA+CzC,IAAI,YACF,QAAQ,UACV,MAAM,kBACE,GAAG,CAAC,MAAM,CAAC,gBACb,IAAI,KACnB,IAAI;0CA0VK,IAAI,YACF,QAAQ,KACnB,IAAI;;;;EA47DV"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"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"}
@@ -46,7 +46,7 @@ async function createShader(canvas, preset, options) {
46
46
  if (isExternalUser()) {
47
47
  const checkRendering = () => {
48
48
  if (renderer.getPerformanceStats().fps > 0) {
49
- telemetryCollector = startTelemetry(renderer, "2.5.105", options?.disableTelemetry || false, false);
49
+ telemetryCollector = startTelemetry(renderer, "2.5.106", options?.disableTelemetry || false, false);
50
50
  if (telemetryCollector) telemetryCollector.start();
51
51
  telemetryStartTimeout = null;
52
52
  } else telemetryStartTimeout = setTimeout(checkRendering, 500);
@@ -89,7 +89,7 @@ const Shader = ({ children, disableTelemetry = false, colorSpace = "p3-linear",
89
89
  return;
90
90
  }
91
91
  if (rendererRef.current.getPerformanceStats().fps > 0) {
92
- telemetryCollectorRef.current = startTelemetry(rendererRef.current, "2.5.105", disableTelemetry, isPreview);
92
+ telemetryCollectorRef.current = startTelemetry(rendererRef.current, "2.5.106", disableTelemetry, isPreview);
93
93
  if (telemetryCollectorRef.current) telemetryCollectorRef.current.start();
94
94
  telemetryStartTimeoutRef.current = null;
95
95
  } else telemetryStartTimeoutRef.current = window.setTimeout(checkRendering, 500);
@@ -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.105";
70
+ const version = "2.5.106";
71
71
  telemetryCollector = startTelemetry(rendererInstance, version, props.disableTelemetry, props.isPreview);
72
72
  if (telemetryCollector) {
73
73
  telemetryCollector.start();
@@ -21342,7 +21342,7 @@ function Shader($$anchor, $$props) {
21342
21342
  const checkRendering = () => {
21343
21343
  if (!rendererInstance) return;
21344
21344
  if (rendererInstance.getPerformanceStats().fps > 0) {
21345
- telemetryCollector = startTelemetry(rendererInstance, "2.5.105", disableTelemetry(), isPreview());
21345
+ telemetryCollector = startTelemetry(rendererInstance, "2.5.106", disableTelemetry(), isPreview());
21346
21346
  if (telemetryCollector) telemetryCollector.start();
21347
21347
  telemetryStartTimeout = null;
21348
21348
  } else telemetryStartTimeout = window.setTimeout(checkRendering, 500);
@@ -60,7 +60,7 @@ var Shader_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
60
60
  const startTelemetryWhenReady = () => {
61
61
  const checkRendering = () => {
62
62
  if (rendererInstance.value.getPerformanceStats().fps > 0) {
63
- telemetryCollector = startTelemetry(rendererInstance.value, "2.5.105", props.disableTelemetry, props.isPreview);
63
+ telemetryCollector = startTelemetry(rendererInstance.value, "2.5.106", props.disableTelemetry, props.isPreview);
64
64
  if (telemetryCollector) telemetryCollector.start();
65
65
  telemetryStartTimeout = null;
66
66
  } else telemetryStartTimeout = setTimeout(checkRendering, 500);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shaders",
3
- "version": "2.5.105",
3
+ "version": "2.5.106",
4
4
  "description": "Shader magic for modern frontends",
5
5
  "author": "Shader Effects Inc.",
6
6
  "homepage": "https://shaders.com/",