1
0
mirror of https://github.com/rwengine/openrw.git synced 2024-11-07 19:32:49 +01:00
openrw/rwviewer/ViewerWindow.hpp

68 lines
1.3 KiB
C++
Raw Normal View History

2014-02-10 13:41:05 +01:00
#ifndef _VIEWERWINDOW_HPP_
#define _VIEWERWINDOW_HPP_
2016-09-09 22:13:21 +02:00
#include <core/Logger.hpp>
2015-04-18 02:11:17 +02:00
#include <engine/GameData.hpp>
#include <engine/GameWorld.hpp>
2018-02-09 13:26:51 +01:00
// Prevent Qt from conflicting with glLoadGen on macOS
#include "OpenGLCompat.h"
#include <QMainWindow>
#include <QTabWidget>
2014-09-21 17:13:01 +02:00
#include <QVBoxLayout>
#include <QOpenGLContext>
#include <QOffscreenSurface>
2014-02-10 13:41:05 +01:00
#include <memory>
2014-02-10 13:41:05 +01:00
class ViewerWidget;
class ViewerInterface;
2015-04-13 02:48:29 +02:00
class GameRenderer;
2014-03-01 12:19:33 +01:00
2016-09-09 22:13:21 +02:00
class ViewerWindow : public QMainWindow {
Q_OBJECT
QOpenGLContext* context_;
QOffscreenSurface* hiddenSurface;
QTabWidget* views;
2015-04-13 02:48:29 +02:00
2016-09-09 22:13:21 +02:00
Logger engineLog;
std::unique_ptr<GameData> gameData;
std::unique_ptr<GameWorld> gameWorld;
std::unique_ptr<GameRenderer> renderer;
2014-02-10 13:41:05 +01:00
public:
2016-09-09 22:13:21 +02:00
ViewerWindow(QWidget* parent = 0, Qt::WindowFlags flags = 0);
~ViewerWindow();
2014-02-10 16:34:09 +01:00
2016-09-09 22:13:21 +02:00
virtual void showEvent(QShowEvent*);
virtual void closeEvent(QCloseEvent*);
2014-02-11 06:46:29 +01:00
ViewerWidget* createViewer();
2014-03-01 12:19:33 +01:00
public slots:
2016-09-09 22:13:21 +02:00
void loadGame();
2014-06-08 02:58:49 +02:00
2016-09-09 22:13:21 +02:00
void loadGame(const QString& path);
2014-06-08 02:58:49 +02:00
signals:
void gameLoaded(GameWorld*, GameRenderer*);
2014-02-11 15:41:46 +01:00
private slots:
2016-09-09 22:13:21 +02:00
void openRecent();
void showObjectModel(uint16_t object);
2014-02-11 15:41:46 +01:00
private:
2016-09-09 22:13:21 +02:00
QList<QAction*> recentGames;
QAction* recentSep;
void updateRecentGames();
void createMenus();
bool setupEngine();
void createDefaultViews();
bool makeCurrent();
2014-02-10 13:41:05 +01:00
};
2016-09-09 22:13:21 +02:00
#endif