diff options
author | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-06-18 10:08:01 +0300 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-06-18 10:12:15 +0300 |
commit | de9e7fe163ec3e4aca5216aaf9d85de5e8154509 (patch) | |
tree | 08ccf41ef8c1800e69159214384e65d2825a57c6 /src/datavis3d/utils | |
parent | b3a2f01dcad3344a112744c2060d42152e3e2d45 (diff) |
Reuse frame buffer objects
When it is not necessary to delete them, reuse them.
Change-Id: I7a0f5f5e5f84b13ec9aa10b48ec26065fedfd858
Reviewed-by: Pasi Keränen <pasi.keranen@digia.com>
Diffstat (limited to 'src/datavis3d/utils')
-rw-r--r-- | src/datavis3d/utils/texturehelper.cpp | 9 | ||||
-rw-r--r-- | src/datavis3d/utils/texturehelper_p.h | 2 |
2 files changed, 7 insertions, 4 deletions
diff --git a/src/datavis3d/utils/texturehelper.cpp b/src/datavis3d/utils/texturehelper.cpp index 1c9b3af0..14aa3e02 100644 --- a/src/datavis3d/utils/texturehelper.cpp +++ b/src/datavis3d/utils/texturehelper.cpp @@ -191,7 +191,8 @@ GLuint TextureHelper::createSelectionTexture(const QSize &size, GLuint &frameBuf glBindTexture(GL_TEXTURE_2D, 0); // Create render buffer - glGenRenderbuffers(1, &depthBuffer); + if (!depthBuffer) + glGenRenderbuffers(1, &depthBuffer); glBindRenderbuffer(GL_RENDERBUFFER, depthBuffer); #if !defined(QT_OPENGL_ES_2) glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT, size.width(), size.height()); @@ -201,7 +202,8 @@ GLuint TextureHelper::createSelectionTexture(const QSize &size, GLuint &frameBuf glBindRenderbuffer(GL_RENDERBUFFER, 0); // Create frame buffer - glGenFramebuffers(1, &frameBuffer); + if (!frameBuffer) + glGenFramebuffers(1, &frameBuffer); glBindFramebuffer(GL_FRAMEBUFFER, frameBuffer); // Attach texture to color attachment @@ -241,7 +243,8 @@ GLuint TextureHelper::createDepthTexture(const QSize &size, GLuint &frameBuffer, glBindTexture(GL_TEXTURE_2D, 0); // Create frame buffer - glGenFramebuffers(1, &frameBuffer); + if (!frameBuffer) + glGenFramebuffers(1, &frameBuffer); glBindFramebuffer(GL_FRAMEBUFFER, frameBuffer); // Attach texture to depth attachment diff --git a/src/datavis3d/utils/texturehelper_p.h b/src/datavis3d/utils/texturehelper_p.h index d16507d6..32719860 100644 --- a/src/datavis3d/utils/texturehelper_p.h +++ b/src/datavis3d/utils/texturehelper_p.h @@ -83,7 +83,7 @@ class TextureHelper : protected QOpenGLFunctions void convertToGLFormatHelper(QImage &dstImage, const QImage &srcImage, GLenum texture_format); QRgb qt_gl_convertToGLFormatHelper(QRgb src_pixel, GLenum texture_format); - friend class Q3DBarsPrivate; + friend class Bars3dController; friend class Q3DMapsPrivate; }; |