Release Healer Man 0.1.18

This commit is contained in:
phenom committed 2026-09-05 22:15:48 -04:00
1 parent fc8a7a722a
commit eaddad4134
12 files changed
+107 -42

No files matched your search

+6 -9
View File
@@ -1,6 +1,6 @@
import { useGLTF } from "@react-three/drei";
import { useThree } from "@react-three/fiber";
import { useCallback, useEffect, type ReactNode } from "react";
import { useCallback, type ReactNode } from "react";
import type { WebGLRenderer } from "three";
import { KTX2Loader, type GLTFLoader } from "three-stdlib";
import { resolveContentUrl } from "../content/contentManager";
@@ -20,15 +20,12 @@ function ktx2LoaderFor(renderer: WebGLRenderer): KTX2Loader {
return loader;
}
/** Owns the decoder worker pool for one Canvas and releases it on renderer teardown. */
/**
* Marks the part of a Canvas that shares its GLTF decoder. KTX2Loader instances
* intentionally live with their weakly referenced renderer: disposing one from
* React cleanup can abort a GLB that is still decoding or cached by useGLTF.
*/
export function GameGltfLoaderLifecycle({ children }: { readonly children: ReactNode }) {
const renderer = useThree((state) => state.gl);
useEffect(() => () => {
const loader = ktx2Loaders.get(renderer);
if (!loader) return;
loader.dispose();
ktx2Loaders.delete(renderer);
}, [renderer]);
return children;
}