diff options
author | Gunnar Sletta <gunnar@sletta.org> | 2015-08-20 14:16:15 +0200 |
---|---|---|
committer | Gunnar Sletta <gunnar@sletta.org> | 2015-08-20 12:29:12 +0000 |
commit | 6dda1b425867b76fb001b11f43836c56e24ab7a4 (patch) | |
tree | 78acad6a7b5990421e04a18154368477713381ab /src/quick/items/qquickwindow.cpp | |
parent | 3f4d7a755585f1b79c7e9675220b8210f10f358e (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>
Diffstat (limited to 'src/quick/items/qquickwindow.cpp')
-rw-r--r-- | src/quick/items/qquickwindow.cpp | 9 |
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); |