mesa: Add driver hooks for texture image mapping/unmapping.
authorBrian Paul <brianp@vmware.com>
Fri, 15 Jul 2011 02:57:34 +0000 (20:57 -0600)
committerEric Anholt <eric@anholt.net>
Mon, 29 Aug 2011 17:10:03 +0000 (10:10 -0700)
ctx->Driver.MapTextureImage() / UnmapTextureImage() will be called by
the glTex[Sub]Image(), glGetTexImage() functions, etc. when we're
accessing texture data, and also for software rendering when accessing
texture data.

Reviewed-by: Brian Paul <brianp@vmware.com>
src/mesa/main/dd.h

index 3164ac87ef92c2e156059123b6e4d08fe65eb089..d918b1e311d4efe6ecf00632248235e50e3f8c86 100644 (file)
@@ -481,6 +481,25 @@ struct dd_function_table {
     */
    void (*FreeTextureImageBuffer)( struct gl_context *ctx, struct gl_texture_image *tImage );
 
+   /** Map a slice of a texture image into user space.
+    * \param texImage  the texture image
+    * \param slice  the 3D image slice or array texture slice
+    * \param x, y, w, h  region of interest
+    * \param mode  bitmask of GL_MAP_READ_BIT, GL_MAP_WRITE_BIT
+    * \param mapOut  returns start of mapping of region of interest
+    * \param rowStrideOut  returns row stride (in bytes)
+    */
+   void (*MapTextureImage)(struct gl_context *ctx,
+                          struct gl_texture_image *texImage,
+                          GLuint slice,
+                          GLuint x, GLuint y, GLuint w, GLuint h,
+                          GLbitfield mode,
+                          GLubyte **mapOut, GLint *rowStrideOut);
+
+   void (*UnmapTextureImage)(struct gl_context *ctx,
+                            struct gl_texture_image *texImage,
+                            GLuint slice);
+
    /** Map texture image data into user space */
    void (*MapTexture)( struct gl_context *ctx, struct gl_texture_object *tObj );
    /** Unmap texture images from user space */