QOpenGLTextureBlitter: Do not call vao functions if it failed to create

Follow the good practice of checking for isCreated() before calling
VAO functions like bind(). Use also the vao binder where applicable.

Change-Id: Ib827f3bce838396bf2e08f9480fa63801d4d3a50
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
bb10
Laszlo Agocs 2014-08-22 18:41:29 +02:00
parent a4f50269f8
commit f9de7efe60
1 changed files with 7 additions and 7 deletions

View File

@ -248,9 +248,6 @@ bool QOpenGLTextureBlitter::create()
Q_D(QOpenGLTextureBlitter);
d->vao->create();
d->vao->bind();
if (d->program)
return true;
@ -273,6 +270,9 @@ bool QOpenGLTextureBlitter::create()
d->program->bind();
// Create and bind the VAO, if supported.
QOpenGLVertexArrayObject::Binder vaoBinder(d->vao.data());
d->vertexBuffer.create();
d->vertexBuffer.bind();
d->vertexBuffer.allocate(vertex_buffer_data, sizeof(vertex_buffer_data));
@ -292,8 +292,6 @@ bool QOpenGLTextureBlitter::create()
d->program->setUniformValue(d->swizzleUniformPos,false);
d->vao->release();
return true;
}
@ -316,7 +314,8 @@ void QOpenGLTextureBlitter::bind()
{
Q_D(QOpenGLTextureBlitter);
d->vao->bind();
if (d->vao->isCreated())
d->vao->bind();
d->program->bind();
@ -335,7 +334,8 @@ void QOpenGLTextureBlitter::release()
{
Q_D(QOpenGLTextureBlitter);
d->program->release();
d->vao->release();
if (d->vao->isCreated())
d->vao->release();
}
void QOpenGLTextureBlitter::setSwizzleRB(bool swizzle)