diff options
author | Rhys Weatherley <rhys.weatherley@nokia.com> | 2009-10-12 01:00:06 (GMT) |
---|---|---|
committer | Rhys Weatherley <rhys.weatherley@nokia.com> | 2009-10-12 01:00:06 (GMT) |
commit | c1f1b004f7af4c9199e73b4b02bdb4b3aaf74ea8 (patch) | |
tree | e4f10cbc420c6c4c753580df4b019bc336073b8f /src | |
parent | 3e584d5dfaa778ccaeaeb572aecbc979f5a7ef3e (diff) | |
download | Qt-c1f1b004f7af4c9199e73b4b02bdb4b3aaf74ea8.zip Qt-c1f1b004f7af4c9199e73b4b02bdb4b3aaf74ea8.tar.gz Qt-c1f1b004f7af4c9199e73b4b02bdb4b3aaf74ea8.tar.bz2 |
Don't delete an fbo's texture if the fbo isn't using a texture
Also, unbind the texture after it is initialized.
Reviewed-by: Sarah Smith
Diffstat (limited to 'src')
-rw-r--r-- | src/opengl/qglframebufferobject.cpp | 4 | ||||
-rw-r--r-- | src/opengl/qglframebufferobject_p.h | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/opengl/qglframebufferobject.cpp b/src/opengl/qglframebufferobject.cpp index 5585208..8fc95cf 100644 --- a/src/opengl/qglframebufferobject.cpp +++ b/src/opengl/qglframebufferobject.cpp @@ -451,6 +451,7 @@ void QGLFramebufferObjectPrivate::init(QGLFramebufferObject *q, const QSize &sz, QT_CHECK_GLERROR(); valid = checkFramebufferStatus(); + glBindTexture(target, 0); color_buffer = 0; } else { @@ -819,7 +820,8 @@ QGLFramebufferObject::~QGLFramebufferObject() if (isValid() && ctx) { QGLShareContextScope scope(ctx); - glDeleteTextures(1, &d->texture); + if (d->texture) + glDeleteTextures(1, &d->texture); if (d->color_buffer) glDeleteRenderbuffers(1, &d->color_buffer); if (d->depth_stencil_buffer) diff --git a/src/opengl/qglframebufferobject_p.h b/src/opengl/qglframebufferobject_p.h index 055a752..9fe80b8 100644 --- a/src/opengl/qglframebufferobject_p.h +++ b/src/opengl/qglframebufferobject_p.h @@ -127,7 +127,7 @@ private: class QGLFramebufferObjectPrivate { public: - QGLFramebufferObjectPrivate() : fbo_guard(0), depth_stencil_buffer(0), valid(false), previous_fbo(0), engine(0) {} + QGLFramebufferObjectPrivate() : fbo_guard(0), texture(0), depth_stencil_buffer(0), color_buffer(0), valid(false), previous_fbo(0), engine(0) {} ~QGLFramebufferObjectPrivate() {} void init(QGLFramebufferObject *q, const QSize& sz, |