From 07f351888f8b6632c55f15d98b9740381309de51 Mon Sep 17 00:00:00 2001 From: dsehnal <david.sehnal@gmail.com> Date: Sun, 17 Jan 2021 11:15:15 +0100 Subject: [PATCH] add doNotForceWebGLContextLoss option --- src/mol-canvas3d/canvas3d.ts | 6 +++--- src/mol-plugin/context.ts | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/mol-canvas3d/canvas3d.ts b/src/mol-canvas3d/canvas3d.ts index 9176c5338..b04242f6f 100644 --- a/src/mol-canvas3d/canvas3d.ts +++ b/src/mol-canvas3d/canvas3d.ts @@ -135,7 +135,7 @@ interface Canvas3D { readonly stats: RendererStats readonly interaction: Canvas3dInteractionHelper['events'] - dispose(): void + dispose(options?: { doNotForceWebGLContextLoss?: boolean }): void } const requestAnimationFrame = typeof window !== 'undefined' @@ -705,7 +705,7 @@ namespace Canvas3D { get interaction() { return interactionHelper.events; }, - dispose: () => { + dispose: (options?: { doNotForceWebGLContextLoss?: boolean }) => { contextRestoredSub.unsubscribe(); scene.clear(); @@ -715,7 +715,7 @@ namespace Canvas3D { renderer.dispose(); interactionHelper.dispose(); - gl.getExtension('WEBGL_lose_context')?.loseContext(); + if (!options?.doNotForceWebGLContextLoss) gl.getExtension('WEBGL_lose_context')?.loseContext(); } }; diff --git a/src/mol-plugin/context.ts b/src/mol-plugin/context.ts index cc94a312f..1d785a6c9 100644 --- a/src/mol-plugin/context.ts +++ b/src/mol-plugin/context.ts @@ -256,10 +256,10 @@ export class PluginContext { return PluginCommands.State.RemoveObject(this, { state: this.state.data, ref: StateTransform.RootRef }); } - dispose() { + dispose(options?: { doNotForceWebGLContextLoss?: boolean }) { if (this.disposed) return; this.commands.dispose(); - this.canvas3d?.dispose(); + this.canvas3d?.dispose(options); this.ev.dispose(); this.state.dispose(); this.managers.task.dispose(); -- GitLab