First question is about
vtkRenderingContextOpenGL2
. With 9.0.0 it seems we no longer get that library? What should I link against to pick the OpenGL2 backend for context views? Or has the library been removed and they are now using OpenGL2 by default?
Hm, now that I got the program built, it crashes at runtime with:
2020-03-22 11:51:44.120 ( 0,477s) [ F002EC40] vtkContextDevice2D.cxx:32 WARN| Error: no override found for 'vtkContextDevice2D'.
So I’m guessing there’s something missing after all. In VTK 8 I could link against vtkRenderingContextOpenGL2
to pick an implementation. What should I link against in VTK 9?
In VTK 8 I had:
estan@edison:~$ ls /opt/VTK8/lib/*OpenGL2*
/opt/VTK8/lib/libvtkDomainsChemistryOpenGL2-8.2.so /opt/VTK8/lib/libvtkRenderingContextOpenGL2-8.2.so /opt/VTK8/lib/libvtkRenderingOpenGL2-8.2.so
/opt/VTK8/lib/libvtkDomainsChemistryOpenGL2-8.2.so.8.2 /opt/VTK8/lib/libvtkRenderingContextOpenGL2-8.2.so.8.2 /opt/VTK8/lib/libvtkRenderingOpenGL2-8.2.so.8.2
/opt/VTK8/lib/libvtkDomainsChemistryOpenGL2-8.2.so.8.2.0 /opt/VTK8/lib/libvtkRenderingContextOpenGL2-8.2.so.8.2.0 /opt/VTK8/lib/libvtkRenderingOpenGL2-8.2.so.8.2.0
/opt/VTK8/lib/libvtkDomainsChemistryOpenGL2Python36D-8.2.so /opt/VTK8/lib/libvtkRenderingContextOpenGL2Python36D-8.2.so /opt/VTK8/lib/libvtkRenderingOpenGL2Python36D-8.2.so
/opt/VTK8/lib/libvtkDomainsChemistryOpenGL2Python36D-8.2.so.8.2 /opt/VTK8/lib/libvtkRenderingContextOpenGL2Python36D-8.2.so.8.2 /opt/VTK8/lib/libvtkRenderingOpenGL2Python36D-8.2.so.8.2
/opt/VTK8/lib/libvtkDomainsChemistryOpenGL2Python36D-8.2.so.8.2.0 /opt/VTK8/lib/libvtkRenderingContextOpenGL2Python36D-8.2.so.8.2.0 /opt/VTK8/lib/libvtkRenderingOpenGL2Python36D-8.2.so.8.2.0
/opt/VTK8/lib/libvtkIOExportOpenGL2-8.2.so /opt/VTK8/lib/libvtkRenderingGL2PSOpenGL2-8.2.so /opt/VTK8/lib/libvtkRenderingVolumeOpenGL2-8.2.so
/opt/VTK8/lib/libvtkIOExportOpenGL2-8.2.so.8.2 /opt/VTK8/lib/libvtkRenderingGL2PSOpenGL2-8.2.so.8.2 /opt/VTK8/lib/libvtkRenderingVolumeOpenGL2-8.2.so.8.2
/opt/VTK8/lib/libvtkIOExportOpenGL2-8.2.so.8.2.0 /opt/VTK8/lib/libvtkRenderingGL2PSOpenGL2-8.2.so.8.2.0 /opt/VTK8/lib/libvtkRenderingVolumeOpenGL2-8.2.so.8.2.0
/opt/VTK8/lib/libvtkIOExportOpenGL2Python36D-8.2.so /opt/VTK8/lib/libvtkRenderingGL2PSOpenGL2Python36D-8.2.so /opt/VTK8/lib/libvtkRenderingVolumeOpenGL2Python36D-8.2.so
/opt/VTK8/lib/libvtkIOExportOpenGL2Python36D-8.2.so.8.2 /opt/VTK8/lib/libvtkRenderingGL2PSOpenGL2Python36D-8.2.so.8.2 /opt/VTK8/lib/libvtkRenderingVolumeOpenGL2Python36D-8.2.so.8.2
/opt/VTK8/lib/libvtkIOExportOpenGL2Python36D-8.2.so.8.2.0 /opt/VTK8/lib/libvtkRenderingGL2PSOpenGL2Python36D-8.2.so.8.2.0 /opt/VTK8/lib/libvtkRenderingVolumeOpenGL2Python36D-8.2.so.8.2.0
estan@edison:~$
But in VTK 9 I only have:
estan@edison:~$ ls /opt/VTK9/lib/*OpenGL2*
/opt/VTK9/lib/libvtkRenderingGL2PSOpenGL2.so /opt/VTK9/lib/libvtkRenderingOpenGL2.so /opt/VTK9/lib/libvtkRenderingVolumeOpenGL2.so
/opt/VTK9/lib/libvtkRenderingGL2PSOpenGL2.so.9.0 /opt/VTK9/lib/libvtkRenderingOpenGL2.so.9.0 /opt/VTK9/lib/libvtkRenderingVolumeOpenGL2.so.9.0
/opt/VTK9/lib/libvtkRenderingGL2PSOpenGL2.so.9.0.0 /opt/VTK9/lib/libvtkRenderingOpenGL2.so.9.0.0 /opt/VTK9/lib/libvtkRenderingVolumeOpenGL2.so.9.0.0
estan@edison:~$
My CMake line for VTK 8 had:
-DCMAKE_INSTALL_PREFIX=/opt/VTK8 \
-DCMAKE_INSTALL_RPATH=/opt/VTK8/lib \
-DVTK_Group_Qt=ON \
-DVTK_QT_VERSION=5 \
-DVTK_Group_Imaging=ON \
-DVTK_Group_Views=ON \
-DModule_vtkRenderingFreeTypeFontConfig=ON \
-DVTK_WRAP_PYTHON=ON \
-DVTK_PYTHON_VERSION=3 \
-DPYTHON_EXECUTABLE=/usr/bin/python3 \
-DPYTHON_INCLUDE_DIR=/usr/include/python3.6 \
-DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.6m.so \
-DBUILD_TESTING=OFF \
-DVTK_USE_SYSTEM_LIBRARIES=ON \
-DVTK_USE_SYSTEM_LIBPROJ4=OFF \
-DVTK_USE_SYSTEM_GL2PS=OFF \
-DVTK_USE_SYSTEM_LIBHARU=OFF \
-DVTK_USE_SYSTEM_PUGIXML=OFF \
-DCMAKE_BUILD_TYPE=None
While my CMake line for VTK 9 had:
-DCMAKE_INSTALL_PREFIX=/opt/VTK9 \
-DCMAKE_INSTALL_RPATH=/opt/VTK9/lib \
-DVTK_GROUP_ENABLE_Qt=YES \
-DVTK_GROUP_ENABLE_Imaging=YES \
-DVTK_GROUP_ENABLE_Views=YES \
-DVTK_WRAP_PYTHON=ON \
-DVTK_PYTHON_VERSION=3 \
-DVTK_MODULE_ENABLE_VTK_RenderingFreeTypeFontConfig=YES \
-DVTK_BUILD_TESTING=OFF \
-DVTK_USE_EXTERNAL=YES \
-DVTK_MODULE_USE_EXTERNAL_VTK_gl2ps=OFF \
-DVTK_MODULE_USE_EXTERNAL_VTK_libharu=OFF \
-DVTK_MODULE_USE_EXTERNAL_VTK_pugixml=OFF \
-DVTK_CUSTOM_LIBRARY_SUFFIX="" \
-DCMAKE_BUILD_TYPE=None