Line data Source code
1 :
2 : /* Copyright (c) 2014-2017, 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 : #pragma once
19 :
20 : #include "types.h"
21 : #include <QObject>
22 : #include <eq/windowSystem.h> // base class
23 :
24 : namespace eq
25 : {
26 : namespace qt
27 : {
28 : namespace detail
29 : {
30 : class Window;
31 : }
32 :
33 : class WindowSystem : public QObject, public WindowSystemIF
34 : {
35 : Q_OBJECT
36 :
37 : public:
38 : EQ_API WindowSystem();
39 : EQ_API ~WindowSystem();
40 :
41 : signals:
42 : eq::qt::Window* createImpl(eq::Window&, const WindowSettings&, QThread*);
43 :
44 : private:
45 : WindowFactory* _factory;
46 :
47 : std::string getName() const final;
48 : eq::SystemWindow* createWindow(eq::Window* window,
49 : const WindowSettings& settings) final;
50 : eq::SystemPipe* createPipe(eq::Pipe* pipe) final;
51 : eq::MessagePump* createMessagePump() final;
52 0 : bool hasMainThreadEvents() const final { return true; }
53 : bool setupFont(util::ObjectManager& gl, const void* key,
54 : const std::string& name, const uint32_t size) const final;
55 : };
56 : }
57 : }
|