diff options
author | Miodrag Milanovic <mmicko@gmail.com> | 2021-05-31 16:20:43 +0200 |
---|---|---|
committer | Miodrag Milanovic <mmicko@gmail.com> | 2021-05-31 16:20:43 +0200 |
commit | 473723b24a04bfa37eb00292cad4e8acb067b93b (patch) | |
tree | c44df77c0c53b47af16af73cebe9bb983b7c7b1e | |
parent | bf67845df67a164a3c81498929a31fe2a33c95b8 (diff) | |
download | nextpnr-473723b24a04bfa37eb00292cad4e8acb067b93b.tar.gz nextpnr-473723b24a04bfa37eb00292cad4e8acb067b93b.tar.bz2 nextpnr-473723b24a04bfa37eb00292cad4e8acb067b93b.zip |
Fix hidpi, fixes #167, fixes #275, fixes #425
-rw-r--r-- | 3rdparty/qtimgui/QtImGui.cpp | 4 | ||||
-rw-r--r-- | gui/fpgaviewwidget.cc | 9 |
2 files changed, 10 insertions, 3 deletions
diff --git a/3rdparty/qtimgui/QtImGui.cpp b/3rdparty/qtimgui/QtImGui.cpp index 6f5b0480..2c0df89f 100644 --- a/3rdparty/qtimgui/QtImGui.cpp +++ b/3rdparty/qtimgui/QtImGui.cpp @@ -21,7 +21,11 @@ public: return w->size(); } qreal devicePixelRatio() const override { +#if defined(__APPLE__) return w->devicePixelRatio(); +#else + return w->devicePixelRatioF(); +#endif } bool isActive() const override { return w->isActiveWindow(); diff --git a/gui/fpgaviewwidget.cc b/gui/fpgaviewwidget.cc index 9c90e2c5..5d37a138 100644 --- a/gui/fpgaviewwidget.cc +++ b/gui/fpgaviewwidget.cc @@ -27,6 +27,7 @@ #include <QImageWriter> #include <QMouseEvent> #include <QWidget> +#include <QDesktopWidget> #include "QtImGui.h" #include "imgui.h" @@ -287,7 +288,11 @@ QMatrix4x4 FPGAViewWidget::getProjection(void) void FPGAViewWidget::paintGL() { auto gl = QOpenGLContext::currentContext()->functions(); +#if defined(__APPLE__) const qreal retinaScale = devicePixelRatio(); +#else + const qreal retinaScale = devicePixelRatioF(); +#endif gl->glViewport(0, 0, width() * retinaScale, height() * retinaScale); gl->glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); @@ -807,12 +812,10 @@ void FPGAViewWidget::mouseMoveEvent(QMouseEvent *event) // coordinates. QVector4D FPGAViewWidget::mouseToWorldCoordinates(int x, int y) { - const qreal retinaScale = devicePixelRatio(); - auto projection = getProjection(); QMatrix4x4 vp; - vp.viewport(0, 0, width() * retinaScale, height() * retinaScale); + vp.viewport(0, 0, width(), height()); QVector4D vec(x, y, 1, 1); vec = vp.inverted() * vec; |