diff --git a/Sources/Rendering/OpenGL/ImageMapper/index.js b/Sources/Rendering/OpenGL/ImageMapper/index.js index ff358985dd3..95bb345bf8b 100644 --- a/Sources/Rendering/OpenGL/ImageMapper/index.js +++ b/Sources/Rendering/OpenGL/ImageMapper/index.js @@ -89,7 +89,7 @@ function vtkOpenGLImageMapper(publicAPI, model) { !oldOglRenderWindow.isDeleted() && oldOglRenderWindow !== model._openGLRenderWindow ) { - // We unregister ourself when the render window changes + // Unregister the mapper when the render window changes unregisterGraphicsResources(oldOglRenderWindow); } model.context = model._openGLRenderWindow.getContext(); @@ -1016,14 +1016,16 @@ function vtkOpenGLImageMapper(publicAPI, model) { model.colorTexture, cfunToString ); - model._openGLRenderWindow.unregisterGraphicsResourceUser( - model._colorTransferFunc, - publicAPI - ); - model._openGLRenderWindow.registerGraphicsResourceUser( - colorTransferFunc, - publicAPI - ); + if (colorTransferFunc !== model._colorTransferFunc) { + model._openGLRenderWindow.registerGraphicsResourceUser( + colorTransferFunc, + publicAPI + ); + model._openGLRenderWindow.unregisterGraphicsResourceUser( + model._colorTransferFunc, + publicAPI + ); + } model._colorTransferFunc = colorTransferFunc; } } else { @@ -1108,14 +1110,16 @@ function vtkOpenGLImageMapper(publicAPI, model) { model.pwfTexture, pwfunToString ); - model._openGLRenderWindow.unregisterGraphicsResourceUser( - model._pwFunc, - publicAPI - ); - model._openGLRenderWindow.registerGraphicsResourceUser( - pwFunc, - publicAPI - ); + if (pwFunc !== model._pwFunc) { + model._openGLRenderWindow.registerGraphicsResourceUser( + pwFunc, + publicAPI + ); + model._openGLRenderWindow.unregisterGraphicsResourceUser( + model._pwFunc, + publicAPI + ); + } model._pwFunc = pwFunc; } } else { @@ -1406,14 +1410,16 @@ function vtkOpenGLImageMapper(publicAPI, model) { model.labelOutlineThicknessTexture, toString ); - model._openGLRenderWindow.unregisterGraphicsResourceUser( - model._labelOutlineThicknessArray, - publicAPI - ); - model._openGLRenderWindow.registerGraphicsResourceUser( - labelOutlineThicknessArray, - publicAPI - ); + if (labelOutlineThicknessArray !== model._labelOutlineThicknessArray) { + model._openGLRenderWindow.registerGraphicsResourceUser( + labelOutlineThicknessArray, + publicAPI + ); + model._openGLRenderWindow.unregisterGraphicsResourceUser( + model._labelOutlineThicknessArray, + publicAPI + ); + } model._labelOutlineThicknessArray = labelOutlineThicknessArray; } } else { diff --git a/Sources/Rendering/OpenGL/ImageResliceMapper/index.js b/Sources/Rendering/OpenGL/ImageResliceMapper/index.js index a13a74a5a4d..011c3c8c5ce 100644 --- a/Sources/Rendering/OpenGL/ImageResliceMapper/index.js +++ b/Sources/Rendering/OpenGL/ImageResliceMapper/index.js @@ -85,7 +85,7 @@ function vtkOpenGLImageResliceMapper(publicAPI, model) { !oldOglRenderWindow.isDeleted() && oldOglRenderWindow !== model._openGLRenderWindow ) { - // We unregister ourself when the render window changes + // Unregister the mapper when the render window changes unregisterGraphicsResources(oldOglRenderWindow); } model.context = model._openGLRenderWindow.getContext(); @@ -252,14 +252,16 @@ function vtkOpenGLImageResliceMapper(publicAPI, model) { model.openGLTexture, toString ); - model._openGLRenderWindow.unregisterGraphicsResourceUser( - model._scalars, - publicAPI - ); - model._openGLRenderWindow.registerGraphicsResourceUser( - scalars, - publicAPI - ); + if (scalars !== model._scalars) { + model._openGLRenderWindow.registerGraphicsResourceUser( + scalars, + publicAPI + ); + model._openGLRenderWindow.unregisterGraphicsResourceUser( + model._scalars, + publicAPI + ); + } model._scalars = scalars; } } else { @@ -330,14 +332,16 @@ function vtkOpenGLImageResliceMapper(publicAPI, model) { model.colorTexture, toString ); - model._openGLRenderWindow.unregisterGraphicsResourceUser( - model._colorTransferFunc, - publicAPI - ); - model._openGLRenderWindow.registerGraphicsResourceUser( - colorTransferFunc, - publicAPI - ); + if (colorTransferFunc !== model._colorTransferFunc) { + model._openGLRenderWindow.registerGraphicsResourceUser( + colorTransferFunc, + publicAPI + ); + model._openGLRenderWindow.unregisterGraphicsResourceUser( + model._colorTransferFunc, + publicAPI + ); + } model._colorTransferFunc = colorTransferFunc; } } else { @@ -411,14 +415,16 @@ function vtkOpenGLImageResliceMapper(publicAPI, model) { model.pwfTexture, toString ); - model._openGLRenderWindow.unregisterGraphicsResourceUser( - model._pwFunc, - publicAPI - ); - model._openGLRenderWindow.registerGraphicsResourceUser( - pwFunc, - publicAPI - ); + if (pwFunc !== model._pwFunc) { + model._openGLRenderWindow.registerGraphicsResourceUser( + pwFunc, + publicAPI + ); + model._openGLRenderWindow.unregisterGraphicsResourceUser( + model._pwFunc, + publicAPI + ); + } model._pwFunc = pwFunc; } } else { diff --git a/Sources/Rendering/OpenGL/VolumeMapper/index.js b/Sources/Rendering/OpenGL/VolumeMapper/index.js index cb71f081b6f..f252a3266cd 100644 --- a/Sources/Rendering/OpenGL/VolumeMapper/index.js +++ b/Sources/Rendering/OpenGL/VolumeMapper/index.js @@ -164,7 +164,7 @@ function vtkOpenGLVolumeMapper(publicAPI, model) { !oldOglRenderWindow.isDeleted() && oldOglRenderWindow !== model._openGLRenderWindow ) { - // We unregister ourself when the render window changes + // Unregister the mapper when the render window changes unregisterGraphicsResources(oldOglRenderWindow); } model.context = model._openGLRenderWindow.getContext(); @@ -1612,14 +1612,16 @@ function vtkOpenGLVolumeMapper(publicAPI, model) { model.opacityTexture, toString ); - model._openGLRenderWindow.unregisterGraphicsResourceUser( - model._scalarOpacityFunc, - publicAPI - ); - model._openGLRenderWindow.registerGraphicsResourceUser( - scalarOpacityFunc, - publicAPI - ); + if (scalarOpacityFunc !== model._scalarOpacityFunc) { + model._openGLRenderWindow.registerGraphicsResourceUser( + scalarOpacityFunc, + publicAPI + ); + model._openGLRenderWindow.unregisterGraphicsResourceUser( + model._scalarOpacityFunc, + publicAPI + ); + } model._scalarOpacityFunc = scalarOpacityFunc; } } else { @@ -1671,14 +1673,16 @@ function vtkOpenGLVolumeMapper(publicAPI, model) { model.colorTexture, toString ); - model._openGLRenderWindow.unregisterGraphicsResourceUser( - model._colorTransferFunc, - publicAPI - ); - model._openGLRenderWindow.registerGraphicsResourceUser( - colorTransferFunc, - publicAPI - ); + if (colorTransferFunc !== model._colorTransferFunc) { + model._openGLRenderWindow.registerGraphicsResourceUser( + colorTransferFunc, + publicAPI + ); + model._openGLRenderWindow.unregisterGraphicsResourceUser( + model._colorTransferFunc, + publicAPI + ); + } model._colorTransferFunc = colorTransferFunc; } } else { @@ -1714,14 +1718,16 @@ function vtkOpenGLVolumeMapper(publicAPI, model) { model.scalarTexture, toString ); - model._openGLRenderWindow.unregisterGraphicsResourceUser( - model._scalars, - publicAPI - ); - model._openGLRenderWindow.registerGraphicsResourceUser( - scalars, - publicAPI - ); + if (scalars !== model._scalars) { + model._openGLRenderWindow.registerGraphicsResourceUser( + scalars, + publicAPI + ); + model._openGLRenderWindow.unregisterGraphicsResourceUser( + model._scalars, + publicAPI + ); + } model._scalars = scalars; } } else { @@ -1848,14 +1854,16 @@ function vtkOpenGLVolumeMapper(publicAPI, model) { model.labelOutlineThicknessTexture, toString ); - model._openGLRenderWindow.unregisterGraphicsResourceUser( - model._labelOutlineThicknessArray, - publicAPI - ); - model._openGLRenderWindow.registerGraphicsResourceUser( - labelOutlineThicknessArray, - publicAPI - ); + if (labelOutlineThicknessArray !== model._labelOutlineThicknessArray) { + model._openGLRenderWindow.registerGraphicsResourceUser( + labelOutlineThicknessArray, + publicAPI + ); + model._openGLRenderWindow.unregisterGraphicsResourceUser( + model._labelOutlineThicknessArray, + publicAPI + ); + } model._labelOutlineThicknessArray = labelOutlineThicknessArray; } } else {