From c621677a6a8961b24dc16f318248c2e9248ca29e 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 | 1 + src/platform/qt/DisplayGL.cpp | 8 ++++++++ src/platform/qt/Window.cpp | 3 +++ 3 files changed, 12 insertions(+) diff --git a/CHANGES b/CHANGES index dd855f024..7e52ade99 100644 --- a/CHANGES +++ b/CHANGES @@ -39,6 +39,7 @@ Misc: - All: Add C++ header guards - GBA I/O: Clear JOYSTAT RECV flag when reading JOY_RECV registers - GBA I/O: Set JOYSTAT TRANS flag when writing JOY_TRANS registers + - 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 4a1cfff87..b4ef85304 100644 --- a/src/platform/qt/DisplayGL.cpp +++ b/src/platform/qt/DisplayGL.cpp @@ -73,7 +73,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(); } @@ -360,7 +364,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 9a2d594a6..fda1813b3 100644 --- a/src/platform/qt/Window.cpp +++ b/src/platform/qt/Window.cpp @@ -210,6 +210,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();