From 6dda1b425867b76fb001b11f43836c56e24ab7a4 Mon Sep 17 00:00:00 2001 From: Gunnar Sletta Date: Thu, 20 Aug 2015 14:16:15 +0200 Subject: 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 --- src/quick/items/qquickwindow.cpp | 9 ++++++--- 1 file 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); -- cgit v1.2.3