场景释放不再强制丢失 WebGL 上下文

- packages/model3d-viewer/src/scene.ts:teardown 去掉 renderer.forceContextLoss(),只保留 renderer.dispose(),并写明原因;宿主 Model3DViewer 全程复用同一个 <canvas>,强制丢上下文会让下一个模型拿到已丢失的上下文渲染全黑

验证:npx tsc(严格模式单文件检查)、npx vitest run packages/model3d-viewer
This commit is contained in:
2026-09-22 13:18:04 +08:00
parent 4bcf0cdb86
commit b71d18b166
+2 -5
View File
@@ -173,12 +173,9 @@ export async function createModel3dViewerScene(
roomEnvironment = null;
}
if (renderer) {
// 只 dispose,不 forceContextLoss:宿主全程复用同一个 <canvas>
// 丢掉上下文后下一次 new WebGLRenderer 会拿回同一个已丢失的上下文,画布全黑。
renderer.dispose();
try {
renderer.forceContextLoss();
} catch {
// 上下文已经丢失时忽略,释放流程继续。
}
renderer = null;
}
}