SHA256
1
0
forked from pool/vtk

Accepting request 529946 from science

1

OBS-URL: https://build.opensuse.org/request/show/529946
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/vtk?expand=0&rev=29
This commit is contained in:
Dominique Leuenberger 2017-10-09 17:40:31 +00:00 committed by Git OBS Bridge
commit c4e94ba583
7 changed files with 165 additions and 46 deletions

View File

@ -0,0 +1,55 @@
From 2d5a68b91f9d638aa408285d1608bc5d70060602 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
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.
Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
---
GUISupport/Qt/QVTKOpenGLWidget.cxx | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/GUISupport/Qt/QVTKOpenGLWidget.cxx b/GUISupport/Qt/QVTKOpenGLWidget.cxx
index a1676e8..16e255f 100644
--- a/GUISupport/Qt/QVTKOpenGLWidget.cxx
+++ b/GUISupport/Qt/QVTKOpenGLWidget.cxx
@@ -421,10 +421,15 @@ void QVTKOpenGLWidget::paintGL()
// blit from this->FBO to QOpenGLWidget's FBO.
vtkQVTKOpenGLWidgetDebugMacro("paintGL::blit-to-defaultFBO");
+#if QT_VERSION < 0x050700
QOpenGLFunctions_3_2_Core* f =
QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_3_2_Core>();
+#else
+ QOpenGLFunctions* f = QOpenGLContext::currentContext()->functions();
+#endif
if (f)
{
+#if QT_VERSION < 0x050700
f->glBindFramebuffer(GL_DRAW_FRAMEBUFFER, this->defaultFramebufferObject());
f->glDrawBuffer(GL_COLOR_ATTACHMENT0);
@@ -434,6 +439,13 @@ void QVTKOpenGLWidget::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
--
2.14.1

View File

@ -1,5 +1,4 @@
#!/bin/sh #!/bin/sh
sed 's|%define compat_gl 0|%define compat_gl 1|' vtk.spec > vtk-compat_gl.spec sed 's|%define compat_gl 0|%define compat_gl 1|' vtk.spec > vtk-compat_gl.spec
cp vtk-rpmlintrc vtk-compat_gl-rpmlintrc
cp vtk.changes vtk-compat_gl.changes cp vtk.changes vtk-compat_gl.changes

View File

@ -1,11 +0,0 @@
# FIXME: See if packaging can be tweaked to avoid these warnings later
# python-vtk needs these devel files to work
addFilter("python3-vtk* devel-file-in-non-devel-package")
# Upstream does not supply manuals for any binary, suppress warnings
addFilter(".* no-manual-page-for-binary")
# This is not a versioned shared lib, and not used by anything other than
# vtk's java bindings, simply package it with the vtk-java subpackage
addFilter("vtk-java.* shlib-policy-name-error")
addFilter("vtk-compat_gl-java.* shlib-policy-name-error")

View File

@ -1,3 +1,46 @@
-------------------------------------------------------------------
Thu Sep 28 10:43:27 UTC 2017 - badshah400@gmail.com
- Drop vtk-compat_gl-rpmlintrc: openSUSE:Factory bots don't accept
conditional sources and one rpmlintrc file is sufficient for
both main and linked packages anyway.
-------------------------------------------------------------------
Tue Sep 19 10:46:40 UTC 2017 - kkhere.geo@gmail.com
- do not exclude libViewsGeovisJava.so from devel package
This library is required for development.
- package vtk binary in devel package.
- VTKTargets-debug.cmake tests for the existance of the library (line 3394)
and the binary (line 3404) and causes an error if the files do
not exist
-------------------------------------------------------------------
Thu Sep 14 20:54:34 UTC 2017 - stefan.bruens@rwth-aachen.de
- Remove the various subpackage Requires from the devel package
again. The qt subpackage contains a Qt Designer plugin and no
dependency at all. Package the vtkWrap{Tcl,Java,Python} wrapper
generators in the devel package, as these are useless without
the vtk headers files.
- Fix description/summary of vtk-qt subpackage
-------------------------------------------------------------------
Tue Sep 12 12:33:38 UTC 2017 - kkhere.geo@gmail.com
- devel subpackage should require -tcl, -java and -qt subpackages
since the *.cmake files refer to files in those subpackages
-------------------------------------------------------------------
Mon Sep 11 13:46:28 UTC 2017 - stefan.bruens@rwth-aachen.de
- Add 0001-Allow-compilation-on-GLES-platforms.patch
The QOpenGLFunctions_3_2_Core class providing the framebuffer
blit functions is not available on GLES 2 builds of Qt5. Let Qt
handle the framebuffer blit, and just use the GLES/GL subset
provided by QOpenGLFunctions for the remainder.
Fix for https://gitlab.kitware.com/vtk/vtk/issues/17113
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Sep 1 00:13:18 UTC 2017 - badshah400@gmail.com Fri Sep 1 00:13:18 UTC 2017 - badshah400@gmail.com

View File

@ -45,15 +45,13 @@ Url: http://vtk.org/
Source: http://www.vtk.org/files/release/%{series}/VTK-%{version}.tar.gz Source: http://www.vtk.org/files/release/%{series}/VTK-%{version}.tar.gz
# FIXME See if packaging can be tweaked to accommodate python-vtk's devel files in a devel package later # 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 # We need to use the compat conditionals here to avoid Factory's source validator from tripping up
%if %{compat_gl}
Source1: vtk-compat_gl-rpmlintrc
%else
Source1: vtk-rpmlintrc Source1: vtk-rpmlintrc
%endif
# PATCH-FIX-UPSTREAM vtk-fix-file-contains-date-time.patch badshah400@gmail.com -- Fix file containing DATE and TIME # PATCH-FIX-UPSTREAM vtk-fix-file-contains-date-time.patch badshah400@gmail.com -- Fix file containing DATE and TIME
Patch1: vtk-fix-file-contains-date-time.patch Patch1: vtk-fix-file-contains-date-time.patch
# PATCH-FIX-UPSTREAM vtk-Rinterface-uintptr_t.patch boo#985386 badshah400@gmail.com -- Fix issues with uintptr_t redefinition by defining the HAVE_UINTPTR_T macro using cmake functions to avoid redefinition of uintptr_t, which is already defined in stdint.h called earlier; patch sent upstream # PATCH-FIX-UPSTREAM vtk-Rinterface-uintptr_t.patch boo#985386 badshah400@gmail.com -- Fix issues with uintptr_t redefinition by defining the HAVE_UINTPTR_T macro using cmake functions to avoid redefinition of uintptr_t, which is already defined in stdint.h called earlier; patch sent upstream
Patch2: vtk-Rinterface-uintptr_t.patch Patch2: vtk-Rinterface-uintptr_t.patch
# PATCH-FIX-OPENSUSE 0001-Allow-compilation-on-GLES-platforms.patch VTK issue #17113 stefan.bruens@rwth-aachen.de -- Fix building with Qt GLES builds
Patch3: 0001-Allow-compilation-on-GLES-platforms.patch
BuildRequires: Mesa-libGL-devel BuildRequires: Mesa-libGL-devel
BuildRequires: R-base-devel BuildRequires: R-base-devel
BuildRequires: boost-devel BuildRequires: boost-devel
@ -216,7 +214,7 @@ rendering and visualization.
This package provides python bindings for VTK. This package provides python bindings for VTK.
%package qt %package qt
Summary: Qt VTK widget Summary: Qt Designer plugin for QVTKWidget
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
Requires: %{shlib} = %{version} Requires: %{shlib} = %{version}
%if %{compat_gl} %if %{compat_gl}
@ -230,7 +228,7 @@ Conflicts: vtk-compat_gl-qt
VTK is a software system for image processing, 3D graphics, volume VTK is a software system for image processing, 3D graphics, volume
rendering and visualization. rendering and visualization.
This package provides Qt bindings for VTK. This package provides a Qt Designer plugin for the QVTKWidget.
%package tcl %package tcl
Summary: Tcl bindings for VTK Summary: Tcl bindings for VTK
@ -290,6 +288,7 @@ This package provides a few testing programs for VTK.
%setup -q -n VTK-%{version} %setup -q -n VTK-%{version}
%patch1 -p1 %patch1 -p1
%patch2 -p1 %patch2 -p1
%patch3 -p1
# Replace relative path ../../../VTKData with %%{_datadir}/%%{pkgname}data-%%{version} # Replace relative path ../../../VTKData with %%{_datadir}/%%{pkgname}data-%%{version}
# otherwise it will break on symlinks. # otherwise it will break on symlinks.
@ -432,9 +431,16 @@ chrpath -d %{buildroot}%{_bindir}/*
%files devel %files devel
%defattr(-,root,root,-) %defattr(-,root,root,-)
%doc Copyright.txt %doc Copyright.txt
%{_bindir}/%{pkgname}
%{_bindir}/%{pkgname}EncodeString %{_bindir}/%{pkgname}EncodeString
%{_bindir}/%{pkgname}HashSource %{_bindir}/%{pkgname}HashSource
%{_bindir}/%{pkgname}WrapHierarchy %{_bindir}/%{pkgname}WrapHierarchy
%{_bindir}/%{pkgname}ParseJava
%{_bindir}/%{pkgname}WrapJava
%{_bindir}/%{pkgname}WrapPython
%{_bindir}/%{pkgname}WrapPythonInit
%{_bindir}/%{pkgname}WrapTcl
%{_bindir}/%{pkgname}WrapTclInit
%if %{compat_gl} %if %{compat_gl}
%{_bindir}/%{pkgname}ParseOGLExt %{_bindir}/%{pkgname}ParseOGLExt
%endif %endif
@ -451,30 +457,19 @@ chrpath -d %{buildroot}%{_bindir}/*
%{_libdir}/libvtkWrappingTools.a %{_libdir}/libvtkWrappingTools.a
%{_includedir}/%{pkgname}-%{series}/ %{_includedir}/%{pkgname}-%{series}/
%exclude %{_datadir}/tcl/vtk/vtktcl.c %exclude %{_datadir}/tcl/vtk/vtktcl.c
# This goes in the vtk-java subpackage, not a devel symlink
%exclude %{_libdir}/libvtkViewsGeovisJava.so
#
%files java %files java
%defattr(-,root,root,-) %defattr(-,root,root,-)
%{_bindir}/%{pkgname}ParseJava
%{_bindir}/%{pkgname}WrapJava
%{_libdir}/%{pkgname}.jar %{_libdir}/%{pkgname}.jar
%{_libdir}/libvtkViewsGeovisJava.so
%files -n python3-%{name} %files -n python3-%{name}
%defattr(-,root,root,-) %defattr(-,root,root,-)
%{_bindir}/%{pkgname}python %{_bindir}/%{pkgname}python
%{_bindir}/p%{pkgname}python %{_bindir}/p%{pkgname}python
%{_bindir}/%{pkgname}WrapPython
%{_bindir}/%{pkgname}WrapPythonInit
%{python3_sitearch}/%{pkgname}/ %{python3_sitearch}/%{pkgname}/
%files tcl %files tcl
%defattr(-,root,root,-) %defattr(-,root,root,-)
%{_bindir}/%{pkgname}
%{_bindir}/%{pkgname}WrapTcl
%{_bindir}/%{pkgname}WrapTclInit
%{_datadir}/tcl/%{pkgname}/ %{_datadir}/tcl/%{pkgname}/
%files qt %files qt

View File

@ -1,3 +1,46 @@
-------------------------------------------------------------------
Thu Sep 28 10:43:27 UTC 2017 - badshah400@gmail.com
- Drop vtk-compat_gl-rpmlintrc: openSUSE:Factory bots don't accept
conditional sources and one rpmlintrc file is sufficient for
both main and linked packages anyway.
-------------------------------------------------------------------
Tue Sep 19 10:46:40 UTC 2017 - kkhere.geo@gmail.com
- do not exclude libViewsGeovisJava.so from devel package
This library is required for development.
- package vtk binary in devel package.
- VTKTargets-debug.cmake tests for the existance of the library (line 3394)
and the binary (line 3404) and causes an error if the files do
not exist
-------------------------------------------------------------------
Thu Sep 14 20:54:34 UTC 2017 - stefan.bruens@rwth-aachen.de
- Remove the various subpackage Requires from the devel package
again. The qt subpackage contains a Qt Designer plugin and no
dependency at all. Package the vtkWrap{Tcl,Java,Python} wrapper
generators in the devel package, as these are useless without
the vtk headers files.
- Fix description/summary of vtk-qt subpackage
-------------------------------------------------------------------
Tue Sep 12 12:33:38 UTC 2017 - kkhere.geo@gmail.com
- devel subpackage should require -tcl, -java and -qt subpackages
since the *.cmake files refer to files in those subpackages
-------------------------------------------------------------------
Mon Sep 11 13:46:28 UTC 2017 - stefan.bruens@rwth-aachen.de
- Add 0001-Allow-compilation-on-GLES-platforms.patch
The QOpenGLFunctions_3_2_Core class providing the framebuffer
blit functions is not available on GLES 2 builds of Qt5. Let Qt
handle the framebuffer blit, and just use the GLES/GL subset
provided by QOpenGLFunctions for the remainder.
Fix for https://gitlab.kitware.com/vtk/vtk/issues/17113
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Sep 1 00:13:18 UTC 2017 - badshah400@gmail.com Fri Sep 1 00:13:18 UTC 2017 - badshah400@gmail.com

View File

@ -45,15 +45,13 @@ Url: http://vtk.org/
Source: http://www.vtk.org/files/release/%{series}/VTK-%{version}.tar.gz Source: http://www.vtk.org/files/release/%{series}/VTK-%{version}.tar.gz
# FIXME See if packaging can be tweaked to accommodate python-vtk's devel files in a devel package later # 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 # We need to use the compat conditionals here to avoid Factory's source validator from tripping up
%if %{compat_gl}
Source1: vtk-compat_gl-rpmlintrc
%else
Source1: vtk-rpmlintrc Source1: vtk-rpmlintrc
%endif
# PATCH-FIX-UPSTREAM vtk-fix-file-contains-date-time.patch badshah400@gmail.com -- Fix file containing DATE and TIME # PATCH-FIX-UPSTREAM vtk-fix-file-contains-date-time.patch badshah400@gmail.com -- Fix file containing DATE and TIME
Patch1: vtk-fix-file-contains-date-time.patch Patch1: vtk-fix-file-contains-date-time.patch
# PATCH-FIX-UPSTREAM vtk-Rinterface-uintptr_t.patch boo#985386 badshah400@gmail.com -- Fix issues with uintptr_t redefinition by defining the HAVE_UINTPTR_T macro using cmake functions to avoid redefinition of uintptr_t, which is already defined in stdint.h called earlier; patch sent upstream # PATCH-FIX-UPSTREAM vtk-Rinterface-uintptr_t.patch boo#985386 badshah400@gmail.com -- Fix issues with uintptr_t redefinition by defining the HAVE_UINTPTR_T macro using cmake functions to avoid redefinition of uintptr_t, which is already defined in stdint.h called earlier; patch sent upstream
Patch2: vtk-Rinterface-uintptr_t.patch Patch2: vtk-Rinterface-uintptr_t.patch
# PATCH-FIX-OPENSUSE 0001-Allow-compilation-on-GLES-platforms.patch VTK issue #17113 stefan.bruens@rwth-aachen.de -- Fix building with Qt GLES builds
Patch3: 0001-Allow-compilation-on-GLES-platforms.patch
BuildRequires: Mesa-libGL-devel BuildRequires: Mesa-libGL-devel
BuildRequires: R-base-devel BuildRequires: R-base-devel
BuildRequires: boost-devel BuildRequires: boost-devel
@ -216,7 +214,7 @@ rendering and visualization.
This package provides python bindings for VTK. This package provides python bindings for VTK.
%package qt %package qt
Summary: Qt VTK widget Summary: Qt Designer plugin for QVTKWidget
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
Requires: %{shlib} = %{version} Requires: %{shlib} = %{version}
%if %{compat_gl} %if %{compat_gl}
@ -230,7 +228,7 @@ Conflicts: vtk-compat_gl-qt
VTK is a software system for image processing, 3D graphics, volume VTK is a software system for image processing, 3D graphics, volume
rendering and visualization. rendering and visualization.
This package provides Qt bindings for VTK. This package provides a Qt Designer plugin for the QVTKWidget.
%package tcl %package tcl
Summary: Tcl bindings for VTK Summary: Tcl bindings for VTK
@ -290,6 +288,7 @@ This package provides a few testing programs for VTK.
%setup -q -n VTK-%{version} %setup -q -n VTK-%{version}
%patch1 -p1 %patch1 -p1
%patch2 -p1 %patch2 -p1
%patch3 -p1
# Replace relative path ../../../VTKData with %%{_datadir}/%%{pkgname}data-%%{version} # Replace relative path ../../../VTKData with %%{_datadir}/%%{pkgname}data-%%{version}
# otherwise it will break on symlinks. # otherwise it will break on symlinks.
@ -432,9 +431,16 @@ chrpath -d %{buildroot}%{_bindir}/*
%files devel %files devel
%defattr(-,root,root,-) %defattr(-,root,root,-)
%doc Copyright.txt %doc Copyright.txt
%{_bindir}/%{pkgname}
%{_bindir}/%{pkgname}EncodeString %{_bindir}/%{pkgname}EncodeString
%{_bindir}/%{pkgname}HashSource %{_bindir}/%{pkgname}HashSource
%{_bindir}/%{pkgname}WrapHierarchy %{_bindir}/%{pkgname}WrapHierarchy
%{_bindir}/%{pkgname}ParseJava
%{_bindir}/%{pkgname}WrapJava
%{_bindir}/%{pkgname}WrapPython
%{_bindir}/%{pkgname}WrapPythonInit
%{_bindir}/%{pkgname}WrapTcl
%{_bindir}/%{pkgname}WrapTclInit
%if %{compat_gl} %if %{compat_gl}
%{_bindir}/%{pkgname}ParseOGLExt %{_bindir}/%{pkgname}ParseOGLExt
%endif %endif
@ -451,30 +457,19 @@ chrpath -d %{buildroot}%{_bindir}/*
%{_libdir}/libvtkWrappingTools.a %{_libdir}/libvtkWrappingTools.a
%{_includedir}/%{pkgname}-%{series}/ %{_includedir}/%{pkgname}-%{series}/
%exclude %{_datadir}/tcl/vtk/vtktcl.c %exclude %{_datadir}/tcl/vtk/vtktcl.c
# This goes in the vtk-java subpackage, not a devel symlink
%exclude %{_libdir}/libvtkViewsGeovisJava.so
#
%files java %files java
%defattr(-,root,root,-) %defattr(-,root,root,-)
%{_bindir}/%{pkgname}ParseJava
%{_bindir}/%{pkgname}WrapJava
%{_libdir}/%{pkgname}.jar %{_libdir}/%{pkgname}.jar
%{_libdir}/libvtkViewsGeovisJava.so
%files -n python3-%{name} %files -n python3-%{name}
%defattr(-,root,root,-) %defattr(-,root,root,-)
%{_bindir}/%{pkgname}python %{_bindir}/%{pkgname}python
%{_bindir}/p%{pkgname}python %{_bindir}/p%{pkgname}python
%{_bindir}/%{pkgname}WrapPython
%{_bindir}/%{pkgname}WrapPythonInit
%{python3_sitearch}/%{pkgname}/ %{python3_sitearch}/%{pkgname}/
%files tcl %files tcl
%defattr(-,root,root,-) %defattr(-,root,root,-)
%{_bindir}/%{pkgname}
%{_bindir}/%{pkgname}WrapTcl
%{_bindir}/%{pkgname}WrapTclInit
%{_datadir}/tcl/%{pkgname}/ %{_datadir}/tcl/%{pkgname}/
%files qt %files qt