From b3b088e83a494ba1bd1341433f4e00eb23d3fc4a Mon Sep 17 00:00:00 2001 From: Vicente Adolfo Bolea Sanchez Date: Fri, 20 Nov 2020 14:22:59 -0500 Subject: [PATCH] OpenGLRenderWindow: hide xutil include --- Rendering/OpenGL2/vtkXOpenGLRenderWindow.cxx | 15 ++++++++++++--- Rendering/OpenGL2/vtkXOpenGLRenderWindow.h | 4 ++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/Rendering/OpenGL2/vtkXOpenGLRenderWindow.cxx b/Rendering/OpenGL2/vtkXOpenGLRenderWindow.cxx index 998ac5c3d48..08bcee2a6a2 100644 --- a/Rendering/OpenGL2/vtkXOpenGLRenderWindow.cxx +++ b/Rendering/OpenGL2/vtkXOpenGLRenderWindow.cxx @@ -63,12 +63,21 @@ typedef ptrdiff_t GLsizeiptr; #include #include +#include #if VTK_HAVE_XCURSOR #include #endif #include #include -#include + +/* + * 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 @@ -229,7 +238,7 @@ int XEventTypeEquals(Display*, XEvent* event, XPointer) return event->type == EventType; } -XVisualInfo* vtkXOpenGLRenderWindow::GetDesiredVisualInfo() +vtkXVisualInfo* vtkXOpenGLRenderWindow::GetDesiredVisualInfo() { XVisualInfo* v = nullptr; @@ -263,7 +272,7 @@ XVisualInfo* vtkXOpenGLRenderWindow::GetDesiredVisualInfo() vtkErrorMacro(<< "Could not find a decent visual\n"); } } - return (v); + return reinterpret_cast(v); } vtkXOpenGLRenderWindow::vtkXOpenGLRenderWindow() diff --git a/Rendering/OpenGL2/vtkXOpenGLRenderWindow.h b/Rendering/OpenGL2/vtkXOpenGLRenderWindow.h index 702000df4dd..94ac0d857f5 100644 --- a/Rendering/OpenGL2/vtkXOpenGLRenderWindow.h +++ b/Rendering/OpenGL2/vtkXOpenGLRenderWindow.h @@ -28,11 +28,11 @@ #include "vtkOpenGLRenderWindow.h" #include "vtkRenderingOpenGL2Module.h" // For export macro #include // Needed for X types used in the public interface -#include // Needed for X types used in the public interface #include // for ivar class vtkIdList; class vtkXOpenGLRenderWindowInternal; +struct vtkXVisualInfo; class VTKRENDERINGOPENGL2_EXPORT vtkXOpenGLRenderWindow : public vtkOpenGLRenderWindow { @@ -112,7 +112,7 @@ public: */ virtual Colormap GetDesiredColormap(); virtual Visual* GetDesiredVisual(); - virtual XVisualInfo* GetDesiredVisualInfo(); + virtual vtkXVisualInfo* GetDesiredVisualInfo(); virtual int GetDesiredDepth(); //@} -- GitLab