YaGL: Fix buffer object unbinding 31/18331/2
authorStanislav Vorobiov <s.vorobiov@samsung.com>
Thu, 20 Mar 2014 15:24:25 +0000 (19:24 +0400)
committerStanislav Vorobiov <s.vorobiov@samsung.com>
Fri, 21 Mar 2014 05:49:38 +0000 (09:49 +0400)
When unbinding buffer object we should detach it
from all attachment points, not just the first one

Change-Id: I61dc449a6d20cbda112137ea12d8b084d6dfdeb2
Signed-off-by: Stanislav Vorobiov <s.vorobiov@samsung.com>
GLES_common/yagl_gles_context.c

index 667c35ee3b2b844caf4cce5a024b0698a62a10ca..a58058cff515386d9fb378285aea737a4ed2b1ae 100644 (file)
@@ -977,13 +977,19 @@ void yagl_gles_context_unbind_buffer(struct yagl_gles_context *ctx,
     if (ctx->vbo && (ctx->vbo->base.local_name == buffer_local_name)) {
         yagl_gles_buffer_release(ctx->vbo);
         ctx->vbo = NULL;
-    } else if (ctx->vao->ebo && (ctx->vao->ebo->base.local_name == buffer_local_name)) {
+    }
+
+    if (ctx->vao->ebo && (ctx->vao->ebo->base.local_name == buffer_local_name)) {
         yagl_gles_buffer_release(ctx->vao->ebo);
         ctx->vao->ebo = NULL;
-    } else if (ctx->pack.pbo && (ctx->pack.pbo->base.local_name == buffer_local_name)) {
+    }
+
+    if (ctx->pack.pbo && (ctx->pack.pbo->base.local_name == buffer_local_name)) {
         yagl_gles_buffer_release(ctx->pack.pbo);
         ctx->pack.pbo = NULL;
-    } else if (ctx->unpack.pbo && (ctx->unpack.pbo->base.local_name == buffer_local_name)) {
+    }
+
+    if (ctx->unpack.pbo && (ctx->unpack.pbo->base.local_name == buffer_local_name)) {
         yagl_gles_buffer_release(ctx->unpack.pbo);
         ctx->unpack.pbo = NULL;
     }