1 #ifndef ENGINEINSTANCE_H |
1 #ifndef ENGINEINSTANCE_H |
2 #define ENGINEINSTANCE_H |
2 #define ENGINEINSTANCE_H |
3 |
|
4 #include "engine_interface.h" |
|
5 |
3 |
6 #include <QObject> |
4 #include <QObject> |
7 #include <QOpenGLContext> |
5 #include <QOpenGLContext> |
8 |
6 |
|
7 #include "engine_interface.h" |
9 #include "game_config.h" |
8 #include "game_config.h" |
10 |
9 |
11 class EngineInstance : public QObject { |
10 class EngineInstance : public QObject { |
12 Q_OBJECT |
11 Q_OBJECT |
13 public: |
12 public: |
14 explicit EngineInstance(QObject* parent = nullptr); |
13 explicit EngineInstance(const QString& libraryPath, |
|
14 QObject* parent = nullptr); |
15 ~EngineInstance(); |
15 ~EngineInstance(); |
|
16 |
|
17 Q_PROPERTY(bool isValid READ isValid NOTIFY isValidChanged) |
16 |
18 |
17 void sendConfig(const GameConfig& config); |
19 void sendConfig(const GameConfig& config); |
18 void advance(quint32 ticks); |
20 void advance(quint32 ticks); |
19 void renderFrame(); |
21 void renderFrame(); |
20 void setOpenGLContext(QOpenGLContext* context); |
22 void setOpenGLContext(QOpenGLContext* context); |
21 Engine::PreviewInfo generatePreview(); |
23 Engine::PreviewInfo generatePreview(); |
22 |
24 |
|
25 bool isValid() const; |
|
26 |
23 signals: |
27 signals: |
|
28 void isValidChanged(bool isValid); |
24 |
29 |
25 public slots: |
30 public slots: |
26 |
31 |
27 private: |
32 private: |
28 Engine::EngineInstance* m_instance; |
33 Engine::EngineInstance* m_instance; |
|
34 |
|
35 Engine::hedgewars_engine_protocol_version_t* |
|
36 hedgewars_engine_protocol_version; |
|
37 Engine::start_engine_t* start_engine; |
|
38 Engine::generate_preview_t* generate_preview; |
|
39 Engine::cleanup_t* cleanup; |
|
40 Engine::send_ipc_t* send_ipc; |
|
41 Engine::read_ipc_t* read_ipc; |
|
42 Engine::setup_current_gl_context_t* setup_current_gl_context; |
|
43 Engine::render_frame_t* render_frame; |
|
44 Engine::advance_simulation_t* advance_simulation; |
|
45 bool m_isValid; |
29 }; |
46 }; |
30 |
47 |
31 #endif // ENGINEINSTANCE_H |
48 #endif // ENGINEINSTANCE_H |