场景释放不再强制丢失 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:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user