Fix up vao usage in qquickviewcomparison example

The binder calls create() if needed, so drop that call.
In the render function however, drop the binder.
Trying to create() again and again on every frame is a
waste of time.

Change-Id: I1e9cd8e2c97030b96e604256661e65ce75446e9d
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
This commit is contained in:
Laszlo Agocs 2014-08-22 19:31:13 +02:00
parent 657766f19b
commit 04f0d937fe
1 changed files with 6 additions and 3 deletions

View File

@ -162,8 +162,9 @@ void FbItemRenderer::render()
{ {
ensureInit(); ensureInit();
QOpenGLVertexArrayObject::Binder vaoBinder(&m_vao); if (m_vao.isCreated())
if (!m_vao.isCreated()) m_vao.bind();
else
setupVertexAttribs(); setupVertexAttribs();
StateBinder state(this); StateBinder state(this);
@ -182,6 +183,9 @@ void FbItemRenderer::render()
updateDirtyUniforms(); updateDirtyUniforms();
f->glDrawArrays(GL_TRIANGLES, 0, m_logo.vertexCount()); f->glDrawArrays(GL_TRIANGLES, 0, m_logo.vertexCount());
if (m_vao.isCreated())
m_vao.release();
} }
QOpenGLFramebufferObject *FbItemRenderer::createFramebufferObject(const QSize &size) QOpenGLFramebufferObject *FbItemRenderer::createFramebufferObject(const QSize &size)
@ -209,7 +213,6 @@ void FbItemRenderer::ensureInit()
void FbItemRenderer::initBuf() void FbItemRenderer::initBuf()
{ {
m_vao.create();
QOpenGLVertexArrayObject::Binder vaoBinder(&m_vao); QOpenGLVertexArrayObject::Binder vaoBinder(&m_vao);
m_logoVbo.create(); m_logoVbo.create();