qmlfrontend/main.cpp
changeset 14371 90bd2c331703
parent 14370 ef2fc0210362
child 14372 b6824a53d4b1
equal deleted inserted replaced
14370:ef2fc0210362 14371:90bd2c331703
     2 #include <QGuiApplication>
     2 #include <QGuiApplication>
     3 #include <QLibrary>
     3 #include <QLibrary>
     4 #include <QQmlApplicationEngine>
     4 #include <QQmlApplicationEngine>
     5 
     5 
     6 #include "engine_interface.h"
     6 #include "engine_interface.h"
       
     7 #include "game_view.h"
     7 #include "hwengine.h"
     8 #include "hwengine.h"
       
     9 #include "preview_acceptor.h"
     8 
    10 
     9 namespace Engine {
    11 namespace Engine {
    10 hedgewars_engine_protocol_version_t* hedgewars_engine_protocol_version;
    12 hedgewars_engine_protocol_version_t* hedgewars_engine_protocol_version;
    11 start_engine_t* start_engine;
    13 start_engine_t* start_engine;
    12 generate_preview_t* generate_preview;
    14 generate_preview_t* generate_preview;
    15 read_ipc_t* read_ipc;
    17 read_ipc_t* read_ipc;
    16 setup_current_gl_context_t* setup_current_gl_context;
    18 setup_current_gl_context_t* setup_current_gl_context;
    17 render_frame_t* render_frame;
    19 render_frame_t* render_frame;
    18 advance_simulation_t* advance_simulation;
    20 advance_simulation_t* advance_simulation;
    19 };  // namespace Engine
    21 };  // namespace Engine
       
    22 
       
    23 static QObject* previewacceptor_singletontype_provider(
       
    24     QQmlEngine* engine, QJSEngine* scriptEngine) {
       
    25   Q_UNUSED(scriptEngine)
       
    26 
       
    27   PreviewAcceptor* acceptor = new PreviewAcceptor(engine);
       
    28   return acceptor;
       
    29 }
    20 
    30 
    21 void loadEngineLibrary() {
    31 void loadEngineLibrary() {
    22 #ifdef Q_OS_WIN
    32 #ifdef Q_OS_WIN
    23   QLibrary hwlib("./libhedgewars_engine.dll");
    33   QLibrary hwlib("./libhedgewars_engine.dll");
    24 #else
    34 #else
    62 
    72 
    63   loadEngineLibrary();
    73   loadEngineLibrary();
    64 
    74 
    65   QQmlApplicationEngine engine;
    75   QQmlApplicationEngine engine;
    66 
    76 
    67   HWEngine::exposeToQML();
    77   qmlRegisterSingletonType<PreviewAcceptor>(
       
    78       "Hedgewars.Engine", 1, 0, "PreviewAcceptor",
       
    79       previewacceptor_singletontype_provider);
       
    80   qmlRegisterType<HWEngine>("Hedgewars.Engine", 1, 0, "HWEngine");
       
    81   qmlRegisterType<GameView>("Hedgewars.Engine", 1, 0, "GameView");
       
    82   qmlRegisterUncreatableType<EngineInstance>("Hedgewars.Engine", 1, 0,
       
    83                                              "EngineInstance",
       
    84                                              "Create by HWEngine run methods");
    68 
    85 
    69   engine.load(QUrl(QLatin1String("qrc:/main.qml")));
    86   engine.load(QUrl(QLatin1String("qrc:/main.qml")));
    70   if (engine.rootObjects().isEmpty()) return -1;
    87   if (engine.rootObjects().isEmpty()) return -1;
    71 
    88 
    72   return app.exec();
    89   return app.exec();