Signed-off-by: Anuj Phogat <anuj.pho...@gmail.com> --- src/mesa/main/formats.c | 21 +++++++++++++++++++++ src/mesa/main/formats.h | 4 ++++ 2 files changed, 25 insertions(+)
diff --git a/src/mesa/main/formats.c b/src/mesa/main/formats.c index 3d2349b..cfaac04 100644 --- a/src/mesa/main/formats.c +++ b/src/mesa/main/formats.c @@ -321,6 +321,27 @@ _mesa_get_format_block_size(mesa_format format, GLuint *bw, GLuint *bh) /** + * Return the block size (in pixels) for the given format. Normally + * the block size is 1x1x1. But compressed formats will have block + * sizes of 4x4x4, 3x3x3 pixels, etc. + * \param bw returns block width in pixels + * \param bh returns block height in pixels + * \param bd returns block depth in pixels + */ +void +_mesa_get_format_block_size_3d(mesa_format format, + GLuint *bw, + GLuint *bh, + GLuint *bd) +{ + const struct gl_format_info *info = _mesa_get_format_info(format); + *bw = info->BlockWidth; + *bh = info->BlockHeight; + *bd = info->BlockDepth; +} + + +/** * Returns the an array of four numbers representing the transformation * from the RGBA or SZ colorspace to the given format. For array formats, * the i'th RGBA component is given by: diff --git a/src/mesa/main/formats.h b/src/mesa/main/formats.h index 794d599..c6653bc 100644 --- a/src/mesa/main/formats.h +++ b/src/mesa/main/formats.h @@ -663,6 +663,10 @@ _mesa_get_format_base_format(uint32_t format); extern void _mesa_get_format_block_size(mesa_format format, GLuint *bw, GLuint *bh); +extern void +_mesa_get_format_block_size_3d(mesa_format format, GLuint *bw, + GLuint *bh, GLuint *bd); + extern mesa_array_format _mesa_array_format_flip_channels(mesa_array_format format); -- 2.5.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev