|
1 #include "hwengine.h" |
|
2 |
1 #include <QDebug> |
3 #include <QDebug> |
|
4 #include <QImage> |
2 #include <QLibrary> |
5 #include <QLibrary> |
3 #include <QQmlEngine> |
6 #include <QQmlEngine> |
4 #include <QUuid> |
7 #include <QUuid> |
5 |
8 |
6 #include "engine_instance.h" |
9 #include "engine_instance.h" |
7 #include "engine_interface.h" |
10 #include "engine_interface.h" |
8 #include "game_view.h" |
11 #include "game_view.h" |
9 #include "preview_image_provider.h" |
12 #include "preview_acceptor.h" |
10 |
13 |
11 #include "hwengine.h" |
14 HWEngine::HWEngine(QObject* parent) : QObject(parent) {} |
12 |
|
13 HWEngine::HWEngine(QQmlEngine* engine, QObject* parent) |
|
14 : QObject(parent), |
|
15 m_engine(engine), |
|
16 m_previewProvider(new PreviewImageProvider()) { |
|
17 m_engine->addImageProvider(QLatin1String("preview"), m_previewProvider); |
|
18 } |
|
19 |
15 |
20 HWEngine::~HWEngine() {} |
16 HWEngine::~HWEngine() {} |
21 |
|
22 static QObject* hwengine_singletontype_provider(QQmlEngine* engine, |
|
23 QJSEngine* scriptEngine) { |
|
24 Q_UNUSED(scriptEngine) |
|
25 |
|
26 HWEngine* hwengine = new HWEngine(engine); |
|
27 return hwengine; |
|
28 } |
|
29 |
|
30 void HWEngine::exposeToQML() { |
|
31 qDebug("HWEngine::exposeToQML"); |
|
32 qmlRegisterSingletonType<HWEngine>("Hedgewars.Engine", 1, 0, "HWEngine", |
|
33 hwengine_singletontype_provider); |
|
34 qmlRegisterType<GameView>("Hedgewars.Engine", 1, 0, "GameView"); |
|
35 qmlRegisterUncreatableType<EngineInstance>("Hedgewars.Engine", 1, 0, |
|
36 "EngineInstance", |
|
37 "Create by HWEngine run methods"); |
|
38 } |
|
39 |
17 |
40 void HWEngine::getPreview() { |
18 void HWEngine::getPreview() { |
41 emit previewIsRendering(); |
19 emit previewIsRendering(); |
42 |
20 |
43 m_gameConfig = GameConfig(); |
21 m_gameConfig = GameConfig(); |
56 static_cast<int>(preview.height), |
34 static_cast<int>(preview.height), |
57 QImage::Format_Indexed8); |
35 QImage::Format_Indexed8); |
58 previewImage.setColorTable(colorTable); |
36 previewImage.setColorTable(colorTable); |
59 previewImage.detach(); |
37 previewImage.detach(); |
60 |
38 |
61 m_previewProvider->setImage(previewImage); |
39 if (m_previewAcceptor) m_previewAcceptor->setImage(previewImage); |
62 |
40 |
63 emit previewImageChanged(); |
41 emit previewImageChanged(); |
64 // m_runQueue->queue(m_gameConfig); |
42 // m_runQueue->queue(m_gameConfig); |
65 } |
43 } |
66 |
44 |
78 return engine; |
56 return engine; |
79 // m_runQueue->queue(m_gameConfig); |
57 // m_runQueue->queue(m_gameConfig); |
80 } |
58 } |
81 |
59 |
82 int HWEngine::previewHedgehogsCount() const { return m_previewHedgehogsCount; } |
60 int HWEngine::previewHedgehogsCount() const { return m_previewHedgehogsCount; } |
|
61 |
|
62 PreviewAcceptor* HWEngine::previewAcceptor() const { return m_previewAcceptor; } |
|
63 |
|
64 void HWEngine::setPreviewAcceptor(PreviewAcceptor* previewAcceptor) { |
|
65 if (m_previewAcceptor == previewAcceptor) return; |
|
66 |
|
67 m_previewAcceptor = previewAcceptor; |
|
68 emit previewAcceptorChanged(m_previewAcceptor); |
|
69 } |