qmlfrontend/main.cpp
author unC0Rr
Tue, 03 Sep 2024 11:16:52 +0200
branchtransitional_engine
changeset 16028 509ecce37522
parent 16010 a73b9770467a
permissions -rw-r--r--
Make outline template generator behave more like old engine
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: 14143
diff changeset
     1
#include <QDebug>
12854
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
     2
#include <QGuiApplication>
14154
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents: 14143
diff changeset
     3
#include <QLibrary>
12854
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
     4
#include <QQmlApplicationEngine>
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
     5
14154
8354b390f1a2 Some refactoring of qmlfrontend. It now shows land preview generated by hedgewars-engine
unC0Rr
parents: 14143
diff changeset
     6
#include "engine_interface.h"
14371
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
     7
#include "game_view.h"
14143
745c73e0e644 Start working on frontend to rust engine rewrite
unC0Rr
parents: 12854
diff changeset
     8
#include "hwengine.h"
14915
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14854
diff changeset
     9
#include "net_session.h"
14371
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    10
#include "preview_acceptor.h"
14143
745c73e0e644 Start working on frontend to rust engine rewrite
unC0Rr
parents: 12854
diff changeset
    11
14371
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    12
static QObject* previewacceptor_singletontype_provider(
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    13
    QQmlEngine* engine, QJSEngine* scriptEngine) {
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    14
  Q_UNUSED(scriptEngine)
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    15
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    16
  PreviewAcceptor* acceptor = new PreviewAcceptor(engine);
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    17
  return acceptor;
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    18
}
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    19
14143
745c73e0e644 Start working on frontend to rust engine rewrite
unC0Rr
parents: 12854
diff changeset
    20
int main(int argc, char* argv[]) {
12854
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
    21
  QGuiApplication app(argc, argv);
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
    22
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
    23
  QQmlApplicationEngine engine;
14143
745c73e0e644 Start working on frontend to rust engine rewrite
unC0Rr
parents: 12854
diff changeset
    24
15217
b32c52c76977 Marry C enums, Qt's metaobject system and QML
unc0rr
parents: 14915
diff changeset
    25
  qRegisterMetaType<Engine::SimpleEventType>();
b32c52c76977 Marry C enums, Qt's metaobject system and QML
unc0rr
parents: 14915
diff changeset
    26
  qRegisterMetaType<Engine::LongEventType>();
b32c52c76977 Marry C enums, Qt's metaobject system and QML
unc0rr
parents: 14915
diff changeset
    27
  qRegisterMetaType<Engine::LongEventState>();
b32c52c76977 Marry C enums, Qt's metaobject system and QML
unc0rr
parents: 14915
diff changeset
    28
  qRegisterMetaType<Engine::PositionedEventType>();
14854
aed75d439027 Implement external events approach to input user actions into engine.
unc0rr
parents: 14372
diff changeset
    29
14371
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    30
  qmlRegisterSingletonType<PreviewAcceptor>(
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    31
      "Hedgewars.Engine", 1, 0, "PreviewAcceptor",
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    32
      previewacceptor_singletontype_provider);
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    33
  qmlRegisterType<HWEngine>("Hedgewars.Engine", 1, 0, "HWEngine");
90bd2c331703 Add possibility to instantiate HWEngine objects from QML, reorganize work with preview
unC0Rr
parents: 14370
diff changeset
    34
  qmlRegisterType<GameView>("Hedgewars.Engine", 1, 0, "GameView");
14915
a3ad06ac390e Proof of concept for new net game client
unc0rr
parents: 14854
diff changeset
    35
  qmlRegisterType<NetSession>("Hedgewars.Engine", 1, 0, "NetSession");
16010
a73b9770467a Port QML frontend to Qt6, use rendering to framebuffer object
unC0Rr
parents: 15217
diff changeset
    36
  qmlRegisterUncreatableType<EngineInstance>(
a73b9770467a Port QML frontend to Qt6, use rendering to framebuffer object
unC0Rr
parents: 15217
diff changeset
    37
      "Hedgewars.Engine", 1, 0, "EngineInstance",
a73b9770467a Port QML frontend to Qt6, use rendering to framebuffer object
unC0Rr
parents: 15217
diff changeset
    38
      QStringLiteral("Create by HWEngine run methods"));
14143
745c73e0e644 Start working on frontend to rust engine rewrite
unC0Rr
parents: 12854
diff changeset
    39
15217
b32c52c76977 Marry C enums, Qt's metaobject system and QML
unc0rr
parents: 14915
diff changeset
    40
  qmlRegisterUncreatableMetaObject(Engine::staticMetaObject, "Hedgewars.Engine",
16010
a73b9770467a Port QML frontend to Qt6, use rendering to framebuffer object
unC0Rr
parents: 15217
diff changeset
    41
                                   1, 0, "Engine",
a73b9770467a Port QML frontend to Qt6, use rendering to framebuffer object
unC0Rr
parents: 15217
diff changeset
    42
                                   QStringLiteral("Namespace: only enums"));
15217
b32c52c76977 Marry C enums, Qt's metaobject system and QML
unc0rr
parents: 14915
diff changeset
    43
16010
a73b9770467a Port QML frontend to Qt6, use rendering to framebuffer object
unC0Rr
parents: 15217
diff changeset
    44
  engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
14143
745c73e0e644 Start working on frontend to rust engine rewrite
unC0Rr
parents: 12854
diff changeset
    45
  if (engine.rootObjects().isEmpty()) return -1;
12854
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
    46
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
    47
  return app.exec();
28cb18c5e712 Add new qmlfrontend project template
unc0rr
parents:
diff changeset
    48
}