qmlfrontend/engine_instance.h
author alfadur <mail@none>
Mon, 04 Feb 2019 20:25:35 +0300
changeset 14678 08a8605bafaf
parent 14378 4409344db447
child 14718 cc6ab1e3f7d5
permissions -rw-r--r--
Server action refactoring part 4 of N
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
14159
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
     1
#ifndef ENGINEINSTANCE_H
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
     2
#define ENGINEINSTANCE_H
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
     3
14378
4409344db447 Rework EngineInstance::generatePreview, add preview cleanup function in enginelib
unC0Rr
parents: 14377
diff changeset
     4
#include <QImage>
14159
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
     5
#include <QObject>
14295
92e5682810d4 Prepare to have possibility to pass opengl context to engine
unc0rr
parents: 14276
diff changeset
     6
#include <QOpenGLContext>
14159
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
     7
14377
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14295
diff changeset
     8
#include "engine_interface.h"
14276
1aac8a62be6f Implement send_ipc and read_ipc in engine lib, send_ipc in frontend
unC0Rr
parents: 14159
diff changeset
     9
#include "game_config.h"
1aac8a62be6f Implement send_ipc and read_ipc in engine lib, send_ipc in frontend
unC0Rr
parents: 14159
diff changeset
    10
14159
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
    11
class EngineInstance : public QObject {
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
    12
  Q_OBJECT
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
    13
 public:
14377
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14295
diff changeset
    14
  explicit EngineInstance(const QString& libraryPath,
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14295
diff changeset
    15
                          QObject* parent = nullptr);
14159
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
    16
  ~EngineInstance();
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
    17
14377
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14295
diff changeset
    18
  Q_PROPERTY(bool isValid READ isValid NOTIFY isValidChanged)
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14295
diff changeset
    19
14295
92e5682810d4 Prepare to have possibility to pass opengl context to engine
unc0rr
parents: 14276
diff changeset
    20
  void sendConfig(const GameConfig& config);
92e5682810d4 Prepare to have possibility to pass opengl context to engine
unc0rr
parents: 14276
diff changeset
    21
  void advance(quint32 ticks);
92e5682810d4 Prepare to have possibility to pass opengl context to engine
unc0rr
parents: 14276
diff changeset
    22
  void renderFrame();
92e5682810d4 Prepare to have possibility to pass opengl context to engine
unc0rr
parents: 14276
diff changeset
    23
  void setOpenGLContext(QOpenGLContext* context);
14378
4409344db447 Rework EngineInstance::generatePreview, add preview cleanup function in enginelib
unC0Rr
parents: 14377
diff changeset
    24
  QImage generatePreview();
14159
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
    25
14377
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14295
diff changeset
    26
  bool isValid() const;
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14295
diff changeset
    27
14159
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
    28
 signals:
14377
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14295
diff changeset
    29
  void isValidChanged(bool isValid);
14159
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
    30
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
    31
 public slots:
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
    32
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
    33
 private:
14295
92e5682810d4 Prepare to have possibility to pass opengl context to engine
unc0rr
parents: 14276
diff changeset
    34
  Engine::EngineInstance* m_instance;
14377
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14295
diff changeset
    35
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14295
diff changeset
    36
  Engine::hedgewars_engine_protocol_version_t*
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14295
diff changeset
    37
      hedgewars_engine_protocol_version;
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14295
diff changeset
    38
  Engine::start_engine_t* start_engine;
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14295
diff changeset
    39
  Engine::generate_preview_t* generate_preview;
14378
4409344db447 Rework EngineInstance::generatePreview, add preview cleanup function in enginelib
unC0Rr
parents: 14377
diff changeset
    40
  Engine::dispose_preview_t* dispose_preview;
14377
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14295
diff changeset
    41
  Engine::cleanup_t* cleanup;
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14295
diff changeset
    42
  Engine::send_ipc_t* send_ipc;
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14295
diff changeset
    43
  Engine::read_ipc_t* read_ipc;
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14295
diff changeset
    44
  Engine::setup_current_gl_context_t* setup_current_gl_context;
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14295
diff changeset
    45
  Engine::render_frame_t* render_frame;
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14295
diff changeset
    46
  Engine::advance_simulation_t* advance_simulation;
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14295
diff changeset
    47
  bool m_isValid;
14159
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
    48
};
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
    49
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
    50
#endif  // ENGINEINSTANCE_H