diff --git a/0001-Add-missing-guard-required-for-GLES-to-disable-stere.patch b/0001-Add-missing-guard-required-for-GLES-to-disable-stere.patch index 218fc11..e53de61 100644 --- a/0001-Add-missing-guard-required-for-GLES-to-disable-stere.patch +++ b/0001-Add-missing-guard-required-for-GLES-to-disable-stere.patch @@ -1,22 +1,28 @@ -From a9c31af9e6edd45ae01fb2712ad7a3c0d3e3cc37 Mon Sep 17 00:00:00 2001 +From b035ea7f784a842dda0c3b0dc437514879a873c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Br=C3=BCns?= Date: Sat, 4 Jul 2020 21:04:52 +0200 Subject: [PATCH] Add missing guard required for GLES to disable stereo rendering -fmt.stereo() will evaluate to false for GLES, guard the whole block -so GL_BACK_* is not used. -Qt already includes the OpenGL/GLES headers, so GL_ES_VERSION_2_0 will -be defined for Qt GLES builds. +fmt.stereo()/StereoRender will evaluate to false for GLES, guard the whole +block so GL_*_RIGHT is not used. + +Change the GL_*_LEFT defines for GLES so it actually refers to a front/ +back buffer, otherwise on GLES the invalid constant 0 will be used to +select the front (0x404) and back buffer (0x405). Remove GL_*_RIGHT +defines to avoid any accidental, unguarded use. --- - GUISupport/Qt/QVTKOpenGLWindow.cxx | 2 ++ - 1 file changed, 2 insertions(+) + GUISupport/Qt/QVTKOpenGLWindow.cxx | 5 +++++ + Rendering/External/vtkExternalOpenGLRenderWindow.cxx | 2 ++ + Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx | 2 ++ + ThirdParty/glew/vtk_glew.h.in | 6 ++---- + 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/GUISupport/Qt/QVTKOpenGLWindow.cxx b/GUISupport/Qt/QVTKOpenGLWindow.cxx -index 335feb581c..b692b5490a 100644 +index 067e27cf6e..79bd714f58 100644 --- a/GUISupport/Qt/QVTKOpenGLWindow.cxx +++ b/GUISupport/Qt/QVTKOpenGLWindow.cxx -@@ -231,6 +231,7 @@ void QVTKOpenGLWindow::paintGL() +@@ -259,6 +259,7 @@ void QVTKOpenGLWindow::paintGL() const QSize deviceSize = this->size() * this->devicePixelRatioF(); const auto fmt = this->context()->format(); @@ -24,14 +30,73 @@ index 335feb581c..b692b5490a 100644 if (fmt.stereo() && this->RenderWindow->GetStereoRender() && this->RenderWindow->GetStereoType() == VTK_STEREO_CRYSTAL_EYES) { -@@ -240,6 +241,7 @@ void QVTKOpenGLWindow::paintGL() - this->defaultFramebufferObject(), GL_BACK_RIGHT, QRect(QPoint(0, 0), deviceSize)); +@@ -272,6 +273,10 @@ void QVTKOpenGLWindow::paintGL() + this->RenderWindowAdapter->blit( + this->defaultFramebufferObject(), GL_BACK_LEFT, QRect(QPoint(0, 0), deviceSize)); + } ++#else ++ this->RenderWindowAdapter->blit( ++ this->defaultFramebufferObject(), GL_BACK, QRect(QPoint(0, 0), deviceSize)); ++#endif + ostate->Pop(); + } + else +diff --git a/Rendering/External/vtkExternalOpenGLRenderWindow.cxx b/Rendering/External/vtkExternalOpenGLRenderWindow.cxx +index 445bfce802..d870568f99 100644 +--- a/Rendering/External/vtkExternalOpenGLRenderWindow.cxx ++++ b/Rendering/External/vtkExternalOpenGLRenderWindow.cxx +@@ -64,12 +64,14 @@ void vtkExternalOpenGLRenderWindow::Start() + for (this->GetRenderers()->InitTraversal(sit); + (renderer = this->GetRenderers()->GetNextRenderer(sit));) + { ++#ifndef GL_ES_VERSION_3_0 + if (bufferType == GL_BACK_RIGHT || bufferType == GL_RIGHT || bufferType == GL_FRONT_RIGHT) + { + this->StereoRenderOn(); + this->SetStereoTypeToRight(); } else +#endif { - this->RenderWindowAdapter->blit( - this->defaultFramebufferObject(), GL_BACK, QRect(QPoint(0, 0), deviceSize)); + this->SetStereoTypeToLeft(); + } +diff --git a/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx b/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx +index 46064d3360..f5b7f6f0c3 100644 +--- a/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx ++++ b/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx +@@ -1156,6 +1156,7 @@ void vtkOpenGLRenderWindow::BlitDisplayFramebuffersToHardware() + + ostate->vtkglBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); + ++#ifndef GL_ES_VERSION_3_0 + if (this->StereoRender && this->StereoType == VTK_STEREO_CRYSTAL_EYES) + { + // bind the read buffer to detach the display framebuffer to be safe +@@ -1168,6 +1169,7 @@ void vtkOpenGLRenderWindow::BlitDisplayFramebuffersToHardware() + ostate->vtkglBlitFramebuffer(0, 0, this->Size[0], this->Size[1], 0, 0, this->Size[0], + this->Size[1], GL_COLOR_BUFFER_BIT, GL_NEAREST); + } ++#endif + + ostate->vtkglDrawBuffer(this->DoubleBuffer ? GL_BACK_LEFT : GL_FRONT_LEFT); + // bind the read buffer to detach the display framebuffer to be safe +diff --git a/ThirdParty/glew/vtk_glew.h.in b/ThirdParty/glew/vtk_glew.h.in +index 1763e79319..8b3074b357 100644 +--- a/ThirdParty/glew/vtk_glew.h.in ++++ b/ThirdParty/glew/vtk_glew.h.in +@@ -52,10 +52,8 @@ + + /* some fixes for both ES 2 and 3 */ + #ifdef GL_ES_VERSION_3_0 +-#define GL_BACK_LEFT 0 +-#define GL_BACK_RIGHT 0 +-#define GL_FRONT_LEFT 0 +-#define GL_FRONT_RIGHT 0 ++#define GL_BACK_LEFT GL_BACK ++#define GL_FRONT_LEFT GL_FRONT + + /* this sends all the data each time as opposed to allowing a subset */ + #define glMultiDrawElements(mode, counts, type, indicies, primcount) \ -- -2.27.0 +2.33.1 diff --git a/0001-Add-missing-libm-link-library-to-kissfft-module.patch b/0001-Add-missing-libm-link-library-to-kissfft-module.patch new file mode 100644 index 0000000..796bbfd --- /dev/null +++ b/0001-Add-missing-libm-link-library-to-kissfft-module.patch @@ -0,0 +1,25 @@ +From 2e1ac7f5d5045286cbcce8e1787e1e98281e4b9f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Stefan=20Br=C3=BCns?= +Date: Sat, 20 Nov 2021 19:28:57 +0100 +Subject: [PATCH] Add missing libm link library to kissfft module + +Fixes #18390. +--- + ThirdParty/kissfft/vtkkissfft/CMakeLists.txt | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/ThirdParty/kissfft/vtkkissfft/CMakeLists.txt b/ThirdParty/kissfft/vtkkissfft/CMakeLists.txt +index 6cb26cd44f..3e583cffc7 100644 +--- a/ThirdParty/kissfft/vtkkissfft/CMakeLists.txt ++++ b/ThirdParty/kissfft/vtkkissfft/CMakeLists.txt +@@ -40,3 +40,7 @@ endif () + target_include_directories(kissfft + PRIVATE + "$") ++ ++if(UNIX) ++ vtk_module_link(VTK::kissfft PRIVATE m) ++endif() +-- +2.33.1 + diff --git a/0001-Allow-compilation-on-GLES-platforms.patch b/0001-Allow-compilation-on-GLES-platforms.patch deleted file mode 100644 index c7189ee..0000000 --- a/0001-Allow-compilation-on-GLES-platforms.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 5c4e4e5832613e758b7c1389a5dbcc1d57db7c6e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Stefan=20Br=C3=BCns?= -Date: Tue, 9 Jun 2020 17:11:12 +0200 -Subject: [PATCH] Allow compilation on GLES platforms - -On GLES 2.0 platforms (more specifically, for Qt5 "opengl es2" builds), -QOpenGLFunctions_3_2_Core does not exist. Since Qt 5.7, -QOpenGlFramebufferObject has a static wrapper method for framebuffer -blitting, which in worst case (i.e. no GL_EXT_framebuffer blit -extension) is a noop, but handles all GL platform differences otherwise -(3.2 Core context, GLES 3.0, or any earlier with required extensions). - -The code ignores the passed in targetId FBO handle, but relies on -the default framebuffer object of the context. As the calling code calls -QOpenGLWindow::makeCurrent() the context default FBO is the one returned -by QOpenGLWindow::defaultFramebufferObject(). ---- - GUISupport/Qt/QVTKRenderWindowAdapter.cxx | 21 ++++++++++++++++++++- - 1 file changed, 20 insertions(+), 1 deletion(-) - -diff --git a/GUISupport/Qt/QVTKRenderWindowAdapter.cxx b/GUISupport/Qt/QVTKRenderWindowAdapter.cxx -index 5a66e236df..e5fc5a6135 100644 ---- a/GUISupport/Qt/QVTKRenderWindowAdapter.cxx -+++ b/GUISupport/Qt/QVTKRenderWindowAdapter.cxx -@@ -334,12 +334,17 @@ public: - { - return false; - } -+#if QT_VERSION < QT_VERSION_CHECK(5, 7, 0) - QOpenGLFunctions_3_2_Core* f = this->Context->versionFunctions(); -+#else -+ QOpenGLFunctions* f = this->Context->functions(); -+#endif - if (!f) - { - return false; - } - -+#if QT_VERSION < QT_VERSION_CHECK(5, 7, 0) - f->glBindFramebuffer(GL_DRAW_FRAMEBUFFER, targetId); - f->glDrawBuffer(targetAttachment); - -@@ -358,6 +363,20 @@ public: - auto sourceSize = this->FBO->size(); - f->glBlitFramebuffer(0, 0, sourceSize.width(), sourceSize.height(), targetRect.x(), - targetRect.y(), targetRect.width(), targetRect.height(), GL_COLOR_BUFFER_BIT, GL_NEAREST); -+#else -+ GLboolean scissorTest = f->glIsEnabled(GL_SCISSOR_TEST); -+ if (scissorTest == GL_TRUE) -+ { -+ f->glDisable(GL_SCISSOR_TEST); // Scissor affects glBindFramebuffer. -+ } -+ auto sourceSize = this->FBO->size(); -+ QRect sourceRect(0, 0, sourceSize.width(), sourceSize.height()); -+ unsigned int readAttachment = -+ left ? this->RenderWindow->GetFrontLeftBuffer() : this->RenderWindow->GetFrontRightBuffer(); -+ QOpenGLFramebufferObject::blitFramebuffer(nullptr, targetRect, this->FBO.get(), sourceRect, -+ GL_COLOR_BUFFER_BIT, GL_NEAREST, readAttachment, targetAttachment, -+ QOpenGLFramebufferObject::DontRestoreFramebufferBinding); -+#endif - - this->clearAlpha(targetRect); - -@@ -436,7 +455,7 @@ public: - { - Q_ASSERT(this->Context && this->FBO); - -- QOpenGLFunctions_3_2_Core* f = this->Context->versionFunctions(); -+ QOpenGLFunctions* f = this->Context->functions(); - if (f) - { - // now clear alpha otherwise we end up blending the rendering with --- -2.27.0 - diff --git a/0001-Always-generate-Python-Metadata-when-WRAP_PYTHON-is-.patch b/0001-Always-generate-Python-Metadata-when-WRAP_PYTHON-is-.patch new file mode 100644 index 0000000..3645d39 --- /dev/null +++ b/0001-Always-generate-Python-Metadata-when-WRAP_PYTHON-is-.patch @@ -0,0 +1,95 @@ +From a08e2a67c1e6694ba2eb2631c7e8e371bd055b46 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Stefan=20Br=C3=BCns?= +Date: Sat, 20 Nov 2021 23:26:05 +0100 +Subject: [PATCH] Always generate Python Metadata when WRAP_PYTHON is active + +Python Metadata in accordance with PEP 314 is not only used by wheels +(PEP 427/PEP 491), but can also used for `python setup.py +install_egg_info`. + +The latter can be used to make a system wide VTK installation available +for other python packages (e.g. installed via pip) which require VTK. +Without the metadata, pip will not find it and always try to download the +wheel. +--- + CMake/vtkPythonMetadata.cmake | 17 +++++++++++++++++ + CMake/vtkWheelPreparation.cmake | 18 ----------------- + CMakeLists.txt | 3 ++- + 3 files changed, 19 insertions(+), 19 deletions(-) + create mode 100644 CMake/vtkPythonMetadata.cmake + +diff --git a/CMake/vtkPythonMetadata.cmake b/CMake/vtkPythonMetadata.cmake +new file mode 100644 +index 0000000000..44fb591321 +--- /dev/null ++++ b/CMake/vtkPythonMetadata.cmake +@@ -0,0 +1,17 @@ ++configure_file( ++ "${CMAKE_CURRENT_LIST_DIR}/setup.py.in" ++ "${CMAKE_BINARY_DIR}/setup.py" ++ @ONLY) ++configure_file( ++ "${CMAKE_CURRENT_LIST_DIR}/MANIFEST.in.in" ++ "${CMAKE_BINARY_DIR}/MANIFEST.in" ++ @ONLY) ++configure_file( ++ "${CMAKE_SOURCE_DIR}/Copyright.txt" ++ "${CMAKE_BINARY_DIR}/LICENSE" ++ COPYONLY) ++configure_file( ++ "${CMAKE_SOURCE_DIR}/README.md" ++ "${CMAKE_BINARY_DIR}/README.md" ++ COPYONLY) ++ +diff --git a/CMake/vtkWheelPreparation.cmake b/CMake/vtkWheelPreparation.cmake +index 0a4c4786d0..df56a3d98c 100644 +--- a/CMake/vtkWheelPreparation.cmake ++++ b/CMake/vtkWheelPreparation.cmake +@@ -84,22 +84,4 @@ elseif (UNIX) + endif () + set(VTK_PYTHON_OPTIONAL_LINK ON) + +-configure_file( +- "${CMAKE_CURRENT_LIST_DIR}/setup.py.in" +- "${CMAKE_BINARY_DIR}/setup.py" +- @ONLY) +-configure_file( +- "${CMAKE_CURRENT_LIST_DIR}/MANIFEST.in.in" +- "${CMAKE_BINARY_DIR}/MANIFEST.in" +- @ONLY) +-configure_file( +- "${CMAKE_SOURCE_DIR}/Copyright.txt" +- "${CMAKE_BINARY_DIR}/LICENSE" +- COPYONLY) +-configure_file( +- "${CMAKE_SOURCE_DIR}/README.md" +- "${CMAKE_BINARY_DIR}/README.md" +- COPYONLY) +- +-unset(license_file) + unset(wheel_data_dir) +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 371ffd61a6..ccd4409251 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -447,6 +447,8 @@ if (VTK_WRAP_PYTHON) + TARGET_SPECIFIC_COMPONENTS "${VTK_TARGET_SPECIFIC_COMPONENTS}" + TARGET VTK::vtkpythonmodules) + ++ include(vtkPythonMetadata) ++ + if (APPLE AND VTK_WHEEL_BUILD) + list(REMOVE_ITEM CMAKE_INSTALL_RPATH + "@loader_path/.dylibs") +@@ -547,7 +549,7 @@ install( + + # TODO: HeaderTest exclusions for memcheck. + +-if (VTK_WHEEL_BUILD) ++if (VTK_WRAP_PYTHON) + include(vtkWheelFinalization) + endif () + +-- +2.33.1 + diff --git a/0001-Consider-VTK_PYTHON_SITE_PACKAGES_SUFFIX-for-Python-.patch b/0001-Consider-VTK_PYTHON_SITE_PACKAGES_SUFFIX-for-Python-.patch new file mode 100644 index 0000000..6768209 --- /dev/null +++ b/0001-Consider-VTK_PYTHON_SITE_PACKAGES_SUFFIX-for-Python-.patch @@ -0,0 +1,68 @@ +From 0cf33c4bf04596e368978e663aa4a2ea42289651 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Stefan=20Br=C3=BCns?= +Date: Sun, 21 Nov 2021 19:14:37 +0100 +Subject: [PATCH] Consider VTK_PYTHON_SITE_PACKAGES_SUFFIX for Python Metadata + files + +When building wheels, VTK_PYTHON_SITE_PACKAGES_SUFFIX is ".", so in this +case nothing is changed. For all other builds, e.g. setup.py should be +located in the same directory as e.g. vtk.py, otherwise setup.py fails. +--- + CMake/vtkPythonMetadata.cmake | 8 ++++---- + CMake/vtkWheelFinalization.cmake | 2 +- + CMakeLists.txt | 2 +- + 3 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/CMake/vtkPythonMetadata.cmake b/CMake/vtkPythonMetadata.cmake +index 44fb591321..f88f9e8aaa 100644 +--- a/CMake/vtkPythonMetadata.cmake ++++ b/CMake/vtkPythonMetadata.cmake +@@ -1,17 +1,17 @@ + configure_file( + "${CMAKE_CURRENT_LIST_DIR}/setup.py.in" +- "${CMAKE_BINARY_DIR}/setup.py" ++ "${CMAKE_BINARY_DIR}/${VTK_PYTHON_SITE_PACKAGES_SUFFIX}/setup.py" + @ONLY) + configure_file( + "${CMAKE_CURRENT_LIST_DIR}/MANIFEST.in.in" +- "${CMAKE_BINARY_DIR}/MANIFEST.in" ++ "${CMAKE_BINARY_DIR}/${VTK_PYTHON_SITE_PACKAGES_SUFFIX}/MANIFEST.in" + @ONLY) + configure_file( + "${CMAKE_SOURCE_DIR}/Copyright.txt" +- "${CMAKE_BINARY_DIR}/LICENSE" ++ "${CMAKE_BINARY_DIR}/${VTK_PYTHON_SITE_PACKAGES_SUFFIX}/LICENSE" + COPYONLY) + configure_file( + "${CMAKE_SOURCE_DIR}/README.md" +- "${CMAKE_BINARY_DIR}/README.md" ++ "${CMAKE_BINARY_DIR}/${VTK_PYTHON_SITE_PACKAGES_SUFFIX}/README.md" + COPYONLY) + +diff --git a/CMake/vtkWheelFinalization.cmake b/CMake/vtkWheelFinalization.cmake +index 23c17fd977..269b31e7d0 100644 +--- a/CMake/vtkWheelFinalization.cmake ++++ b/CMake/vtkWheelFinalization.cmake +@@ -62,5 +62,5 @@ foreach (vtk_feature IN LISTS vtk_features) + string(APPEND vtk_feature_entries + " '${vtk_feature}': [],\n") + endforeach () +-file(WRITE "${CMAKE_BINARY_DIR}/vtk_features.py" ++file(WRITE "${CMAKE_BINARY_DIR}/${VTK_PYTHON_SITE_PACKAGES_SUFFIX}/vtk_features.py" + "FEATURES = {\n${vtk_feature_entries}}\n") +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 90c90f9d46..03f5836a0f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -417,7 +417,7 @@ if (VTK_WRAP_PYTHON) + list(REMOVE_DUPLICATES vtk_required_python_modules) + endif () + string(REPLACE ";" "\n" vtk_required_python_modules "${vtk_required_python_modules}") +- file(WRITE "${CMAKE_BINARY_DIR}/requirements.txt" ++ file(WRITE "${CMAKE_BINARY_DIR}/${VTK_PYTHON_SITE_PACKAGES_SUFFIX}/requirements.txt" + "${vtk_required_python_modules}\n") + get_property(vtk_soabi GLOBAL + PROPERTY _vtk_python_soabi) +-- +2.33.1 + diff --git a/0001-Fix-PyVTKAddFile_-function-signature-mismatch.patch b/0001-Fix-PyVTKAddFile_-function-signature-mismatch.patch deleted file mode 100644 index e993fb9..0000000 --- a/0001-Fix-PyVTKAddFile_-function-signature-mismatch.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 4253aefd5b5bf5f68177b37b73588ed83d05ac7e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Stefan=20Br=C3=BCns?= -Date: Thu, 2 Jul 2020 19:29:04 +0200 -Subject: [PATCH] Fix PyVTKAddFile_* function signature mismatch - -The implementation generated in vtkWrapPython.c has void return type, as -noted by GCC when using LTO, e.g.: --- -./build/CMakeFiles/vtkRenderingOpenGL2PythonPython/vtkRenderingOpenGL2PythonInitImpl.cxx:85:24: warning: 'PyVTKAddFile_vtkPointFillPass' violates the C++ One Definition Rule [-Wodr] - 85 | extern "C" { PyObject *PyVTKAddFile_vtkPointFillPass(PyObject *dict); } - | ^ -./build/CMakeFiles/vtkRenderingOpenGL2Python/vtkPointFillPassPython.cxx:442:6: note: return value type mismatch - 442 | void PyVTKAddFile_vtkPointFillPass( - | ^ -./build/CMakeFiles/vtkRenderingOpenGL2Python/vtkPointFillPassPython.cxx:442:6: note: 'PyVTKAddFile_vtkPointFillPass' was previously declared here --- ---- - Wrapping/Tools/vtkWrapPythonInit.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Wrapping/Tools/vtkWrapPythonInit.c b/Wrapping/Tools/vtkWrapPythonInit.c -index 6b108c1aca..dcccd4cf5d 100644 ---- a/Wrapping/Tools/vtkWrapPythonInit.c -+++ b/Wrapping/Tools/vtkWrapPythonInit.c -@@ -61,7 +61,7 @@ static void CreateImplFile(const char* libName, const char* importName, int numD - - for (i = 0; i < numFiles; i++) - { -- fprintf(fout, "extern \"C\" { PyObject *PyVTKAddFile_%s(PyObject *dict); }\n", files[i]); -+ fprintf(fout, "extern \"C\" { void PyVTKAddFile_%s(PyObject *dict); }\n", files[i]); - } - - fprintf(fout, "\nstatic PyMethodDef Py%s_Methods[] = {\n", libName); --- -2.27.0 - diff --git a/0001-GL_POINT_SPRITE-is-only-available-for-Compatibility-.patch b/0001-GL_POINT_SPRITE-is-only-available-for-Compatibility-.patch index b833df6..ac9e991 100644 --- a/0001-GL_POINT_SPRITE-is-only-available-for-Compatibility-.patch +++ b/0001-GL_POINT_SPRITE-is-only-available-for-Compatibility-.patch @@ -1,18 +1,18 @@ -From 6b675d1fbb130480725ae5ed3f3bdd995e9b336a Mon Sep 17 00:00:00 2001 +From f65cf376980777639ac5ef52364678c87f1a721f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Br=C3=BCns?= -Date: Fri, 17 Jul 2020 05:00:04 +0200 -Subject: [PATCH 1/2] GL_POINT_SPRITE is only available for Compatibility - Profiles and GLES 1.0 +Date: Sun, 21 Nov 2021 22:55:13 +0100 +Subject: [PATCH] GL_POINT_SPRITE is only available for Compatibility Profiles + and GLES 1.0 --- Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx b/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx -index 6cd90e0306..7b834fa6e5 100644 +index d30d61af5e..5a942bfda3 100644 --- a/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx +++ b/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx -@@ -1126,22 +1126,28 @@ void vtkOpenGLContextDevice2D::DrawPointSprites( +@@ -1123,20 +1123,26 @@ void vtkOpenGLContextDevice2D::DrawPointSprites( } // We can actually use point sprites here @@ -29,8 +29,6 @@ index 6cd90e0306..7b834fa6e5 100644 glDrawArrays(GL_POINTS, 0, n); - // free everything - cbo->ReleaseGraphicsResources(this->RenderWindow); +#ifdef GL_POINT_SPRITE if (this->RenderWindow->IsPointSpriteBugPresent()) { @@ -42,5 +40,5 @@ index 6cd90e0306..7b834fa6e5 100644 if (sprite) { -- -2.27.0 +2.33.1 diff --git a/0001-Remove-duplicate-check-for-QOpenGLFunctions_3_2_Core.patch b/0001-Remove-duplicate-check-for-QOpenGLFunctions_3_2_Core.patch deleted file mode 100644 index eb08d6c..0000000 --- a/0001-Remove-duplicate-check-for-QOpenGLFunctions_3_2_Core.patch +++ /dev/null @@ -1,96 +0,0 @@ -From 6cc902225a0c4fe8567071ce6518d5861218ca6a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Stefan=20Br=C3=BCns?= -Date: Tue, 9 Jun 2020 17:34:39 +0200 -Subject: [PATCH 1/3] Remove duplicate check for QOpenGLFunctions_3_2_Core* - -The return value is already checked in QVTKRenderWindowAdapter::blit(), -no need to do it twice. ---- - GUISupport/Qt/QVTKOpenGLNativeWidget.cxx | 12 +++------ - GUISupport/Qt/QVTKOpenGLWindow.cxx | 32 ++++++++++-------------- - 2 files changed, 16 insertions(+), 28 deletions(-) - -diff --git a/GUISupport/Qt/QVTKOpenGLNativeWidget.cxx b/GUISupport/Qt/QVTKOpenGLNativeWidget.cxx -index 9f058c7141..054079793a 100644 ---- a/GUISupport/Qt/QVTKOpenGLNativeWidget.cxx -+++ b/GUISupport/Qt/QVTKOpenGLNativeWidget.cxx -@@ -19,7 +19,6 @@ - #include - #include - #include --#include - #include - #include - #include -@@ -237,14 +236,9 @@ void QVTKOpenGLNativeWidget::paintGL() - // before proceeding with blit-ing. - this->makeCurrent(); - -- QOpenGLFunctions_3_2_Core* f = -- QOpenGLContext::currentContext()->versionFunctions(); -- if (f) -- { -- const QSize deviceSize = this->size() * this->devicePixelRatioF(); -- this->RenderWindowAdapter->blit( -- this->defaultFramebufferObject(), GL_COLOR_ATTACHMENT0, QRect(QPoint(0, 0), deviceSize)); -- } -+ const QSize deviceSize = this->size() * this->devicePixelRatioF(); -+ this->RenderWindowAdapter->blit( -+ this->defaultFramebufferObject(), GL_COLOR_ATTACHMENT0, QRect(QPoint(0, 0), deviceSize)); - } - else - { -diff --git a/GUISupport/Qt/QVTKOpenGLWindow.cxx b/GUISupport/Qt/QVTKOpenGLWindow.cxx -index 8311ac24a8..9c97121db9 100644 ---- a/GUISupport/Qt/QVTKOpenGLWindow.cxx -+++ b/GUISupport/Qt/QVTKOpenGLWindow.cxx -@@ -19,7 +19,6 @@ - #include - #include - #include --#include - #include - #include - #include -@@ -230,25 +229,20 @@ void QVTKOpenGLWindow::paintGL() - // before proceeding with blit-ing. - this->makeCurrent(); - -- QOpenGLFunctions_3_2_Core* f = -- QOpenGLContext::currentContext()->versionFunctions(); -- if (f) -+ const QSize deviceSize = this->size() * this->devicePixelRatioF(); -+ const auto fmt = this->context()->format(); -+ if (fmt.stereo() && this->RenderWindow->GetStereoRender() && -+ this->RenderWindow->GetStereoType() == VTK_STEREO_CRYSTAL_EYES) - { -- const QSize deviceSize = this->size() * this->devicePixelRatioF(); -- const auto fmt = this->context()->format(); -- if (fmt.stereo() && this->RenderWindow->GetStereoRender() && -- this->RenderWindow->GetStereoType() == VTK_STEREO_CRYSTAL_EYES) -- { -- this->RenderWindowAdapter->blitLeftEye( -- this->defaultFramebufferObject(), GL_BACK_LEFT, QRect(QPoint(0, 0), deviceSize)); -- this->RenderWindowAdapter->blitRightEye( -- this->defaultFramebufferObject(), GL_BACK_RIGHT, QRect(QPoint(0, 0), deviceSize)); -- } -- else -- { -- this->RenderWindowAdapter->blit( -- this->defaultFramebufferObject(), GL_BACK, QRect(QPoint(0, 0), deviceSize)); -- } -+ this->RenderWindowAdapter->blitLeftEye( -+ this->defaultFramebufferObject(), GL_BACK_LEFT, QRect(QPoint(0, 0), deviceSize)); -+ this->RenderWindowAdapter->blitRightEye( -+ this->defaultFramebufferObject(), GL_BACK_RIGHT, QRect(QPoint(0, 0), deviceSize)); -+ } -+ else -+ { -+ this->RenderWindowAdapter->blit( -+ this->defaultFramebufferObject(), GL_BACK, QRect(QPoint(0, 0), deviceSize)); - } - } - else --- -2.27.0 - diff --git a/0001-Replace-invalid-GL_LINE-with-GL_LINES-for-glDrawArra.patch b/0001-Replace-invalid-GL_LINE-with-GL_LINES-for-glDrawArra.patch deleted file mode 100644 index 2347aff..0000000 --- a/0001-Replace-invalid-GL_LINE-with-GL_LINES-for-glDrawArra.patch +++ /dev/null @@ -1,28 +0,0 @@ -From cce31fb588c24c56848cb4ec28b10f2831232374 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Stefan=20Br=C3=BCns?= -Date: Sat, 18 Jul 2020 02:09:18 +0200 -Subject: [PATCH] Replace invalid GL_LINE with GL_LINES for glDrawArrays - -GL_LINE applies to glPolygonMode, but glDrawArrays uses GL_LINES. - -(cherry picked from commit bd241df6c5804875d879c4649915e3e83172ba3f) ---- - Rendering/ContextOpenGL2/vtkOpenGLContextDevice3D.cxx | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Rendering/ContextOpenGL2/vtkOpenGLContextDevice3D.cxx b/Rendering/ContextOpenGL2/vtkOpenGLContextDevice3D.cxx -index c55968d3b8..d24eeeda75 100644 ---- a/Rendering/ContextOpenGL2/vtkOpenGLContextDevice3D.cxx -+++ b/Rendering/ContextOpenGL2/vtkOpenGLContextDevice3D.cxx -@@ -431,7 +431,7 @@ void vtkOpenGLContextDevice3D::DrawLines( - this->BuildVBO(cbo, verts, n, colors, nc, nullptr); - this->SetMatrices(cbo->Program); - -- glDrawArrays(GL_LINE, 0, n); -+ glDrawArrays(GL_LINES, 0, n); - - // free everything - cbo->ReleaseGraphicsResources(this->RenderWindow); --- -2.27.0 - diff --git a/0001-Replace-last-glDrawBuffer-call-with-glDrawBuffers-1.patch b/0001-Replace-last-glDrawBuffer-call-with-glDrawBuffers-1.patch deleted file mode 100644 index f16beaa..0000000 --- a/0001-Replace-last-glDrawBuffer-call-with-glDrawBuffers-1.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 98857882cdd0a08a5102d663dc9510e6343adbfa Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Stefan=20Br=C3=BCns?= -Date: Sun, 28 Jun 2020 22:13:32 +0200 -Subject: [PATCH 1/2] Replace last glDrawBuffer call with glDrawBuffers(1, ...) - -glDrawBuffer is only available in Desktop OpenGL, while the equivalent -glDrawBuffers is valid also for GLES. - -Just defining glDrawBuffer as an empty macro is obviously not the right -solution, as the call is also required on GLES. This also causes -a compilation failure - GL.h may be included via GLX.h on X11 platforms, -and the glDrawBuffer prototype declaration becomes malformed. ---- - Rendering/ContextOpenGL2/vtkOpenGLContextDevice2DPrivate.h | 3 ++- - ThirdParty/glew/vtk_glew.h.in | 1 - - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2DPrivate.h b/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2DPrivate.h -index ddeeb04d38..2e1cc9cbf2 100644 ---- a/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2DPrivate.h -+++ b/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2DPrivate.h -@@ -324,7 +324,8 @@ public: - - if (this->SavedDrawBuffer != GL_BACK_LEFT) - { -- glDrawBuffer(this->SavedDrawBuffer); -+ const GLenum bufs[1] = { static_cast(this->SavedDrawBuffer) }; -+ ::glDrawBuffers(1, bufs); - } - - ostate->vtkglClearColor(this->SavedClearColor[0], this->SavedClearColor[1], -diff --git a/ThirdParty/glew/vtk_glew.h.in b/ThirdParty/glew/vtk_glew.h.in -index 009f230b19..1763e79319 100644 ---- a/ThirdParty/glew/vtk_glew.h.in -+++ b/ThirdParty/glew/vtk_glew.h.in -@@ -52,7 +52,6 @@ - - /* some fixes for both ES 2 and 3 */ - #ifdef GL_ES_VERSION_3_0 --#define glDrawBuffer(arg) - #define GL_BACK_LEFT 0 - #define GL_BACK_RIGHT 0 - #define GL_FRONT_LEFT 0 --- -2.27.0 - diff --git a/0001-clean-up-some-old-opengl-es-stuff.patch b/0001-clean-up-some-old-opengl-es-stuff.patch deleted file mode 100644 index 5b60fc3..0000000 --- a/0001-clean-up-some-old-opengl-es-stuff.patch +++ /dev/null @@ -1,247 +0,0 @@ -From 13956bf0d47391046e7bb08bb0b581d0850738a9 Mon Sep 17 00:00:00 2001 -From: Ken Martin -Date: Tue, 23 Jun 2020 14:31:15 -0400 -Subject: [PATCH] clean up some old opengl es stuff - -No longer have the version option so remove - -Partially implement 1D textures as 2D ---- - Examples/Android/ReadMe.txt | 6 +- - Rendering/OpenGL2/CMakeLists.txt | 6 +- - Rendering/OpenGL2/vtkTextureObject.cxx | 95 +++++++++++++++++++++++++- - ThirdParty/glew/vtk_glew.h.in | 45 ++++++------ - 4 files changed, 118 insertions(+), 34 deletions(-) - -diff --git a/Examples/Android/ReadMe.txt b/Examples/Android/ReadMe.txt -index 7b43476bdd..9c6f5a102d 100644 ---- a/Examples/Android/ReadMe.txt -+++ b/Examples/Android/ReadMe.txt -@@ -41,10 +41,6 @@ To build VTK and these examples follow the steps below. - * Run cmake on vtkandroid with -DVTK_ANDROID_BUILD=ON, if you use the gui add a - * boolean entry with that name prior to configuring and set it on. - --If you want OpenGL ES 3.0 support make sure to change the setting of --OPENGL_ES_VERSION to 3.0. Volume Rendering requires ES 3.0. Make sure to turn on --VTK_BUILD_EXAMPLES -- - * configure and generate as usual - - * Once done run ninja or make as appropriate -@@ -60,4 +56,4 @@ cd into CMakeExternals/Build/vtk-android/Examples/Android/ExampleName/bin - - You should see some apk files in this directory. - --You can adb install -r ExampleName-debug.apk and then run the example on your device -\ No newline at end of file -+You can adb install -r ExampleName-debug.apk and then run the example on your device -diff --git a/Rendering/OpenGL2/CMakeLists.txt b/Rendering/OpenGL2/CMakeLists.txt -index da43adb85f..0ea0ee3200 100644 ---- a/Rendering/OpenGL2/CMakeLists.txt -+++ b/Rendering/OpenGL2/CMakeLists.txt -@@ -3,6 +3,7 @@ set(classes - vtkClearRGBPass - vtkClearZPass - vtkCompositePolyDataMapper2 -+ vtkDataTransferHelper - vtkDefaultPass - vtkDepthImageProcessingPass - vtkDepthOfFieldPass -@@ -93,11 +94,6 @@ set(classes - vtkValuePass - vtkVolumetricPass) - --if (NOT DEFINED OPENGL_ES_VERSION) -- list(APPEND classes -- vtkDataTransferHelper) --endif() -- - set(headers - vtkCompositePolyDataMapper2Internal.h - vtkOpenGL.h - vtkStateStorage.h -diff --git a/Rendering/OpenGL2/vtkTextureObject.cxx b/Rendering/OpenGL2/vtkTextureObject.cxx -index 6afef26d97..b491c62e89 100644 ---- a/Rendering/OpenGL2/vtkTextureObject.cxx -+++ b/Rendering/OpenGL2/vtkTextureObject.cxx -@@ -1030,6 +1030,99 @@ bool vtkTextureObject::CreateTextureBuffer( - - #else - -+// Emulate 1D textures as 2D. Note that the any shader code will likely -+// have to be modified as well for this to work. -+ -+//------------------------------------------------------------------------------ -+bool vtkTextureObject::Create1D( -+ int numComps, vtkPixelBufferObject* pbo, bool shaderSupportsTextureInt) -+{ -+ assert(this->Context); -+ assert(pbo->GetContext() == this->Context.GetPointer()); -+ -+ GLenum target = GL_TEXTURE_2D; -+ -+ // Now, determine texture parameters using the information from the pbo. -+ -+ // * internalFormat depends on number of components and the data type. -+ GLenum internalFormat = -+ this->GetInternalFormat(pbo->GetType(), numComps, shaderSupportsTextureInt); -+ -+ // * format depends on the number of components. -+ GLenum format = this->GetFormat(pbo->GetType(), numComps, shaderSupportsTextureInt); -+ -+ // * type if the data type in the pbo -+ GLenum type = this->GetDefaultDataType(pbo->GetType()); -+ -+ if (!internalFormat || !format || !type) -+ { -+ vtkErrorMacro("Failed to determine texture parameters."); -+ return false; -+ } -+ -+ this->Target = target; -+ this->Context->ActivateTexture(this); -+ this->CreateTexture(); -+ this->Bind(); -+ -+ pbo->Bind(vtkPixelBufferObject::UNPACKED_BUFFER); -+ -+ // Source texture data from the PBO. -+ glPixelStorei(GL_UNPACK_ALIGNMENT, 1); -+ glTexImage2D(target, 0, static_cast(internalFormat), -+ static_cast(pbo->GetSize() / static_cast(numComps)), 1, 0, format, type, -+ BUFFER_OFFSET(0)); -+ vtkOpenGLCheckErrorMacro("failed at glTexImage1D"); -+ pbo->UnBind(); -+ this->Deactivate(); -+ -+ this->Target = target; -+ this->Format = format; -+ this->Type = type; -+ this->Components = numComps; -+ this->Width = pbo->GetSize(); -+ this->Height = 1; -+ this->Depth = 1; -+ this->NumberOfDimensions = 1; -+ return true; -+} -+ -+//------------------------------------------------------------------------------ -+bool vtkTextureObject::Create1DFromRaw(unsigned int width, int numComps, int dataType, void* data) -+{ -+ assert(this->Context); -+ -+ // Now determine the texture parameters using the arguments. -+ this->GetDataType(dataType); -+ this->GetInternalFormat(dataType, numComps, false); -+ this->GetFormat(dataType, numComps, false); -+ -+ if (!this->InternalFormat || !this->Format || !this->Type) -+ { -+ vtkErrorMacro("Failed to determine texture parameters."); -+ return false; -+ } -+ -+ GLenum target = GL_TEXTURE_2D; -+ this->Target = target; -+ this->Components = numComps; -+ this->Width = width; -+ this->Height = 1; -+ this->Depth = 1; -+ this->NumberOfDimensions = 1; -+ this->Context->ActivateTexture(this); -+ this->CreateTexture(); -+ this->Bind(); -+ -+ glTexImage2D(this->Target, 0, this->InternalFormat, static_cast(this->Width), 1, 0, -+ this->Format, this->Type, static_cast(data)); -+ -+ vtkOpenGLCheckErrorMacro("failed at glTexImage1D"); -+ -+ this->Deactivate(); -+ return true; -+} -+ - // Description: - // Create a texture buffer basically a 1D texture that can be - // very large for passing data into the fragment shader -@@ -1037,7 +1130,7 @@ bool vtkTextureObject::CreateTextureBuffer( - unsigned int numValues, int numComps, int dataType, vtkOpenGLBufferObject* bo) - { - assert(this->Context); -- vtkErrorMacro("TextureBuffers not supported in OPenGL ES"); -+ vtkErrorMacro("TextureBuffers not supported in OpenGL ES"); - // TODO: implement 1D and Texture buffers using 2D textures - return false; - } -diff --git a/ThirdParty/glew/vtk_glew.h.in b/ThirdParty/glew/vtk_glew.h.in -index 6aa8c2ee9e..009f230b19 100644 ---- a/ThirdParty/glew/vtk_glew.h.in -+++ b/ThirdParty/glew/vtk_glew.h.in -@@ -35,42 +35,41 @@ - #endif - - #if VTK_MODULE_vtkglew_GLES3 --# include -+#include - #elif TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR --# include -+#include - #elif VTK_MODULE_USE_EXTERNAL_vtkglew --# include --# ifdef _WIN32 --# include --# endif -+#include -+#ifdef _WIN32 -+#include -+#endif - #else --# include --# ifdef _WIN32 --# include --# endif -+#include -+#ifdef _WIN32 -+#include -+#endif - #endif - - /* some fixes for both ES 2 and 3 */ - #ifdef GL_ES_VERSION_3_0 --# define glDrawBuffer(arg) --# define GL_BACK_LEFT 0 --# define GL_BACK_RIGHT 0 --# define GL_FRONT_LEFT 0 --# define GL_FRONT_RIGHT 0 -+#define glDrawBuffer(arg) -+#define GL_BACK_LEFT 0 -+#define GL_BACK_RIGHT 0 -+#define GL_FRONT_LEFT 0 -+#define GL_FRONT_RIGHT 0 - - /* this sends all the data each time as opposed to allowing a subset */ --# define glMultiDrawElements(mode, counts, type, indicies, primcount) \ -- for (size_t eCount = 0; eCount < primcount; ++eCount) \ -- { \ -- glDrawElements(mode, *(counts + eCount), \ -- type, (GLvoid *)(indicies[eCount])); \ -- } -+#define glMultiDrawElements(mode, counts, type, indicies, primcount) \ -+ for (size_t eCount = 0; eCount < primcount; ++eCount) \ -+ { \ -+ glDrawElements(mode, *(counts + eCount), type, (GLvoid*)(indicies[eCount])); \ -+ } - #endif - - /*** deal with some GLES 3.0 specific issues ***/ - #ifdef GL_ES_VERSION_3_0 --# define GLEW_ARB_vertex_array_object 1 --# define GLEW_ARB_instanced_arrays 1 -+#define GLEW_ARB_vertex_array_object 1 -+#define GLEW_ARB_instanced_arrays 1 - #endif - - #endif --- -2.27.0 - diff --git a/0001-expose-1d-texture-options.patch b/0001-expose-1d-texture-options.patch deleted file mode 100644 index c0a1c42..0000000 --- a/0001-expose-1d-texture-options.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 18b9e99bcc2550515e2f725f1b0c70904068c945 Mon Sep 17 00:00:00 2001 -From: Ken Martin -Date: Mon, 6 Jul 2020 10:48:40 -0400 -Subject: [PATCH] expose 1d texture options - -They are partially implemented as 2d textures ---- - Rendering/OpenGL2/vtkTextureObject.h | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git a/Rendering/OpenGL2/vtkTextureObject.h b/Rendering/OpenGL2/vtkTextureObject.h -index b6dcdf6ba7..fe018c75f9 100644 ---- a/Rendering/OpenGL2/vtkTextureObject.h -+++ b/Rendering/OpenGL2/vtkTextureObject.h -@@ -226,9 +226,6 @@ public: - bool CreateCubeFromRaw( - unsigned int width, unsigned int height, int numComps, int dataType, void* data[6]); - --// 1D textures are not supported in ES 2.0 or 3.0 --#ifndef GL_ES_VERSION_3_0 -- - /** - * Create a 1D texture using the PBO. - * Eventually we may start supporting creating a texture from subset of data -@@ -245,7 +242,6 @@ public: - * Create 1D texture from client memory - */ - bool Create1DFromRaw(unsigned int width, int numComps, int dataType, void* data); --#endif - - /** - * Create a 2D texture using the PBO. --- -2.27.0 - diff --git a/0002-Guard-GL_LINE_SMOOTH-for-GLES.patch b/0002-Guard-GL_LINE_SMOOTH-for-GLES.patch deleted file mode 100644 index 35980ba..0000000 --- a/0002-Guard-GL_LINE_SMOOTH-for-GLES.patch +++ /dev/null @@ -1,42 +0,0 @@ -From f03ed2c663c30baac698d5b76a8ba4ea63776ce2 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Stefan=20Br=C3=BCns?= -Date: Fri, 17 Jul 2020 05:05:55 +0200 -Subject: [PATCH 2/2] Guard GL_LINE_SMOOTH for GLES - ---- - Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx b/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx -index 7b834fa6e5..cc376934dd 100644 ---- a/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx -+++ b/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx -@@ -332,10 +332,12 @@ void vtkOpenGLContextDevice2D::Begin(vtkViewport* viewport) - this->RenderWindow->GetShaderCache()->ReleaseCurrentShader(); - - // Enable simple line smoothing if multisampling is on. -+#ifdef GL_LINE_SMOOTH - if (this->Renderer->GetRenderWindow()->GetMultiSamples()) - { - glEnable(GL_LINE_SMOOTH); - } -+#endif - - this->InRender = true; - vtkOpenGLCheckErrorMacro("failed after Begin"); -@@ -359,10 +361,12 @@ void vtkOpenGLContextDevice2D::End() - this->Storage->RestoreGLState(ostate); - - // Disable simple line smoothing if multisampling is on. -+#ifdef GL_LINE_SMOOTH - if (this->Renderer->GetRenderWindow()->GetMultiSamples()) - { - glDisable(GL_LINE_SMOOTH); - } -+#endif - - this->PolyDataImpl->HandleEndFrame(); - --- -2.27.0 - diff --git a/0002-Use-GL_DRAW_BUFFER0-instead-of-GL_DRAW_BUFFER-for-GL.patch b/0002-Use-GL_DRAW_BUFFER0-instead-of-GL_DRAW_BUFFER-for-GL.patch index 37252c1..e339318 100644 --- a/0002-Use-GL_DRAW_BUFFER0-instead-of-GL_DRAW_BUFFER-for-GL.patch +++ b/0002-Use-GL_DRAW_BUFFER0-instead-of-GL_DRAW_BUFFER-for-GL.patch @@ -1,10 +1,10 @@ -From 651b3bae914b9f3c69031c97a366e5cf53ead389 Mon Sep 17 00:00:00 2001 +From 068773541005f8d8f027b373a01c821788439c8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Br=C3=BCns?= -Date: Thu, 16 Jul 2020 19:54:38 +0200 -Subject: [PATCH 2/2] Use GL_DRAW_BUFFER0 instead of GL_DRAW_BUFFER for GLES +Date: Sun, 21 Nov 2021 22:51:36 +0100 +Subject: [PATCH] Use GL_DRAW_BUFFER0 instead of GL_DRAW_BUFFER for GLES compatibility -ARB_draw_buffers is part of GL 2.0, so GL_DRAW_BUFFERS0 so it is always +ARB_draw_buffers is part of GL 2.0, so GL_DRAW_BUFFERS0 is always available, and contrary to GL_DRAW_BUFFER it is also valid for GLES (part of GLES 3 or as EXT_draw_buffers). @@ -14,15 +14,15 @@ glDrawBuffer. At least with MESA, GL_DRAW_BUFFER and GL_DRAW_BUFFER0 always return the same value. GL_DRAW_BUFFERn is also used in several places already. --- - .../ContextOpenGL2/vtkOpenGLContextBufferId.cxx | 2 +- - .../vtkOpenGLContextDevice2DPrivate.h | 2 +- - .../External/vtkExternalOpenGLRenderWindow.cxx | 2 +- - Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx | 12 ++++++------ - Rendering/OpenGL2/vtkOpenGLState.cxx | 16 ++++++++-------- - 5 files changed, 17 insertions(+), 17 deletions(-) + .../ContextOpenGL2/vtkOpenGLContextBufferId.cxx | 2 +- + .../ContextOpenGL2/vtkOpenGLContextDevice2DPrivate.h | 2 +- + Rendering/External/vtkExternalOpenGLRenderWindow.cxx | 2 +- + Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx | 8 ++++---- + Rendering/OpenGL2/vtkOpenGLState.cxx | 12 ++++++------ + 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Rendering/ContextOpenGL2/vtkOpenGLContextBufferId.cxx b/Rendering/ContextOpenGL2/vtkOpenGLContextBufferId.cxx -index 06abb5e7e6..0d39638869 100644 +index c0e0f8909f..dd6a93bde3 100644 --- a/Rendering/ContextOpenGL2/vtkOpenGLContextBufferId.cxx +++ b/Rendering/ContextOpenGL2/vtkOpenGLContextBufferId.cxx @@ -139,7 +139,7 @@ vtkIdType vtkOpenGLContextBufferId::GetPickedItem(int x, int y) @@ -35,7 +35,7 @@ index 06abb5e7e6..0d39638869 100644 vtkOpenGLState::ScopedglEnableDisable dsaver(ostate, GL_DEPTH_TEST); vtkOpenGLState::ScopedglEnableDisable ssaver(ostate, GL_STENCIL_TEST); diff --git a/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2DPrivate.h b/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2DPrivate.h -index 5632547459..17e2f182ef 100644 +index 29e5f47671..7acb87e25f 100644 --- a/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2DPrivate.h +++ b/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2DPrivate.h @@ -309,7 +309,7 @@ public: @@ -48,10 +48,10 @@ index 5632547459..17e2f182ef 100644 } diff --git a/Rendering/External/vtkExternalOpenGLRenderWindow.cxx b/Rendering/External/vtkExternalOpenGLRenderWindow.cxx -index c95b50ac64..291c4e1e61 100644 +index 445bfce802..5e1f2f4b24 100644 --- a/Rendering/External/vtkExternalOpenGLRenderWindow.cxx +++ b/Rendering/External/vtkExternalOpenGLRenderWindow.cxx -@@ -60,7 +60,7 @@ void vtkExternalOpenGLRenderWindow::Start(void) +@@ -58,7 +58,7 @@ void vtkExternalOpenGLRenderWindow::Start() // For stereo, render the correct eye based on the OpenGL buffer mode GLint bufferType; @@ -61,21 +61,10 @@ index c95b50ac64..291c4e1e61 100644 vtkRenderer* renderer; for (this->GetRenderers()->InitTraversal(sit); diff --git a/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx b/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx -index 4bda9330b6..14cd43711f 100644 +index 25b521bd0d..426aa69f08 100644 --- a/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx +++ b/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx -@@ -533,8 +533,8 @@ bool vtkOpenGLRenderWindow::InitializeFromCurrentContext() - { - this->DefaultFrameBufferId = frameBufferBinding; - GLint attachment = GL_COLOR_ATTACHMENT0; --#ifdef GL_DRAW_BUFFER -- glGetIntegerv(GL_DRAW_BUFFER, &attachment); -+#ifdef GL_DRAW_BUFFER0 -+ glGetIntegerv(GL_DRAW_BUFFER0, &attachment); - #endif - this->BackLeftBuffer = static_cast(attachment); - this->FrontLeftBuffer = static_cast(attachment); -@@ -660,8 +660,8 @@ bool vtkOpenGLRenderWindow::GetUsingSRGBColorSpace() +@@ -583,8 +583,8 @@ bool vtkOpenGLRenderWindow::GetUsingSRGBColorSpace() this->MakeCurrent(); GLint attachment = GL_BACK_LEFT; @@ -86,7 +75,7 @@ index 4bda9330b6..14cd43711f 100644 #endif // GL seems odd with its handling of left/right. // if it says we are using GL_FRONT or GL_BACK -@@ -716,8 +716,8 @@ int vtkOpenGLRenderWindow::GetColorBufferSizes(int* rgba) +@@ -639,8 +639,8 @@ int vtkOpenGLRenderWindow::GetColorBufferSizes(int* rgba) { this->MakeCurrent(); GLint attachment = GL_BACK_LEFT; @@ -98,10 +87,10 @@ index 4bda9330b6..14cd43711f 100644 #ifdef GL_ES_VERSION_3_0 // GLES only has the GL_BACK color diff --git a/Rendering/OpenGL2/vtkOpenGLState.cxx b/Rendering/OpenGL2/vtkOpenGLState.cxx -index 3822fe7bd0..dbec8329dd 100644 +index 24f23a5c44..aca4e4f247 100644 --- a/Rendering/OpenGL2/vtkOpenGLState.cxx +++ b/Rendering/OpenGL2/vtkOpenGLState.cxx -@@ -205,8 +205,8 @@ void vtkOpenGLState::CheckState() +@@ -217,8 +217,8 @@ void vtkOpenGLState::CheckState() error = true; } unsigned int sval; @@ -109,42 +98,31 @@ index 3822fe7bd0..dbec8329dd 100644 - ::glGetIntegerv(GL_DRAW_BUFFER, iparams); +#ifdef GL_DRAW_BUFFER0 + ::glGetIntegerv(GL_DRAW_BUFFER0, iparams); - sval = this->CurrentState.DrawBinding.GetDrawBuffer(0); + sval = cs.DrawBinding.GetDrawBuffer(0); if (sval == GL_BACK_LEFT) { -@@ -518,8 +518,8 @@ void vtkOpenGLState::vtkglBindFramebuffer(unsigned int target, unsigned int val) - this->CurrentState.DrawBinding.Binding = val; - this->CurrentState.DrawBinding.Framebuffer = nullptr; +@@ -504,8 +504,8 @@ void vtkOpenGLState::vtkglBindFramebuffer(unsigned int target, unsigned int val) + { + cs.DrawBinding.Binding = val; ::glBindFramebuffer(GL_DRAW_FRAMEBUFFER, val); -#ifdef GL_DRAW_BUFFER -- ::glGetIntegerv(GL_DRAW_BUFFER, (int*)&this->CurrentState.DrawBinding.DrawBuffers[0]); +- ::glGetIntegerv(GL_DRAW_BUFFER, (int*)&cs.DrawBinding.DrawBuffers[0]); +#ifdef GL_DRAW_BUFFER0 -+ ::glGetIntegerv(GL_DRAW_BUFFER0, (int*)&this->CurrentState.DrawBinding.DrawBuffers[0]); ++ ::glGetIntegerv(GL_DRAW_BUFFER0, (int*)&cs.DrawBinding.DrawBuffers[0]); #endif } } -@@ -1222,8 +1222,8 @@ void vtkOpenGLState::Initialize(vtkOpenGLRenderWindow*) - unsigned int vals[1]; - vals[0] = this->CurrentState.DrawBinding.GetDrawBuffer(0); - ::glDrawBuffers(1, vals); --#ifdef GL_DRAW_BUFFER -- ::glGetIntegerv(GL_DRAW_BUFFER, (int*)&this->CurrentState.DrawBinding.DrawBuffers[0]); -+#ifdef GL_DRAW_BUFFER0 -+ ::glGetIntegerv(GL_DRAW_BUFFER0, (int*)&this->CurrentState.DrawBinding.DrawBuffers[0]); - #endif - ::glReadBuffer(this->CurrentState.ReadBinding.GetReadBuffer()); - ::glGetIntegerv(GL_READ_BUFFER, (int*)&this->CurrentState.ReadBinding.ReadBuffer); -@@ -1232,8 +1232,8 @@ void vtkOpenGLState::Initialize(vtkOpenGLRenderWindow*) - void vtkOpenGLState::ResetFramebufferBindings() +@@ -1626,8 +1626,8 @@ void vtkOpenGLState::ResetFramebufferBindings() { - ::glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, (int*)&this->CurrentState.DrawBinding.Binding); + auto& cs = this->Stack.top(); + ::glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, (int*)&cs.DrawBinding.Binding); -#ifdef GL_DRAW_BUFFER -- ::glGetIntegerv(GL_DRAW_BUFFER, (int*)&this->CurrentState.DrawBinding.DrawBuffers[0]); +- ::glGetIntegerv(GL_DRAW_BUFFER, (int*)&cs.DrawBinding.DrawBuffers[0]); +#ifdef GL_DRAW_BUFFER0 -+ ::glGetIntegerv(GL_DRAW_BUFFER0, (int*)&this->CurrentState.DrawBinding.DrawBuffers[0]); ++ ::glGetIntegerv(GL_DRAW_BUFFER0, (int*)&cs.DrawBinding.DrawBuffers[0]); #endif - ::glGetIntegerv(GL_READ_FRAMEBUFFER_BINDING, (int*)&this->CurrentState.ReadBinding.Binding); + ::glGetIntegerv(GL_READ_FRAMEBUFFER_BINDING, (int*)&cs.ReadBinding.Binding); -- -2.27.0 +2.33.1 diff --git a/VTK-9.0.1.tar.gz b/VTK-9.0.1.tar.gz deleted file mode 100644 index e52462f..0000000 --- a/VTK-9.0.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1b39a5e191c282861e7af4101eaa8585969a2de05f5646c9199a161213a622c7 -size 34687900 diff --git a/VTK-9.1.0.tar.gz b/VTK-9.1.0.tar.gz new file mode 100644 index 0000000..dc22afe --- /dev/null +++ b/VTK-9.1.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8fed42f4f8f1eb8083107b68eaa9ad71da07110161a3116ad807f43e5ca5ce96 +size 47871165 diff --git a/_multibuild b/_multibuild index f9d8d70..a51314d 100644 --- a/_multibuild +++ b/_multibuild @@ -1,5 +1,5 @@ - openmpi openmpi2 openmpi3 + openmpi4 diff --git a/vtk-freetype-2.10.3-replace-FT_CALLBACK_DEF.patch b/vtk-freetype-2.10.3-replace-FT_CALLBACK_DEF.patch deleted file mode 100644 index ef9341f..0000000 --- a/vtk-freetype-2.10.3-replace-FT_CALLBACK_DEF.patch +++ /dev/null @@ -1,37 +0,0 @@ -Index: VTK-9.0.1/Rendering/FreeType/vtkFreeTypeTools.cxx -=================================================================== ---- VTK-9.0.1.orig/Rendering/FreeType/vtkFreeTypeTools.cxx -+++ VTK-9.0.1/Rendering/FreeType/vtkFreeTypeTools.cxx -@@ -378,7 +378,7 @@ FTC_CMapCache* vtkFreeTypeTools::GetCMap - } - - //---------------------------------------------------------------------------- --FT_CALLBACK_DEF(FT_Error) -+extern "C" FT_Error - vtkFreeTypeToolsFaceRequester( - FTC_FaceID face_id, FT_Library lib, FT_Pointer request_data, FT_Face* face) - { -Index: VTK-9.0.1/Rendering/FreeTypeFontConfig/vtkFontConfigFreeTypeTools.cxx -=================================================================== ---- VTK-9.0.1.orig/Rendering/FreeTypeFontConfig/vtkFontConfigFreeTypeTools.cxx -+++ VTK-9.0.1/Rendering/FreeTypeFontConfig/vtkFontConfigFreeTypeTools.cxx -@@ -26,10 +26,8 @@ - - vtkStandardNewMacro(vtkFontConfigFreeTypeTools); - --namespace --{ - // The FreeType face requester callback: --FT_CALLBACK_DEF(FT_Error) -+extern "C" FT_Error - vtkFontConfigFreeTypeToolsFaceRequester( - FTC_FaceID face_id, FT_Library lib, FT_Pointer request_data, FT_Face* face) - { -@@ -71,7 +69,6 @@ vtkFontConfigFreeTypeToolsFaceRequester( - - return static_cast(0); - } --} // end anon namespace - - void vtkFontConfigFreeTypeTools::PrintSelf(ostream& os, vtkIndent indent) - { diff --git a/vtk-opensuse-python-metadata.patch b/vtk-opensuse-python-metadata.patch deleted file mode 100644 index b536c2f..0000000 --- a/vtk-opensuse-python-metadata.patch +++ /dev/null @@ -1,45 +0,0 @@ -Index: VTK-9.0.1/CMakeLists.txt -=================================================================== ---- VTK-9.0.1.orig/CMakeLists.txt -+++ VTK-9.0.1/CMakeLists.txt -@@ -48,6 +48,8 @@ include(vtkCMakeBackports) - - if (VTK_WHEEL_BUILD) - include(vtkWheelPreparation) -+elseif(VTK_OPENSUSE_PYTHON_BUILD) -+ include(vtkPythonMetadataPrepare) - endif () - - include(vtkCompilerChecks) -@@ -474,7 +476,7 @@ install( - - # TODO: HeaderTest exclusions for memcheck. - --if (VTK_WHEEL_BUILD) -+if (VTK_WHEEL_BUILD OR VTK_OPENSUSE_PYTHON_BUILD) - include(vtkWheelFinalization) - endif () - -Index: VTK-9.0.1/CMake/vtkPythonMetadataPrepare.cmake -=================================================================== ---- /dev/null -+++ VTK-9.0.1/CMake/vtkPythonMetadataPrepare.cmake -@@ -0,0 +1,18 @@ -+# copied from vtkWheelPrepare, but without forcing wheel specific options -+ -+configure_file( -+ "${CMAKE_CURRENT_LIST_DIR}/setup.py.in" -+ "${CMAKE_BINARY_DIR}/setup.py" -+ @ONLY) -+configure_file( -+ "${CMAKE_CURRENT_LIST_DIR}/MANIFEST.in.in" -+ "${CMAKE_BINARY_DIR}/MANIFEST.in" -+ @ONLY) -+configure_file( -+ "${CMAKE_SOURCE_DIR}/Copyright.txt" -+ "${CMAKE_BINARY_DIR}/LICENSE" -+ COPYONLY) -+configure_file( -+ "${CMAKE_SOURCE_DIR}/README.md" -+ "${CMAKE_BINARY_DIR}/README.md" -+ COPYONLY) diff --git a/vtk-std_numeric_limits.patch b/vtk-std_numeric_limits.patch deleted file mode 100644 index 5cc0721..0000000 --- a/vtk-std_numeric_limits.patch +++ /dev/null @@ -1,70 +0,0 @@ -From c7d6a8d81367a4ed92163c059aa3181386eabc24 Mon Sep 17 00:00:00 2001 -From: Ben Boeckel -Date: Mon, 3 May 2021 11:55:27 -0400 -Subject: [PATCH] vtkDataArrayPrivate: include for std::numeric_limits - -See: #18194 ---- - Common/Core/vtkDataArrayPrivate.txx | 1 + - 1 file changed, 1 insertion(+) - -Index: VTK-9.0.1/Common/Core/vtkDataArrayPrivate.txx -=================================================================== ---- VTK-9.0.1.orig/Common/Core/vtkDataArrayPrivate.txx -+++ VTK-9.0.1/Common/Core/vtkDataArrayPrivate.txx -@@ -24,6 +24,7 @@ - #include - #include - #include // for assert() -+#include - #include - - namespace vtkDataArrayPrivate -Index: VTK-9.0.1/Common/Core/vtkGenericDataArrayLookupHelper.h -=================================================================== ---- VTK-9.0.1.orig/Common/Core/vtkGenericDataArrayLookupHelper.h -+++ VTK-9.0.1/Common/Core/vtkGenericDataArrayLookupHelper.h -@@ -25,6 +25,7 @@ - #include "vtkIdList.h" - #include - #include -+#include - #include - #include - -Index: VTK-9.0.1/Common/DataModel/vtkPiecewiseFunction.cxx -=================================================================== ---- VTK-9.0.1.orig/Common/DataModel/vtkPiecewiseFunction.cxx -+++ VTK-9.0.1/Common/DataModel/vtkPiecewiseFunction.cxx -@@ -22,6 +22,7 @@ - #include - #include - #include -+#include - #include - #include - -Index: VTK-9.0.1/Filters/HyperTree/vtkHyperTreeGridThreshold.cxx -=================================================================== ---- VTK-9.0.1.orig/Filters/HyperTree/vtkHyperTreeGridThreshold.cxx -+++ VTK-9.0.1/Filters/HyperTree/vtkHyperTreeGridThreshold.cxx -@@ -28,6 +28,7 @@ - #include "vtkHyperTreeGridNonOrientedCursor.h" - - #include -+#include - - vtkStandardNewMacro(vtkHyperTreeGridThreshold); - -Index: VTK-9.0.1/Rendering/Core/vtkColorTransferFunction.cxx -=================================================================== ---- VTK-9.0.1.orig/Rendering/Core/vtkColorTransferFunction.cxx -+++ VTK-9.0.1/Rendering/Core/vtkColorTransferFunction.cxx -@@ -21,6 +21,7 @@ - #include - #include - #include -+#include - #include - #include - diff --git a/vtk.changes b/vtk.changes index cd22ad5..7fc4f6f 100644 --- a/vtk.changes +++ b/vtk.changes @@ -1,3 +1,33 @@ +------------------------------------------------------------------- +Thu Nov 18 04:03:36 UTC 2021 - Stefan BrĂ¼ns + +- Update to version 9.1.0, see: + https://gitlab.kitware.com/vtk/vtk/-/blob/master/Documentation/release/9.1.md +- Drop upstream patches: + + 0001-clean-up-some-old-opengl-es-stuff.patch + + 0001-expose-1d-texture-options.patch + + 0001-Remove-duplicate-check-for-QOpenGLFunctions_3_2_Core.patch + + 0001-Allow-compilation-on-GLES-platforms.patch + + 0001-Replace-last-glDrawBuffer-call-with-glDrawBuffers-1.patch + + 0001-Guard-glPointSize-with-GL_ES_VERSION_3_0.patch + + 0002-Guard-GL_LINE_SMOOTH-for-GLES.patch + + 0001-Fix-PyVTKAddFile_-function-signature-mismatch.patch + + 0001-Replace-invalid-GL_LINE-with-GL_LINES-for-glDrawArra.patch + + vtk-freetype-2.10.3-replace-FT_CALLBACK_DEF.patch + + vtk-std_numeric_limits.patch +- Rebase: + + 0001-Add-missing-guard-required-for-GLES-to-disable-stere.patch + + 0001-Correct-GL_BACK-GL_BACK_LEFT-mapping-on-GLES.patch + + 0001-GL_POINT_SPRITE-is-only-available-for-Compatibility-.patch +- Replace openSUSE python hack with upstreamable solution: + + vtk-opensuse-python-metadata.patch -> + 0001-Always-generate-Python-Metadata-when-WRAP_PYTHON-is-.patch, + 0001-Consider-VTK_PYTHON_SITE_PACKAGES_SUFFIX-for-Python-.patch +- Add: + + 0001-Add-missing-libm-link-library-to-kissfft-module.patch +- Remove Leap 15.1 support from specfile +- Remove openmpi1 flavor, add openmpi4 + ------------------------------------------------------------------- Sat Jun 19 21:04:19 UTC 2021 - Ben Greiner diff --git a/vtk.spec b/vtk.spec index dbed3c2..08c09cf 100644 --- a/vtk.spec +++ b/vtk.spec @@ -21,13 +21,6 @@ %bcond_with examples %bcond_with documentation -%if 0%{?sle_version} >= 150200 -%define DisOMPI1 ExclusiveArch: do_not_build -%endif -%if !0%{?is_opensuse} && 0%{?sle_version:1} && 0%{?sle_version} < 150200 -%define DisOMPI3 ExclusiveArch: do_not_build -%endif - %ifarch %arm aarch64 %bcond_without gles %else @@ -45,15 +38,8 @@ %bcond_without gl2ps %endif -# pegtl in Leap 15.1 is too old (< 2.0.0) -# JAVA bindings fail to build -%if 0%{?sle_version} == 150100 -%bcond_with java -%bcond_with pegtl -%else %bcond_without java %bcond_without pegtl -%endif # Need patched version with HPDF_SHADING %bcond_with haru @@ -67,18 +53,6 @@ %define my_datadir %_datadir %endif -%if "%{flavor}" == "openmpi" -%{?DisOMPI1} -%if 0%{?suse_version} >= 1550 -%define my_suffix -openmpi1 -%define mpi_flavor openmpi1 -%else -%define my_suffix -openmpi -%define mpi_flavor openmpi -%endif -%define mpiprefix %{_libdir}/mpi/gcc/%{mpi_flavor} -%endif - %if "%{flavor}" == "openmpi2" %define my_suffix -openmpi2 %define mpi_flavor openmpi2 @@ -92,6 +66,13 @@ %define mpiprefix %{_libdir}/mpi/gcc/%{mpi_flavor} %endif +%if "%{flavor}" == "openmpi4" +%{?DisOMPI4} +%define my_suffix -openmpi4 +%define mpi_flavor openmpi4 +%define mpiprefix %{_libdir}/mpi/gcc/%{mpi_flavor} +%endif + %{?mpi_flavor:%{bcond_without mpi}}%{!?mpi_flavor:%{bcond_with mpi}} %if %{with mpi} @@ -106,9 +87,9 @@ %define shlib %{vtklib} Name: vtk%{?my_suffix} -Version: 9.0.1 +Version: 9.1.0 Release: 0 -%define series 9.0 +%define series 9.1 Summary: The Visualization Toolkit - A high level 3D visualization library # This is a variant BSD license, a cross between BSD and ZLIB. # For all intents, it has the same rights and restrictions as BSD. @@ -122,16 +103,6 @@ Source: https://www.vtk.org/files/release/%{series}/VTK-%{version}.tar.g Source99: vtk-rpmlintrc # PATCH-FIX-OPENSUSE bundled_libharu_add_missing_libm.patch stefan.bruens@rwth-aachen.de -- Add missing libm for linking (gh#libharu/libharu#213) Patch1: bundled_libharu_add_missing_libm.patch -# PATCH-FIX-UPSTREAM -Patch2: 0001-clean-up-some-old-opengl-es-stuff.patch -# PATCH-FIX-UPSTREAM -Patch3: 0001-expose-1d-texture-options.patch -# PATCH-FIX-UPSTREAM -- prep for GLES patch, VTK issue #17113 stefan.bruens@rwth-aachen.de -Patch4: 0001-Remove-duplicate-check-for-QOpenGLFunctions_3_2_Core.patch -# PATCH-FIX-UPSTREAM 0001-Allow-compilation-on-GLES-platforms.patch VTK issue #17113 stefan.bruens@rwth-aachen.de -- Fix building with Qt GLES builds -Patch5: 0001-Allow-compilation-on-GLES-platforms.patch -# PATCH-FIX-UPSTREAM -- Fix building with Qt GLES builds -Patch6: 0001-Replace-last-glDrawBuffer-call-with-glDrawBuffers-1.patch # PATCH-FIX-OPENSUSE -- Fix building with Qt GLES builds Patch7: 0001-Add-missing-guard-required-for-GLES-to-disable-stere.patch # PATCH-FIX-UPSTREAM -- Fix building with Qt GLES builds @@ -140,23 +111,16 @@ Patch8: 0001-Correct-GL_BACK-GL_BACK_LEFT-mapping-on-GLES.patch Patch9: 0002-Use-GL_DRAW_BUFFER0-instead-of-GL_DRAW_BUFFER-for-GL.patch # PATCH-FIX-UPSTREAM Patch10: 0001-GL_POINT_SPRITE-is-only-available-for-Compatibility-.patch -# PATCH-FIX-OPENSUSE -- GLES - Does no longer apply to upstream code -Patch11: 0002-Guard-GL_LINE_SMOOTH-for-GLES.patch +# PATCH-FIX-UPSTREAM -- Always create python package metadata (egg-info) +Patch17: 0001-Always-generate-Python-Metadata-when-WRAP_PYTHON-is-.patch +# PATCH-FIX-UPSTREAM -- Copy generated metadata to the right directory +Patch18: 0001-Consider-VTK_PYTHON_SITE_PACKAGES_SUFFIX-for-Python-.patch # PATCH-FIX-UPSTREAM -Patch12: 0001-Guard-glPointSize-with-GL_ES_VERSION_3_0.patch -# PATCH-FIX-UPSTREAM -- https://gitlab.kitware.com/vtk/vtk/-/merge_requests/7098 -Patch13: 0001-Fix-PyVTKAddFile_-function-signature-mismatch.patch -# PATCH-FIX-UPSTREAM -- https://gitlab.kitware.com/vtk/vtk/-/merge_requests/7115 -Patch14: 0001-Replace-invalid-GL_LINE-with-GL_LINES-for-glDrawArra.patch -# PATCH-FIX-UPSTREAM -- https://gitlab.kitware.com/vtk/vtk/-/issues/18033 -Patch15: vtk-freetype-2.10.3-replace-FT_CALLBACK_DEF.patch -# PATCH-FIX-UPSTREAM -- https://gitlab.kitware.com/vtk/vtk/-/issues/18194 -Patch16: vtk-std_numeric_limits.patch -# PATCH-FIX-OPENSUSE -- create python package metadata (egg-info) despite not building a wheel -Patch17: vtk-opensuse-python-metadata.patch +Patch19: 0001-Add-missing-libm-link-library-to-kissfft-module.patch BuildRequires: R-base-devel +BuildRequires: cgns-devel BuildRequires: chrpath -BuildRequires: cmake >= 3.4 +BuildRequires: cmake >= 3.12 BuildRequires: double-conversion-devel BuildRequires: fdupes BuildRequires: gcc-c++ @@ -177,9 +141,9 @@ BuildRequires: pkgconfig(Qt5OpenGL) BuildRequires: pkgconfig(Qt5OpenGLExtensions) BuildRequires: pkgconfig(Qt5Sql) BuildRequires: pkgconfig(Qt5Widgets) -BuildRequires: pkgconfig(eigen3) >= 2.91.0 +BuildRequires: pkgconfig(eigen3) >= 3.3.9 BuildRequires: pkgconfig(expat) -BuildRequires: pkgconfig(freetype2) +BuildRequires: pkgconfig(freetype2) >= 2.11.0 BuildRequires: pkgconfig(gl) BuildRequires: pkgconfig(glew) BuildRequires: pkgconfig(jsoncpp) @@ -188,7 +152,7 @@ BuildRequires: pkgconfig(libavdevice) BuildRequires: pkgconfig(libavformat) BuildRequires: pkgconfig(libavutil) BuildRequires: pkgconfig(libiodbc) -BuildRequires: pkgconfig(liblz4) >= 1.7.3 +BuildRequires: pkgconfig(liblz4) >= 1.8.0 BuildRequires: pkgconfig(libpng) BuildRequires: pkgconfig(libswscale) BuildRequires: pkgconfig(libxml-2.0) @@ -398,24 +362,15 @@ languages. %prep %setup -n VTK-%{version} %patch1 -p1 -%patch2 -p1 -%patch3 -p1 %if %{with gles} -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 %patch7 -p1 %patch8 -p1 %patch9 -p1 %patch10 -p1 -%patch11 -p1 -%patch12 -p1 %endif -%patch13 -p1 -%patch14 -p1 -%patch15 -p1 -%patch16 -p1 %patch17 -p1 +%patch18 -p1 +%patch19 -p1 # Replace relative path ../../../../VTKData with %%{_datadir}/vtkdata # otherwise it will break on symlinks. @@ -436,13 +391,12 @@ export CXXFLAGS="%{optflags}" # The %%cmake macro sets CMAKE_SKIP_RPATH=ON for Leap 15.x which causes build failures # https://discourse.vtk.org/t/building-fails-generating-wrap-hierarchy-for-vtk-commoncore-unable-to-open-libvtkwrappingtools-so-1 -# -DOpenGL_GL_PREFERENCE:STRING='LEGACY' - see https://gitlab.kitware.com/vtk/vtk/-/merge_requests/6946#note_767329 +# Disable ioss module for MPI flavors, fails to build with 9.1.0, see MR 8565. %cmake \ -DCMAKE_INSTALL_PREFIX:PATH=%{my_prefix} \ -DCMAKE_INSTALL_LIBDIR:PATH=%{_lib} \ -DCMAKE_INSTALL_DOCDIR:PATH=%{_docdir}/%{name}-%{series} \ - -DVTK_INSTALL_LIBRARY_DIR:PATH=%{_lib} \ - -DVTK_INSTALL_PACKAGE_DIR:PATH=%{_lib}/cmake/%{pkgname} \ + -DCMAKE_INSTALL_QMLDIR:PATH=%{my_libdir}/qt5/qml \ -DVTK_PYTHON_OPTIONAL_LINK:BOOL=OFF \ -DVTK_BUILD_TESTING:BOOL=ON \ -DVTK_BUILD_EXAMPLES:BOOL=%{?with_examples:ON}%{!?with_examples:OFF} \ @@ -469,20 +423,21 @@ export CXXFLAGS="%{optflags}" -DVTK_GROUP_ENABLE_StandAlone=WANT \ -DVTK_GROUP_ENABLE_Views=WANT \ -DVTK_PYTHON_VERSION=3 \ - -DVTK_OPENSUSE_PYTHON_BUILD:BOOL=ON \ - -DVTK_USE_OGGTHEORA_ENCODER:BOOL=ON \ - -DJava_JAVAH_EXECUTABLE=%{_bindir}/true \ -DVTK_WRAP_JAVA:BOOL=%{?with_java:ON}%{!?with_java:OFF} \ -DVTK_WRAP_PYTHON:BOOL=ON \ - -DVTK_USE_EXTERNAL:BOOL=ON \ -DOpenGL_GL_PREFERENCE:STRING='GLVND' \ -DVTK_OPENGL_USE_GLES:BOOL=%{?with_gles:ON}%{!?with_gles:OFF} \ + -DVTK_USE_EXTERNAL:BOOL=ON \ + -DVTK_MODULE_USE_EXTERNAL_VTK_exprtk:BOOL=OFF \ + -DVTK_MODULE_USE_EXTERNAL_VTK_fmt:BOOL=OFF \ -DVTK_MODULE_USE_EXTERNAL_VTK_gl2ps=%{?with_gl2ps:ON}%{!?with_gl2ps:OFF} \ + -DVTK_MODULE_USE_EXTERNAL_VTK_ioss:BOOL=OFF \ -DVTK_MODULE_USE_EXTERNAL_VTK_libharu=%{?with_haru:ON}%{!?with_haru:OFF} \ -DVTK_MODULE_USE_EXTERNAL_VTK_pugixml=%{?with_pugixml:ON}%{!?with_pugixml:OFF} \ - -DVTK_MODULE_ENABLE_VTK_pegtl=%{?with_pegtl:YES}%{!?with_pegtl:NO} - - #-DVTK_EXTERNAL_LIBHARU_IS_SHARED:BOOL=OFF \ + -DVTK_MODULE_ENABLE_VTK_ioss:BOOL=%{!?with_mpi:WANT}%{?with_mpi:NO} \ + -DVTK_MODULE_ENABLE_VTK_pegtl=%{?with_pegtl:YES}%{!?with_pegtl:NO} \ + -DVTK_MODULE_ENABLE_VTK_zfp:BOOL=NO \ + %{nil} %cmake_build @@ -551,16 +506,13 @@ mkdir -p %{buildroot}%{_licensedir} mv %{buildroot}%{my_datadir}/licenses/VTK %{buildroot}%{_licensedir}/%{name} %if ! %{with mpi} -# install python distribution metadata despite not building a wheel -buildsitearch=%{python3_sitearch} -buildsitearch=${buildsitearch/\/usr/build} -cp build/{setup.py,README.md,MANIFEST.in,requirements.txt,vtk_features.py} ${buildsitearch}/ -pushd ${buildsitearch} +# Generate and install python distribution metadata +pushd build/%{_lib}/python%{python3_version}/site-packages/ python3 setup.py install_egg_info -d %{buildroot}%{python3_sitearch} popd %endif -%fdupes -s %{buildroot} +%fdupes %{buildroot} %check # Make sure the python library is at least importable @@ -572,7 +524,7 @@ export PYTHONPATH=$_PYTHON_MPI_PREFIX:$PYTHONPATH export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{buildroot}%{my_libdir} export PYTHONPATH=$PYTHONPATH:%{buildroot}%{python3_sitearch} python3 -c "import vtk" -find %{buildroot} . -name vtk.cpython-3*.pyc -delete # drop unreproducible time-based .pyc file +find %{buildroot} . -name vtk.cpython-3*.pyc -print -delete # drop unreproducible time-based .pyc file %post -n %{shlib} -p /sbin/ldconfig %postun -n %{shlib} -p /sbin/ldconfig @@ -641,6 +593,12 @@ find %{buildroot} . -name vtk.cpython-3*.pyc -delete # drop unreproducible time- %files qt %license Copyright.txt %{my_libdir}/libvtk*Qt*.so.* +%if %{with mpi} +%dir %{my_libdir}/qt5 +%{my_libdir}/qt5/qml +%else +%{_libqt5_archdatadir}/qml +%endif %if %{with examples} %if "%{flavor}" == ""