mesa: fix proxy textures not working with default texture binding
authorMikko Juola <mikjuo@gmail.com>
Tue, 30 Jul 2013 03:29:54 +0000 (06:29 +0300)
committerBrian Paul <brianp@vmware.com>
Wed, 31 Jul 2013 13:26:50 +0000 (07:26 -0600)
When working with the glTexStorage*() functions, the error checking
checks that a non-default (i.e., non-zero) texture is currently bound.
However, this check made glTexStorage*() functions fail with proxy
textures when the default texture is bound. Proxy textures do not care
about the current texture bindings so for them this check should not
be done.

Reviewed-by: Brian Paul <brianp@vmware.com>
Cc: mesa-stable@lists.freedesktop.org
src/mesa/main/texstorage.c

index 0a53726fe648f4df9288640a5b1c3602422665fa..77988971053ffdb78836330f1b2ca5c783f8d22f 100644 (file)
@@ -335,7 +335,7 @@ tex_storage_error_check(struct gl_context *ctx, GLuint dims, GLenum target,
 
    /* non-default texture object check */
    texObj = _mesa_get_current_tex_object(ctx, target);
-   if (!texObj || (texObj->Name == 0)) {
+   if (!_mesa_is_proxy_texture(target) && (!texObj || (texObj->Name == 0))) {
       _mesa_error(ctx, GL_INVALID_OPERATION,
                   "glTexStorage%uD(texture object 0)", dims);
       return GL_TRUE;