# HG changeset patch # User unc0rr # Date 1515284502 -3600 # Node ID adb1fccc706ab599ad308d12c116d59311e39023 # Parent bf58f240395318352bface09913540cbc070d1d2 - ResizeWindow function to pass engine new window size - Remove TabBar to leave more space at the bottom of the screen - ifdef GL_ES in shaders diff -r bf58f2403953 -r adb1fccc706a hedgewars/hwLibrary.pas --- a/hedgewars/hwLibrary.pas Sat Jan 06 03:17:12 2018 +0100 +++ b/hedgewars/hwLibrary.pas Sun Jan 07 01:21:42 2018 +0100 @@ -63,7 +63,8 @@ ipcSetEngineBarrier, ipcRemoveBarrierFromEngineQueue, RunEngine, - GameTick + GameTick, + ResizeWindow ; begin diff -r bf58f2403953 -r adb1fccc706a hedgewars/hwengine.pas --- a/hedgewars/hwengine.pas Sat Jan 06 03:17:12 2018 +0100 +++ b/hedgewars/hwengine.pas Sun Jan 07 01:21:42 2018 +0100 @@ -37,6 +37,7 @@ function RunEngine(argc: LongInt; argv: PPChar): Longint; cdecl; export; function GameTick(delta: Longword): boolean; cdecl; export; +procedure ResizeWindow(width, height: Longword); cdecl; export; procedure preInitEverything(); procedure initEverything(complete:boolean); @@ -654,4 +655,11 @@ end; end; +procedure ResizeWindow(width, height: Longword); cdecl; export; +begin + cNewScreenWidth:= max(2 * (width div 2), cMinScreenWidth); + cNewScreenHeight:= max(2 * (height div 2), cMinScreenHeight); + cScreenResizeDelay:= RealTicks + 500{$IFDEF IPHONEOS}div 2{$ENDIF}; +end; + end. diff -r bf58f2403953 -r adb1fccc706a qmlfrontend/flib.h --- a/qmlfrontend/flib.h Sat Jan 06 03:17:12 2018 +0100 +++ b/qmlfrontend/flib.h Sun Jan 07 01:21:42 2018 +0100 @@ -26,6 +26,7 @@ typedef void RunEngine_t(int argc, const char** argv); typedef void GameTick_t(uint32_t time_delta); +typedef void ResizeWindow_t(uint32_t width, uint32_t height); typedef void ipcToEngineRaw_t(const char* msg, uint32_t len); typedef void ipcSetEngineBarrier_t(); typedef void ipcRemoveBarrierFromEngineQueue_t(); diff -r bf58f2403953 -r adb1fccc706a qmlfrontend/gameview.cpp --- a/qmlfrontend/gameview.cpp Sat Jan 06 03:17:12 2018 +0100 +++ b/qmlfrontend/gameview.cpp Sun Jan 07 01:21:42 2018 +0100 @@ -8,11 +8,13 @@ extern "C" { extern GameTick_t* flibGameTick; +extern ResizeWindow_t* flibResizeWindow; } GameView::GameView() : m_delta(0) , m_renderer(0) + , m_windowChanged(true) { connect(this, &QQuickItem::windowChanged, this, &GameView::handleWindowChanged); } @@ -31,6 +33,8 @@ connect(win, &QQuickWindow::sceneGraphInvalidated, this, &GameView::cleanup, Qt::DirectConnection); win->setClearBeforeRendering(false); + + m_windowChanged = true; } } @@ -42,19 +46,26 @@ } } -GameViewRenderer::~GameViewRenderer() -{ -} - void GameView::sync() { if (!m_renderer) { m_renderer = new GameViewRenderer(); connect(window(), &QQuickWindow::beforeRendering, m_renderer, &GameViewRenderer::paint, Qt::DirectConnection); } - m_renderer->setViewportSize(window()->size() * window()->devicePixelRatio()); + + if (m_windowChanged) + m_renderer->setViewportSize(window()->size() * window()->devicePixelRatio()); + m_renderer->tick(m_delta); - m_renderer->setWindow(window()); +} + +GameViewRenderer::~GameViewRenderer() +{ +} + +void GameViewRenderer::setViewportSize(const QSize& size) +{ + flibResizeWindow(size.width(), size.height()); } void GameViewRenderer::paint() @@ -64,5 +75,5 @@ flibGameTick(m_delta); - m_window->resetOpenGLState(); + //m_window->resetOpenGLState(); } diff -r bf58f2403953 -r adb1fccc706a qmlfrontend/gameview.h --- a/qmlfrontend/gameview.h Sat Jan 06 03:17:12 2018 +0100 +++ b/qmlfrontend/gameview.h Sun Jan 07 01:21:42 2018 +0100 @@ -16,16 +16,13 @@ ~GameViewRenderer(); void tick(quint32 delta) { m_delta = delta; } - void setViewportSize(const QSize& size) { m_viewportSize = size; } - void setWindow(QQuickWindow* window) { m_window = window; } + void setViewportSize(const QSize& size); public slots: void paint(); private: - QSize m_viewportSize; quint32 m_delta; - QQuickWindow* m_window; }; class GameView : public QQuickItem { @@ -49,6 +46,7 @@ private: quint32 m_delta; GameViewRenderer* m_renderer; + bool m_windowChanged; }; #endif // GAMEVIEW_H diff -r bf58f2403953 -r adb1fccc706a qmlfrontend/hwengine.cpp --- a/qmlfrontend/hwengine.cpp Sat Jan 06 03:17:12 2018 +0100 +++ b/qmlfrontend/hwengine.cpp Sun Jan 07 01:21:42 2018 +0100 @@ -12,6 +12,7 @@ extern "C" { RunEngine_t* flibRunEngine; GameTick_t* flibGameTick; +ResizeWindow_t* flibResizeWindow; ipcToEngineRaw_t* flibIpcToEngineRaw; ipcSetEngineBarrier_t* flibIpcSetEngineBarrier; ipcRemoveBarrierFromEngineQueue_t* flibIpcRemoveBarrierFromEngineQueue; @@ -40,6 +41,7 @@ flibRunEngine = (RunEngine_t*)hwlib.resolve("RunEngine"); flibGameTick = (GameTick_t*)hwlib.resolve("GameTick"); + flibResizeWindow = (ResizeWindow_t*)hwlib.resolve("ResizeWindow"); flibIpcToEngineRaw = (ipcToEngineRaw_t*)hwlib.resolve("ipcToEngineRaw"); flibIpcSetEngineBarrier = (ipcSetEngineBarrier_t*)hwlib.resolve("ipcSetEngineBarrier"); flibIpcRemoveBarrierFromEngineQueue = (ipcRemoveBarrierFromEngineQueue_t*)hwlib.resolve("ipcRemoveBarrierFromEngineQueue"); diff -r bf58f2403953 -r adb1fccc706a qmlfrontend/main.qml --- a/qmlfrontend/main.qml Sat Jan 06 03:17:12 2018 +0100 +++ b/qmlfrontend/main.qml Sun Jan 07 01:21:42 2018 +0100 @@ -15,23 +15,5 @@ Page1 { } - - Page { - Label { - text: qsTr("Second page") - anchors.centerIn: parent - } - } - } - - footer: TabBar { - id: tabBar - currentIndex: swipeView.currentIndex - TabButton { - text: qsTr("First") - } - TabButton { - text: qsTr("Second") - } } } diff -r bf58f2403953 -r adb1fccc706a share/hedgewars/Data/Shaders/default.fs --- a/share/hedgewars/Data/Shaders/default.fs Sat Jan 06 03:17:12 2018 +0100 +++ b/share/hedgewars/Data/Shaders/default.fs Sun Jan 07 01:21:42 2018 +0100 @@ -1,4 +1,6 @@ +#ifdef GL_ES precision mediump float; +#endif uniform sampler2D tex0; uniform vec4 tint; diff -r bf58f2403953 -r adb1fccc706a share/hedgewars/Data/Shaders/default.vs --- a/share/hedgewars/Data/Shaders/default.vs Sat Jan 06 03:17:12 2018 +0100 +++ b/share/hedgewars/Data/Shaders/default.vs Sun Jan 07 01:21:42 2018 +0100 @@ -1,4 +1,6 @@ +#ifdef GL_ES precision mediump float; +#endif attribute vec2 vertex; attribute vec2 texcoord; diff -r bf58f2403953 -r adb1fccc706a share/hedgewars/Data/Shaders/water.fs --- a/share/hedgewars/Data/Shaders/water.fs Sat Jan 06 03:17:12 2018 +0100 +++ b/share/hedgewars/Data/Shaders/water.fs Sun Jan 07 01:21:42 2018 +0100 @@ -1,4 +1,6 @@ +#ifdef GL_ES precision mediump float; +#endif varying vec4 vcolor; diff -r bf58f2403953 -r adb1fccc706a share/hedgewars/Data/Shaders/water.vs --- a/share/hedgewars/Data/Shaders/water.vs Sat Jan 06 03:17:12 2018 +0100 +++ b/share/hedgewars/Data/Shaders/water.vs Sun Jan 07 01:21:42 2018 +0100 @@ -1,4 +1,6 @@ +#ifdef GL_ES precision mediump float; +#endif attribute vec2 vertex; attribute vec4 color;