Equalizer  1.9.0
Parallel Rendering Framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
wgl/pipe.h
1 
2 /* Copyright (c) 2009-2011, Stefan Eilemann <eile@equalizergraphics.com>
3  * 2009, Maxim Makhinya
4  * 2010, Daniel Nachbaur <danielnachbaur@gmail.com>
5  *
6  * This library is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU Lesser General Public License version 2.1 as published
8  * by the Free Software Foundation.
9  *
10  * This library is distributed in the hope that it will be useful, but WITHOUT
11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12  * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
13  * details.
14  *
15  * You should have received a copy of the GNU Lesser General Public License
16  * along with this library; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18  */
19 
20 #ifndef EQ_WGL_PIPE_H
21 #define EQ_WGL_PIPE_H
22 
23 #include <eq/api.h>
24 #include <eq/gl.h> // GLEW
25 #include <eq/systemPipe.h> // base class
26 
27 namespace eq
28 {
29 namespace wgl
30 {
32  class Pipe : public SystemPipe
33  {
34  public:
36  EQ_API Pipe( eq::Pipe* parent );
37 
39  EQ_API virtual ~Pipe( );
40 
49  EQ_API virtual bool configInit();
50 
57  EQ_API virtual void configExit();
59 
72  EQ_API bool createWGLAffinityDC( HDC& affinityDC );
73 
82  EQ_API HDC createWGLDisplayDC();
83 
85  WGLEWContext* wglewGetContext() { return _wglewContext; }
86 
87  protected:
97  virtual bool configInitGL() { return true; }
98 
99  private:
101  WGLEWContext* const _wglewContext;
102 
103  struct Private;
104  Private* _private; // placeholder for binary-compatible changes
105 
106  bool _configInitWGLEW();
107  bool _getGPUHandle( HGPUNV& handle );
108  };
109 }
110 }
111 #endif // EQ_WGL_PIPE_H
Defines export visibility macros for Equalizer.
virtual EQ_API ~Pipe()
Destruct this WGL system pipe.
EQ_API bool createWGLAffinityDC(HDC &affinityDC)
Create a device context bound only to the display device of this pipe.
A Pipe represents a graphics card (GPU) on a Node.
Definition: pipe.h:50
Equalizer default implementation of a WGL GPU.
Definition: wgl/pipe.h:32
EQ_API Pipe(eq::Pipe *parent)
Construct a new WGL system pipe.
EQ_API HDC createWGLDisplayDC()
Create a device context on the display device of this pipe.
The interface definition for system-specific GPU handling.
Definition: systemPipe.h:38
virtual bool configInitGL()
Initialize this pipe for OpenGL.
Definition: wgl/pipe.h:97
virtual EQ_API void configExit()
Deinitialize this pipe for the WGL window system.
virtual EQ_API bool configInit()
Initialize this pipe for the WGL window system.
WGLEWContext * wglewGetContext()
Definition: wgl/pipe.h:85
Includes OpenGL and GLEW headers.