From 3a4402003046f41494af8b252886bae0522937f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Bruy=C3=A8re?= Date: Fri, 14 Jun 2024 14:53:37 +0200 Subject: [PATCH] fix(sharedRw): Fix example delete twice render window node --- Examples/Rendering/ManyRenderWindows/index.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Examples/Rendering/ManyRenderWindows/index.js b/Examples/Rendering/ManyRenderWindows/index.js index df76c195e7c..ce326adffb4 100644 --- a/Examples/Rendering/ManyRenderWindows/index.js +++ b/Examples/Rendering/ManyRenderWindows/index.js @@ -193,11 +193,15 @@ function addRenderWindow(actor) { const button = createRemoveButton(); button.addEventListener('click', () => { rootContainer.removeChild(container); - mainRenderWindow.removeRenderWindow(renderWindow); - mainRenderWindowView.removeNode(renderWindowView); interactor.delete(); - renderWindowView.delete(); + + // The core renderWindow is managed by the user, so delete it + mainRenderWindow.removeRenderWindow(renderWindow); renderWindow.delete(); + + // The node renderWindowView is managed by vtk.js backend, and removed automatically + mainRenderWindowView.removeNode(renderWindowView); + if (mainRenderWindow.getChildRenderWindowsByReference().length === 0) { // When there is no child render window anymore, delete the main render window // We also release the graphics resources, which is not very import as when the context is destroyed, the resources should be freed