summaryrefslogtreecommitdiffstats
path: root/src/quick3d/imports/scene3d/scene3drenderer.cpp
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2016-02-13 15:38:45 +0000
committerSean Harmer <sean.harmer@kdab.com>2016-02-19 16:53:52 +0000
commit6e47a632f782fa9fd6971631aa854d91aac292e7 (patch)
tree3dd8318d507f302958ff6a1a3cc078cbf92f076d /src/quick3d/imports/scene3d/scene3drenderer.cpp
parent29c63530e02fd575b0943e2b052a2876f1a17f75 (diff)
Avoid huge cost of restoring previously bound framebuffer
Change-Id: I2dbf01ea4ec330268198af6f9404f736812cf4c2 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/quick3d/imports/scene3d/scene3drenderer.cpp')
-rw-r--r--src/quick3d/imports/scene3d/scene3drenderer.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/quick3d/imports/scene3d/scene3drenderer.cpp b/src/quick3d/imports/scene3d/scene3drenderer.cpp
index feb194a0b..690822280 100644
--- a/src/quick3d/imports/scene3d/scene3drenderer.cpp
+++ b/src/quick3d/imports/scene3d/scene3drenderer.cpp
@@ -257,7 +257,14 @@ void Scene3DRenderer::render()
saver.context()->makeCurrent(saver.surface());
// Blit multisampled FBO with non multisampled FBO with texture attachment
- QOpenGLFramebufferObject::blitFramebuffer(m_finalFBO.data(), m_multisampledFBO.data());
+ const QRect dstRect(QPoint(0, 0), m_finalFBO->size());
+ const QRect srcRect(QPoint(0, 0), m_multisampledFBO->size());
+ QOpenGLFramebufferObject::blitFramebuffer(m_finalFBO.data(), dstRect,
+ m_multisampledFBO.data(), srcRect,
+ GL_COLOR_BUFFER_BIT,
+ GL_NEAREST,
+ 0, 0,
+ QOpenGLFramebufferObject::DontRestoreFramebufferBinding);
// Restore QtQuick FBO
m_multisampledFBO->bindDefault();