mesa: fix incorrect error in _mesa_BindTextureUnit()
authorBrian Paul <brianp@vmware.com>
Wed, 30 Sep 2015 17:48:07 +0000 (11:48 -0600)
committerBrian Paul <brianp@vmware.com>
Thu, 1 Oct 2015 13:45:43 +0000 (07:45 -0600)
If the texture object exists, but the Name field is zero, it means
the object was created but never bound to a target.  Trying to bind it
in _mesa_BindTextureUnit() should generate GL_INVALID_OPERATION.

Fixes piglit's arb_direct_state_access-bind-texture-unit test.

Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
src/mesa/main/texobj.c

index 105ec1eab9317900d31593d6e9ac4876b0e8226a..173e43c817c2d0f558c714a752a88420579324e8 100644 (file)
@@ -1816,7 +1816,8 @@ _mesa_BindTextureUnit(GLuint unit, GLuint texture)
       return;
    }
    if (texObj->Target == 0) {
-      _mesa_error(ctx, GL_INVALID_ENUM, "glBindTextureUnit(target)");
+      /* Texture object was gen'd but never bound so the target is not set */
+      _mesa_error(ctx, GL_INVALID_OPERATION, "glBindTextureUnit(target)");
       return;
    }
    assert(valid_texture_object(texObj));