[vtkusers] the New QVTKOpenGLWidget

Mathieu Westphal mathieu.westphal at kitware.com
Thu Aug 23 05:07:10 EDT 2018


Hello list,

If you are working on a VTK/Qt application this information should interest
you.
Sometime ago, a new QVTKOpenGLWidget implementation has been added to VTK,
while the old one has been moved to QVTKOpenGLSimpleWidget.
The last fixes for this change have just been merged, so make sure to use
VTK master to test this.

*1. Why is there a new widget and what does it do ?*
We have been having some issues reported for the old widget, and the old
widget could not support quad buffer stereo rendering by design.
Has it is a needed feature in ParaView, a reimplementation was necessary.
This new widget fix most of the reported issues with the old widget as well
as adding stereo support.

*2. Why keeping the old widget around then ?*
Due to Qt limitations, this new implementation does not support very well
being a native widget.
But native widget are sometimes mandatory, for example within QScrollArea
and QMDIArea, so the QVTKOpenGLSimpleWidget should be used when in needs of
VTK rendering in the contact of Qt native widget.

Also it allows users to switch back to the old widget if necessary.

*3. I'm not sure what native widgets are, what should I do in my
application ?*

Here are the different situation :

   1. Your Qt application only uses a central QVTKOpenGLWidget for
   rendering:
   -> Nothing to do, just build with last master and make sure all is
   working well
   2. Your Qt application only uses QVTKOpenGLWidget within QScrollArea or
   QMDIArea, or manually set widgets to be native and you are not interested
   by stereo rendering.
    -> Change all your QVTKOpenGLWidget to QVTKOpenGLSimpleWidget and you
   are good to go
   3. Your application uses a non-native QVTKOpenGLWidget for rendering as
   well as native QVTKOpenGLWidget for rendering (eg: ParaView, with the
   central rendering widget and the color map editor rendering widget in
   scroll areas) :
    -> Use QVTKOpenGLWidget for non-native widgets and
   QVTKOpenGLSimpleWidget for native ones. The later will never support stereo.


*4. I followed your recommendation but I see some strange
stuff/bugs/rendering issues*
Even if this new class has been tested extensively and will be used in the
next ParaView release, It may still contains some issues. Feel free to
discuss them in this mailing list or on our gitlab
<https://gitlab.kitware.com/vtk/vtk>.

Best regards,

Mathieu Westphal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://public.kitware.com/pipermail/vtkusers/attachments/20180823/b03ea43c/attachment.html>


More information about the vtkusers mailing list