[Mesa-dev] [PATCH] mesa: introduce a clear color union to be used for int/unsigned buffers
Ian Romanick
idr at freedesktop.org
Wed Sep 14 09:39:41 PDT 2011
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 09/13/2011 08:47 AM, Brian Paul wrote:
> On 09/13/2011 04:54 AM, Dave Airlie wrote:
>> From: Dave Airlie<airlied at redhat.com>
>>
>> This introduces a new gl_clear_color union and moves the current
>> ClearColorUnclamped to use it, it removes ClearColor completely
>> and all drivers are modified to expected unclamped floats
>> instead.
>>
>> also fixes st to use translated color in one place it wasn't.
>>
>> Signed-off-by: Dave Airlie<airlied at redhat.com> ---
>> src/mesa/drivers/common/meta.c | 10 ++--
>> src/mesa/drivers/dri/intel/intel_blit.c | 10 ++--
>> src/mesa/drivers/dri/nouveau/nouveau_driver.c | 2 +-
>> src/mesa/drivers/dri/nouveau/nouveau_util.h | 10 +++
>> src/mesa/drivers/dri/nouveau/nv20_context.c | 2 +-
>> src/mesa/drivers/dri/r200/r200_state.c | 11 ++--
>> src/mesa/drivers/dri/radeon/radeon_state.c | 11 ++--
>> src/mesa/drivers/windows/gdi/wmesa.c | 9 ++-
>> src/mesa/drivers/x11/xm_dd.c | 37 +++++-----
>> src/mesa/main/attrib.c | 8 +-
>> src/mesa/main/blend.c | 3 +-
>> src/mesa/main/clear.c | 94
>> ++++++++++-------------- src/mesa/main/dd.h
>> | 3 +- src/mesa/main/get.c | 11
>> ++- src/mesa/main/mtypes.h | 9 ++-
>> src/mesa/state_tracker/st_cb_clear.c | 14 ++--
>> src/mesa/state_tracker/st_format.c | 9 +++
>> src/mesa/state_tracker/st_format.h | 3 +
>> src/mesa/swrast/s_clear.c | 47
>> +++++++------ 19 files changed, 163 insertions(+), 140
>> deletions(-)
>
>
> Looks pretty good, Dave.
>
> Reviewed-by: Brian Paul <brianp at vmware.com>
>
> I'd be OK with committing as-is, but I'd suggest a few minor
> things:
>
> 1. Do we really need to call the field ClearColorUnclamped? I
> think we could keep it as ClearColor and just add a comment that
> values are not clamped. But there are a bunch of other dual
> clamped/unclamped fields in Mesa now. We should probably review
> all of those and see where we can consolidate the clamped/unclamped
> values.
>
> 2. There seem to be many occurances of code like this:
>
> UNCLAMPED_FLOAT_TO_UBYTE(color[0], c.f[0]);
> UNCLAMPED_FLOAT_TO_UBYTE(color[1], c.f[1]);
> UNCLAMPED_FLOAT_TO_UBYTE(color[2], c.f[2]);
> UNCLAMPED_FLOAT_TO_UBYTE(color[3], c.f[3]);
>
> I think it would be good to have a helper function like this
>
> static inline void _mesa_float_rgba_to_ubyte(GLubyte dst[4], const
> GLfloat src[4]) { ... }
>
> in colormac.h to simply things. That could be done in a follow-on
> commit.
>
> 3. gl_texture_object::BorderColor is also a union of
> float/int/uint. Maybe we should rename gl_clear_color to something
> slightly more generic and use it for BorderColor too. It might be
> used in other places in the future too.
I was going to suggest the same thing.
> 4. I don't think the st_translate_clear_color() function is needed.
> It's just a wrapper for st_translate_color().
>
> -Brian
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAk5w2M0ACgkQX1gOwKyEAw9OwwCdEQ0tZTZ6bC5/czdOp7Dz4xP+
ZWgAoJ3xWoED6nPBoD+j1lSOZSG0WcrP
=/k4X
-----END PGP SIGNATURE-----
More information about the mesa-dev
mailing list