diff options
author | bunnei <bunneidev@gmail.com> | 2016-05-19 00:03:59 +0200 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2016-05-19 00:03:59 +0200 |
commit | d895bc1543b53ea60cdb3c5855f1ec21af212ef9 (patch) | |
tree | 7c6ebe68f8621f125785226fe51dde517f69616e /src/citra_qt | |
parent | Config: Audio sink configuration (#1798) (diff) | |
parent | Microprofile: DPI-aware drawing (diff) | |
download | yuzu-d895bc1543b53ea60cdb3c5855f1ec21af212ef9.tar yuzu-d895bc1543b53ea60cdb3c5855f1ec21af212ef9.tar.gz yuzu-d895bc1543b53ea60cdb3c5855f1ec21af212ef9.tar.bz2 yuzu-d895bc1543b53ea60cdb3c5855f1ec21af212ef9.tar.lz yuzu-d895bc1543b53ea60cdb3c5855f1ec21af212ef9.tar.xz yuzu-d895bc1543b53ea60cdb3c5855f1ec21af212ef9.tar.zst yuzu-d895bc1543b53ea60cdb3c5855f1ec21af212ef9.zip |
Diffstat (limited to 'src/citra_qt')
-rw-r--r-- | src/citra_qt/debugger/profiler.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/citra_qt/debugger/profiler.cpp b/src/citra_qt/debugger/profiler.cpp index 7bb010f77..585ac049a 100644 --- a/src/citra_qt/debugger/profiler.cpp +++ b/src/citra_qt/debugger/profiler.cpp @@ -151,6 +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; }; #endif @@ -220,11 +222,17 @@ 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); + painter.scale(x_scale, y_scale); + painter.setBackground(Qt::black); painter.eraseRect(rect()); @@ -248,24 +256,24 @@ void MicroProfileWidget::hideEvent(QHideEvent* ev) { } void MicroProfileWidget::mouseMoveEvent(QMouseEvent* ev) { - MicroProfileMousePosition(ev->x(), ev->y(), 0); + MicroProfileMousePosition(ev->x() / x_scale, ev->y() / y_scale, 0); ev->accept(); } void MicroProfileWidget::mousePressEvent(QMouseEvent* ev) { - MicroProfileMousePosition(ev->x(), ev->y(), 0); + MicroProfileMousePosition(ev->x() / x_scale, ev->y() / y_scale, 0); MicroProfileMouseButton(ev->buttons() & Qt::LeftButton, ev->buttons() & Qt::RightButton); ev->accept(); } void MicroProfileWidget::mouseReleaseEvent(QMouseEvent* ev) { - MicroProfileMousePosition(ev->x(), ev->y(), 0); + MicroProfileMousePosition(ev->x() / x_scale, ev->y() / y_scale, 0); MicroProfileMouseButton(ev->buttons() & Qt::LeftButton, ev->buttons() & Qt::RightButton); ev->accept(); } void MicroProfileWidget::wheelEvent(QWheelEvent* ev) { - MicroProfileMousePosition(ev->x(), ev->y(), ev->delta() / 120); + MicroProfileMousePosition(ev->x() / x_scale, ev->y() / y_scale, ev->delta() / 120); ev->accept(); } |