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
parent
a4f50269f8
commit
f9de7efe60
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Reference in New Issue