summaryrefslogtreecommitdiffstats
path: root/src/mesa/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/main')
-rw-r--r--src/mesa/main/texgetimage.c2
-rw-r--r--src/mesa/main/texstore.c24
-rw-r--r--src/mesa/main/texstore.h9
3 files changed, 23 insertions, 12 deletions
diff --git a/src/mesa/main/texgetimage.c b/src/mesa/main/texgetimage.c
index f1e09c986aa..9b2f72150ec 100644
--- a/src/mesa/main/texgetimage.c
+++ b/src/mesa/main/texgetimage.c
@@ -693,7 +693,7 @@ _mesa_get_compressed_teximage(struct gl_context *ctx,
GLuint i, slice;
GLubyte *dest;
- _mesa_compute_compressed_pixelstore(dimensions, texImage,
+ _mesa_compute_compressed_pixelstore(dimensions, texImage->TexFormat,
texImage->Width, texImage->Height,
texImage->Depth,
&ctx->Pack,
diff --git a/src/mesa/main/texstore.c b/src/mesa/main/texstore.c
index f2eb0def233..d2aba8ba1e3 100644
--- a/src/mesa/main/texstore.c
+++ b/src/mesa/main/texstore.c
@@ -2191,14 +2191,23 @@ _mesa_store_compressed_teximage(struct gl_context *ctx, GLuint dims,
}
+/**
+ * Compute compressed_pixelstore parameters for copying compressed
+ * texture data.
+ * \param dims number of texture image dimensions: 1, 2 or 3
+ * \param texFormat the compressed texture format
+ * \param width, height, depth size of image to copy
+ * \param packing pixelstore parameters describing user-space image packing
+ * \param store returns the compressed_pixelstore parameters
+ */
void
-_mesa_compute_compressed_pixelstore(GLuint dims, struct gl_texture_image *texImage,
- GLsizei width, GLsizei height, GLsizei depth,
- const struct gl_pixelstore_attrib *packing,
- struct compressed_pixelstore *store)
+_mesa_compute_compressed_pixelstore(GLuint dims, mesa_format texFormat,
+ GLsizei width, GLsizei height,
+ GLsizei depth,
+ const struct gl_pixelstore_attrib *packing,
+ struct compressed_pixelstore *store)
{
GLuint bw, bh;
- const mesa_format texFormat = texImage->TexFormat;
_mesa_get_format_block_size(texFormat, &bw, &bh);
@@ -2268,8 +2277,9 @@ _mesa_store_compressed_texsubimage(struct gl_context *ctx, GLuint dims,
return;
}
- _mesa_compute_compressed_pixelstore(dims, texImage, width, height, depth,
- &ctx->Unpack, &store);
+ _mesa_compute_compressed_pixelstore(dims, texImage->TexFormat,
+ width, height, depth,
+ &ctx->Unpack, &store);
/* get pointer to src pixels (may be in a pbo which we'll map here) */
data = _mesa_validate_pbo_compressed_teximage(ctx, dims, imageSize, data,
diff --git a/src/mesa/main/texstore.h b/src/mesa/main/texstore.h
index dd1e1d01562..4c41d1fcd9a 100644
--- a/src/mesa/main/texstore.h
+++ b/src/mesa/main/texstore.h
@@ -150,10 +150,11 @@ struct compressed_pixelstore {
extern void
-_mesa_compute_compressed_pixelstore(GLuint dims, struct gl_texture_image *texImage,
- GLsizei width, GLsizei height, GLsizei depth,
- const struct gl_pixelstore_attrib *packing,
- struct compressed_pixelstore *store);
+_mesa_compute_compressed_pixelstore(GLuint dims, mesa_format texFormat,
+ GLsizei width, GLsizei height,
+ GLsizei depth,
+ const struct gl_pixelstore_attrib *packing,
+ struct compressed_pixelstore *store);
#endif