aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/scenegraph
diff options
context:
space:
mode:
authorMorten Johan Sørvig <morten.sorvig@digia.com>2014-03-20 14:33:06 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-20 22:15:50 +0100
commit20d9454ce6c32e61794f68d75fc82bd67737a306 (patch)
tree3068d43b78439014b0762a176c7ed2ebfeb2ac47 /src/quick/scenegraph
parent63fb30eb29c26cd7ba0d9133610acb85cad83775 (diff)
Fix QQuickView::grabWindow() on retina displays
Multiply by window->devicePixelRatio() at all qt_gl_read_framebuffer() call sites. Task-number: QTBUG-35962 Change-Id: If58e4f97fc5d931ba2e222f8cb1a0641d52c3257 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Diffstat (limited to 'src/quick/scenegraph')
-rw-r--r--src/quick/scenegraph/qsgrenderloop.cpp2
-rw-r--r--src/quick/scenegraph/qsgthreadedrenderloop.cpp2
-rw-r--r--src/quick/scenegraph/qsgwindowsrenderloop.cpp2
3 files changed, 3 insertions, 3 deletions
diff --git a/src/quick/scenegraph/qsgrenderloop.cpp b/src/quick/scenegraph/qsgrenderloop.cpp
index f3e879c354..d267fb086d 100644
--- a/src/quick/scenegraph/qsgrenderloop.cpp
+++ b/src/quick/scenegraph/qsgrenderloop.cpp
@@ -371,7 +371,7 @@ void QSGGuiThreadRenderLoop::renderWindow(QQuickWindow *window)
renderTime = renderTimer.nsecsElapsed() - syncTime;
if (data.grabOnly) {
- grabContent = qt_gl_read_framebuffer(window->size(), false, false);
+ grabContent = qt_gl_read_framebuffer(window->size() * window->devicePixelRatio(), false, false);
data.grabOnly = false;
}
diff --git a/src/quick/scenegraph/qsgthreadedrenderloop.cpp b/src/quick/scenegraph/qsgthreadedrenderloop.cpp
index de126fe40b..4adcb3ccfb 100644
--- a/src/quick/scenegraph/qsgthreadedrenderloop.cpp
+++ b/src/quick/scenegraph/qsgthreadedrenderloop.cpp
@@ -452,7 +452,7 @@ bool QSGRenderThread::event(QEvent *e)
QQuickWindowPrivate::get(window)->renderSceneGraph(windowSize);
QSG_RT_DEBUG(" - grabbing result...");
- *ce->image = qt_gl_read_framebuffer(windowSize, false, false);
+ *ce->image = qt_gl_read_framebuffer(windowSize * window->devicePixelRatio(), false, false);
}
QSG_RT_DEBUG(" - waking gui to handle grab result");
waitCondition.wakeOne();
diff --git a/src/quick/scenegraph/qsgwindowsrenderloop.cpp b/src/quick/scenegraph/qsgwindowsrenderloop.cpp
index 913b737798..9605eb8acc 100644
--- a/src/quick/scenegraph/qsgwindowsrenderloop.cpp
+++ b/src/quick/scenegraph/qsgwindowsrenderloop.cpp
@@ -341,7 +341,7 @@ QImage QSGWindowsRenderLoop::grab(QQuickWindow *window)
d->syncSceneGraph();
d->renderSceneGraph(window->size());
- QImage image = qt_gl_read_framebuffer(window->size(), false, false);
+ QImage image = qt_gl_read_framebuffer(window->size() * window->devicePixelRatio(), false, false);
return image;
}