aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGunnar Sletta <gunnar@sletta.org>2015-08-20 14:16:15 +0200
committerGunnar Sletta <gunnar@sletta.org>2015-08-20 12:29:12 +0000
commit6dda1b425867b76fb001b11f43836c56e24ab7a4 (patch)
tree78acad6a7b5990421e04a18154368477713381ab
parent3f4d7a755585f1b79c7e9675220b8210f10f358e (diff)
Fix rendering to QQuickWindow::renderTarget.
When setting an FBO, the size of the window should be irrelevant, so we need to use the renderTargetSize to specify the viewport and device rect. Change-Id: Id76736cfaf6c511439bb8af80e3c641025d9d547 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
-rw-r--r--src/quick/items/qquickwindow.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp
index 99dbf1d83e..8ab910f299 100644
--- a/src/quick/items/qquickwindow.cpp
+++ b/src/quick/items/qquickwindow.cpp
@@ -368,12 +368,15 @@ void QQuickWindowPrivate::renderSceneGraph(const QSize &size)
if (!customRenderStage || !customRenderStage->render()) {
int fboId = 0;
const qreal devicePixelRatio = q->effectiveDevicePixelRatio();
- renderer->setDeviceRect(QRect(QPoint(0, 0), size * devicePixelRatio));
if (renderTargetId) {
+ QRect rect(QPoint(0, 0), renderTargetSize);
fboId = renderTargetId;
- renderer->setViewportRect(QRect(QPoint(0, 0), renderTargetSize));
+ renderer->setDeviceRect(rect);
+ renderer->setViewportRect(rect);
} else {
- renderer->setViewportRect(QRect(QPoint(0, 0), size * devicePixelRatio));
+ QRect rect(QPoint(0, 0), devicePixelRatio * size);
+ renderer->setDeviceRect(rect);
+ renderer->setViewportRect(rect);
}
renderer->setProjectionMatrixToRect(QRect(QPoint(0, 0), size));
renderer->setDevicePixelRatio(devicePixelRatio);