Equalizer  1.12.0
Parallel Rendering Framework
glx/pipe.h
1 
2 /* Copyright (c) 2009-2014, Stefan Eilemann <eile@equalizergraphics.com>
3  * 2009, Maxim Makhinya
4  *
5  * This library is free software; you can redistribute it and/or modify it under
6  * the terms of the GNU Lesser General Public License version 2.1 as published
7  * by the Free Software Foundation.
8  *
9  * This library is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11  * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12  * details.
13  *
14  * You should have received a copy of the GNU Lesser General Public License
15  * along with this library; if not, write to the Free Software Foundation, Inc.,
16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17  */
18 
19 #ifndef EQ_GLX_PIPE_H
20 #define EQ_GLX_PIPE_H
21 
22 #include <eq/glx/types.h>
23 
24 #include <eq/systemPipe.h> // base class
25 
26 namespace eq
27 {
28 namespace glx
29 {
30 namespace detail { class Pipe; }
31 
33 class Pipe : public SystemPipe
34 {
35 public:
37  Pipe( eq::Pipe* parent );
38 
40  virtual ~Pipe();
41 
50  EQ_API virtual bool configInit();
51 
58  EQ_API virtual void configExit();
60 
62  EQ_API Display* getXDisplay() const;
63 
65  EQ_API GLXEWContext* glxewGetContext();
66 
68  static bool getGPUInfo( Display* display, GPUInfo& info );
69 
70 protected:
80  void setXDisplay( Display* display );
81 
87  std::string getXDisplayString();
88 
97  virtual bool configInitGL() { return true; }
98 
99 private:
100  detail::Pipe* const _impl;
101 
102  bool _configInitGLXEW();
103 };
104 }
105 }
106 #endif // EQ_GLX_PIPE_H
std::string getXDisplayString()
A Pipe represents a graphics card (GPU) on a Node.
Definition: pipe.h:50
virtual ~Pipe()
Destruct this glX pipe.
virtual bool configInitGL()
Initialize this pipe for OpenGL.
Definition: glx/pipe.h:97
The interface definition for system-specific GPU handling.
Definition: systemPipe.h:38
Pipe(eq::Pipe *parent)
Construct a new glX system pipe.
The Equalizer client library.
Definition: eq/agl/types.h:23
EQ_API Display * getXDisplay() const
virtual EQ_API void configExit()
Deinitialize this pipe for the GLX window system.
void setXDisplay(Display *display)
Set the X display connection for this pipe.
Default implementation of a glX system pipe.
Definition: glx/pipe.h:33
EQ_API GLXEWContext * glxewGetContext()
virtual EQ_API bool configInit()
Initialize this pipe for the GLX window system.