aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThierry Thomas <thierry@FreeBSD.org>2021-06-20 20:06:41 +0000
committerThierry Thomas <thierry@FreeBSD.org>2021-06-29 10:20:38 +0000
commite67606b6b191a590ef2e373ab5e3f0e32aedae05 (patch)
treefba20a5b63bf12efa381b56d7a39d95fcbb24fd3
parentcefed488ce9e9488d399acf4a50d07de42d57569 (diff)
downloadports-e67606b6b191a590ef2e373ab5e3f0e32aedae05.tar.gz
ports-e67606b6b191a590ef2e373ab5e3f0e32aedae05.zip
math/vtk9: do not pollute namespace with Xutil.h
Add the patch b3b088e8 from upstream, in order to permit cad/opencascade to switch to VTK-9. PR: 256876 Approved by: yuri (maintainer)
-rw-r--r--math/vtk9/Makefile2
-rw-r--r--math/vtk9/files/patch-Rendering_OpenGL2_vtkXOpenGLRenderWindow.cxx44
-rw-r--r--math/vtk9/files/patch-Rendering_OpenGL2_vtkXOpenGLRenderWindow.h24
3 files changed, 69 insertions, 1 deletions
diff --git a/math/vtk9/Makefile b/math/vtk9/Makefile
index 13dba74c3eaf..7268fab0eb9c 100644
--- a/math/vtk9/Makefile
+++ b/math/vtk9/Makefile
@@ -1,6 +1,6 @@
PORTNAME= vtk
DISTVERSION= 9.0.1
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= math graphics
MASTER_SITES= https://vtk.org/files/release/${VTK_SHORT_VER}/
PKGNAMESUFFIX= 9
diff --git a/math/vtk9/files/patch-Rendering_OpenGL2_vtkXOpenGLRenderWindow.cxx b/math/vtk9/files/patch-Rendering_OpenGL2_vtkXOpenGLRenderWindow.cxx
new file mode 100644
index 000000000000..b3870218a2f8
--- /dev/null
+++ b/math/vtk9/files/patch-Rendering_OpenGL2_vtkXOpenGLRenderWindow.cxx
@@ -0,0 +1,44 @@
+--- Rendering/OpenGL2/vtkXOpenGLRenderWindow.cxx.orig 2020-06-26 13:24:40 UTC
++++ Rendering/OpenGL2/vtkXOpenGLRenderWindow.cxx
+@@ -61,10 +61,22 @@ typedef ptrdiff_t GLsizeiptr;
+
+ #include <sstream>
+
++// Patch from upstream b3b088e8
++#include <X11/Xatom.h>
++#include <X11/cursorfont.h>
++
+ #include <X11/Xlib.h>
+ #include <X11/Xutil.h>
+-#include <X11/cursorfont.h>
+
++/*
++ * Work-around to get forward declarations of C typedef of anonymous
++ * structs working. We do not want to include XUtil.h in the header as
++ * it populates the global namespace.
++ */
++struct vtkXVisualInfo : public XVisualInfo
++{
++};
++
+ #define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091
+ #define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092
+ typedef GLXContext (*glXCreateContextAttribsARBProc)(
+@@ -224,7 +236,7 @@ int XEventTypeEquals(Display*, XEvent* event, XPointer
+ return event->type == EventType;
+ }
+
+-XVisualInfo* vtkXOpenGLRenderWindow::GetDesiredVisualInfo()
++vtkXVisualInfo* vtkXOpenGLRenderWindow::GetDesiredVisualInfo()
+ {
+ XVisualInfo* v = nullptr;
+
+@@ -258,7 +270,7 @@ XVisualInfo* vtkXOpenGLRenderWindow::GetDesiredVisualI
+ vtkErrorMacro(<< "Could not find a decent visual\n");
+ }
+ }
+- return (v);
++ return reinterpret_cast<vtkXVisualInfo*>(v);
+ }
+
+ vtkXOpenGLRenderWindow::vtkXOpenGLRenderWindow()
diff --git a/math/vtk9/files/patch-Rendering_OpenGL2_vtkXOpenGLRenderWindow.h b/math/vtk9/files/patch-Rendering_OpenGL2_vtkXOpenGLRenderWindow.h
new file mode 100644
index 000000000000..59457634d2ba
--- /dev/null
+++ b/math/vtk9/files/patch-Rendering_OpenGL2_vtkXOpenGLRenderWindow.h
@@ -0,0 +1,24 @@
+--- Rendering/OpenGL2/vtkXOpenGLRenderWindow.h.orig 2020-06-26 13:24:40 UTC
++++ Rendering/OpenGL2/vtkXOpenGLRenderWindow.h
+@@ -28,11 +28,11 @@
+ #include "vtkOpenGLRenderWindow.h"
+ #include "vtkRenderingOpenGL2Module.h" // For export macro
+ #include <X11/Xlib.h> // Needed for X types used in the public interface
+-#include <X11/Xutil.h> // Needed for X types used in the public interface
+ #include <stack> // for ivar
+
+ class vtkIdList;
+ class vtkXOpenGLRenderWindowInternal;
++struct vtkXVisualInfo;
+
+ class VTKRENDERINGOPENGL2_EXPORT vtkXOpenGLRenderWindow : public vtkOpenGLRenderWindow
+ {
+@@ -112,7 +112,7 @@ class VTKRENDERINGOPENGL2_EXPORT vtkXOpenGLRenderWindo
+ */
+ virtual Colormap GetDesiredColormap();
+ virtual Visual* GetDesiredVisual();
+- virtual XVisualInfo* GetDesiredVisualInfo();
++ virtual vtkXVisualInfo* GetDesiredVisualInfo();
+ virtual int GetDesiredDepth();
+ //@}
+