From 570016cef27b8b2078d1495fcbce86e3c86c0ee4 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 14 Jul 2011 20:57:34 -0600 Subject: [PATCH] mesa: Add driver hooks for texture image mapping/unmapping. 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 --- src/mesa/main/dd.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h index 3164ac87ef9..d918b1e311d 100644 --- a/src/mesa/main/dd.h +++ b/src/mesa/main/dd.h @@ -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 */ -- 2.30.2