@gnsx/react-three-fiber 10.0.2 → 10.0.4
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/LICENSE +21 -21
- package/dist/index.cjs +52 -8
- package/dist/index.d.cts +2742 -2742
- package/dist/index.d.mts +2742 -2742
- package/dist/index.d.ts +2742 -2742
- package/dist/index.mjs +52 -8
- package/dist/legacy.cjs +52 -8
- package/dist/legacy.d.cts +2742 -2742
- package/dist/legacy.d.mts +2742 -2742
- package/dist/legacy.d.ts +2742 -2742
- package/dist/legacy.mjs +52 -8
- package/dist/webgpu/index.cjs +52 -8
- package/dist/webgpu/index.d.cts +2789 -2789
- package/dist/webgpu/index.d.mts +2789 -2789
- package/dist/webgpu/index.d.ts +2789 -2789
- package/dist/webgpu/index.mjs +52 -8
- package/package.json +1 -1
- package/react-reconciler/constants.d.ts +7 -7
- package/react-reconciler/index.d.ts +1044 -1044
- package/readme.md +244 -244
package/dist/index.mjs
CHANGED
|
@@ -3432,7 +3432,7 @@ function advance(timestamp) {
|
|
|
3432
3432
|
getScheduler().step(timestamp);
|
|
3433
3433
|
}
|
|
3434
3434
|
|
|
3435
|
-
const version = "10.0.
|
|
3435
|
+
const version = "10.0.4";
|
|
3436
3436
|
const packageData = {
|
|
3437
3437
|
version: version};
|
|
3438
3438
|
|
|
@@ -15189,6 +15189,7 @@ function createRoot(canvas) {
|
|
|
15189
15189
|
let pending = null;
|
|
15190
15190
|
return {
|
|
15191
15191
|
async configure(props = {}) {
|
|
15192
|
+
if (pending) await pending;
|
|
15192
15193
|
let resolve;
|
|
15193
15194
|
pending = new Promise((_resolve) => resolve = _resolve);
|
|
15194
15195
|
const {
|
|
@@ -15485,8 +15486,10 @@ function createRoot(canvas) {
|
|
|
15485
15486
|
const unregisterCanvasTarget = scheduler.register(
|
|
15486
15487
|
() => {
|
|
15487
15488
|
const state2 = store.getState();
|
|
15489
|
+
if (!state2.internal.active) return;
|
|
15488
15490
|
if (state2.internal.isMultiCanvas && state2.internal.canvasTarget) {
|
|
15489
15491
|
const renderer2 = state2.internal.actualRenderer;
|
|
15492
|
+
if (!renderer2) return;
|
|
15490
15493
|
renderer2.setCanvasTarget(state2.internal.canvasTarget);
|
|
15491
15494
|
}
|
|
15492
15495
|
},
|
|
@@ -15539,7 +15542,9 @@ function createRoot(canvas) {
|
|
|
15539
15542
|
const unregisterRender = scheduler.register(
|
|
15540
15543
|
() => {
|
|
15541
15544
|
const state2 = store.getState();
|
|
15545
|
+
if (!state2.internal.active) return;
|
|
15542
15546
|
const renderer2 = state2.internal.actualRenderer;
|
|
15547
|
+
if (!renderer2) return;
|
|
15543
15548
|
const userHandlesRender = scheduler.hasUserJobsInPhase("render", newRootId);
|
|
15544
15549
|
if (userHandlesRender || state2.internal.priority) return;
|
|
15545
15550
|
try {
|
|
@@ -15614,23 +15619,62 @@ function Provider({
|
|
|
15614
15619
|
}, []);
|
|
15615
15620
|
return /* @__PURE__ */ jsx(context.Provider, { value: store, children });
|
|
15616
15621
|
}
|
|
15622
|
+
function releaseSceneR3fLinks(scene, options) {
|
|
15623
|
+
if (!scene) return null;
|
|
15624
|
+
scene.traverse((obj) => {
|
|
15625
|
+
delete obj.__r3f;
|
|
15626
|
+
});
|
|
15627
|
+
delete scene.__r3f;
|
|
15628
|
+
{
|
|
15629
|
+
scene.clear();
|
|
15630
|
+
}
|
|
15631
|
+
return scene;
|
|
15632
|
+
}
|
|
15633
|
+
function releaseRendererRefsFromRootState(state) {
|
|
15634
|
+
const { internal } = state;
|
|
15635
|
+
const renderer = internal.actualRenderer ?? null;
|
|
15636
|
+
internal.actualRenderer = null;
|
|
15637
|
+
internal.canvasTarget = null;
|
|
15638
|
+
internal.pointerMap?.clear();
|
|
15639
|
+
internal.pointerDirty?.clear();
|
|
15640
|
+
return renderer;
|
|
15641
|
+
}
|
|
15642
|
+
function detachRootSceneFromRootState(state) {
|
|
15643
|
+
const scene = releaseSceneR3fLinks(state.scene);
|
|
15644
|
+
state.set((prev) => ({
|
|
15645
|
+
scene: null,
|
|
15646
|
+
rootScene: null,
|
|
15647
|
+
internal: { ...prev.internal, container: null }
|
|
15648
|
+
}));
|
|
15649
|
+
return scene;
|
|
15650
|
+
}
|
|
15617
15651
|
function unmountComponentAtNode(canvas, callback) {
|
|
15618
15652
|
const root = _roots.get(canvas);
|
|
15619
15653
|
const fiber = root?.fiber;
|
|
15620
15654
|
if (fiber) {
|
|
15621
15655
|
const state = root?.store.getState();
|
|
15622
|
-
|
|
15656
|
+
let rendererForCleanup = null;
|
|
15657
|
+
let canvasTargetForCleanup;
|
|
15658
|
+
let sceneForCleanup = null;
|
|
15659
|
+
if (state) {
|
|
15660
|
+
state.internal.active = false;
|
|
15661
|
+
canvasTargetForCleanup = state.internal.canvasTarget;
|
|
15662
|
+
rendererForCleanup = releaseRendererRefsFromRootState(state);
|
|
15663
|
+
const unregisterRoot = state.internal.unregisterRoot;
|
|
15664
|
+
if (unregisterRoot) {
|
|
15665
|
+
unregisterRoot();
|
|
15666
|
+
state.internal.unregisterRoot = void 0;
|
|
15667
|
+
}
|
|
15668
|
+
}
|
|
15623
15669
|
reconciler.updateContainer(null, fiber, null, () => {
|
|
15624
15670
|
if (state) {
|
|
15671
|
+
sceneForCleanup = detachRootSceneFromRootState(state);
|
|
15625
15672
|
setTimeout(() => {
|
|
15626
15673
|
try {
|
|
15627
|
-
const renderer =
|
|
15628
|
-
const unregisterRoot = state.internal.unregisterRoot;
|
|
15629
|
-
if (unregisterRoot) unregisterRoot();
|
|
15674
|
+
const renderer = rendererForCleanup;
|
|
15630
15675
|
const unregisterPrimary = state.internal.unregisterPrimary;
|
|
15631
15676
|
if (unregisterPrimary) unregisterPrimary();
|
|
15632
|
-
|
|
15633
|
-
if (canvasTarget?.dispose) canvasTarget.dispose();
|
|
15677
|
+
if (canvasTargetForCleanup?.dispose) canvasTargetForCleanup.dispose();
|
|
15634
15678
|
state.events.disconnect?.();
|
|
15635
15679
|
cleanupHelperGroup(root.store);
|
|
15636
15680
|
if (state.isLegacy && renderer) {
|
|
@@ -15641,7 +15685,7 @@ function unmountComponentAtNode(canvas, callback) {
|
|
|
15641
15685
|
if (!state.internal.isSecondary) {
|
|
15642
15686
|
if (renderer?.xr) state.xr.disconnect();
|
|
15643
15687
|
}
|
|
15644
|
-
dispose(
|
|
15688
|
+
if (sceneForCleanup) dispose(sceneForCleanup);
|
|
15645
15689
|
_roots.delete(canvas);
|
|
15646
15690
|
if (callback) callback(canvas);
|
|
15647
15691
|
} catch {
|
package/dist/legacy.cjs
CHANGED
|
@@ -3460,7 +3460,7 @@ function advance(timestamp) {
|
|
|
3460
3460
|
getScheduler().step(timestamp);
|
|
3461
3461
|
}
|
|
3462
3462
|
|
|
3463
|
-
const version = "10.0.
|
|
3463
|
+
const version = "10.0.4";
|
|
3464
3464
|
const packageData = {
|
|
3465
3465
|
version: version};
|
|
3466
3466
|
|
|
@@ -15217,6 +15217,7 @@ function createRoot(canvas) {
|
|
|
15217
15217
|
let pending = null;
|
|
15218
15218
|
return {
|
|
15219
15219
|
async configure(props = {}) {
|
|
15220
|
+
if (pending) await pending;
|
|
15220
15221
|
let resolve;
|
|
15221
15222
|
pending = new Promise((_resolve) => resolve = _resolve);
|
|
15222
15223
|
const {
|
|
@@ -15466,8 +15467,10 @@ function createRoot(canvas) {
|
|
|
15466
15467
|
const unregisterCanvasTarget = scheduler.register(
|
|
15467
15468
|
() => {
|
|
15468
15469
|
const state2 = store.getState();
|
|
15470
|
+
if (!state2.internal.active) return;
|
|
15469
15471
|
if (state2.internal.isMultiCanvas && state2.internal.canvasTarget) {
|
|
15470
15472
|
const renderer2 = state2.internal.actualRenderer;
|
|
15473
|
+
if (!renderer2) return;
|
|
15471
15474
|
renderer2.setCanvasTarget(state2.internal.canvasTarget);
|
|
15472
15475
|
}
|
|
15473
15476
|
},
|
|
@@ -15520,7 +15523,9 @@ function createRoot(canvas) {
|
|
|
15520
15523
|
const unregisterRender = scheduler.register(
|
|
15521
15524
|
() => {
|
|
15522
15525
|
const state2 = store.getState();
|
|
15526
|
+
if (!state2.internal.active) return;
|
|
15523
15527
|
const renderer2 = state2.internal.actualRenderer;
|
|
15528
|
+
if (!renderer2) return;
|
|
15524
15529
|
const userHandlesRender = scheduler.hasUserJobsInPhase("render", newRootId);
|
|
15525
15530
|
if (userHandlesRender || state2.internal.priority) return;
|
|
15526
15531
|
try {
|
|
@@ -15595,23 +15600,62 @@ function Provider({
|
|
|
15595
15600
|
}, []);
|
|
15596
15601
|
return /* @__PURE__ */ jsxRuntime.jsx(context.Provider, { value: store, children });
|
|
15597
15602
|
}
|
|
15603
|
+
function releaseSceneR3fLinks(scene, options) {
|
|
15604
|
+
if (!scene) return null;
|
|
15605
|
+
scene.traverse((obj) => {
|
|
15606
|
+
delete obj.__r3f;
|
|
15607
|
+
});
|
|
15608
|
+
delete scene.__r3f;
|
|
15609
|
+
{
|
|
15610
|
+
scene.clear();
|
|
15611
|
+
}
|
|
15612
|
+
return scene;
|
|
15613
|
+
}
|
|
15614
|
+
function releaseRendererRefsFromRootState(state) {
|
|
15615
|
+
const { internal } = state;
|
|
15616
|
+
const renderer = internal.actualRenderer ?? null;
|
|
15617
|
+
internal.actualRenderer = null;
|
|
15618
|
+
internal.canvasTarget = null;
|
|
15619
|
+
internal.pointerMap?.clear();
|
|
15620
|
+
internal.pointerDirty?.clear();
|
|
15621
|
+
return renderer;
|
|
15622
|
+
}
|
|
15623
|
+
function detachRootSceneFromRootState(state) {
|
|
15624
|
+
const scene = releaseSceneR3fLinks(state.scene);
|
|
15625
|
+
state.set((prev) => ({
|
|
15626
|
+
scene: null,
|
|
15627
|
+
rootScene: null,
|
|
15628
|
+
internal: { ...prev.internal, container: null }
|
|
15629
|
+
}));
|
|
15630
|
+
return scene;
|
|
15631
|
+
}
|
|
15598
15632
|
function unmountComponentAtNode(canvas, callback) {
|
|
15599
15633
|
const root = _roots.get(canvas);
|
|
15600
15634
|
const fiber = root?.fiber;
|
|
15601
15635
|
if (fiber) {
|
|
15602
15636
|
const state = root?.store.getState();
|
|
15603
|
-
|
|
15637
|
+
let rendererForCleanup = null;
|
|
15638
|
+
let canvasTargetForCleanup;
|
|
15639
|
+
let sceneForCleanup = null;
|
|
15640
|
+
if (state) {
|
|
15641
|
+
state.internal.active = false;
|
|
15642
|
+
canvasTargetForCleanup = state.internal.canvasTarget;
|
|
15643
|
+
rendererForCleanup = releaseRendererRefsFromRootState(state);
|
|
15644
|
+
const unregisterRoot = state.internal.unregisterRoot;
|
|
15645
|
+
if (unregisterRoot) {
|
|
15646
|
+
unregisterRoot();
|
|
15647
|
+
state.internal.unregisterRoot = void 0;
|
|
15648
|
+
}
|
|
15649
|
+
}
|
|
15604
15650
|
reconciler.updateContainer(null, fiber, null, () => {
|
|
15605
15651
|
if (state) {
|
|
15652
|
+
sceneForCleanup = detachRootSceneFromRootState(state);
|
|
15606
15653
|
setTimeout(() => {
|
|
15607
15654
|
try {
|
|
15608
|
-
const renderer =
|
|
15609
|
-
const unregisterRoot = state.internal.unregisterRoot;
|
|
15610
|
-
if (unregisterRoot) unregisterRoot();
|
|
15655
|
+
const renderer = rendererForCleanup;
|
|
15611
15656
|
const unregisterPrimary = state.internal.unregisterPrimary;
|
|
15612
15657
|
if (unregisterPrimary) unregisterPrimary();
|
|
15613
|
-
|
|
15614
|
-
if (canvasTarget?.dispose) canvasTarget.dispose();
|
|
15658
|
+
if (canvasTargetForCleanup?.dispose) canvasTargetForCleanup.dispose();
|
|
15615
15659
|
state.events.disconnect?.();
|
|
15616
15660
|
cleanupHelperGroup(root.store);
|
|
15617
15661
|
if (state.isLegacy && renderer) {
|
|
@@ -15622,7 +15666,7 @@ function unmountComponentAtNode(canvas, callback) {
|
|
|
15622
15666
|
if (!state.internal.isSecondary) {
|
|
15623
15667
|
if (renderer?.xr) state.xr.disconnect();
|
|
15624
15668
|
}
|
|
15625
|
-
dispose(
|
|
15669
|
+
if (sceneForCleanup) dispose(sceneForCleanup);
|
|
15626
15670
|
_roots.delete(canvas);
|
|
15627
15671
|
if (callback) callback(canvas);
|
|
15628
15672
|
} catch {
|