Fix up vao usage in qquickviewcomparison example
authorLaszlo Agocs <laszlo.agocs@digia.com>
Fri, 22 Aug 2014 17:31:13 +0000 (19:31 +0200)
committerLaszlo Agocs <laszlo.agocs@digia.com>
Tue, 26 Aug 2014 10:11:44 +0000 (12:11 +0200)
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>
examples/quick/quickwidgets/qquickviewcomparison/fbitem.cpp

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