Accepting request 821682 from home:StefanBruens:branches:science
- Update to version 9.0.1: * Drop obsolete patches: + bundled_exodusii_add_missing_libpthread.patch + vtk-parallelgeometry-dependency.patch + vtk-qt-5.15-include-QPainterPath.patch - Explicitly enable module RenderingContextOpenGL2 required for PCL - Conditionally add pugixml-devel Requires in devel package - Make devel package installable even when built without Java - Remove CAPITALIZATION from comments - Drop obsolete TK build dependency - Drop unused wget build dependency - Wrap devel-doc generation in bcond (keep defaulted to off), and drop the essentially empty package when disabled. - Fix build on ARM/Qt GLES (boo#1172723): * set VTK_OPENGL_USE_GLES * Add 0001-clean-up-some-old-opengl-es-stuff.patch * Add 0001-Remove-duplicate-check-for-QOpenGLFunctions_3_2_Core.patch * Rebase 0001-Allow-compilation-on-GLES-platforms.patch * Add 0001-Replace-last-glDrawBuffer-call-with-glDrawBuffers-1.patch * Add 0001-Use-2D-textures-for-1D-texture-emulation-on-GLES.patch * Add 0001-Add-missing-guard-required-for-GLES-to-disable-stere.patch * Add 0001-Correct-GL_BACK-GL_BACK_LEFT-mapping-on-GLES.patch * Add 0002-Use-GL_DRAW_BUFFER0-instead-of-GL_DRAW_BUFFER-for-GL.patch * Add 0001-GL_POINT_SPRITE-is-only-available-for-Compatibility-.patch * Add 0002-Guard-GL_LINE_SMOOTH-for-GLES.patch * Add 0001-Guard-glPointSize-with-GL_ES_VERSION_3_0.patch - Add 0001-Fix-PyVTKAddFile_-function-signature-mismatch.patch - Add 0001-Replace-invalid-GL_LINE-with-GL_LINES-for-glDrawArra.patch OBS-URL: https://build.opensuse.org/request/show/821682 OBS-URL: https://build.opensuse.org/package/show/science/vtk?expand=0&rev=164
This commit is contained in:
parent
8e84b414ab
commit
6775ff2422
@ -0,0 +1,37 @@
|
||||
From a9c31af9e6edd45ae01fb2712ad7a3c0d3e3cc37 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
|
||||
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.
|
||||
---
|
||||
GUISupport/Qt/QVTKOpenGLWindow.cxx | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/GUISupport/Qt/QVTKOpenGLWindow.cxx b/GUISupport/Qt/QVTKOpenGLWindow.cxx
|
||||
index 335feb581c..b692b5490a 100644
|
||||
--- a/GUISupport/Qt/QVTKOpenGLWindow.cxx
|
||||
+++ b/GUISupport/Qt/QVTKOpenGLWindow.cxx
|
||||
@@ -231,6 +231,7 @@ void QVTKOpenGLWindow::paintGL()
|
||||
|
||||
const QSize deviceSize = this->size() * this->devicePixelRatioF();
|
||||
const auto fmt = this->context()->format();
|
||||
+#ifndef GL_ES_VERSION_2_0
|
||||
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));
|
||||
}
|
||||
else
|
||||
+#endif
|
||||
{
|
||||
this->RenderWindowAdapter->blit(
|
||||
this->defaultFramebufferObject(), GL_BACK, QRect(QPoint(0, 0), deviceSize));
|
||||
--
|
||||
2.27.0
|
||||
|
@ -1,55 +1,75 @@
|
||||
From 2d5a68b91f9d638aa408285d1608bc5d70060602 Mon Sep 17 00:00:00 2001
|
||||
From 5c4e4e5832613e758b7c1389a5dbcc1d57db7c6e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
|
||||
Date: Fri, 1 Sep 2017 02:11:37 +0200
|
||||
Date: Tue, 9 Jun 2020 17:11:12 +0200
|
||||
Subject: [PATCH] Allow compilation on GLES platforms
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
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 is a noop.
|
||||
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).
|
||||
|
||||
Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
|
||||
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/QVTKOpenGLNativeWidget.cxx | 12 ++++++++++++
|
||||
1 file changed, 12 insertions(+)
|
||||
GUISupport/Qt/QVTKRenderWindowAdapter.cxx | 21 ++++++++++++++++++++-
|
||||
1 file changed, 20 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/GUISupport/Qt/QVTKOpenGLNativeWidget.cxx b/GUISupport/Qt/QVTKOpenGLNativeWidget.cxx
|
||||
index a1676e8..16e255f 100644
|
||||
--- a/GUISupport/Qt/QVTKOpenGLNativeWidget.cxx
|
||||
+++ b/GUISupport/Qt/QVTKOpenGLNativeWidget.cxx
|
||||
@@ -534,10 +534,15 @@ void QVTKOpenGLNativeWidget::paintGL()
|
||||
|
||||
// blit from this->FBO to QOpenGLWidget's FBO.
|
||||
vtkQVTKOpenGLNativeWidgetDebugMacro("paintGL::blit-to-defaultFBO");
|
||||
+#if QT_VERSION < 0x050700
|
||||
QOpenGLFunctions_3_2_Core* f =
|
||||
QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_3_2_Core>();
|
||||
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<QOpenGLFunctions_3_2_Core>();
|
||||
+#else
|
||||
+ QOpenGLFunctions* f = QOpenGLContext::currentContext()->functions();
|
||||
+ QOpenGLFunctions* f = this->Context->functions();
|
||||
+#endif
|
||||
if (f)
|
||||
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:
|
||||
{
|
||||
+#if QT_VERSION < 0x050700
|
||||
vtkOpenGLState *ostate = this->RenderWindow->GetState();
|
||||
Q_ASSERT(this->Context && this->FBO);
|
||||
|
||||
f->glBindFramebuffer(GL_DRAW_FRAMEBUFFER, this->defaultFramebufferObject());
|
||||
@@ -556,6 +561,13 @@ void QVTKOpenGLNativeWidget::paintGL()
|
||||
f->glBlitFramebuffer(0, 0, this->RenderWindow->GetSize()[0], this->RenderWindow->GetSize()[1],
|
||||
0, 0, this->RenderWindow->GetSize()[0], this->RenderWindow->GetSize()[1], GL_COLOR_BUFFER_BIT,
|
||||
GL_NEAREST);
|
||||
+#else
|
||||
+ f->glDisable(GL_SCISSOR_TEST); // Scissor affects glBindFramebuffer.
|
||||
+ QRect rect(0, 0, this->RenderWindow->GetSize()[0], this->RenderWindow->GetSize()[1]);
|
||||
+ QOpenGLFramebufferObject::blitFramebuffer(0 /* binds to default framebuffer */, rect,
|
||||
+ this->FBO, rect, GL_COLOR_BUFFER_BIT, GL_NEAREST, GL_COLOR_ATTACHMENT0,
|
||||
+ GL_COLOR_ATTACHMENT0, QOpenGLFramebufferObject::DontRestoreFramebufferBinding);
|
||||
+#endif
|
||||
|
||||
// now clear alpha otherwise we end up blending the rendering with
|
||||
// background windows in certain cases. It happens on OsX
|
||||
- QOpenGLFunctions_3_2_Core* f = this->Context->versionFunctions<QOpenGLFunctions_3_2_Core>();
|
||||
+ QOpenGLFunctions* f = this->Context->functions();
|
||||
if (f)
|
||||
{
|
||||
// now clear alpha otherwise we end up blending the rendering with
|
||||
--
|
||||
2.14.1
|
||||
2.27.0
|
||||
|
||||
|
39
0001-Correct-GL_BACK-GL_BACK_LEFT-mapping-on-GLES.patch
Normal file
39
0001-Correct-GL_BACK-GL_BACK_LEFT-mapping-on-GLES.patch
Normal file
@ -0,0 +1,39 @@
|
||||
From 2b930f694c2275b892772857002724b9fdcae6c5 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
|
||||
Date: Thu, 16 Jul 2020 03:52:23 +0200
|
||||
Subject: [PATCH 1/2] Correct GL_BACK/GL_BACK_LEFT mapping on GLES
|
||||
|
||||
GLES does not have LEFT/RIGHT targets for the default framebuffer, but
|
||||
just GL_BACK, so there is no need to remap it. Desktop GL may have
|
||||
LEFT and RIGHT attached at the simultaneously, so one of the buffers
|
||||
has to be selected when querying the attributes.
|
||||
---
|
||||
Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx b/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx
|
||||
index 9bbbc2ba54..4bda9330b6 100644
|
||||
--- a/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx
|
||||
+++ b/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx
|
||||
@@ -719,6 +719,10 @@ int vtkOpenGLRenderWindow::GetColorBufferSizes(int* rgba)
|
||||
#ifdef GL_DRAW_BUFFER
|
||||
glGetIntegerv(GL_DRAW_BUFFER, &attachment);
|
||||
#endif
|
||||
+#ifdef GL_ES_VERSION_3_0
|
||||
+ // GLES only has the GL_BACK color
|
||||
+ // attachment for the default framebuffer
|
||||
+#else
|
||||
// GL seems odd with its handling of left/right.
|
||||
// if it says we are using GL_FRONT or GL_BACK
|
||||
// then convert those to GL_FRONT_LEFT and
|
||||
@@ -731,6 +735,7 @@ int vtkOpenGLRenderWindow::GetColorBufferSizes(int* rgba)
|
||||
{
|
||||
attachment = GL_BACK_LEFT;
|
||||
}
|
||||
+#endif
|
||||
|
||||
// make sure we clear any errors before we start
|
||||
// otherwise we may get incorrect results
|
||||
--
|
||||
2.27.0
|
||||
|
36
0001-Fix-PyVTKAddFile_-function-signature-mismatch.patch
Normal file
36
0001-Fix-PyVTKAddFile_-function-signature-mismatch.patch
Normal file
@ -0,0 +1,36 @@
|
||||
From 4253aefd5b5bf5f68177b37b73588ed83d05ac7e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
|
||||
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
|
||||
|
@ -0,0 +1,46 @@
|
||||
From 6b675d1fbb130480725ae5ed3f3bdd995e9b336a Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
|
||||
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
|
||||
|
||||
---
|
||||
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
|
||||
--- a/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx
|
||||
+++ b/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx
|
||||
@@ -1126,22 +1126,28 @@ void vtkOpenGLContextDevice2D::DrawPointSprites(
|
||||
}
|
||||
|
||||
// We can actually use point sprites here
|
||||
+#ifdef GL_POINT_SPRITE
|
||||
if (this->RenderWindow->IsPointSpriteBugPresent())
|
||||
{
|
||||
glEnable(GL_POINT_SPRITE);
|
||||
glTexEnvi(GL_POINT_SPRITE, GL_COORD_REPLACE, GL_TRUE);
|
||||
}
|
||||
+#endif
|
||||
+#ifdef GL_POINT_SPRITE_COORD_ORIGIN
|
||||
glPointParameteri(GL_POINT_SPRITE_COORD_ORIGIN, GL_LOWER_LEFT);
|
||||
+#endif
|
||||
|
||||
glDrawArrays(GL_POINTS, 0, n);
|
||||
|
||||
// free everything
|
||||
cbo->ReleaseGraphicsResources(this->RenderWindow);
|
||||
+#ifdef GL_POINT_SPRITE
|
||||
if (this->RenderWindow->IsPointSpriteBugPresent())
|
||||
{
|
||||
glTexEnvi(GL_POINT_SPRITE, GL_COORD_REPLACE, GL_FALSE);
|
||||
glDisable(GL_POINT_SPRITE);
|
||||
}
|
||||
+#endif
|
||||
|
||||
if (sprite)
|
||||
{
|
||||
--
|
||||
2.27.0
|
||||
|
43
0001-Guard-glPointSize-with-GL_ES_VERSION_3_0.patch
Normal file
43
0001-Guard-glPointSize-with-GL_ES_VERSION_3_0.patch
Normal file
@ -0,0 +1,43 @@
|
||||
From 5dff10d6a3c2e19eed46af4639ade2ff0ca10d98 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
|
||||
Date: Sat, 18 Jul 2020 02:22:45 +0200
|
||||
Subject: [PATCH] Guard glPointSize with GL_ES_VERSION_3_0
|
||||
|
||||
glPointSize is not available in GLES, so just disable the call on GLES
|
||||
like done elsewhere.
|
||||
---
|
||||
Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx | 2 ++
|
||||
Rendering/ContextOpenGL2/vtkOpenGLContextDevice3D.cxx | 2 ++
|
||||
2 files changed, 4 insertions(+)
|
||||
|
||||
diff --git a/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx b/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx
|
||||
index cc376934dd..5f4eed5401 100644
|
||||
--- a/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx
|
||||
+++ b/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx
|
||||
@@ -1912,7 +1912,9 @@ void vtkOpenGLContextDevice2D::SetPointSize(float size)
|
||||
{
|
||||
gl2ps->SetPointSize(size);
|
||||
}
|
||||
+#ifndef GL_ES_VERSION_3_0
|
||||
glPointSize(size);
|
||||
+#endif
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
diff --git a/Rendering/ContextOpenGL2/vtkOpenGLContextDevice3D.cxx b/Rendering/ContextOpenGL2/vtkOpenGLContextDevice3D.cxx
|
||||
index d24eeeda75..ab46faf8ca 100644
|
||||
--- a/Rendering/ContextOpenGL2/vtkOpenGLContextDevice3D.cxx
|
||||
+++ b/Rendering/ContextOpenGL2/vtkOpenGLContextDevice3D.cxx
|
||||
@@ -452,7 +452,9 @@ void vtkOpenGLContextDevice3D::DrawPoints(
|
||||
|
||||
this->EnableDepthBuffer();
|
||||
|
||||
+#ifndef GL_ES_VERSION_3_0
|
||||
glPointSize(this->Pen->GetWidth());
|
||||
+#endif
|
||||
|
||||
vtkOpenGLHelper* cbo = nullptr;
|
||||
if (colors)
|
||||
--
|
||||
2.27.0
|
||||
|
@ -0,0 +1,96 @@
|
||||
From 6cc902225a0c4fe8567071ce6518d5861218ca6a Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
|
||||
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 <QOpenGLContext>
|
||||
#include <QOpenGLFramebufferObject>
|
||||
#include <QOpenGLFunctions>
|
||||
-#include <QOpenGLFunctions_3_2_Core>
|
||||
#include <QOpenGLTexture>
|
||||
#include <QPointer>
|
||||
#include <QScopedValueRollback>
|
||||
@@ -237,14 +236,9 @@ void QVTKOpenGLNativeWidget::paintGL()
|
||||
// before proceeding with blit-ing.
|
||||
this->makeCurrent();
|
||||
|
||||
- QOpenGLFunctions_3_2_Core* f =
|
||||
- QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_3_2_Core>();
|
||||
- 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 <QOpenGLContext>
|
||||
#include <QOpenGLFramebufferObject>
|
||||
#include <QOpenGLFunctions>
|
||||
-#include <QOpenGLFunctions_3_2_Core>
|
||||
#include <QOpenGLTexture>
|
||||
#include <QPointer>
|
||||
#include <QScopedValueRollback>
|
||||
@@ -230,25 +229,20 @@ void QVTKOpenGLWindow::paintGL()
|
||||
// before proceeding with blit-ing.
|
||||
this->makeCurrent();
|
||||
|
||||
- QOpenGLFunctions_3_2_Core* f =
|
||||
- QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_3_2_Core>();
|
||||
- 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
|
||||
|
@ -0,0 +1,28 @@
|
||||
From cce31fb588c24c56848cb4ec28b10f2831232374 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
|
||||
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
|
||||
|
@ -0,0 +1,46 @@
|
||||
From 98857882cdd0a08a5102d663dc9510e6343adbfa Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
|
||||
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<GLenum>(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
|
||||
|
247
0001-clean-up-some-old-opengl-es-stuff.patch
Normal file
247
0001-clean-up-some-old-opengl-es-stuff.patch
Normal file
@ -0,0 +1,247 @@
|
||||
From 13956bf0d47391046e7bb08bb0b581d0850738a9 Mon Sep 17 00:00:00 2001
|
||||
From: Ken Martin <ken.martin@kitware.com>
|
||||
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<GLint>(internalFormat),
|
||||
+ static_cast<GLsizei>(pbo->GetSize() / static_cast<unsigned int>(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<GLsizei>(this->Width), 1, 0,
|
||||
+ this->Format, this->Type, static_cast<const GLvoid*>(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 <GLES3/gl3.h>
|
||||
+#include <GLES3/gl3.h>
|
||||
#elif TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR
|
||||
-# include <OpenGLES/ES3/gl.h>
|
||||
+#include <OpenGLES/ES3/gl.h>
|
||||
#elif VTK_MODULE_USE_EXTERNAL_vtkglew
|
||||
-# include <GL/glew.h>
|
||||
-# ifdef _WIN32
|
||||
-# include <GL/wglew.h>
|
||||
-# endif
|
||||
+#include <GL/glew.h>
|
||||
+#ifdef _WIN32
|
||||
+#include <GL/wglew.h>
|
||||
+#endif
|
||||
#else
|
||||
-# include <vtkglew/include/GL/glew.h>
|
||||
-# ifdef _WIN32
|
||||
-# include <vtkglew/include/GL/wglew.h>
|
||||
-# endif
|
||||
+#include <vtkglew/include/GL/glew.h>
|
||||
+#ifdef _WIN32
|
||||
+#include <vtkglew/include/GL/wglew.h>
|
||||
+#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
|
||||
|
35
0001-expose-1d-texture-options.patch
Normal file
35
0001-expose-1d-texture-options.patch
Normal file
@ -0,0 +1,35 @@
|
||||
From 18b9e99bcc2550515e2f725f1b0c70904068c945 Mon Sep 17 00:00:00 2001
|
||||
From: Ken Martin <ken.martin@kitware.com>
|
||||
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
|
||||
|
42
0002-Guard-GL_LINE_SMOOTH-for-GLES.patch
Normal file
42
0002-Guard-GL_LINE_SMOOTH-for-GLES.patch
Normal file
@ -0,0 +1,42 @@
|
||||
From f03ed2c663c30baac698d5b76a8ba4ea63776ce2 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
|
||||
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
|
||||
|
150
0002-Use-GL_DRAW_BUFFER0-instead-of-GL_DRAW_BUFFER-for-GL.patch
Normal file
150
0002-Use-GL_DRAW_BUFFER0-instead-of-GL_DRAW_BUFFER-for-GL.patch
Normal file
@ -0,0 +1,150 @@
|
||||
From 651b3bae914b9f3c69031c97a366e5cf53ead389 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
|
||||
Date: Thu, 16 Jul 2020 19:54:38 +0200
|
||||
Subject: [PATCH 2/2] 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
|
||||
available, and contrary to GL_DRAW_BUFFER it is also valid for GLES
|
||||
(part of GLES 3 or as EXT_draw_buffers).
|
||||
|
||||
This also matches the universal use of glDrawBuffers instead of
|
||||
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(-)
|
||||
|
||||
diff --git a/Rendering/ContextOpenGL2/vtkOpenGLContextBufferId.cxx b/Rendering/ContextOpenGL2/vtkOpenGLContextBufferId.cxx
|
||||
index 06abb5e7e6..0d39638869 100644
|
||||
--- a/Rendering/ContextOpenGL2/vtkOpenGLContextBufferId.cxx
|
||||
+++ b/Rendering/ContextOpenGL2/vtkOpenGLContextBufferId.cxx
|
||||
@@ -139,7 +139,7 @@ vtkIdType vtkOpenGLContextBufferId::GetPickedItem(int x, int y)
|
||||
// Render texture to current write buffer. Texel x,y is rendered at
|
||||
// pixel x,y (instead of pixel 0,0 to work around pixel ownership test).
|
||||
GLint savedDrawBuffer;
|
||||
- glGetIntegerv(GL_DRAW_BUFFER, &savedDrawBuffer);
|
||||
+ glGetIntegerv(GL_DRAW_BUFFER0, &savedDrawBuffer);
|
||||
|
||||
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
|
||||
--- a/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2DPrivate.h
|
||||
+++ b/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2DPrivate.h
|
||||
@@ -309,7 +309,7 @@ public:
|
||||
this->SavedStencilTest = ostate->GetEnumState(GL_STENCIL_TEST);
|
||||
this->SavedBlend = ostate->GetEnumState(GL_BLEND);
|
||||
ostate->vtkglGetFloatv(GL_COLOR_CLEAR_VALUE, this->SavedClearColor);
|
||||
- ostate->vtkglGetIntegerv(GL_DRAW_BUFFER, &this->SavedDrawBuffer);
|
||||
+ ostate->vtkglGetIntegerv(GL_DRAW_BUFFER0, &this->SavedDrawBuffer);
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/Rendering/External/vtkExternalOpenGLRenderWindow.cxx b/Rendering/External/vtkExternalOpenGLRenderWindow.cxx
|
||||
index c95b50ac64..291c4e1e61 100644
|
||||
--- a/Rendering/External/vtkExternalOpenGLRenderWindow.cxx
|
||||
+++ b/Rendering/External/vtkExternalOpenGLRenderWindow.cxx
|
||||
@@ -60,7 +60,7 @@ void vtkExternalOpenGLRenderWindow::Start(void)
|
||||
|
||||
// For stereo, render the correct eye based on the OpenGL buffer mode
|
||||
GLint bufferType;
|
||||
- ostate->vtkglGetIntegerv(GL_DRAW_BUFFER, &bufferType);
|
||||
+ ostate->vtkglGetIntegerv(GL_DRAW_BUFFER0, &bufferType);
|
||||
vtkCollectionSimpleIterator sit;
|
||||
vtkRenderer* renderer;
|
||||
for (this->GetRenderers()->InitTraversal(sit);
|
||||
diff --git a/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx b/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx
|
||||
index 4bda9330b6..14cd43711f 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<unsigned int>(attachment);
|
||||
this->FrontLeftBuffer = static_cast<unsigned int>(attachment);
|
||||
@@ -660,8 +660,8 @@ bool vtkOpenGLRenderWindow::GetUsingSRGBColorSpace()
|
||||
this->MakeCurrent();
|
||||
|
||||
GLint attachment = GL_BACK_LEFT;
|
||||
-#ifdef GL_DRAW_BUFFER
|
||||
- glGetIntegerv(GL_DRAW_BUFFER, &attachment);
|
||||
+#ifdef GL_DRAW_BUFFER0
|
||||
+ glGetIntegerv(GL_DRAW_BUFFER0, &attachment);
|
||||
#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)
|
||||
{
|
||||
this->MakeCurrent();
|
||||
GLint attachment = GL_BACK_LEFT;
|
||||
-#ifdef GL_DRAW_BUFFER
|
||||
- glGetIntegerv(GL_DRAW_BUFFER, &attachment);
|
||||
+#ifdef GL_DRAW_BUFFER0
|
||||
+ glGetIntegerv(GL_DRAW_BUFFER0, &attachment);
|
||||
#endif
|
||||
#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
|
||||
--- a/Rendering/OpenGL2/vtkOpenGLState.cxx
|
||||
+++ b/Rendering/OpenGL2/vtkOpenGLState.cxx
|
||||
@@ -205,8 +205,8 @@ void vtkOpenGLState::CheckState()
|
||||
error = true;
|
||||
}
|
||||
unsigned int sval;
|
||||
-#ifdef GL_DRAW_BUFFER
|
||||
- ::glGetIntegerv(GL_DRAW_BUFFER, iparams);
|
||||
+#ifdef GL_DRAW_BUFFER0
|
||||
+ ::glGetIntegerv(GL_DRAW_BUFFER0, iparams);
|
||||
sval = this->CurrentState.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;
|
||||
::glBindFramebuffer(GL_DRAW_FRAMEBUFFER, val);
|
||||
-#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
|
||||
}
|
||||
}
|
||||
@@ -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()
|
||||
{
|
||||
::glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, (int*)&this->CurrentState.DrawBinding.Binding);
|
||||
-#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
|
||||
|
||||
::glGetIntegerv(GL_READ_FRAMEBUFFER_BINDING, (int*)&this->CurrentState.ReadBinding.Binding);
|
||||
--
|
||||
2.27.0
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:15def4e6f84d72f82386617fe595ec124dda3cbd13ea19a0dcd91583197d8715
|
||||
size 33535036
|
3
VTK-9.0.1.tar.gz
Normal file
3
VTK-9.0.1.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:1b39a5e191c282861e7af4101eaa8585969a2de05f5646c9199a161213a622c7
|
||||
size 34687900
|
@ -1,63 +0,0 @@
|
||||
From ca02bcc844e4d268ac5060f56f10467e2579fb43 Mon Sep 17 00:00:00 2001
|
||||
From: Ben Boeckel <ben.boeckel@kitware.com>
|
||||
Date: Thu, 7 May 2020 11:36:50 -0400
|
||||
Subject: [PATCH 1/3] exodusII: also link to hdf5 directly
|
||||
|
||||
---
|
||||
ThirdParty/exodusII/vtk.module | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
Index: VTK-9.0.0/ThirdParty/exodusII/vtk.module
|
||||
===================================================================
|
||||
--- VTK-9.0.0.orig/ThirdParty/exodusII/vtk.module
|
||||
+++ VTK-9.0.0/ThirdParty/exodusII/vtk.module
|
||||
@@ -3,5 +3,6 @@ NAME
|
||||
LIBRARY_NAME
|
||||
vtkexodusII
|
||||
DEPENDS
|
||||
+ VTK::hdf5
|
||||
VTK::netcdf
|
||||
THIRD_PARTY
|
||||
|
||||
From a98772f6d5f6b62c0f3ac360702b585c09bc5557 Mon Sep 17 00:00:00 2001
|
||||
From: Seacas Upstream <kwrobot@kitware.com>
|
||||
Date: Thu, 7 May 2020 12:22:01 -0400
|
||||
Subject: [PATCH 3/3] exodusII 2020-05-07 (2c24a120)
|
||||
|
||||
Code extracted from:
|
||||
|
||||
https://gitlab.kitware.com/third-party/seacas.git
|
||||
|
||||
at commit 2c24a120deb77a8a2ea05462d0a60e7f9d90e58e (for/vtk-20200507-7.24f-v2019-12-18).
|
||||
---
|
||||
ThirdParty/exodusII/vtkexodusII/CMakeLists.txt | 9 +++++++--
|
||||
1 file changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/ThirdParty/exodusII/vtkexodusII/CMakeLists.txt b/ThirdParty/exodusII/vtkexodusII/CMakeLists.txt
|
||||
index 025abc43e0..d931004997 100644
|
||||
--- a/ThirdParty/exodusII/vtkexodusII/CMakeLists.txt
|
||||
+++ b/ThirdParty/exodusII/vtkexodusII/CMakeLists.txt
|
||||
@@ -297,14 +297,19 @@ set(headers
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/include/exodusII_cfg.h"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/include/exodus_config.h")
|
||||
|
||||
+vtk_module_find_package(PACKAGE Threads)
|
||||
+
|
||||
vtk_module_add_module(VTK::exodusII
|
||||
SOURCES ${sources}
|
||||
HEADERS ${headers}
|
||||
HEADERS_SUBDIR "vtkexodusII/include")
|
||||
-target_compile_definitions(exodusII
|
||||
+vtk_module_definitions(VTK::exodusII
|
||||
PRIVATE
|
||||
exoIIc_EXPORTS)
|
||||
-target_include_directories(exodusII
|
||||
+vtk_module_include(VTK::exodusII
|
||||
PUBLIC
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>")
|
||||
+vtk_module_link(VTK::exodusII
|
||||
+ PRIVATE
|
||||
+ Threads::Threads)
|
||||
--
|
||||
2.26.2
|
@ -1,12 +0,0 @@
|
||||
Index: VTK-9.0.0/Filters/ParallelGeometry/vtk.module
|
||||
===================================================================
|
||||
--- VTK-9.0.0.orig/Filters/ParallelGeometry/vtk.module
|
||||
+++ VTK-9.0.0/Filters/ParallelGeometry/vtk.module
|
||||
@@ -12,6 +12,7 @@ DEPENDS
|
||||
VTK::CommonCore
|
||||
VTK::CommonSystem
|
||||
VTK::CommonExecutionModel
|
||||
+ VTK::FiltersCore
|
||||
VTK::FiltersGeometry
|
||||
VTK::FiltersParallel
|
||||
VTK::ParallelMPI
|
@ -1,36 +0,0 @@
|
||||
From 797f28697d5ba50c1fa2bc5596af626a3c277826 Mon Sep 17 00:00:00 2001
|
||||
From: "Andrew J. P. Maclean" <andrew.amaclean@gmail.com>
|
||||
Date: Wed, 27 May 2020 15:27:15 +1000
|
||||
Subject: [PATCH] Qt 5.15 needs the include file QPainterPath
|
||||
|
||||
---
|
||||
Rendering/Qt/vtkQtLabelRenderStrategy.cxx | 1 +
|
||||
Rendering/Qt/vtkQtStringToImage.cxx | 1 +
|
||||
2 files changed, 2 insertions(+)
|
||||
|
||||
diff --git a/Rendering/Qt/vtkQtLabelRenderStrategy.cxx b/Rendering/Qt/vtkQtLabelRenderStrategy.cxx
|
||||
index afda585cca..eca65c64cd 100644
|
||||
--- a/Rendering/Qt/vtkQtLabelRenderStrategy.cxx
|
||||
+++ b/Rendering/Qt/vtkQtLabelRenderStrategy.cxx
|
||||
@@ -41,6 +41,7 @@
|
||||
#include <QImage>
|
||||
#include <QMap>
|
||||
#include <QPainter>
|
||||
+#include <QPainterPath>
|
||||
#include <QPair>
|
||||
#include <QPixmap>
|
||||
#include <QTextDocument>
|
||||
diff --git a/Rendering/Qt/vtkQtStringToImage.cxx b/Rendering/Qt/vtkQtStringToImage.cxx
|
||||
index 659c71570e..fbb9b78f05 100644
|
||||
--- a/Rendering/Qt/vtkQtStringToImage.cxx
|
||||
+++ b/Rendering/Qt/vtkQtStringToImage.cxx
|
||||
@@ -30,6 +30,7 @@
|
||||
#include <QFontMetrics>
|
||||
#include <QImage>
|
||||
#include <QPainter>
|
||||
+#include <QPainterPath>
|
||||
#include <QPixmap>
|
||||
#include <QString>
|
||||
#include <QTextDocument>
|
||||
--
|
||||
2.26.2
|
32
vtk.changes
32
vtk.changes
@ -1,3 +1,35 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Jul 16 16:55:31 UTC 2020 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
|
||||
|
||||
- Update to version 9.0.1:
|
||||
* Drop obsolete patches:
|
||||
+ bundled_exodusii_add_missing_libpthread.patch
|
||||
+ vtk-parallelgeometry-dependency.patch
|
||||
+ vtk-qt-5.15-include-QPainterPath.patch
|
||||
- Explicitly enable module RenderingContextOpenGL2 required for PCL
|
||||
- Conditionally add pugixml-devel Requires in devel package
|
||||
- Make devel package installable even when built without Java
|
||||
- Remove CAPITALIZATION from comments
|
||||
- Drop obsolete TK build dependency
|
||||
- Drop unused wget build dependency
|
||||
- Wrap devel-doc generation in bcond (keep defaulted to off), and
|
||||
drop the essentially empty package when disabled.
|
||||
- Fix build on ARM/Qt GLES:
|
||||
* set VTK_OPENGL_USE_GLES
|
||||
* Add 0001-clean-up-some-old-opengl-es-stuff.patch
|
||||
* Add 0001-Remove-duplicate-check-for-QOpenGLFunctions_3_2_Core.patch
|
||||
* Rebase 0001-Allow-compilation-on-GLES-platforms.patch
|
||||
* Add 0001-Replace-last-glDrawBuffer-call-with-glDrawBuffers-1.patch
|
||||
* Add 0001-Use-2D-textures-for-1D-texture-emulation-on-GLES.patch
|
||||
* Add 0001-Add-missing-guard-required-for-GLES-to-disable-stere.patch
|
||||
* Add 0001-Correct-GL_BACK-GL_BACK_LEFT-mapping-on-GLES.patch
|
||||
* Add 0002-Use-GL_DRAW_BUFFER0-instead-of-GL_DRAW_BUFFER-for-GL.patch
|
||||
* Add 0001-GL_POINT_SPRITE-is-only-available-for-Compatibility-.patch
|
||||
* Add 0002-Guard-GL_LINE_SMOOTH-for-GLES.patch
|
||||
* Add 0001-Guard-glPointSize-with-GL_ES_VERSION_3_0.patch
|
||||
- Add 0001-Fix-PyVTKAddFile_-function-signature-mismatch.patch
|
||||
- Add 0001-Replace-invalid-GL_LINE-with-GL_LINES-for-glDrawArra.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jun 15 14:47:31 UTC 2020 - Andreas Schwab <schwab@suse.de>
|
||||
|
||||
|
120
vtk.spec
120
vtk.spec
@ -19,6 +19,7 @@
|
||||
%global flavor @BUILD_FLAVOR@%{nil}
|
||||
|
||||
%bcond_with examples
|
||||
%bcond_with documentation
|
||||
|
||||
%if 0%{?sle_version} >= 150200
|
||||
%define DisOMPI1 ExclusiveArch: do_not_build
|
||||
@ -27,9 +28,15 @@
|
||||
%define DisOMPI3 ExclusiveArch: do_not_build
|
||||
%endif
|
||||
|
||||
%ifarch %arm aarch64
|
||||
%bcond_without gles
|
||||
%else
|
||||
%bcond_with gles
|
||||
%endif
|
||||
|
||||
%define pkgname vtk
|
||||
|
||||
# PUGIXML, GL2PS IN LEAPS ARE TOO OLD
|
||||
# pugixml and gl2ps in Leap 15.x are too old
|
||||
%if 0%{?suse_version} <= 1500
|
||||
%bcond_with pugixml
|
||||
%bcond_with gl2ps
|
||||
@ -38,9 +45,9 @@
|
||||
%bcond_without gl2ps
|
||||
%endif
|
||||
|
||||
# PEGTL IN LEAP 15.1 IS TOO OLD (< 2.0.0)
|
||||
# cmake STILL CHECKS FOR JAVAH (AND CHEATING WITH {_bindir}/true NO LONGER WORKS)
|
||||
%if 0%{?suse_version} == 1500 && 0%{?sle_version} == 150100
|
||||
# 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
|
||||
@ -99,13 +106,13 @@
|
||||
%define shlib %{vtklib}
|
||||
|
||||
Name: vtk%{?my_suffix}
|
||||
Version: 9.0.0
|
||||
Version: 9.0.1
|
||||
Release: 0
|
||||
%define series 9.0
|
||||
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.
|
||||
# http://fedoraproject.org/wiki/Licensing/BSD#VTKBSDVariant
|
||||
Summary: The Visualization Toolkit - A high level 3D visualization library
|
||||
License: BSD-3-Clause
|
||||
Group: Productivity/Scientific/Other
|
||||
URL: https://vtk.org/
|
||||
@ -113,28 +120,40 @@ Source: https://www.vtk.org/files/release/%{series}/VTK-%{version}.tar.g
|
||||
# FIXME See if packaging can be tweaked to accommodate python-vtk's devel files in a devel package later
|
||||
# We need to use the compat conditionals here to avoid Factory's source validator from tripping up
|
||||
Source99: vtk-rpmlintrc
|
||||
# PATCH-NEEDS-REBASE
|
||||
%if 0
|
||||
# PATCH-FIX-OPENSUSE 0001-Allow-compilation-on-GLES-platforms.patch VTK issue #17113 stefan.bruens@rwth-aachen.de -- Fix building with Qt GLES builds
|
||||
Patch2: 0001-Allow-compilation-on-GLES-platforms.patch
|
||||
%endif
|
||||
# PATCH-FIX-OPENSUSE bundled_libharu_add_missing_libm.patch stefan.bruens@rwth-aachen.de -- Add missing libm for linking (gh#libharu/libharu#213)
|
||||
Patch3: bundled_libharu_add_missing_libm.patch
|
||||
# PATCH-FIX-UPSTREAM bundled_exodusii_add_missing_libpthread.patch stefan.bruens@rwth-aachen.de -- Add missing libm for linking (updated to upstream patch by badshah400, see https://gitlab.kitware.com/vtk/vtk/-/merge_requests/6865)
|
||||
Patch4: bundled_exodusii_add_missing_libpthread.patch
|
||||
# PATCH-FIX-UPSTREAM vtk-parallelgeometry-dependency.patch badshah400@gmail.com -- Fix a mistake in the dependencies for ParallelGeometry causing build failures for MPI builds
|
||||
Patch5: vtk-parallelgeometry-dependency.patch
|
||||
# PATCH-FIX-UPSTREAM vtk-qt-5.15-include-QPainterPath.patch badshah400@gmail.com -- Include QPainterPath to fix build failures against Qt 5.15; patch taken from upstream, see https://gitlab.kitware.com/vtk/vtk/-/merge_requests/6943
|
||||
Patch6: vtk-qt-5.15-include-QPainterPath.patch
|
||||
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
|
||||
Patch8: 0001-Correct-GL_BACK-GL_BACK_LEFT-mapping-on-GLES.patch
|
||||
# PATCH-FIX-UPSTREAM -- Fix building with Qt GLES builds
|
||||
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
|
||||
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
|
||||
BuildRequires: R-base-devel
|
||||
BuildRequires: chrpath
|
||||
BuildRequires: cmake >= 3.4
|
||||
BuildRequires: double-conversion-devel
|
||||
BuildRequires: doxygen
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: gnuplot
|
||||
BuildRequires: graphviz
|
||||
BuildRequires: hdf5-devel
|
||||
BuildRequires: libboost_graph-devel
|
||||
BuildRequires: libboost_graph_parallel-devel
|
||||
@ -146,7 +165,6 @@ BuildRequires: python3-devel
|
||||
BuildRequires: python3-numpy-devel
|
||||
BuildRequires: python3-qt5-devel
|
||||
BuildRequires: utfcpp-devel
|
||||
BuildRequires: wget
|
||||
BuildRequires: pkgconfig(Qt5Core)
|
||||
BuildRequires: pkgconfig(Qt5OpenGL)
|
||||
BuildRequires: pkgconfig(Qt5OpenGLExtensions)
|
||||
@ -172,10 +190,13 @@ BuildRequires: pkgconfig(netcdf)
|
||||
BuildRequires: pkgconfig(proj) >= 5.0.0
|
||||
BuildRequires: pkgconfig(sqlite3)
|
||||
BuildRequires: pkgconfig(theora)
|
||||
# Still required with 8.2.x for PythonTkInter
|
||||
BuildRequires: pkgconfig(tk)
|
||||
BuildRequires: pkgconfig(xt)
|
||||
BuildRequires: pkgconfig(zlib)
|
||||
%if %{with documentation}
|
||||
BuildRequires: doxygen
|
||||
BuildRequires: gnuplot
|
||||
BuildRequires: graphviz
|
||||
%endif
|
||||
%if %{with gl2ps}
|
||||
BuildRequires: gl2ps-devel > 1.4.0
|
||||
%endif
|
||||
@ -223,9 +244,10 @@ This package provides the shared libraries for VTK.
|
||||
|
||||
%package devel
|
||||
Summary: VTK header files for building C++ code
|
||||
Group: Development/Libraries/C and C++
|
||||
# not strictly necessary, but required by VTKs cmake files
|
||||
Requires: %{name}-java = %{version}
|
||||
Group: Development/Libraries/C and C++
|
||||
%{?with_java:Requires: %{name}-java = %{version}}
|
||||
Requires: %{name}-qt = %{version}
|
||||
Requires: %{shlib} = %{version}
|
||||
Requires: R-core-devel
|
||||
Requires: cmake >= 3.4
|
||||
@ -239,7 +261,6 @@ Requires: libmysqlclient-devel
|
||||
Requires: libnetcdf_c++-devel
|
||||
Requires: libtiff-devel
|
||||
Requires: python3-%{name} = %{version}
|
||||
Requires: python3-%{name} = %{version}
|
||||
Requires: utfcpp-devel
|
||||
%{?with_mpi:Requires: %{mpi_flavor}}
|
||||
%{?with_mpi:Requires: %{mpi_flavor}-devel}
|
||||
@ -268,6 +289,9 @@ Requires: pkgconfig(zlib)
|
||||
%if %{with pegtl}
|
||||
Requires: pegtl-devel
|
||||
%endif
|
||||
%if %{with pugixml}
|
||||
Requires: pugixml-devel
|
||||
%endif
|
||||
Conflicts: vtk-compat_gl-devel
|
||||
|
||||
%description devel
|
||||
@ -363,7 +387,23 @@ languages.
|
||||
%endif
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n VTK-%{version}
|
||||
%setup -n VTK-%{version}
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%if %{with gles}
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
%patch10 -p1
|
||||
%patch11 -p1
|
||||
%patch12 -p1
|
||||
%endif
|
||||
%patch13 -p1
|
||||
%patch14 -p1
|
||||
|
||||
# Replace relative path ../../../../VTKData with %%{_datadir}/vtkdata
|
||||
# otherwise it will break on symlinks.
|
||||
@ -382,8 +422,9 @@ export CXX=g++
|
||||
export CFLAGS="%{optflags}"
|
||||
export CXXFLAGS="%{optflags}"
|
||||
|
||||
# THE %%cmake MACRO SETS CMAKE_SKIP_RPATH=ON FOR LEAP 15.x WHICH CAUSES BUILD FAILURES
|
||||
# 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
|
||||
%cmake \
|
||||
-DCMAKE_INSTALL_PREFIX:PATH=%{my_prefix} \
|
||||
-DCMAKE_INSTALL_LIBDIR:PATH=%{_lib} \
|
||||
@ -392,6 +433,8 @@ export CXXFLAGS="%{optflags}"
|
||||
-DVTK_INSTALL_PACKAGE_DIR:PATH=%{_lib}/cmake/%{pkgname} \
|
||||
-DVTK_PYTHON_OPTIONAL_LINK:BOOL=OFF \
|
||||
-DVTK_BUILD_TESTING:BOOL=ON \
|
||||
-DVTK_BUILD_EXAMPLES:BOOL=%{?with_examples:ON}%{!?with_examples:OFF} \
|
||||
-DVTK_BUILD_DOCUMENTATION:BOOL=%{?with_documentation:ON}%{!?with_documentation:OFF} \
|
||||
-DCMAKE_NO_BUILTIN_CHRPATH:BOOL=ON \
|
||||
%if 0%{?suse_version} <= 1500
|
||||
-DCMAKE_SKIP_RPATH:BOOL=OFF \
|
||||
@ -399,7 +442,8 @@ export CXXFLAGS="%{optflags}"
|
||||
%endif
|
||||
-DVTK_MODULE_ENABLE_VTK_TestingCore=WANT \
|
||||
-DVTK_MODULE_ENABLE_VTK_TestingRendering=WANT \
|
||||
-DOpenGL_GL_PREFERENCE:STRING='GLVND' \
|
||||
-DVTK_MODULE_ENABLE_VTK_RenderingContextOpenGL2=YES \
|
||||
-DVTK_MODULE_ENABLE_VTK_RenderingFreeTypeFontConfig=YES \
|
||||
-DVTK_CUSTOM_LIBRARY_SUFFIX="" \
|
||||
-DVTK_GROUP_ENABLE_Imaging=WANT \
|
||||
%if %{with mpi}
|
||||
@ -414,14 +458,16 @@ export CXXFLAGS="%{optflags}"
|
||||
-DVTK_GROUP_ENABLE_Views=WANT \
|
||||
-DVTK_PYTHON_VERSION=3 \
|
||||
-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_MODULE_USE_EXTERNAL_VTK_gl2ps=%{?with_gl2ps:ON}%{!?with_gl2ps: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_INSTALL_DOC_DIR:PATH=%{_docdir}/%{name}-%{series}
|
||||
-DVTK_MODULE_ENABLE_VTK_pegtl=%{?with_pegtl:YES}%{!?with_pegtl:NO}
|
||||
|
||||
#-DVTK_EXTERNAL_LIBHARU_IS_SHARED:BOOL=OFF \
|
||||
|
||||
@ -487,9 +533,9 @@ perl -pi -e's,^,%{my_bindir}/,' examples.list
|
||||
|
||||
%endif
|
||||
|
||||
# MOVE LICENSES TO PROPER DOCDIR INSTEAD OF %%{my_datadir}/licenses
|
||||
mkdir -p %{buildroot}%{_datadir}/licenses/%{name}
|
||||
mv %{buildroot}%{my_datadir}/licenses/VTK/* %{buildroot}%{_datadir}/licenses/%{name}/
|
||||
# Move licenses to licensedir instead of %%{my_datadir}/licenses
|
||||
mkdir -p %{buildroot}%{_licensedir}
|
||||
mv %{buildroot}%{my_datadir}/licenses/VTK %{buildroot}%{_licensedir}/%{name}
|
||||
|
||||
%fdupes -s %{buildroot}
|
||||
|
||||
@ -526,7 +572,9 @@ find %{buildroot} . -name vtk.cpython-3*.pyc -delete # drop unreproducible time-
|
||||
%files devel
|
||||
%license Copyright.txt
|
||||
%license %{_datadir}/licenses/%{name}/
|
||||
%if %{without gles}
|
||||
%{my_bindir}/vtkProbeOpenGLVersion
|
||||
%endif
|
||||
%{my_bindir}/%{pkgname}ParseJava
|
||||
%{my_bindir}/%{pkgname}WrapHierarchy
|
||||
%{my_bindir}/%{pkgname}WrapJava
|
||||
@ -542,9 +590,11 @@ find %{buildroot} . -name vtk.cpython-3*.pyc -delete # drop unreproducible time-
|
||||
%exclude %{my_libdir}/libvtk*Python*.so
|
||||
%exclude %{my_libdir}/libvtk*Qt*.so
|
||||
|
||||
%if %{with documentation}
|
||||
%files devel-doc
|
||||
%license Copyright.txt
|
||||
%{_docdir}/%{name}-%{series}
|
||||
%endif
|
||||
|
||||
%if %{with java}
|
||||
%files java
|
||||
|
Loading…
Reference in New Issue
Block a user