From: Fredrik Höglund Date: Thu, 23 Jan 2014 13:02:24 +0000 (+0100) Subject: mesa: Add a texUnit parameter to dd_function_table::BindTexture X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=659d94b256fd6bcf19c8cdf261e2c0bb26e0faf2;p=mesa.git mesa: Add a texUnit parameter to dd_function_table::BindTexture This is for glBindTextures(), since it doesn't change the active texture unit. Reviewed-by: Brian Paul Reviewed-by: Ian Romanick --- diff --git a/src/mesa/drivers/dri/nouveau/nouveau_texture.c b/src/mesa/drivers/dri/nouveau/nouveau_texture.c index ae8dbd41f42..e7d5c0238b6 100644 --- a/src/mesa/drivers/dri/nouveau/nouveau_texture.c +++ b/src/mesa/drivers/dri/nouveau/nouveau_texture.c @@ -575,11 +575,11 @@ nouveau_compressed_texsubimage(struct gl_context *ctx, GLuint dims, } static void -nouveau_bind_texture(struct gl_context *ctx, GLenum target, - struct gl_texture_object *t) +nouveau_bind_texture(struct gl_context *ctx, GLuint texUnit, + GLenum target, struct gl_texture_object *t) { - context_dirty_i(ctx, TEX_OBJ, ctx->Texture.CurrentUnit); - context_dirty_i(ctx, TEX_ENV, ctx->Texture.CurrentUnit); + context_dirty_i(ctx, TEX_OBJ, texUnit); + context_dirty_i(ctx, TEX_ENV, texUnit); } static mesa_format diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h index 9715241355d..633ea2c3a2e 100644 --- a/src/mesa/main/dd.h +++ b/src/mesa/main/dd.h @@ -314,10 +314,10 @@ struct dd_function_table { /*@{*/ /** - * Called by glBindTexture(). + * Called by glBindTexture() and glBindTextures(). */ - void (*BindTexture)( struct gl_context *ctx, GLenum target, - struct gl_texture_object *tObj ); + void (*BindTexture)( struct gl_context *ctx, GLuint texUnit, + GLenum target, struct gl_texture_object *tObj ); /** * Called to allocate a new texture object. Drivers will usually diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c index 221746ffd0e..7c8b789ca39 100644 --- a/src/mesa/main/texobj.c +++ b/src/mesa/main/texobj.c @@ -1390,7 +1390,7 @@ _mesa_BindTexture( GLenum target, GLuint texName ) /* Pass BindTexture call to device driver */ if (ctx->Driver.BindTexture) - ctx->Driver.BindTexture(ctx, target, newTexObj); + ctx->Driver.BindTexture(ctx, ctx->Texture.CurrentUnit, target, newTexObj); }