Skip to content
Snippets Groups Projects
Commit 07f35188 authored by dsehnal's avatar dsehnal
Browse files

add doNotForceWebGLContextLoss option

parent 4588fdd5
No related branches found
No related tags found
No related merge requests found
...@@ -135,7 +135,7 @@ interface Canvas3D { ...@@ -135,7 +135,7 @@ interface Canvas3D {
readonly stats: RendererStats readonly stats: RendererStats
readonly interaction: Canvas3dInteractionHelper['events'] readonly interaction: Canvas3dInteractionHelper['events']
dispose(): void dispose(options?: { doNotForceWebGLContextLoss?: boolean }): void
} }
const requestAnimationFrame = typeof window !== 'undefined' const requestAnimationFrame = typeof window !== 'undefined'
...@@ -705,7 +705,7 @@ namespace Canvas3D { ...@@ -705,7 +705,7 @@ namespace Canvas3D {
get interaction() { get interaction() {
return interactionHelper.events; return interactionHelper.events;
}, },
dispose: () => { dispose: (options?: { doNotForceWebGLContextLoss?: boolean }) => {
contextRestoredSub.unsubscribe(); contextRestoredSub.unsubscribe();
scene.clear(); scene.clear();
...@@ -715,7 +715,7 @@ namespace Canvas3D { ...@@ -715,7 +715,7 @@ namespace Canvas3D {
renderer.dispose(); renderer.dispose();
interactionHelper.dispose(); interactionHelper.dispose();
gl.getExtension('WEBGL_lose_context')?.loseContext(); if (!options?.doNotForceWebGLContextLoss) gl.getExtension('WEBGL_lose_context')?.loseContext();
} }
}; };
......
...@@ -256,10 +256,10 @@ export class PluginContext { ...@@ -256,10 +256,10 @@ export class PluginContext {
return PluginCommands.State.RemoveObject(this, { state: this.state.data, ref: StateTransform.RootRef }); return PluginCommands.State.RemoveObject(this, { state: this.state.data, ref: StateTransform.RootRef });
} }
dispose() { dispose(options?: { doNotForceWebGLContextLoss?: boolean }) {
if (this.disposed) return; if (this.disposed) return;
this.commands.dispose(); this.commands.dispose();
this.canvas3d?.dispose(); this.canvas3d?.dispose(options);
this.ev.dispose(); this.ev.dispose();
this.state.dispose(); this.state.dispose();
this.managers.task.dispose(); this.managers.task.dispose();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment