Qt: Improved HiDPI support

This commit is contained in:
Jeffrey Pfau 2017-01-05 00:39:30 -08:00
parent b5b559498b
commit c621677a6a
3 changed files with 12 additions and 0 deletions

View File

@ -39,6 +39,7 @@ Misc:
- All: Add C++ header guards - All: Add C++ header guards
- GBA I/O: Clear JOYSTAT RECV flag when reading JOY_RECV registers - GBA I/O: Clear JOYSTAT RECV flag when reading JOY_RECV registers
- GBA I/O: Set JOYSTAT TRANS flag when writing JOY_TRANS registers - GBA I/O: Set JOYSTAT TRANS flag when writing JOY_TRANS registers
- Qt: Improved HiDPI support
0.5.2: (2016-12-31) 0.5.2: (2016-12-31)
Bugfixes: Bugfixes:

View File

@ -73,7 +73,11 @@ void DisplayGL::startDrawing(mCoreThread* thread) {
lockAspectRatio(isAspectRatioLocked()); lockAspectRatio(isAspectRatioLocked());
filter(isFiltered()); filter(isFiltered());
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
messagePainter()->resize(size(), isAspectRatioLocked(), devicePixelRatioF());
#else
messagePainter()->resize(size(), isAspectRatioLocked(), devicePixelRatio()); messagePainter()->resize(size(), isAspectRatioLocked(), devicePixelRatio());
#endif
resizePainter(); resizePainter();
} }
@ -360,7 +364,11 @@ void PainterGL::unpause() {
void PainterGL::performDraw() { void PainterGL::performDraw() {
m_painter.beginNativePainting(); m_painter.beginNativePainting();
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
float r = m_gl->devicePixelRatioF();
#else
float r = m_gl->devicePixelRatio(); float r = m_gl->devicePixelRatio();
#endif
m_backend->resized(m_backend, m_size.width() * r, m_size.height() * r); m_backend->resized(m_backend, m_size.width() * r, m_size.height() * r);
m_backend->drawFrame(m_backend); m_backend->drawFrame(m_backend);
m_painter.endNativePainting(); m_painter.endNativePainting();

View File

@ -210,6 +210,9 @@ void Window::argumentsPassed(mArguments* args) {
void Window::resizeFrame(const QSize& size) { void Window::resizeFrame(const QSize& size) {
QSize newSize(size); QSize newSize(size);
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
newSize /= m_screenWidget->devicePixelRatioF();
#endif
m_screenWidget->setSizeHint(newSize); m_screenWidget->setSizeHint(newSize);
newSize -= m_screenWidget->size(); newSize -= m_screenWidget->size();
newSize += this->size(); newSize += this->size();