aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--3rdparty/qtimgui/QtImGui.cpp4
-rw-r--r--gui/fpgaviewwidget.cc9
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;