diff options
Diffstat (limited to 'src')
| -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: | |||
| 151 | /// This timer is used to redraw the widget's contents continuously. To save resources, it only | 151 | /// This timer is used to redraw the widget's contents continuously. To save resources, it only |
| 152 | /// runs while the widget is visible. | 152 | /// runs while the widget is visible. |
| 153 | QTimer update_timer; | 153 | QTimer update_timer; |
| 154 | /// Scale the coordinate system appropriately when physical DPI != logical DPI. | ||
| 155 | qreal x_scale, y_scale; | ||
| 154 | }; | 156 | }; |
| 155 | 157 | ||
| 156 | #endif | 158 | #endif |
| @@ -220,11 +222,17 @@ MicroProfileWidget::MicroProfileWidget(QWidget* parent) : QWidget(parent) { | |||
| 220 | MicroProfileInitUI(); | 222 | MicroProfileInitUI(); |
| 221 | 223 | ||
| 222 | connect(&update_timer, SIGNAL(timeout()), SLOT(update())); | 224 | connect(&update_timer, SIGNAL(timeout()), SLOT(update())); |
| 225 | |||
| 226 | QPainter painter(this); | ||
| 227 | x_scale = qreal(painter.device()->physicalDpiX()) / qreal(painter.device()->logicalDpiX()); | ||
| 228 | y_scale = qreal(painter.device()->physicalDpiY()) / qreal(painter.device()->logicalDpiY()); | ||
| 223 | } | 229 | } |
| 224 | 230 | ||
| 225 | void MicroProfileWidget::paintEvent(QPaintEvent* ev) { | 231 | void MicroProfileWidget::paintEvent(QPaintEvent* ev) { |
| 226 | QPainter painter(this); | 232 | QPainter painter(this); |
| 227 | 233 | ||
| 234 | painter.scale(x_scale, y_scale); | ||
| 235 | |||
| 228 | painter.setBackground(Qt::black); | 236 | painter.setBackground(Qt::black); |
| 229 | painter.eraseRect(rect()); | 237 | painter.eraseRect(rect()); |
| 230 | 238 | ||
| @@ -248,24 +256,24 @@ void MicroProfileWidget::hideEvent(QHideEvent* ev) { | |||
| 248 | } | 256 | } |
| 249 | 257 | ||
| 250 | void MicroProfileWidget::mouseMoveEvent(QMouseEvent* ev) { | 258 | void MicroProfileWidget::mouseMoveEvent(QMouseEvent* ev) { |
| 251 | MicroProfileMousePosition(ev->x(), ev->y(), 0); | 259 | MicroProfileMousePosition(ev->x() / x_scale, ev->y() / y_scale, 0); |
| 252 | ev->accept(); | 260 | ev->accept(); |
| 253 | } | 261 | } |
| 254 | 262 | ||
| 255 | void MicroProfileWidget::mousePressEvent(QMouseEvent* ev) { | 263 | void MicroProfileWidget::mousePressEvent(QMouseEvent* ev) { |
| 256 | MicroProfileMousePosition(ev->x(), ev->y(), 0); | 264 | MicroProfileMousePosition(ev->x() / x_scale, ev->y() / y_scale, 0); |
| 257 | MicroProfileMouseButton(ev->buttons() & Qt::LeftButton, ev->buttons() & Qt::RightButton); | 265 | MicroProfileMouseButton(ev->buttons() & Qt::LeftButton, ev->buttons() & Qt::RightButton); |
| 258 | ev->accept(); | 266 | ev->accept(); |
| 259 | } | 267 | } |
| 260 | 268 | ||
| 261 | void MicroProfileWidget::mouseReleaseEvent(QMouseEvent* ev) { | 269 | void MicroProfileWidget::mouseReleaseEvent(QMouseEvent* ev) { |
| 262 | MicroProfileMousePosition(ev->x(), ev->y(), 0); | 270 | MicroProfileMousePosition(ev->x() / x_scale, ev->y() / y_scale, 0); |
| 263 | MicroProfileMouseButton(ev->buttons() & Qt::LeftButton, ev->buttons() & Qt::RightButton); | 271 | MicroProfileMouseButton(ev->buttons() & Qt::LeftButton, ev->buttons() & Qt::RightButton); |
| 264 | ev->accept(); | 272 | ev->accept(); |
| 265 | } | 273 | } |
| 266 | 274 | ||
| 267 | void MicroProfileWidget::wheelEvent(QWheelEvent* ev) { | 275 | void MicroProfileWidget::wheelEvent(QWheelEvent* ev) { |
| 268 | MicroProfileMousePosition(ev->x(), ev->y(), ev->delta() / 120); | 276 | MicroProfileMousePosition(ev->x() / x_scale, ev->y() / y_scale, ev->delta() / 120); |
| 269 | ev->accept(); | 277 | ev->accept(); |
| 270 | } | 278 | } |
| 271 | 279 | ||