Qt widgets refactor
Cleanups the QT/VTK rendering classes as follows:
-
Consolidates rendering logic between
QVTKOpenGLWindow
andQVTKOpenGLNativeWidget
to avoid duplication. The crux of the VTK-Qt OpenGL rendering code now sits in a new classQVTKRenderWindowAdapter
.QVTKOpenGLWindow
andQVTKOpenGLNativeWidget
simply calls methods onQVTKRenderWindowAdapter
at appropriate points in painting and resizing. -
QVTKRenderWindowAdapter
is designed to exist together with a validQOpenGLContext
.QVTKOpenGLWindow
andQVTKOpenGLNativeWidget
create and destroy instances ofQVTKRenderWindowAdapter
every time new context is created/destroyed. This keeps code inQVTKRenderWindowAdapter
simpler since it doesn't need to handle cases where context is invalid. -
QVTKRenderWindowAdapter
uses an internal FBO to do all the rendering. This avoids issues like paraview/paraview#18513 (closed), paraview/paraview#18446 (closed). -
API on
QVTKOpenGLWindow
,QVTKOpenGLNativeWidget
andQVTKOpenGLWidget
has been updated to follow Qt-style for naming public methods since these classes areQObject
subclasses. All non-confirming public methods have been marked as deprecated. -
Tests have been updated to tests all three variants i.e.
QVTKOpenGLWindow
,QVTKOpenGLNativeWidget
andQVTKOpenGLWidget
without duplicating the test code. This should make it easier to more tests that continue to consistently tests these 3 variants. -
Changes minimum recommended Qt version to 5.6 (Qt 5.5 is supported with limited functionality)