qmlfrontend/engine_instance.cpp
author unc0rr
Sun, 25 Nov 2018 22:32:49 +0100
changeset 14294 21be7838a127
parent 14290 92e5682810d4
child 14298 00b56ec8b7df
permissions -rw-r--r--
Add advance_simulation() function to engine lib, some WIP on frontend
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
#include "engine_instance.h"
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
     2
14294
21be7838a127 Add advance_simulation() function to engine lib, some WIP on frontend
unc0rr
parents: 14290
diff changeset
     3
extern "C" void (*getProcAddress())(const char* fn) { return nullptr; }
21be7838a127 Add advance_simulation() function to engine lib, some WIP on frontend
unc0rr
parents: 14290
diff changeset
     4
14290
92e5682810d4 Prepare to have possibility to pass opengl context to engine
unc0rr
parents: 14271
diff changeset
     5
EngineInstance::EngineInstance(QObject* parent)
14154
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
     6
    : QObject(parent), m_instance(Engine::start_engine()) {}
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
     7
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
     8
EngineInstance::~EngineInstance() { Engine::cleanup(m_instance); }
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
     9
14290
92e5682810d4 Prepare to have possibility to pass opengl context to engine
unc0rr
parents: 14271
diff changeset
    10
void EngineInstance::sendConfig(const GameConfig& config) {
14271
1aac8a62be6f Implement send_ipc and read_ipc in engine lib, send_ipc in frontend
unC0Rr
parents: 14154
diff changeset
    11
  for (auto b : config.config()) {
14290
92e5682810d4 Prepare to have possibility to pass opengl context to engine
unc0rr
parents: 14271
diff changeset
    12
    Engine::send_ipc(m_instance, reinterpret_cast<uint8_t*>(b.data()),
14271
1aac8a62be6f Implement send_ipc and read_ipc in engine lib, send_ipc in frontend
unC0Rr
parents: 14154
diff changeset
    13
                     static_cast<size_t>(b.size()));
1aac8a62be6f Implement send_ipc and read_ipc in engine lib, send_ipc in frontend
unC0Rr
parents: 14154
diff changeset
    14
  }
1aac8a62be6f Implement send_ipc and read_ipc in engine lib, send_ipc in frontend
unC0Rr
parents: 14154
diff changeset
    15
}
1aac8a62be6f Implement send_ipc and read_ipc in engine lib, send_ipc in frontend
unC0Rr
parents: 14154
diff changeset
    16
14290
92e5682810d4 Prepare to have possibility to pass opengl context to engine
unc0rr
parents: 14271
diff changeset
    17
void EngineInstance::advance(quint32 ticks) {}
92e5682810d4 Prepare to have possibility to pass opengl context to engine
unc0rr
parents: 14271
diff changeset
    18
92e5682810d4 Prepare to have possibility to pass opengl context to engine
unc0rr
parents: 14271
diff changeset
    19
void EngineInstance::renderFrame() {}
92e5682810d4 Prepare to have possibility to pass opengl context to engine
unc0rr
parents: 14271
diff changeset
    20
14294
21be7838a127 Add advance_simulation() function to engine lib, some WIP on frontend
unc0rr
parents: 14290
diff changeset
    21
void EngineInstance::setOpenGLContext(QOpenGLContext* context) {
21be7838a127 Add advance_simulation() function to engine lib, some WIP on frontend
unc0rr
parents: 14290
diff changeset
    22
  Engine::setup_current_gl_context(m_instance, 0, 0, &getProcAddress);
21be7838a127 Add advance_simulation() function to engine lib, some WIP on frontend
unc0rr
parents: 14290
diff changeset
    23
}
14290
92e5682810d4 Prepare to have possibility to pass opengl context to engine
unc0rr
parents: 14271
diff changeset
    24
14154
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
    25
Engine::PreviewInfo EngineInstance::generatePreview() {
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
    26
  Engine::PreviewInfo pinfo;
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
    27
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
    28
  Engine::generate_preview(m_instance, &pinfo);
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
    29
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
    30
  return pinfo;
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents:
diff changeset
    31
}