Equalizer  1.10.1
Parallel Rendering Framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
qt/windowSystem.h
1 
2 /* Copyright (c) 2014, Daniel Nachbaur <danielnachbaur@gmail.com>
3  *
4  * This library is free software; you can redistribute it and/or modify it under
5  * the terms of the GNU Lesser General Public License version 2.1 as published
6  * by the Free Software Foundation.
7  *
8  * This library is distributed in the hope that it will be useful, but WITHOUT
9  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
10  * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
11  * details.
12  *
13  * You should have received a copy of the GNU Lesser General Public License
14  * along with this library; if not, write to the Free Software Foundation, Inc.,
15  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16  */
17 
18 #ifndef EQ_QT_WINDOWSYSTEM_H
19 #define EQ_QT_WINDOWSYSTEM_H
20 
21 #include "types.h"
22 #include <eq/windowSystem.h> // base class
23 #include <QObject>
24 
25 namespace eq
26 {
27 namespace qt
28 {
29 namespace detail { class Window; }
30 
31 class WindowSystem : public QObject, public WindowSystemIF
32 {
33  Q_OBJECT
34 
35 public:
36  EQ_API WindowSystem();
37  EQ_API ~WindowSystem();
38 
39 signals:
40  eq::qt::detail::Window* createImpl( const WindowSettings&, QThread* );
41 
42 private:
43  WindowFactory* _factory;
44 
45  std::string getName() const final;
46  eq::SystemWindow* createWindow( eq::Window* window,
47  const WindowSettings& settings ) final;
48  eq::SystemPipe* createPipe( eq::Pipe* pipe ) final;
49  eq::MessagePump* createMessagePump() final;
50  bool hasMainThreadEvents() const final { return true; }
51  bool setupFont( util::ObjectManager& gl, const void* key,
52  const std::string& name, const uint32_t size ) const final;
53 };
54 
55 }
56 }
57 
58 #endif
A Pipe represents a graphics card (GPU) on a Node.
Definition: pipe.h:50
A set of settings to setup an eq::SystemWindow.
An interface to process system messages or events.
Definition: messagePump.h:27
A Window represents an on-screen or off-screen drawable.
Definition: window.h:64
The interface definition for system-specific GPU handling.
Definition: systemPipe.h:38
The interface definition for system-specific windowing code.
Definition: systemWindow.h:35
A facility class to manage OpenGL objects across shared contexts.
Definition: objectManager.h:52
The interface for windowing toolkits.
Definition: windowSystem.h:40