summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--examples/opengl/grabber/mainwindow.cpp2
-rw-r--r--src/opengl/qgl.cpp7
2 files changed, 5 insertions, 4 deletions
diff --git a/examples/opengl/grabber/mainwindow.cpp b/examples/opengl/grabber/mainwindow.cpp
index 9f31733856..9f82ee10ba 100644
--- a/examples/opengl/grabber/mainwindow.cpp
+++ b/examples/opengl/grabber/mainwindow.cpp
@@ -175,7 +175,7 @@ QSlider *MainWindow::createSlider(const char *changedSignal,
void MainWindow::setPixmap(const QPixmap &pixmap)
{
pixmapLabel->setPixmap(pixmap);
- QSize size = pixmap.size();
+ QSize size = pixmap.size() / pixmap.devicePixelRatio();
if (size - QSize(1, 0) == pixmapLabelArea->maximumViewportSize())
size -= QSize(1, 0);
pixmapLabel->resize(size);
diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp
index def0470622..72c6e035d9 100644
--- a/src/opengl/qgl.cpp
+++ b/src/opengl/qgl.cpp
@@ -4090,11 +4090,12 @@ QImage QGLWidget::grabFrameBuffer(bool withAlpha)
{
makeCurrent();
QImage res;
- int w = width();
- int h = height();
+ qreal pixelRatio = devicePixelRatio();
+ int w = pixelRatio * width();
+ int h = pixelRatio * height();
if (format().rgba())
res = qt_gl_read_frame_buffer(QSize(w, h), format().alpha(), withAlpha);
-
+ res.setDevicePixelRatio(pixelRatio);
return res;
}