shaders 2.5.120 → 2.5.121
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/{FloatingParticles-C4sLwGyT.js → FloatingParticles-DKoG78j0.js} +9 -17
- package/dist/core/index.js +53 -2
- package/dist/core/registry.js +2 -2
- package/dist/core/renderer.d.ts +1 -0
- package/dist/core/renderer.d.ts.map +1 -1
- package/dist/core/{shaderRegistry-CO5SCxc6.js → shaderRegistry-BoqhBfun.js} +1 -1
- package/dist/core/shaders/FloatingParticles/index.d.ts.map +1 -1
- package/dist/core/shaders/FloatingParticles/index.js +1 -1
- package/dist/js/createShader.d.ts.map +1 -1
- package/dist/js/createShader.js +130 -47
- package/dist/js/types.d.ts +14 -0
- package/dist/js/types.d.ts.map +1 -1
- package/dist/react/Shader.js +1 -1
- package/dist/react/bundle.js +70 -70
- package/dist/solid/engine/Shader.js +1 -1
- package/dist/svelte/index.js +1 -1
- package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +1 -1
- package/package.json +1 -1
|
@@ -163,25 +163,17 @@ const componentDefinition = {
|
|
|
163
163
|
const animTime = createAnimatedTime(params, uniforms.speed);
|
|
164
164
|
const renderParticle = Fn(([uv$2]) => {
|
|
165
165
|
const rootUV = floor(uv$2);
|
|
166
|
-
const
|
|
167
|
-
|
|
166
|
+
const randomness = uniforms.randomness.uniform;
|
|
167
|
+
const dCenter = getParticleDistance(uv$2, rootUV, randomness);
|
|
168
|
+
const dLeft = getParticleDistance(uv$2, rootUV.add(vec2(-1, 0)), randomness);
|
|
169
|
+
const dRight = getParticleDistance(uv$2, rootUV.add(vec2(1, 0)), randomness);
|
|
170
|
+
const dTop = getParticleDistance(uv$2, rootUV.add(vec2(0, -1)), randomness);
|
|
171
|
+
const dBottom = getParticleDistance(uv$2, rootUV.add(vec2(0, 1)), randomness);
|
|
172
|
+
const minDist = min(min(min(min(dCenter, dLeft), dRight), dTop), dBottom);
|
|
168
173
|
const softness = uniforms.particleSoftness.uniform;
|
|
169
174
|
const scaledSize = uniforms.particleSize.uniform.mul(.01);
|
|
170
|
-
const
|
|
171
|
-
const
|
|
172
|
-
const nearLeft = localPos.x.lessThan(.4);
|
|
173
|
-
const nearRight = localPos.x.greaterThan(.6);
|
|
174
|
-
const nearTop = localPos.y.lessThan(.4);
|
|
175
|
-
const nearBottom = localPos.y.greaterThan(.6);
|
|
176
|
-
const checkLeft = needsNeighbors.and(nearLeft);
|
|
177
|
-
const checkRight = needsNeighbors.and(nearRight);
|
|
178
|
-
const checkTop = needsNeighbors.and(nearTop);
|
|
179
|
-
const checkBottom = needsNeighbors.and(nearBottom);
|
|
180
|
-
minDist = checkLeft.select(min(minDist, getParticleDistance(uv$2, rootUV.add(vec2(-1, 0)), uniforms.randomness.uniform)), minDist);
|
|
181
|
-
minDist = checkRight.select(min(minDist, getParticleDistance(uv$2, rootUV.add(vec2(1, 0)), uniforms.randomness.uniform)), minDist);
|
|
182
|
-
minDist = checkTop.select(min(minDist, getParticleDistance(uv$2, rootUV.add(vec2(0, -1)), uniforms.randomness.uniform)), minDist);
|
|
183
|
-
minDist = checkBottom.select(min(minDist, getParticleDistance(uv$2, rootUV.add(vec2(0, 1)), uniforms.randomness.uniform)), minDist);
|
|
184
|
-
const baseIntensity = smoothstep(scaledSize.mul(.6), outerRadius, minDist).oneMinus();
|
|
175
|
+
const innerRadius = scaledSize.mul(.6);
|
|
176
|
+
const baseIntensity = smoothstep(innerRadius, innerRadius.add(softness.mul(scaledSize.mul(2.4))), minDist).oneMinus();
|
|
185
177
|
const twinkleIntensity = uniforms.twinkle.uniform;
|
|
186
178
|
const particlePhase = rootUV.x.mul(12.9898).add(rootUV.y.mul(78.233)).sin().mul(43758.5453).fract();
|
|
187
179
|
const twinkleValue = sin(time.mul(2).add(particlePhase.mul(6.28318))).mul(.5).add(.5);
|
package/dist/core/index.js
CHANGED
|
@@ -42,7 +42,7 @@ import "./Ellipse-sWhNvW9-.js";
|
|
|
42
42
|
import "./Emboss-DGaubb9x.js";
|
|
43
43
|
import "./FallingLines-DqIZ8wTH.js";
|
|
44
44
|
import "./FilmGrain-Dbw02Jz9.js";
|
|
45
|
-
import "./FloatingParticles-
|
|
45
|
+
import "./FloatingParticles-DKoG78j0.js";
|
|
46
46
|
import "./Flower-BbRNrXIa.js";
|
|
47
47
|
import "./FlowField-D3CAHBBG.js";
|
|
48
48
|
import "./FlowingGradient-BRQ_K-k3.js";
|
|
@@ -122,7 +122,7 @@ import "./Weave-DJ4s3Gwc.js";
|
|
|
122
122
|
import "./WebcamTexture-9Td8qQWm.js";
|
|
123
123
|
import "./WorleyNoise-CWytDfGH.js";
|
|
124
124
|
import "./ZoomBlur-DWFQVFMK.js";
|
|
125
|
-
import { t as getAllShaders } from "./shaderRegistry-
|
|
125
|
+
import { t as getAllShaders } from "./shaderRegistry-BoqhBfun.js";
|
|
126
126
|
import { Material, Mesh, MeshBasicNodeMaterial, OrthographicCamera, PlaneGeometry, SRGBColorSpace, Scene, Vector2, WebGPURenderer } from "three/webgpu";
|
|
127
127
|
import { WebGLRenderer } from "three";
|
|
128
128
|
import { PI, abs, add, atan, clamp, convertToTexture, cos, div, dot, float, fract, max, min, mix, mul, pow, screenUV, sign, sin, smoothstep, sqrt, step, sub, time, uniform, uv, vec2, vec3, vec4 } from "three/tsl";
|
|
@@ -768,6 +768,7 @@ function shaderRenderer() {
|
|
|
768
768
|
let isUpdatingMaterial = false;
|
|
769
769
|
let pendingNodeRemoval = false;
|
|
770
770
|
let globalEventUnregister = null;
|
|
771
|
+
let canvasContextLossUnregister = null;
|
|
771
772
|
let unloadHandler = null;
|
|
772
773
|
let windowResizeHandler = null;
|
|
773
774
|
let cachedMaxTextureDim = 8192;
|
|
@@ -780,6 +781,22 @@ function shaderRenderer() {
|
|
|
780
781
|
let onReadyCallback = null;
|
|
781
782
|
let hasEmittedReady = false;
|
|
782
783
|
let firstRenderPending = false;
|
|
784
|
+
let onDeviceLostCallback = null;
|
|
785
|
+
let deviceLostFired = false;
|
|
786
|
+
const fireDeviceLost = (reason) => {
|
|
787
|
+
if (deviceLostFired) return;
|
|
788
|
+
deviceLostFired = true;
|
|
789
|
+
try {
|
|
790
|
+
stopAnimation();
|
|
791
|
+
} catch {}
|
|
792
|
+
if (onDeviceLostCallback) queueMicrotask(() => {
|
|
793
|
+
try {
|
|
794
|
+
onDeviceLostCallback?.(reason);
|
|
795
|
+
} catch (e) {
|
|
796
|
+
console.error("[Shaders] onDeviceLost callback threw:", e);
|
|
797
|
+
}
|
|
798
|
+
});
|
|
799
|
+
};
|
|
783
800
|
let materialUpdateBatchRAF = null;
|
|
784
801
|
let lastComposedNodes = /* @__PURE__ */ new Set();
|
|
785
802
|
let activeRTTNodes = /* @__PURE__ */ new Set();
|
|
@@ -2145,6 +2162,14 @@ function shaderRenderer() {
|
|
|
2145
2162
|
stencil: true,
|
|
2146
2163
|
powerPreference: "high-performance"
|
|
2147
2164
|
});
|
|
2165
|
+
const wglLost = (e) => {
|
|
2166
|
+
e.preventDefault();
|
|
2167
|
+
fireDeviceLost("webglcontextlost");
|
|
2168
|
+
};
|
|
2169
|
+
canvas.addEventListener("webglcontextlost", wglLost, false);
|
|
2170
|
+
canvasContextLossUnregister = () => {
|
|
2171
|
+
canvas.removeEventListener("webglcontextlost", wglLost, false);
|
|
2172
|
+
};
|
|
2148
2173
|
} else try {
|
|
2149
2174
|
renderer = new WebGPURenderer({
|
|
2150
2175
|
canvas,
|
|
@@ -2159,6 +2184,15 @@ function shaderRenderer() {
|
|
|
2159
2184
|
});
|
|
2160
2185
|
else await renderer.init();
|
|
2161
2186
|
if (localAbortController.signal.aborted) return;
|
|
2187
|
+
try {
|
|
2188
|
+
const device = renderer.backend?.device;
|
|
2189
|
+
if (device?.lost && typeof device.lost.then === "function") device.lost.then((info) => {
|
|
2190
|
+
if (info?.reason === "destroyed") return;
|
|
2191
|
+
fireDeviceLost(info?.message || info?.reason || "unknown");
|
|
2192
|
+
}).catch(() => {});
|
|
2193
|
+
} catch (hookErr) {
|
|
2194
|
+
console.warn("[Shaders] could not attach WebGPU device.lost handler", hookErr);
|
|
2195
|
+
}
|
|
2162
2196
|
} catch (e) {
|
|
2163
2197
|
if (localAbortController.signal.aborted) return;
|
|
2164
2198
|
console.warn("[Shaders] WebGPU initialization failed, falling back to WebGL:", e);
|
|
@@ -2174,6 +2208,14 @@ function shaderRenderer() {
|
|
|
2174
2208
|
if (context) webglOptions.context = context;
|
|
2175
2209
|
renderer = new WebGLRenderer(webglOptions);
|
|
2176
2210
|
if (localAbortController.signal.aborted) return;
|
|
2211
|
+
const wglLost = (e$1) => {
|
|
2212
|
+
e$1.preventDefault();
|
|
2213
|
+
fireDeviceLost("webglcontextlost");
|
|
2214
|
+
};
|
|
2215
|
+
canvas.addEventListener("webglcontextlost", wglLost, false);
|
|
2216
|
+
canvasContextLossUnregister = () => {
|
|
2217
|
+
canvas.removeEventListener("webglcontextlost", wglLost, false);
|
|
2218
|
+
};
|
|
2177
2219
|
} catch (webglError) {
|
|
2178
2220
|
if (localAbortController.signal.aborted) return;
|
|
2179
2221
|
console.error("[Shaders] Both WebGPU and WebGL initialization failed:", webglError);
|
|
@@ -2266,6 +2308,10 @@ function shaderRenderer() {
|
|
|
2266
2308
|
globalEventUnregister();
|
|
2267
2309
|
globalEventUnregister = null;
|
|
2268
2310
|
}
|
|
2311
|
+
if (canvasContextLossUnregister) {
|
|
2312
|
+
canvasContextLossUnregister();
|
|
2313
|
+
canvasContextLossUnregister = null;
|
|
2314
|
+
}
|
|
2269
2315
|
if (canvasElement) {
|
|
2270
2316
|
canvasElement.removeEventListener("mousedown", canvasMouseDownHandler);
|
|
2271
2317
|
canvasElement.removeEventListener("touchstart", canvasTouchStartHandler);
|
|
@@ -2331,6 +2377,8 @@ function shaderRenderer() {
|
|
|
2331
2377
|
onReadyCallback = null;
|
|
2332
2378
|
hasEmittedReady = false;
|
|
2333
2379
|
firstRenderPending = false;
|
|
2380
|
+
onDeviceLostCallback = null;
|
|
2381
|
+
deviceLostFired = false;
|
|
2334
2382
|
};
|
|
2335
2383
|
const getRendererType = () => {
|
|
2336
2384
|
if (!renderer) return null;
|
|
@@ -2363,6 +2411,9 @@ function shaderRenderer() {
|
|
|
2363
2411
|
setOnReady: (callback) => {
|
|
2364
2412
|
onReadyCallback = callback;
|
|
2365
2413
|
},
|
|
2414
|
+
setOnDeviceLost: (callback) => {
|
|
2415
|
+
onDeviceLostCallback = callback;
|
|
2416
|
+
},
|
|
2366
2417
|
__testing: {
|
|
2367
2418
|
needsTransformation,
|
|
2368
2419
|
findChildNodes,
|
package/dist/core/registry.js
CHANGED
|
@@ -42,7 +42,7 @@ import "./Ellipse-sWhNvW9-.js";
|
|
|
42
42
|
import "./Emboss-DGaubb9x.js";
|
|
43
43
|
import "./FallingLines-DqIZ8wTH.js";
|
|
44
44
|
import "./FilmGrain-Dbw02Jz9.js";
|
|
45
|
-
import "./FloatingParticles-
|
|
45
|
+
import "./FloatingParticles-DKoG78j0.js";
|
|
46
46
|
import "./Flower-BbRNrXIa.js";
|
|
47
47
|
import "./FlowField-D3CAHBBG.js";
|
|
48
48
|
import "./FlowingGradient-BRQ_K-k3.js";
|
|
@@ -122,5 +122,5 @@ import "./Weave-DJ4s3Gwc.js";
|
|
|
122
122
|
import "./WebcamTexture-9Td8qQWm.js";
|
|
123
123
|
import "./WorleyNoise-CWytDfGH.js";
|
|
124
124
|
import "./ZoomBlur-DWFQVFMK.js";
|
|
125
|
-
import { a as shaderRegistry, i as getShadersByCategory, n as getShaderByName, r as getShaderCategories, t as getAllShaders } from "./shaderRegistry-
|
|
125
|
+
import { a as shaderRegistry, i as getShadersByCategory, n as getShaderByName, r as getShaderCategories, t as getAllShaders } from "./shaderRegistry-BoqhBfun.js";
|
|
126
126
|
export { getAllShaders, getShaderByName, getShaderCategories, getShadersByCategory, shaderRegistry };
|
package/dist/core/renderer.d.ts
CHANGED
|
@@ -198,6 +198,7 @@ export declare function shaderRenderer(): {
|
|
|
198
198
|
getInternalRenderer: () => WebGPURenderer | WebGLRenderer;
|
|
199
199
|
setForceFullFrameRate: (enabled: boolean) => boolean;
|
|
200
200
|
setOnReady: (callback: (() => void) | null) => void;
|
|
201
|
+
setOnDeviceLost: (callback: ((reason: string) => void) | null) => void;
|
|
201
202
|
__testing: {
|
|
202
203
|
needsTransformation: (transform: import('./types').TransformConfig | undefined) => boolean;
|
|
203
204
|
findChildNodes: (parentId: string) => NodeInfo[];
|
|
@@ -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;IAE/C,wFAAwF;IACxF,WAAW,CAAC,EAAE,OAAO,CAAA;CAExB;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;IAC5B;;4BAEwB;IACxB,cAAc,CAAC,EAAE,OAAO,CAAA;CAC3B;AAiHD;;GAEG;AACH,wBAAgB,cAAc;
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,7 +35,7 @@ import { n as componentDefinition$33 } from "./Ellipse-sWhNvW9-.js";
|
|
|
35
35
|
import { n as componentDefinition$34 } from "./Emboss-DGaubb9x.js";
|
|
36
36
|
import { n as componentDefinition$35 } from "./FallingLines-DqIZ8wTH.js";
|
|
37
37
|
import { n as componentDefinition$36 } from "./FilmGrain-Dbw02Jz9.js";
|
|
38
|
-
import { n as componentDefinition$37 } from "./FloatingParticles-
|
|
38
|
+
import { n as componentDefinition$37 } from "./FloatingParticles-DKoG78j0.js";
|
|
39
39
|
import { n as componentDefinition$38 } from "./Flower-BbRNrXIa.js";
|
|
40
40
|
import { n as componentDefinition$39 } from "./FlowField-D3CAHBBG.js";
|
|
41
41
|
import { n as componentDefinition$40 } from "./FlowingGradient-BRQ_K-k3.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shaders/FloatingParticles/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAqB,MAAM,iBAAiB,CAAA;AAIvE,OAAO,EAAC,cAAc,EAAC,MAAM,qCAAqC,CAAA;AAkClE,MAAM,WAAW,cAAc;IAC3B,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;IACnD,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;CAC1B;AAED,eAAO,MAAM,mBAAmB,EAAE,mBAAmB,CAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shaders/FloatingParticles/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAqB,MAAM,iBAAiB,CAAA;AAIvE,OAAO,EAAC,cAAc,EAAC,MAAM,qCAAqC,CAAA;AAkClE,MAAM,WAAW,cAAc;IAC3B,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;IACnD,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;CAC1B;AAED,eAAO,MAAM,mBAAmB,EAAE,mBAAmB,CAAC,cAAc,CAuMnE,CAAA;AAED,eAAe,mBAAmB,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import "../../transformations-CJcUeZIC.js";
|
|
2
2
|
import "../../time-DUqSFWvT.js";
|
|
3
|
-
import { n as componentDefinition, t as FloatingParticles_default } from "../../FloatingParticles-
|
|
3
|
+
import { n as componentDefinition, t as FloatingParticles_default } from "../../FloatingParticles-DKoG78j0.js";
|
|
4
4
|
export { componentDefinition, FloatingParticles_default as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createShader.d.ts","sourceRoot":"","sources":["../src/createShader.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAmB,MAAM,cAAc,CAAA;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"createShader.d.ts","sourceRoot":"","sources":["../src/createShader.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAmB,MAAM,cAAc,CAAA;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAgC5D;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,cAAc,CAAC,CA2WzB"}
|
package/dist/js/createShader.js
CHANGED
|
@@ -16,13 +16,10 @@ var METADATA_PROPS = new Set([
|
|
|
16
16
|
"maskType"
|
|
17
17
|
]);
|
|
18
18
|
async function createShader(canvas, preset, options) {
|
|
19
|
-
const renderer = shaderRenderer();
|
|
20
|
-
if (options?.onReady) renderer.setOnReady(options.onReady);
|
|
21
19
|
const componentRegistry = /* @__PURE__ */ new Map();
|
|
22
20
|
getAllShaders().forEach((shader) => {
|
|
23
21
|
componentRegistry.set(shader.definition.name, shader.definition);
|
|
24
22
|
});
|
|
25
|
-
const nodeEntryMap = /* @__PURE__ */ new Map();
|
|
26
23
|
if (!canvas.style.width || !canvas.style.height) {
|
|
27
24
|
const rect = canvas.getBoundingClientRect();
|
|
28
25
|
const w = rect.width > 0 ? rect.width : canvas.width;
|
|
@@ -30,32 +27,21 @@ async function createShader(canvas, preset, options) {
|
|
|
30
27
|
if (w > 0 && !canvas.style.width) canvas.style.width = `${w}px`;
|
|
31
28
|
if (h > 0 && !canvas.style.height) canvas.style.height = `${h}px`;
|
|
32
29
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
observeElement: options?.observeElement,
|
|
39
|
-
gpu: options?.gpu
|
|
40
|
-
});
|
|
41
|
-
const rootId = "shader-root";
|
|
42
|
-
renderer.registerNode(rootId, ({ childNode }) => childNode || vec4(0, 0, 0, 0), null, null, {}, void 0);
|
|
43
|
-
preset.components.forEach((component, index) => {
|
|
44
|
-
registerComponent(component, rootId, index);
|
|
45
|
-
});
|
|
46
|
-
let telemetryCollector = null;
|
|
47
|
-
let telemetryStartTimeout = null;
|
|
48
|
-
if (isExternalUser()) {
|
|
49
|
-
const checkRendering = () => {
|
|
50
|
-
if (renderer.getPerformanceStats().fps > 0) {
|
|
51
|
-
telemetryCollector = startTelemetry(renderer, "2.5.120", options?.disableTelemetry || false, false);
|
|
52
|
-
if (telemetryCollector) telemetryCollector.start();
|
|
53
|
-
telemetryStartTimeout = null;
|
|
54
|
-
} else telemetryStartTimeout = setTimeout(checkRendering, 500);
|
|
30
|
+
function cloneComponent(c) {
|
|
31
|
+
return {
|
|
32
|
+
...c,
|
|
33
|
+
props: c.props ? { ...c.props } : void 0,
|
|
34
|
+
children: c.children?.map(cloneComponent)
|
|
55
35
|
};
|
|
56
|
-
telemetryStartTimeout = setTimeout(checkRendering, 500);
|
|
57
36
|
}
|
|
58
|
-
|
|
37
|
+
const livePreset = {
|
|
38
|
+
...preset,
|
|
39
|
+
components: preset.components.map(cloneComponent)
|
|
40
|
+
};
|
|
41
|
+
let current = null;
|
|
42
|
+
let destroyed = false;
|
|
43
|
+
let rebuilding = false;
|
|
44
|
+
function registerComponent(renderer, nodeEntryMap, component, parentId, renderOrder) {
|
|
59
45
|
const componentDef = componentRegistry.get(component.type);
|
|
60
46
|
if (!componentDef) {
|
|
61
47
|
console.warn(`[createShader] Unknown component type: ${component.type}`);
|
|
@@ -99,33 +85,134 @@ async function createShader(canvas, preset, options) {
|
|
|
99
85
|
currentMaps: { ...mapsFromProps }
|
|
100
86
|
});
|
|
101
87
|
component.children?.forEach((child, index) => {
|
|
102
|
-
registerComponent(child, nodeId, index);
|
|
88
|
+
registerComponent(renderer, nodeEntryMap, child, nodeId, index);
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
async function build() {
|
|
92
|
+
const renderer = shaderRenderer();
|
|
93
|
+
const nodeEntryMap = /* @__PURE__ */ new Map();
|
|
94
|
+
if (options?.onReady) renderer.setOnReady(options.onReady);
|
|
95
|
+
await renderer.initialize({
|
|
96
|
+
canvas,
|
|
97
|
+
resizeTarget: canvas,
|
|
98
|
+
enablePerformanceTracking: options?.enablePerformanceTracking || false,
|
|
99
|
+
colorSpace: options?.colorSpace,
|
|
100
|
+
observeElement: options?.observeElement,
|
|
101
|
+
gpu: options?.gpu
|
|
102
|
+
});
|
|
103
|
+
const state = {
|
|
104
|
+
renderer,
|
|
105
|
+
nodeEntryMap,
|
|
106
|
+
telemetryCollector: null,
|
|
107
|
+
telemetryStartTimeout: null
|
|
108
|
+
};
|
|
109
|
+
renderer.setOnDeviceLost((reason) => {
|
|
110
|
+
if (destroyed || rebuilding) return;
|
|
111
|
+
if (current !== null && current !== state) return;
|
|
112
|
+
rebuilding = true;
|
|
113
|
+
try {
|
|
114
|
+
options?.onError?.(reason);
|
|
115
|
+
} catch (e) {
|
|
116
|
+
console.error("[createShader] onError callback threw:", e);
|
|
117
|
+
}
|
|
118
|
+
(async () => {
|
|
119
|
+
try {
|
|
120
|
+
teardownState(state);
|
|
121
|
+
current = null;
|
|
122
|
+
if (destroyed) return;
|
|
123
|
+
const next = await build();
|
|
124
|
+
if (destroyed) {
|
|
125
|
+
teardownState(next);
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
current = next;
|
|
129
|
+
} catch (rebuildErr) {
|
|
130
|
+
console.error("[createShader] rebuild after device loss failed:", rebuildErr);
|
|
131
|
+
try {
|
|
132
|
+
options?.onError?.("rebuild_failed");
|
|
133
|
+
} catch {}
|
|
134
|
+
} finally {
|
|
135
|
+
rebuilding = false;
|
|
136
|
+
}
|
|
137
|
+
})();
|
|
103
138
|
});
|
|
139
|
+
const rootId = "shader-root";
|
|
140
|
+
renderer.registerNode(rootId, ({ childNode }) => childNode || vec4(0, 0, 0, 0), null, null, {}, void 0);
|
|
141
|
+
livePreset.components.forEach((component, index) => {
|
|
142
|
+
registerComponent(renderer, nodeEntryMap, component, rootId, index);
|
|
143
|
+
});
|
|
144
|
+
if (isExternalUser()) {
|
|
145
|
+
const checkRendering = () => {
|
|
146
|
+
if (destroyed || current !== state) {
|
|
147
|
+
state.telemetryStartTimeout = null;
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
if (renderer.getPerformanceStats().fps > 0) {
|
|
151
|
+
state.telemetryCollector = startTelemetry(renderer, "2.5.121", options?.disableTelemetry || false, false);
|
|
152
|
+
if (state.telemetryCollector) state.telemetryCollector.start();
|
|
153
|
+
state.telemetryStartTimeout = null;
|
|
154
|
+
} else state.telemetryStartTimeout = setTimeout(checkRendering, 500);
|
|
155
|
+
};
|
|
156
|
+
state.telemetryStartTimeout = setTimeout(checkRendering, 500);
|
|
157
|
+
}
|
|
158
|
+
return state;
|
|
159
|
+
}
|
|
160
|
+
function teardownState(state) {
|
|
161
|
+
if (state.telemetryCollector) {
|
|
162
|
+
try {
|
|
163
|
+
state.telemetryCollector.stop();
|
|
164
|
+
} catch {}
|
|
165
|
+
state.telemetryCollector = null;
|
|
166
|
+
}
|
|
167
|
+
if (state.telemetryStartTimeout !== null) {
|
|
168
|
+
clearTimeout(state.telemetryStartTimeout);
|
|
169
|
+
state.telemetryStartTimeout = null;
|
|
170
|
+
}
|
|
171
|
+
try {
|
|
172
|
+
state.renderer.cleanup();
|
|
173
|
+
} catch {}
|
|
104
174
|
}
|
|
175
|
+
current = await build();
|
|
105
176
|
function update(componentId, props) {
|
|
177
|
+
if (!current) return;
|
|
178
|
+
const { renderer, nodeEntryMap } = current;
|
|
106
179
|
const entry = nodeEntryMap.get(componentId);
|
|
107
180
|
if (!entry) {
|
|
108
181
|
console.warn(`[createShader] Component ID not found: ${componentId}`);
|
|
109
182
|
return;
|
|
110
183
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
184
|
+
if (!entry.component.props) entry.component.props = {};
|
|
185
|
+
const live = entry.component.props;
|
|
186
|
+
for (const [key, value] of Object.entries(props)) if (METADATA_PROPS.has(key)) if (key === "maskSource") {
|
|
187
|
+
renderer.updateNodeMetadata(entry.nodeId, { mask: value ? {
|
|
188
|
+
source: value,
|
|
189
|
+
type: props.maskType || live.maskType || "alpha"
|
|
190
|
+
} : void 0 });
|
|
191
|
+
live.maskSource = value;
|
|
192
|
+
if ("maskType" in props) live.maskType = props.maskType;
|
|
193
|
+
} else if (key === "maskType") continue;
|
|
194
|
+
else if (key === "transform") {
|
|
195
|
+
renderer.updateNodeMetadata(entry.nodeId, { transform: value });
|
|
196
|
+
live.transform = value;
|
|
197
|
+
} else {
|
|
198
|
+
renderer.updateNodeMetadata(entry.nodeId, { [key]: value });
|
|
199
|
+
live[key] = value;
|
|
200
|
+
}
|
|
118
201
|
else if (isPropDriver(value)) if (!Object.prototype.hasOwnProperty.call(entry.componentDef.props, key)) console.warn(`[createShader] Ignoring PropDriver for unknown prop "${key}" on ${entry.component.type}`);
|
|
119
202
|
else {
|
|
120
203
|
entry.currentMaps[key] = value;
|
|
121
204
|
renderer.updateNodeMetadata(entry.nodeId, { maps: { ...entry.currentMaps } });
|
|
205
|
+
live[key] = value;
|
|
122
206
|
}
|
|
123
207
|
else {
|
|
124
208
|
if (key in entry.currentMaps) {
|
|
125
209
|
delete entry.currentMaps[key];
|
|
126
210
|
renderer.updateNodeMetadata(entry.nodeId, { maps: Object.keys(entry.currentMaps).length > 0 ? { ...entry.currentMaps } : void 0 });
|
|
127
211
|
}
|
|
128
|
-
if (Object.prototype.hasOwnProperty.call(entry.componentDef.props, key))
|
|
212
|
+
if (Object.prototype.hasOwnProperty.call(entry.componentDef.props, key)) {
|
|
213
|
+
renderer.updateUniformValue(entry.nodeId, key, value);
|
|
214
|
+
live[key] = value;
|
|
215
|
+
}
|
|
129
216
|
}
|
|
130
217
|
}
|
|
131
218
|
function resize(width, height) {
|
|
@@ -135,25 +222,21 @@ async function createShader(canvas, preset, options) {
|
|
|
135
222
|
if (w > 0 && h > 0) {
|
|
136
223
|
canvas.style.width = `${w}px`;
|
|
137
224
|
canvas.style.height = `${h}px`;
|
|
138
|
-
renderer.resize(w, h);
|
|
225
|
+
if (current) current.renderer.resize(w, h);
|
|
139
226
|
}
|
|
140
227
|
}
|
|
141
228
|
function destroy() {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
if (telemetryStartTimeout !== null) {
|
|
147
|
-
clearTimeout(telemetryStartTimeout);
|
|
148
|
-
telemetryStartTimeout = null;
|
|
229
|
+
destroyed = true;
|
|
230
|
+
if (current) {
|
|
231
|
+
teardownState(current);
|
|
232
|
+
current = null;
|
|
149
233
|
}
|
|
150
|
-
renderer.cleanup();
|
|
151
234
|
}
|
|
152
235
|
function pause() {
|
|
153
|
-
renderer.stopAnimation();
|
|
236
|
+
if (current) current.renderer.stopAnimation();
|
|
154
237
|
}
|
|
155
238
|
function resume() {
|
|
156
|
-
renderer.startAnimation();
|
|
239
|
+
if (current) current.renderer.startAnimation();
|
|
157
240
|
}
|
|
158
241
|
return {
|
|
159
242
|
update,
|
package/dist/js/types.d.ts
CHANGED
|
@@ -5,6 +5,20 @@ export interface ShaderOptions {
|
|
|
5
5
|
enablePerformanceTracking?: boolean;
|
|
6
6
|
isPreview?: boolean;
|
|
7
7
|
onReady?: () => void;
|
|
8
|
+
/**
|
|
9
|
+
* Fires when the underlying GPU device/context is lost — e.g. Chrome
|
|
10
|
+
* evicting a backgrounded tab's WebGPU device, an OS-level GPU reset,
|
|
11
|
+
* driver crash, or `webglcontextlost` on the WebGL fallback path. By the
|
|
12
|
+
* time this callback runs the instance has already started rebuilding
|
|
13
|
+
* itself transparently against the same canvas and preset; the existing
|
|
14
|
+
* `update / pause / resume / resize / destroy` references continue to work
|
|
15
|
+
* once the rebuild completes. The callback is informational — surface a
|
|
16
|
+
* toast, write a log, no action required.
|
|
17
|
+
*
|
|
18
|
+
* @param reason Best-effort string from the underlying API
|
|
19
|
+
* (e.g. `'destroyed'`, `'webglcontextlost'`, GPU error message).
|
|
20
|
+
*/
|
|
21
|
+
onError?: (reason: string) => void;
|
|
8
22
|
/** When false, disables automatic ResizeObserver and IntersectionObserver.
|
|
9
23
|
* Use resize() for manual sizing and pause()/resume() for animation control.
|
|
10
24
|
* Defaults to true.
|
package/dist/js/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAEjE,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,CAAA;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,yBAAyB,CAAC,EAAE,OAAO,CAAA;IACnC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;;;kBAKc;IACd,GAAG,CAAC,EAAE;QACJ,MAAM,EAAE,SAAS,CAAA;QACjB,OAAO,EAAE,UAAU,CAAA;KACpB,CAAA;CACF;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAA;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,aAAa,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,iGAAiG;IACjG,gBAAgB,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;CAC/D;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAA;IAC7D;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7C,mFAAmF;IACnF,KAAK,IAAI,IAAI,CAAA;IACb,kDAAkD;IAClD,MAAM,IAAI,IAAI,CAAA;IACd,OAAO,IAAI,IAAI,CAAA;CAChB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAEjE,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,CAAA;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,yBAAyB,CAAC,EAAE,OAAO,CAAA;IACnC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;;;kBAKc;IACd,GAAG,CAAC,EAAE;QACJ,MAAM,EAAE,SAAS,CAAA;QACjB,OAAO,EAAE,UAAU,CAAA;KACpB,CAAA;CACF;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAA;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,aAAa,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,iGAAiG;IACjG,gBAAgB,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;CAC/D;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAA;IAC7D;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7C,mFAAmF;IACnF,KAAK,IAAI,IAAI,CAAA;IACb,kDAAkD;IAClD,MAAM,IAAI,IAAI,CAAA;IACd,OAAO,IAAI,IAAI,CAAA;CAChB"}
|
package/dist/react/Shader.js
CHANGED
|
@@ -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.
|
|
92
|
+
telemetryCollectorRef.current = startTelemetry(rendererRef.current, "2.5.121", disableTelemetry, isPreview);
|
|
93
93
|
if (telemetryCollectorRef.current) telemetryCollectorRef.current.start();
|
|
94
94
|
telemetryStartTimeoutRef.current = null;
|
|
95
95
|
} else telemetryStartTimeoutRef.current = window.setTimeout(checkRendering, 500);
|