qmlfrontend/main.cpp
author unC0Rr
Fri, 07 Dec 2018 13:56:45 +0100
changeset 14377 b6824a53d4b1
parent 14376 90bd2c331703
child 14859 aed75d439027
permissions -rw-r--r--
Allow to instantiate HWEngine with different library binaries
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
14159
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents: 14148
diff changeset
     1
#include <QDebug>
12859
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
     2
#include <QGuiApplication>
14159
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents: 14148
diff changeset
     3
#include <QLibrary>
12859
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
     4
#include <QQmlApplicationEngine>
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
     5
14159
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents: 14148
diff changeset
     6
#include "engine_interface.h"
14376
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14375
diff changeset
     7
#include "game_view.h"
14148
745c73e0e644 Start working on frontend to rust engine rewrite
unC0Rr
parents: 12859
diff changeset
     8
#include "hwengine.h"
14376
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14375
diff changeset
     9
#include "preview_acceptor.h"
14148
745c73e0e644 Start working on frontend to rust engine rewrite
unC0Rr
parents: 12859
diff changeset
    10
14377
b6824a53d4b1 Allow to instantiate HWEngine with different library binaries
unC0Rr
parents: 14376
diff changeset
    11
namespace Engine {};  // namespace Engine
14159
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents: 14148
diff changeset
    12
14376
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14375
diff changeset
    13
static QObject* previewacceptor_singletontype_provider(
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14375
diff changeset
    14
    QQmlEngine* engine, QJSEngine* scriptEngine) {
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14375
diff changeset
    15
  Q_UNUSED(scriptEngine)
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14375
diff changeset
    16
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14375
diff changeset
    17
  PreviewAcceptor* acceptor = new PreviewAcceptor(engine);
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14375
diff changeset
    18
  return acceptor;
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14375
diff changeset
    19
}
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14375
diff changeset
    20
14148
745c73e0e644 Start working on frontend to rust engine rewrite
unC0Rr
parents: 12859
diff changeset
    21
int main(int argc, char* argv[]) {
12859
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
    22
  QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
    23
  QGuiApplication app(argc, argv);
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
    24
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
    25
  QQmlApplicationEngine engine;
14148
745c73e0e644 Start working on frontend to rust engine rewrite
unC0Rr
parents: 12859
diff changeset
    26
14376
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14375
diff changeset
    27
  qmlRegisterSingletonType<PreviewAcceptor>(
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14375
diff changeset
    28
      "Hedgewars.Engine", 1, 0, "PreviewAcceptor",
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14375
diff changeset
    29
      previewacceptor_singletontype_provider);
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14375
diff changeset
    30
  qmlRegisterType<HWEngine>("Hedgewars.Engine", 1, 0, "HWEngine");
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14375
diff changeset
    31
  qmlRegisterType<GameView>("Hedgewars.Engine", 1, 0, "GameView");
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14375
diff changeset
    32
  qmlRegisterUncreatableType<EngineInstance>("Hedgewars.Engine", 1, 0,
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14375
diff changeset
    33
                                             "EngineInstance",
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14375
diff changeset
    34
                                             "Create by HWEngine run methods");
14148
745c73e0e644 Start working on frontend to rust engine rewrite
unC0Rr
parents: 12859
diff changeset
    35
12859
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
    36
  engine.load(QUrl(QLatin1String("qrc:/main.qml")));
14148
745c73e0e644 Start working on frontend to rust engine rewrite
unC0Rr
parents: 12859
diff changeset
    37
  if (engine.rootObjects().isEmpty()) return -1;
12859
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
    38
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
    39
  return app.exec();
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
    40
}