diff options
author | Dave Airlie <[email protected]> | 2011-09-07 10:19:14 +0100 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2011-09-07 10:20:47 +0100 |
commit | 99c1a58b3067893d4fa444cd4abcf13bb43232ef (patch) | |
tree | e3f8c14a47b55a120b1f925ebcd029addd3cfcbf | |
parent | 6edef25a4b41583e1c285653fc0b84a316e9743d (diff) |
varray.c: fix logic around BGRA with ARB_vertex_type_2_10_10_10_rev.
I introduced a regression in here, I've just split the logic ot now, so
its easier to read/understand.
Should fix: https://bugs.freedesktop.org/show_bug.cgi?id=40664
Signed-off-by: Dave Airlie <[email protected]>
-rw-r--r-- | src/mesa/main/varray.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/mesa/main/varray.c b/src/mesa/main/varray.c index 9c9d0d66ea9..13b3405e5ac 100644 --- a/src/mesa/main/varray.c +++ b/src/mesa/main/varray.c @@ -160,10 +160,17 @@ update_array(struct gl_context *ctx, if (ctx->Extensions.EXT_vertex_array_bgra && sizeMax == BGRA_OR_4 && size == GL_BGRA) { - if (type != GL_UNSIGNED_BYTE && - (ctx->Extensions.ARB_vertex_type_2_10_10_10_rev && - (type != GL_UNSIGNED_INT_2_10_10_10_REV && - type != GL_INT_2_10_10_10_REV))) { + GLboolean bgra_error = GL_FALSE; + + if (ctx->Extensions.ARB_vertex_type_2_10_10_10_rev) { + if (type != GL_UNSIGNED_INT_2_10_10_10_REV && + type != GL_INT_2_10_10_10_REV && + type != GL_UNSIGNED_BYTE) + bgra_error = GL_TRUE; + } else if (type != GL_UNSIGNED_BYTE) + bgra_error = GL_TRUE; + + if (bgra_error) { _mesa_error(ctx, GL_INVALID_VALUE, "%s(GL_BGRA/GLubyte)", func); return; } |