mesa: Add a texUnit parameter to dd_function_table::BindTexture
authorFredrik Höglund <fredrik@kde.org>
Thu, 23 Jan 2014 13:02:24 +0000 (14:02 +0100)
committerFredrik Höglund <fredrik@kde.org>
Fri, 2 May 2014 00:53:25 +0000 (02:53 +0200)
This is for glBindTextures(), since it doesn't change the active
texture unit.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
src/mesa/drivers/dri/nouveau/nouveau_texture.c
src/mesa/main/dd.h
src/mesa/main/texobj.c

index ae8dbd41f42dfd4556bfcea854774db5c5ac9e41..e7d5c0238b6e4debf6453d5f10cc99cd242d992b 100644 (file)
@@ -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
index 9715241355d8a82a44b7f7e3fe97d33dd364f4c9..633ea2c3a2e77cff0f5d8a93e7d4794444871e40 100644 (file)
@@ -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
index 221746ffd0ed86575023447fc0724cdc15cca03e..7c8b789ca39826a7c5de8cbbdfb65a7ac79fb3f2 100644 (file)
@@ -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);
 }