qmlfrontend/engine_instance.cpp
changeset 14713 cc6ab1e3f7d5
parent 14373 4409344db447
child 14854 aed75d439027
equal deleted inserted replaced
14712:57293f34ce59 14713:cc6ab1e3f7d5
    39           hwlib.resolve("setup_current_gl_context"));
    39           hwlib.resolve("setup_current_gl_context"));
    40   render_frame =
    40   render_frame =
    41       reinterpret_cast<Engine::render_frame_t*>(hwlib.resolve("render_frame"));
    41       reinterpret_cast<Engine::render_frame_t*>(hwlib.resolve("render_frame"));
    42   advance_simulation = reinterpret_cast<Engine::advance_simulation_t*>(
    42   advance_simulation = reinterpret_cast<Engine::advance_simulation_t*>(
    43       hwlib.resolve("advance_simulation"));
    43       hwlib.resolve("advance_simulation"));
       
    44   move_camera =
       
    45       reinterpret_cast<Engine::move_camera_t*>(hwlib.resolve("move_camera"));
    44 
    46 
    45   m_isValid = hedgewars_engine_protocol_version && start_engine &&
    47   m_isValid = hedgewars_engine_protocol_version && start_engine &&
    46               generate_preview && dispose_preview && cleanup && send_ipc &&
    48               generate_preview && dispose_preview && cleanup && send_ipc &&
    47               read_ipc && setup_current_gl_context && render_frame &&
    49               read_ipc && setup_current_gl_context && render_frame &&
    48               advance_simulation;
    50               advance_simulation && move_camera;
    49   emit isValidChanged(m_isValid);
    51   emit isValidChanged(m_isValid);
    50 
    52 
    51   if (isValid()) {
    53   if (isValid()) {
    52     qDebug() << "Loaded engine library with protocol version"
    54     qDebug() << "Loaded engine library with protocol version"
    53              << hedgewars_engine_protocol_version();
    55              << hedgewars_engine_protocol_version();
    54 
    56 
    55     m_instance = start_engine();
    57     m_instance = start_engine();
       
    58   } else {
       
    59     qDebug("Engine library load failed");
    56   }
    60   }
    57 }
    61 }
    58 
    62 
    59 EngineInstance::~EngineInstance() {
    63 EngineInstance::~EngineInstance() {
    60   if (m_isValid) cleanup(m_instance);
    64   if (m_isValid) cleanup(m_instance);
    67   }
    71   }
    68 }
    72 }
    69 
    73 
    70 void EngineInstance::advance(quint32 ticks) {
    74 void EngineInstance::advance(quint32 ticks) {
    71   advance_simulation(m_instance, ticks);
    75   advance_simulation(m_instance, ticks);
       
    76 }
       
    77 
       
    78 void EngineInstance::moveCamera(const QPoint& delta) {
       
    79   move_camera(m_instance, delta.x(), delta.y());
    72 }
    80 }
    73 
    81 
    74 void EngineInstance::renderFrame() { render_frame(m_instance); }
    82 void EngineInstance::renderFrame() { render_frame(m_instance); }
    75 
    83 
    76 void EngineInstance::setOpenGLContext(QOpenGLContext* context) {
    84 void EngineInstance::setOpenGLContext(QOpenGLContext* context) {