Skip to content

Commit

Permalink
fix(sharingResources): Fix register and unregister of graphics resources
Browse files Browse the repository at this point in the history
  • Loading branch information
bruyeret authored and finetjul committed Jun 25, 2024
1 parent 23388e6 commit beb35bb
Show file tree
Hide file tree
Showing 3 changed files with 103 additions and 83 deletions.
56 changes: 31 additions & 25 deletions Sources/Rendering/OpenGL/ImageMapper/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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 {
Expand Down
56 changes: 31 additions & 25 deletions Sources/Rendering/OpenGL/ImageResliceMapper/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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 {
Expand Down
74 changes: 41 additions & 33 deletions Sources/Rendering/OpenGL/VolumeMapper/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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 {
Expand Down

0 comments on commit beb35bb

Please sign in to comment.