summaryrefslogtreecommitdiff
path: root/src/mesa/main/texstore.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/main/texstore.c')
-rw-r--r--src/mesa/main/texstore.c46
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);