diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2016-02-13 15:38:45 +0000 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-02-19 16:53:52 +0000 |
commit | 6e47a632f782fa9fd6971631aa854d91aac292e7 (patch) | |
tree | 3dd8318d507f302958ff6a1a3cc078cbf92f076d /src/quick3d/imports/scene3d/scene3drenderer.cpp | |
parent | 29c63530e02fd575b0943e2b052a2876f1a17f75 (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.cpp | 9 |
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(); |