OSG  3.4.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
GraphicsHandleX11.h
Go to the documentation of this file.
1 /* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2009 Robert Osfield
2  *
3  * This library is open source and may be redistributed and/or modified under
4  * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
5  * (at your option) any later version. The full license is in LICENSE file
6  * included with this distribution, and on the openscenegraph.org website.
7  *
8  * This library is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * OpenSceneGraph Public License for more details.
12 */
13 
14 #ifndef OSGVIEWER_GRAPHICSHANDLEX11
15 #define OSGVIEWER_GRAPHICSHANDLEX11 1
16 
17 #include <osgViewer/Export>
18 
19 
20 #if defined(OSG_GLES1_AVAILABLE) || defined(OSG_GLES2_AVAILABLE)
21  #define OSG_USE_EGL
22  #include <X11/X.h>
23  #include <X11/Xlib.h>
24  #include <X11/Xutil.h>
25  #include <EGL/egl.h>
26 #else
27  #define GLX_GLXEXT_PROTOTYPES 1
28  #include <X11/X.h>
29  #include <X11/Xlib.h>
30  #include <X11/Xutil.h>
31  #include <GL/glx.h>
32  #ifndef GLX_VERSION_1_3
33  typedef XID GLXPbuffer;
34  #endif
35 #endif
36 
37 namespace osgViewer
38 {
39 
45 {
46  public:
47 
49  _display(0),
50  _context(0) {}
51 
53  inline void setDisplay(Display* display) { _display = display; }
54 
56  inline Display* getDisplay() const { return _display; }
57 
58  #ifdef OSG_USE_EGL
59  typedef EGLContext Context;
60  typedef EGLSurface Pbuffer;
61  #else
62  typedef GLXContext Context;
64  #endif
65 
67  inline void setContext(Context context) { _context = context; }
68 
70  inline Context getContext() const { return _context; }
71 
72  protected:
73 
74  Display* _display;
75  Context _context;
76 };
77 
78 }
79 
80 #endif
void setDisplay(Display *display)
#define OSGVIEWER_EXPORT
Definition: Export.h:40
XID GLXPbuffer
void setContext(Context context)