From 1061e003f789c1218663b1d5c5dcdf3bb66fa955 Mon Sep 17 00:00:00 2001 From: Mark Greene Date: Fri, 10 Jul 2026 21:30:21 +1200 Subject: [PATCH 1/2] Fix Safari crash on mixer texture disposal --- packages/website/src/hooks/useDispose.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/website/src/hooks/useDispose.ts b/packages/website/src/hooks/useDispose.ts index 5acc7a6ea..827ccd17d 100644 --- a/packages/website/src/hooks/useDispose.ts +++ b/packages/website/src/hooks/useDispose.ts @@ -36,7 +36,9 @@ export function useDispose(gltf: GLTF & ObjectMap, path: string) { for (const map of maps) { if (!map) continue; - map.source.data.close(); + if (typeof map.source.data.close === "function") { + map.source.data.close(); + } map.dispose(); } From 8df112aab48f5eb2985511714742eaf5db6f0f87 Mon Sep 17 00:00:00 2001 From: tresabhi <43380238+tresabhi@users.noreply.github.com> Date: Sat, 11 Jul 2026 17:16:52 -0500 Subject: [PATCH 2/2] type-safe disposal --- packages/website/src/hooks/useDispose.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/website/src/hooks/useDispose.ts b/packages/website/src/hooks/useDispose.ts index 827ccd17d..7c593426b 100644 --- a/packages/website/src/hooks/useDispose.ts +++ b/packages/website/src/hooks/useDispose.ts @@ -36,9 +36,10 @@ export function useDispose(gltf: GLTF & ObjectMap, path: string) { for (const map of maps) { if (!map) continue; - if (typeof map.source.data.close === "function") { + if (map.source.data instanceof ImageBitmap) { map.source.data.close(); } + map.dispose(); }