diff options
author | bunnei <bunneidev@gmail.com> | 2016-06-20 21:13:15 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-06-20 21:13:15 -0400 |
commit | b836ae5c6adc206597daf63bd21838003021bc84 (patch) | |
tree | 27ad2d38716c55fd670b741546ac1059734c704f | |
parent | 8f86cc4df96c9a5bcac19130c800cc3cfe9b600a (diff) | |
parent | c52754e79a46a9781af418cc6955b4c3ab5dfa5e (diff) |
Merge pull request #1922 from yuriks/microprofile-dpi-fix
Qt: Fix MicroProfile dpi scaling
-rw-r--r-- | src/citra_qt/debugger/profiler.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/citra_qt/debugger/profiler.cpp b/src/citra_qt/debugger/profiler.cpp index 585ac049a..17898f54b 100644 --- a/src/citra_qt/debugger/profiler.cpp +++ b/src/citra_qt/debugger/profiler.cpp @@ -151,8 +151,8 @@ private: /// This timer is used to redraw the widget's contents continuously. To save resources, it only /// runs while the widget is visible. QTimer update_timer; - /// Scale the coordinate system appropriately when physical DPI != logical DPI. - qreal x_scale, y_scale; + /// Scale the coordinate system appropriately when dpi != 96. + qreal x_scale = 1.0, y_scale = 1.0; }; #endif @@ -222,15 +222,14 @@ MicroProfileWidget::MicroProfileWidget(QWidget* parent) : QWidget(parent) { MicroProfileInitUI(); connect(&update_timer, SIGNAL(timeout()), SLOT(update())); - - QPainter painter(this); - x_scale = qreal(painter.device()->physicalDpiX()) / qreal(painter.device()->logicalDpiX()); - y_scale = qreal(painter.device()->physicalDpiY()) / qreal(painter.device()->logicalDpiY()); } void MicroProfileWidget::paintEvent(QPaintEvent* ev) { QPainter painter(this); + // The units used by Microprofile for drawing are based in pixels on a 96 dpi display. + x_scale = qreal(painter.device()->logicalDpiX()) / 96.0; + y_scale = qreal(painter.device()->logicalDpiY()) / 96.0; painter.scale(x_scale, y_scale); painter.setBackground(Qt::black); @@ -241,7 +240,7 @@ void MicroProfileWidget::paintEvent(QPaintEvent* ev) { painter.setFont(font); mp_painter = &painter; - MicroProfileDraw(rect().width(), rect().height()); + MicroProfileDraw(rect().width() / x_scale, rect().height() / y_scale); mp_painter = nullptr; } |