diff options
author | Anuj Phogat <[email protected]> | 2014-03-21 11:05:55 -0700 |
---|---|---|
committer | Anuj Phogat <[email protected]> | 2014-05-01 10:58:40 -0700 |
commit | 7a8045d2f7b7f749a555dbe5f51c327ab0cd6cc8 (patch) | |
tree | 8af8df71bf9bab9a7c6a015edcfaee8c8d76b31f /src | |
parent | ef924f0de93accff2ea12dbd90cc3c1df794c8f5 (diff) |
mesa: Add new helper function _mesa_unpack_depth_stencil_row()
This patch makes non-functional changes in the code. New helper
function added here will make it easier to support more data
types in the following patches.
Cc: <[email protected]>
Signed-off-by: Anuj Phogat <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/main/format_unpack.c | 24 | ||||
-rw-r--r-- | src/mesa/main/format_unpack.h | 5 | ||||
-rw-r--r-- | src/mesa/main/texgetimage.c | 9 |
3 files changed, 32 insertions, 6 deletions
diff --git a/src/mesa/main/format_unpack.c b/src/mesa/main/format_unpack.c index cf96609ea07..c9d793f66cf 100644 --- a/src/mesa/main/format_unpack.c +++ b/src/mesa/main/format_unpack.c @@ -4263,3 +4263,27 @@ _mesa_unpack_uint_24_8_depth_stencil_row(mesa_format format, GLuint n, return; } } + +/** + * Unpack depth/stencil + * \param format the source data format + * \param type the destination data type + */ +void +_mesa_unpack_depth_stencil_row(mesa_format format, GLuint n, + const void *src, GLenum type, + GLuint *dst) +{ + assert(type == GL_UNSIGNED_INT_24_8); + + switch (type) { + case GL_UNSIGNED_INT_24_8: + _mesa_unpack_uint_24_8_depth_stencil_row(format, n, src, dst); + break; + default: + _mesa_problem(NULL, + "bad type 0x%x in _mesa_unpack_depth_stencil_row", + type); + return; + } +} diff --git a/src/mesa/main/format_unpack.h b/src/mesa/main/format_unpack.h index 1fcfc04b331..5904a28e755 100644 --- a/src/mesa/main/format_unpack.h +++ b/src/mesa/main/format_unpack.h @@ -63,5 +63,8 @@ void _mesa_unpack_uint_24_8_depth_stencil_row(mesa_format format, GLuint n, const void *src, GLuint *dst); - +void +_mesa_unpack_depth_stencil_row(mesa_format format, GLuint n, + const void *src, GLenum type, + GLuint *dst); #endif /* FORMAT_UNPACK_H */ diff --git a/src/mesa/main/texgetimage.c b/src/mesa/main/texgetimage.c index 754c3658ced..09c22357a03 100644 --- a/src/mesa/main/texgetimage.c +++ b/src/mesa/main/texgetimage.c @@ -149,11 +149,10 @@ get_tex_depth_stencil(struct gl_context *ctx, GLuint dimensions, void *dest = _mesa_image_address(dimensions, &ctx->Pack, pixels, width, height, format, type, img, row, 0); - /* Unpack from texture's format to GL's z24_s8 layout */ - _mesa_unpack_uint_24_8_depth_stencil_row(texImage->TexFormat, - width, - (const GLuint *) src, - dest); + _mesa_unpack_depth_stencil_row(texImage->TexFormat, + width, + (const GLuint *) src, + type, dest); if (ctx->Pack.SwapBytes) { _mesa_swap4((GLuint *) dest, width); } |