qmlfrontend/engine_instance.h
changeset 14372 b6824a53d4b1
parent 14290 92e5682810d4
child 14373 4409344db447
equal deleted inserted replaced
14371:90bd2c331703 14372:b6824a53d4b1
     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