OSDN Git Service

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 0a53726..7798897 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;