diff options
author | Eric Anholt <[email protected]> | 2019-07-01 17:20:55 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2019-07-16 12:51:13 -0700 |
commit | e8360a64e43f2f254addd6dc414df018f6286a92 (patch) | |
tree | 41a5d4cc7991f3ebacc2e0d60e7bb55427d671b5 /src/mesa/main/format_pack.py | |
parent | 4d23157a8bf5da2f20ad477029fcf59d9df8557e (diff) |
swrast: Move _mesa_format_pack_colormask() to the only caller.
This avoids needing format_pack to have access to the GLenum return
functions for mesa_format. It seems like an odd function and unlikely
to be reused.
Reviewed-by: Thomas Helland <[email protected]>
Reviewed-by: Kristian H. Kristensen <[email protected]>
Diffstat (limited to 'src/mesa/main/format_pack.py')
-rw-r--r-- | src/mesa/main/format_pack.py | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/src/mesa/main/format_pack.py b/src/mesa/main/format_pack.py index f5a165a94e8..05aee020297 100644 --- a/src/mesa/main/format_pack.py +++ b/src/mesa/main/format_pack.py @@ -912,78 +912,6 @@ _mesa_pack_uint_24_8_depth_stencil_row(mesa_format format, uint32_t n, } } - - -/** - * Convert a boolean color mask to a packed color where each channel of - * the packed value at dst will be 0 or ~0 depending on the colorMask. - */ -void -_mesa_pack_colormask(mesa_format format, const uint8_t colorMask[4], void *dst) -{ - float maskColor[4]; - - switch (_mesa_get_format_datatype(format)) { - case GL_UNSIGNED_NORMALIZED: - /* simple: 1.0 will convert to ~0 in the right bit positions */ - maskColor[0] = colorMask[0] ? 1.0f : 0.0f; - maskColor[1] = colorMask[1] ? 1.0f : 0.0f; - maskColor[2] = colorMask[2] ? 1.0f : 0.0f; - maskColor[3] = colorMask[3] ? 1.0f : 0.0f; - _mesa_pack_float_rgba_row(format, 1, - (const float (*)[4]) maskColor, dst); - break; - case GL_SIGNED_NORMALIZED: - case GL_FLOAT: - /* These formats are harder because it's hard to know the floating - * point values that will convert to ~0 for each color channel's bits. - * This solution just generates a non-zero value for each color channel - * then fixes up the non-zero values to be ~0. - * Note: we'll need to add special case code if we ever have to deal - * with formats with unequal color channel sizes, like R11_G11_B10. - * We issue a warning below for channel sizes other than 8,16,32. - */ - { - uint32_t bits = _mesa_get_format_max_bits(format); /* bits per chan */ - uint32_t bytes = _mesa_get_format_bytes(format); - uint32_t i; - - /* this should put non-zero values into the channels of dst */ - maskColor[0] = colorMask[0] ? -1.0f : 0.0f; - maskColor[1] = colorMask[1] ? -1.0f : 0.0f; - maskColor[2] = colorMask[2] ? -1.0f : 0.0f; - maskColor[3] = colorMask[3] ? -1.0f : 0.0f; - _mesa_pack_float_rgba_row(format, 1, - (const float (*)[4]) maskColor, dst); - - /* fix-up the dst channels by converting non-zero values to ~0 */ - if (bits == 8) { - uint8_t *d = (uint8_t *) dst; - for (i = 0; i < bytes; i++) { - d[i] = d[i] ? 0xff : 0x0; - } - } - else if (bits == 16) { - uint16_t *d = (uint16_t *) dst; - for (i = 0; i < bytes / 2; i++) { - d[i] = d[i] ? 0xffff : 0x0; - } - } - else if (bits == 32) { - uint32_t *d = (uint32_t *) dst; - for (i = 0; i < bytes / 4; i++) { - d[i] = d[i] ? 0xffffffffU : 0x0; - } - } - else { - unreachable("unexpected size in _mesa_pack_colormask()"); - } - } - break; - default: - unreachable("unexpected format data type in gen_color_mask()"); - } -} """ template = Template(string, future_imports=['division']); |