From e9848d87ba2ffdae611324d671959143dc244b23 Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Thu, 5 Jan 2017 00:39:30 -0800 Subject: [PATCH] Qt: Improved HiDPI support --- CHANGES | 2 ++ src/platform/qt/DisplayGL.cpp | 8 ++++++++ src/platform/qt/Window.cpp | 3 +++ 3 files changed, 13 insertions(+) diff --git a/CHANGES b/CHANGES index dbb400deb..c93506386 100644 --- a/CHANGES +++ b/CHANGES @@ -3,6 +3,8 @@ Bugfixes: - ARM7: Fix MLA/*MULL/*MLAL timing - GBA: Fix multiboot ROM loading - Libretro: Fix saving in GB games (fixes mgba.io/i/486) +Misc: + - Qt: Improved HiDPI support 0.5.2: (2016-12-31) Bugfixes: diff --git a/src/platform/qt/DisplayGL.cpp b/src/platform/qt/DisplayGL.cpp index c565b545e..986e6eb9a 100644 --- a/src/platform/qt/DisplayGL.cpp +++ b/src/platform/qt/DisplayGL.cpp @@ -75,7 +75,11 @@ void DisplayGL::startDrawing(mCoreThread* thread) { lockAspectRatio(isAspectRatioLocked()); filter(isFiltered()); +#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)) + messagePainter()->resize(size(), isAspectRatioLocked(), devicePixelRatioF()); +#else messagePainter()->resize(size(), isAspectRatioLocked(), devicePixelRatio()); +#endif resizePainter(); } @@ -362,7 +366,11 @@ void PainterGL::unpause() { void PainterGL::performDraw() { m_painter.beginNativePainting(); +#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)) + float r = m_gl->devicePixelRatioF(); +#else float r = m_gl->devicePixelRatio(); +#endif m_backend->resized(m_backend, m_size.width() * r, m_size.height() * r); m_backend->drawFrame(m_backend); m_painter.endNativePainting(); diff --git a/src/platform/qt/Window.cpp b/src/platform/qt/Window.cpp index 9b8eae1de..a3d99cac9 100644 --- a/src/platform/qt/Window.cpp +++ b/src/platform/qt/Window.cpp @@ -205,6 +205,9 @@ void Window::argumentsPassed(mArguments* args) { void Window::resizeFrame(const QSize& size) { QSize newSize(size); +#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)) + newSize /= m_screenWidget->devicePixelRatioF(); +#endif m_screenWidget->setSizeHint(newSize); newSize -= m_screenWidget->size(); newSize += this->size();