diff options
Diffstat (limited to 'src/mesa/main/texstore.c')
-rw-r--r-- | src/mesa/main/texstore.c | 46 |
1 files changed, 29 insertions, 17 deletions
diff --git a/src/mesa/main/texstore.c b/src/mesa/main/texstore.c index 5f30e03d06..3a8ccb3984 100644 --- a/src/mesa/main/texstore.c +++ b/src/mesa/main/texstore.c @@ -2,7 +2,7 @@ * Mesa 3-D graphics library * Version: 6.3 * - * Copyright (C) 1999-2004 Brian Paul All Rights Reserved. + * Copyright (C) 1999-2005 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -546,12 +546,18 @@ _mesa_make_temp_chan_image(GLcontext *ctx, GLuint dims, } -static void swizzle_copy(GLubyte *dst, - GLuint dstComponents, - const GLubyte *src, - GLuint srcComponents, - GLubyte *map, - GLuint count) +/** + * Copy GLubyte pixels from <src> to <dst> with swizzling. + * \param dst destination pixels + * \param dstComponents number of color components in destination pixels + * \param src source pixels + * \param srcComponents number of color components in source pixels + * \param map the swizzle mapping + * \param count number of pixels to copy/swizzle. + */ +static void +swizzle_copy(GLubyte *dst, GLuint dstComponents, const GLubyte *src, + GLuint srcComponents, const GLubyte *map, GLuint count) { GLubyte tmp[8]; GLint i; @@ -594,6 +600,9 @@ static void swizzle_copy(GLubyte *dst, } +/** + * Transfer a GLubyte texture image with component swizzling. + */ static void _mesa_swizzle_ubyte_image(GLcontext *ctx, GLuint dimensions, @@ -612,12 +621,16 @@ _mesa_swizzle_ubyte_image(GLcontext *ctx, GLubyte srcmap[6], map[4]; GLint i; - const GLint srcRowStride = _mesa_image_row_stride(srcPacking, srcWidth, - srcFormat, GL_UNSIGNED_BYTE); - const GLint srcImageStride = _mesa_image_image_stride(srcPacking, - srcWidth, srcHeight, srcFormat, GL_UNSIGNED_BYTE); - const GLubyte *srcImage = (const GLubyte *) _mesa_image_address(dimensions, - srcPacking, srcAddr, srcWidth, srcHeight, srcFormat, GL_UNSIGNED_BYTE, 0, 0, 0); + const GLint srcRowStride = + _mesa_image_row_stride(srcPacking, srcWidth, + srcFormat, GL_UNSIGNED_BYTE); + const GLint srcImageStride + = _mesa_image_image_stride(srcPacking, srcWidth, srcHeight, srcFormat, + GL_UNSIGNED_BYTE); + const GLubyte *srcImage + = (const GLubyte *) _mesa_image_address(dimensions, srcPacking, srcAddr, + srcWidth, srcHeight, srcFormat, + GL_UNSIGNED_BYTE, 0, 0, 0); GLubyte *dstImage = (GLubyte *) dstAddr + dstZoffset * dstImageStride @@ -652,9 +665,6 @@ _mesa_swizzle_ubyte_image(GLcontext *ctx, } - - - /** * Teximage storage routine for when a simple memcpy will do. * No pixel transfer operations or special texel encodings allowed. @@ -2139,7 +2149,8 @@ _mesa_validate_pbo_compressed_teximage(GLcontext *ctx, * functions. It unmaps the PBO buffer if it was mapped earlier. */ void -_mesa_unmap_teximage_pbo(GLcontext *ctx, const struct gl_pixelstore_attrib *unpack) +_mesa_unmap_teximage_pbo(GLcontext *ctx, + const struct gl_pixelstore_attrib *unpack) { if (unpack->BufferObj->Name) { ctx->Driver.UnmapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT, @@ -3530,6 +3541,7 @@ _mesa_generate_mipmap(GLcontext *ctx, GLenum target, GLint level, maxLevels; ASSERT(texObj); + /* XXX choose cube map face here??? */ srcImage = texObj->Image[0][texObj->BaseLevel]; ASSERT(srcImage); |