qmlfrontend/engine_instance.h
author Wuzzy <Wuzzy2@mail.ru>
Mon, 14 Jan 2019 00:34:56 +0100
changeset 14584 ab79cd4a7382
parent 14373 4409344db447
child 14713 cc6ab1e3f7d5
permissions -rw-r--r--
Reverse order of visual gears linked list Now vgears will render in the order they have been added. Older visual gears are rendered earlier, so they are "behind" newer visual gears. This has been primarily done to fix the render order of speech bubbles (bug #287).
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
14154
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
14373
4409344db447 Rework EngineInstance::generatePreview, add preview cleanup function in enginelib
unC0Rr
parents: 14372
diff changeset
     4
#include <QImage>
14154
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
     5
#include <QObject>
14290
92e5682810d4 Prepare to have possibility to pass opengl context to engine
unc0rr
parents: 14271
diff changeset
     6
#include <QOpenGLContext>
14154
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
     7
14372
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14290
diff changeset
     8
#include "engine_interface.h"
14271
1aac8a62be6f Implement send_ipc and read_ipc in engine lib, send_ipc in frontend
unC0Rr
parents: 14154
diff changeset
     9
#include "game_config.h"
1aac8a62be6f Implement send_ipc and read_ipc in engine lib, send_ipc in frontend
unC0Rr
parents: 14154
diff changeset
    10
14154
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:
14372
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14290
diff changeset
    14
  explicit EngineInstance(const QString& libraryPath,
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14290
diff changeset
    15
                          QObject* parent = nullptr);
14154
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
14372
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14290
diff changeset
    18
  Q_PROPERTY(bool isValid READ isValid NOTIFY isValidChanged)
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14290
diff changeset
    19
14290
92e5682810d4 Prepare to have possibility to pass opengl context to engine
unc0rr
parents: 14271
diff changeset
    20
  void sendConfig(const GameConfig& config);
92e5682810d4 Prepare to have possibility to pass opengl context to engine
unc0rr
parents: 14271
diff changeset
    21
  void advance(quint32 ticks);
92e5682810d4 Prepare to have possibility to pass opengl context to engine
unc0rr
parents: 14271
diff changeset
    22
  void renderFrame();
92e5682810d4 Prepare to have possibility to pass opengl context to engine
unc0rr
parents: 14271
diff changeset
    23
  void setOpenGLContext(QOpenGLContext* context);
14373
4409344db447 Rework EngineInstance::generatePreview, add preview cleanup function in enginelib
unC0Rr
parents: 14372
diff changeset
    24
  QImage generatePreview();
14154
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
    25
14372
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14290
diff changeset
    26
  bool isValid() const;
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14290
diff changeset
    27
14154
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
    28
 signals:
14372
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14290
diff changeset
    29
  void isValidChanged(bool isValid);
14154
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:
14290
92e5682810d4 Prepare to have possibility to pass opengl context to engine
unc0rr
parents: 14271
diff changeset
    34
  Engine::EngineInstance* m_instance;
14372
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14290
diff changeset
    35
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14290
diff changeset
    36
  Engine::hedgewars_engine_protocol_version_t*
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14290
diff changeset
    37
      hedgewars_engine_protocol_version;
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14290
diff changeset
    38
  Engine::start_engine_t* start_engine;
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14290
diff changeset
    39
  Engine::generate_preview_t* generate_preview;
14373
4409344db447 Rework EngineInstance::generatePreview, add preview cleanup function in enginelib
unC0Rr
parents: 14372
diff changeset
    40
  Engine::dispose_preview_t* dispose_preview;
14372
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14290
diff changeset
    41
  Engine::cleanup_t* cleanup;
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14290
diff changeset
    42
  Engine::send_ipc_t* send_ipc;
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14290
diff changeset
    43
  Engine::read_ipc_t* read_ipc;
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14290
diff changeset
    44
  Engine::setup_current_gl_context_t* setup_current_gl_context;
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14290
diff changeset
    45
  Engine::render_frame_t* render_frame;
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14290
diff changeset
    46
  Engine::advance_simulation_t* advance_simulation;
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14290
diff changeset
    47
  bool m_isValid;
14154
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