From 4bd82720880bef34895f34ac8141d0d9246b2b6d Mon Sep 17 00:00:00 2001 From: Fredrik Höglund Date: Tue, 12 Nov 2013 17:28:12 +0100 Subject: mesa: Add a _BoundTextures field in gl_texture_unit This will be used by glBindTextures() when unbinding textures, to avoid having to loop over all the targets. Reviewed-by: Brian Paul Reviewed-by: Ian Romanick --- src/mesa/main/texobj.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/mesa/main/texobj.c') diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c index 42d057c6ae3..a72b75317f9 100644 --- a/src/mesa/main/texobj.c +++ b/src/mesa/main/texobj.c @@ -1102,6 +1102,7 @@ unbind_texobj_from_texunits(struct gl_context *ctx, _mesa_reference_texobj(&unit->CurrentTex[tex], ctx->Shared->DefaultTex[tex]); ASSERT(unit->CurrentTex[tex]); + unit->_BoundTextures &= ~(1 << tex); break; } } @@ -1359,6 +1360,11 @@ _mesa_BindTexture( GLenum target, GLuint texName ) ctx->Texture.CurrentUnit + 1); ASSERT(texUnit->CurrentTex[targetIndex]); + if (texName != 0) + texUnit->_BoundTextures |= (1 << targetIndex); + else + texUnit->_BoundTextures &= ~(1 << targetIndex); + /* Pass BindTexture call to device driver */ if (ctx->Driver.BindTexture) ctx->Driver.BindTexture(ctx, target, newTexObj); -- cgit v1.2.3