summaryrefslogtreecommitdiffstats
path: root/src/datavis3d/utils
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2013-06-18 10:08:01 +0300
committerTomi Korpipää <tomi.korpipaa@digia.com>2013-06-18 10:12:15 +0300
commitde9e7fe163ec3e4aca5216aaf9d85de5e8154509 (patch)
tree08ccf41ef8c1800e69159214384e65d2825a57c6 /src/datavis3d/utils
parentb3a2f01dcad3344a112744c2060d42152e3e2d45 (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.cpp9
-rw-r--r--src/datavis3d/utils/texturehelper_p.h2
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;
};