[vtkusers] the New QVTKOpenGLWidget

Jean-Christophe Fillion-Robin jcfr at kitware.com
Mon Aug 27 18:12:11 EDT 2018

Hi All,

To follow up on Mathieu email, we are in in the process of integrating this
merge request [1] (and the equivalent in paraview [2]) that will add/rename
the following classes:

* QVTKOpenGLAlienWidget  (equivalent to QVTKOpenGLWidget class described in
the previous email)

* QVTKOpenGLNativeWidget (equivalent to QVTKOpenGLSimpleWidget class
described in the previous email)

* QVTKOpenGLWidget will:
   - behave as it was before the introduction of the "new QVTKOpenGLWidget"
and will instead derive from QVTKOpenGLNativeWidget.
   - only be available if VTK_LEGACY_REMOVE is OFF
   - will most likely be removed in VTK 10

We anticipate that this clearer naming convention will facilitate update of
user code.

Let us know what you think,


[1] https://gitlab.kitware.com/vtk/vtk/merge_requests/4625
[2] https://gitlab.kitware.com/paraview/paraview/merge_requests/2693

On Thu, Aug 23, 2018 at 5:07 AM Mathieu Westphal <
mathieu.westphal at kitware.com> wrote:

> 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/20180827/c08c45b3/attachment.html>

More information about the vtkusers mailing list