@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/legacy.mjs
CHANGED
|
@@ -3439,7 +3439,7 @@ function advance(timestamp) {
|
|
|
3439
3439
|
getScheduler().step(timestamp);
|
|
3440
3440
|
}
|
|
3441
3441
|
|
|
3442
|
-
const version = "10.0.
|
|
3442
|
+
const version = "10.0.4";
|
|
3443
3443
|
const packageData = {
|
|
3444
3444
|
version: version};
|
|
3445
3445
|
|
|
@@ -15196,6 +15196,7 @@ function createRoot(canvas) {
|
|
|
15196
15196
|
let pending = null;
|
|
15197
15197
|
return {
|
|
15198
15198
|
async configure(props = {}) {
|
|
15199
|
+
if (pending) await pending;
|
|
15199
15200
|
let resolve;
|
|
15200
15201
|
pending = new Promise((_resolve) => resolve = _resolve);
|
|
15201
15202
|
const {
|
|
@@ -15445,8 +15446,10 @@ function createRoot(canvas) {
|
|
|
15445
15446
|
const unregisterCanvasTarget = scheduler.register(
|
|
15446
15447
|
() => {
|
|
15447
15448
|
const state2 = store.getState();
|
|
15449
|
+
if (!state2.internal.active) return;
|
|
15448
15450
|
if (state2.internal.isMultiCanvas && state2.internal.canvasTarget) {
|
|
15449
15451
|
const renderer2 = state2.internal.actualRenderer;
|
|
15452
|
+
if (!renderer2) return;
|
|
15450
15453
|
renderer2.setCanvasTarget(state2.internal.canvasTarget);
|
|
15451
15454
|
}
|
|
15452
15455
|
},
|
|
@@ -15499,7 +15502,9 @@ function createRoot(canvas) {
|
|
|
15499
15502
|
const unregisterRender = scheduler.register(
|
|
15500
15503
|
() => {
|
|
15501
15504
|
const state2 = store.getState();
|
|
15505
|
+
if (!state2.internal.active) return;
|
|
15502
15506
|
const renderer2 = state2.internal.actualRenderer;
|
|
15507
|
+
if (!renderer2) return;
|
|
15503
15508
|
const userHandlesRender = scheduler.hasUserJobsInPhase("render", newRootId);
|
|
15504
15509
|
if (userHandlesRender || state2.internal.priority) return;
|
|
15505
15510
|
try {
|
|
@@ -15574,23 +15579,62 @@ function Provider({
|
|
|
15574
15579
|
}, []);
|
|
15575
15580
|
return /* @__PURE__ */ jsx(context.Provider, { value: store, children });
|
|
15576
15581
|
}
|
|
15582
|
+
function releaseSceneR3fLinks(scene, options) {
|
|
15583
|
+
if (!scene) return null;
|
|
15584
|
+
scene.traverse((obj) => {
|
|
15585
|
+
delete obj.__r3f;
|
|
15586
|
+
});
|
|
15587
|
+
delete scene.__r3f;
|
|
15588
|
+
{
|
|
15589
|
+
scene.clear();
|
|
15590
|
+
}
|
|
15591
|
+
return scene;
|
|
15592
|
+
}
|
|
15593
|
+
function releaseRendererRefsFromRootState(state) {
|
|
15594
|
+
const { internal } = state;
|
|
15595
|
+
const renderer = internal.actualRenderer ?? null;
|
|
15596
|
+
internal.actualRenderer = null;
|
|
15597
|
+
internal.canvasTarget = null;
|
|
15598
|
+
internal.pointerMap?.clear();
|
|
15599
|
+
internal.pointerDirty?.clear();
|
|
15600
|
+
return renderer;
|
|
15601
|
+
}
|
|
15602
|
+
function detachRootSceneFromRootState(state) {
|
|
15603
|
+
const scene = releaseSceneR3fLinks(state.scene);
|
|
15604
|
+
state.set((prev) => ({
|
|
15605
|
+
scene: null,
|
|
15606
|
+
rootScene: null,
|
|
15607
|
+
internal: { ...prev.internal, container: null }
|
|
15608
|
+
}));
|
|
15609
|
+
return scene;
|
|
15610
|
+
}
|
|
15577
15611
|
function unmountComponentAtNode(canvas, callback) {
|
|
15578
15612
|
const root = _roots.get(canvas);
|
|
15579
15613
|
const fiber = root?.fiber;
|
|
15580
15614
|
if (fiber) {
|
|
15581
15615
|
const state = root?.store.getState();
|
|
15582
|
-
|
|
15616
|
+
let rendererForCleanup = null;
|
|
15617
|
+
let canvasTargetForCleanup;
|
|
15618
|
+
let sceneForCleanup = null;
|
|
15619
|
+
if (state) {
|
|
15620
|
+
state.internal.active = false;
|
|
15621
|
+
canvasTargetForCleanup = state.internal.canvasTarget;
|
|
15622
|
+
rendererForCleanup = releaseRendererRefsFromRootState(state);
|
|
15623
|
+
const unregisterRoot = state.internal.unregisterRoot;
|
|
15624
|
+
if (unregisterRoot) {
|
|
15625
|
+
unregisterRoot();
|
|
15626
|
+
state.internal.unregisterRoot = void 0;
|
|
15627
|
+
}
|
|
15628
|
+
}
|
|
15583
15629
|
reconciler.updateContainer(null, fiber, null, () => {
|
|
15584
15630
|
if (state) {
|
|
15631
|
+
sceneForCleanup = detachRootSceneFromRootState(state);
|
|
15585
15632
|
setTimeout(() => {
|
|
15586
15633
|
try {
|
|
15587
|
-
const renderer =
|
|
15588
|
-
const unregisterRoot = state.internal.unregisterRoot;
|
|
15589
|
-
if (unregisterRoot) unregisterRoot();
|
|
15634
|
+
const renderer = rendererForCleanup;
|
|
15590
15635
|
const unregisterPrimary = state.internal.unregisterPrimary;
|
|
15591
15636
|
if (unregisterPrimary) unregisterPrimary();
|
|
15592
|
-
|
|
15593
|
-
if (canvasTarget?.dispose) canvasTarget.dispose();
|
|
15637
|
+
if (canvasTargetForCleanup?.dispose) canvasTargetForCleanup.dispose();
|
|
15594
15638
|
state.events.disconnect?.();
|
|
15595
15639
|
cleanupHelperGroup(root.store);
|
|
15596
15640
|
if (state.isLegacy && renderer) {
|
|
@@ -15601,7 +15645,7 @@ function unmountComponentAtNode(canvas, callback) {
|
|
|
15601
15645
|
if (!state.internal.isSecondary) {
|
|
15602
15646
|
if (renderer?.xr) state.xr.disconnect();
|
|
15603
15647
|
}
|
|
15604
|
-
dispose(
|
|
15648
|
+
if (sceneForCleanup) dispose(sceneForCleanup);
|
|
15605
15649
|
_roots.delete(canvas);
|
|
15606
15650
|
if (callback) callback(canvas);
|
|
15607
15651
|
} catch {
|
package/dist/webgpu/index.cjs
CHANGED
|
@@ -3461,7 +3461,7 @@ function advance(timestamp) {
|
|
|
3461
3461
|
getScheduler().step(timestamp);
|
|
3462
3462
|
}
|
|
3463
3463
|
|
|
3464
|
-
const version = "10.0.
|
|
3464
|
+
const version = "10.0.4";
|
|
3465
3465
|
const packageData = {
|
|
3466
3466
|
version: version};
|
|
3467
3467
|
|
|
@@ -15218,6 +15218,7 @@ function createRoot(canvas) {
|
|
|
15218
15218
|
let pending = null;
|
|
15219
15219
|
return {
|
|
15220
15220
|
async configure(props = {}) {
|
|
15221
|
+
if (pending) await pending;
|
|
15221
15222
|
let resolve;
|
|
15222
15223
|
pending = new Promise((_resolve) => resolve = _resolve);
|
|
15223
15224
|
const {
|
|
@@ -15496,8 +15497,10 @@ function createRoot(canvas) {
|
|
|
15496
15497
|
const unregisterCanvasTarget = scheduler.register(
|
|
15497
15498
|
() => {
|
|
15498
15499
|
const state2 = store.getState();
|
|
15500
|
+
if (!state2.internal.active) return;
|
|
15499
15501
|
if (state2.internal.isMultiCanvas && state2.internal.canvasTarget) {
|
|
15500
15502
|
const renderer2 = state2.internal.actualRenderer;
|
|
15503
|
+
if (!renderer2) return;
|
|
15501
15504
|
renderer2.setCanvasTarget(state2.internal.canvasTarget);
|
|
15502
15505
|
}
|
|
15503
15506
|
},
|
|
@@ -15550,7 +15553,9 @@ function createRoot(canvas) {
|
|
|
15550
15553
|
const unregisterRender = scheduler.register(
|
|
15551
15554
|
() => {
|
|
15552
15555
|
const state2 = store.getState();
|
|
15556
|
+
if (!state2.internal.active) return;
|
|
15553
15557
|
const renderer2 = state2.internal.actualRenderer;
|
|
15558
|
+
if (!renderer2) return;
|
|
15554
15559
|
const userHandlesRender = scheduler.hasUserJobsInPhase("render", newRootId);
|
|
15555
15560
|
if (userHandlesRender || state2.internal.priority) return;
|
|
15556
15561
|
try {
|
|
@@ -15625,23 +15630,62 @@ function Provider({
|
|
|
15625
15630
|
}, []);
|
|
15626
15631
|
return /* @__PURE__ */ jsxRuntime.jsx(context.Provider, { value: store, children });
|
|
15627
15632
|
}
|
|
15633
|
+
function releaseSceneR3fLinks(scene, options) {
|
|
15634
|
+
if (!scene) return null;
|
|
15635
|
+
scene.traverse((obj) => {
|
|
15636
|
+
delete obj.__r3f;
|
|
15637
|
+
});
|
|
15638
|
+
delete scene.__r3f;
|
|
15639
|
+
{
|
|
15640
|
+
scene.clear();
|
|
15641
|
+
}
|
|
15642
|
+
return scene;
|
|
15643
|
+
}
|
|
15644
|
+
function releaseRendererRefsFromRootState(state) {
|
|
15645
|
+
const { internal } = state;
|
|
15646
|
+
const renderer = internal.actualRenderer ?? null;
|
|
15647
|
+
internal.actualRenderer = null;
|
|
15648
|
+
internal.canvasTarget = null;
|
|
15649
|
+
internal.pointerMap?.clear();
|
|
15650
|
+
internal.pointerDirty?.clear();
|
|
15651
|
+
return renderer;
|
|
15652
|
+
}
|
|
15653
|
+
function detachRootSceneFromRootState(state) {
|
|
15654
|
+
const scene = releaseSceneR3fLinks(state.scene);
|
|
15655
|
+
state.set((prev) => ({
|
|
15656
|
+
scene: null,
|
|
15657
|
+
rootScene: null,
|
|
15658
|
+
internal: { ...prev.internal, container: null }
|
|
15659
|
+
}));
|
|
15660
|
+
return scene;
|
|
15661
|
+
}
|
|
15628
15662
|
function unmountComponentAtNode(canvas, callback) {
|
|
15629
15663
|
const root = _roots.get(canvas);
|
|
15630
15664
|
const fiber = root?.fiber;
|
|
15631
15665
|
if (fiber) {
|
|
15632
15666
|
const state = root?.store.getState();
|
|
15633
|
-
|
|
15667
|
+
let rendererForCleanup = null;
|
|
15668
|
+
let canvasTargetForCleanup;
|
|
15669
|
+
let sceneForCleanup = null;
|
|
15670
|
+
if (state) {
|
|
15671
|
+
state.internal.active = false;
|
|
15672
|
+
canvasTargetForCleanup = state.internal.canvasTarget;
|
|
15673
|
+
rendererForCleanup = releaseRendererRefsFromRootState(state);
|
|
15674
|
+
const unregisterRoot = state.internal.unregisterRoot;
|
|
15675
|
+
if (unregisterRoot) {
|
|
15676
|
+
unregisterRoot();
|
|
15677
|
+
state.internal.unregisterRoot = void 0;
|
|
15678
|
+
}
|
|
15679
|
+
}
|
|
15634
15680
|
reconciler.updateContainer(null, fiber, null, () => {
|
|
15635
15681
|
if (state) {
|
|
15682
|
+
sceneForCleanup = detachRootSceneFromRootState(state);
|
|
15636
15683
|
setTimeout(() => {
|
|
15637
15684
|
try {
|
|
15638
|
-
const renderer =
|
|
15639
|
-
const unregisterRoot = state.internal.unregisterRoot;
|
|
15640
|
-
if (unregisterRoot) unregisterRoot();
|
|
15685
|
+
const renderer = rendererForCleanup;
|
|
15641
15686
|
const unregisterPrimary = state.internal.unregisterPrimary;
|
|
15642
15687
|
if (unregisterPrimary) unregisterPrimary();
|
|
15643
|
-
|
|
15644
|
-
if (canvasTarget?.dispose) canvasTarget.dispose();
|
|
15688
|
+
if (canvasTargetForCleanup?.dispose) canvasTargetForCleanup.dispose();
|
|
15645
15689
|
state.events.disconnect?.();
|
|
15646
15690
|
cleanupHelperGroup(root.store);
|
|
15647
15691
|
if (state.isLegacy && renderer) {
|
|
@@ -15652,7 +15696,7 @@ function unmountComponentAtNode(canvas, callback) {
|
|
|
15652
15696
|
if (!state.internal.isSecondary) {
|
|
15653
15697
|
if (renderer?.xr) state.xr.disconnect();
|
|
15654
15698
|
}
|
|
15655
|
-
dispose(
|
|
15699
|
+
if (sceneForCleanup) dispose(sceneForCleanup);
|
|
15656
15700
|
_roots.delete(canvas);
|
|
15657
15701
|
if (callback) callback(canvas);
|
|
15658
15702
|
} catch {
|