equal
deleted
inserted
replaced
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(); |