diff options
author | Xiang, Haihao <haihao.xiang@intel.com> | 2009-01-06 15:37:45 +0800 |
---|---|---|
committer | Xiang, Haihao <haihao.xiang@intel.com> | 2009-01-06 15:37:45 +0800 |
commit | f1f022dbb103947b0edf5ae984fcff00f6a8e539 (patch) | |
tree | ad3fce7397baf8c23a38c2a9b9c90733862750be /src | |
parent | 241c0bfc985363bb15e6cc0eca859c6ec36d1b35 (diff) |
mesa: Fix the size per pixel for packed pixel format data type.
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/main/image.c | 2 | ||||
-rw-r--r-- | src/mesa/main/image.h | 3 | ||||
-rw-r--r-- | src/mesa/main/mipmap.c | 6 |
3 files changed, 9 insertions, 2 deletions
diff --git a/src/mesa/main/image.c b/src/mesa/main/image.c index c205b4b766..4d86c54777 100644 --- a/src/mesa/main/image.c +++ b/src/mesa/main/image.c @@ -61,7 +61,7 @@ /** * \return GL_TRUE if type is packed pixel type, GL_FALSE otherwise. */ -static GLboolean +GLboolean _mesa_type_is_packed(GLenum type) { switch (type) { diff --git a/src/mesa/main/image.h b/src/mesa/main/image.h index 38e1374c20..0e0bbd96d8 100644 --- a/src/mesa/main/image.h +++ b/src/mesa/main/image.h @@ -36,6 +36,9 @@ _mesa_swap2( GLushort *p, GLuint n ); extern void _mesa_swap4( GLuint *p, GLuint n ); +extern GLboolean +_mesa_type_is_packed(GLenum type); + extern GLint _mesa_sizeof_type( GLenum type ); diff --git a/src/mesa/main/mipmap.c b/src/mesa/main/mipmap.c index 9e051ace25..3dd4b3391b 100644 --- a/src/mesa/main/mipmap.c +++ b/src/mesa/main/mipmap.c @@ -41,7 +41,11 @@ bytes_per_pixel(GLenum datatype, GLuint comps) { GLint b = _mesa_sizeof_packed_type(datatype); assert(b >= 0); - return b * comps; + + if (_mesa_type_is_packed(datatype)) + return b; + else + return b * comps; } |