diff --git a/plugins/qpa/screen.h b/plugins/qpa/screen.h --- a/plugins/qpa/screen.h +++ b/plugins/qpa/screen.h @@ -49,6 +49,7 @@ QSizeF physicalSize() const override; QPlatformCursor *cursor() const override; QDpi logicalDpi() const override; + qreal devicePixelRatio() const override; private: QPointer m_output; diff --git a/plugins/qpa/screen.cpp b/plugins/qpa/screen.cpp --- a/plugins/qpa/screen.cpp +++ b/plugins/qpa/screen.cpp @@ -50,7 +50,7 @@ QRect Screen::geometry() const { - return m_output ? m_output->geometry() : QRect(0, 0, 1, 1); + return m_output ? QRect(m_output->globalPosition(), m_output->pixelSize() / m_output->scale()) : QRect(0, 0, 1, 1); } QSizeF Screen::physicalSize() const @@ -73,5 +73,10 @@ return QPlatformScreen::logicalDpi(); } +qreal Screen::devicePixelRatio() const +{ + return m_output ? (qreal)m_output->scale() : 1.0; +} + } }