Mesa (master): translate_generic: fix broken A8R8G8B8_UNORM output

Luca Barbieri lb at kemper.freedesktop.org
Wed Aug 11 14:28:00 UTC 2010


Module: Mesa
Branch: master
Commit: 684aeb366fb72a2dbf9dd7a0803f29880858cd06
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=684aeb366fb72a2dbf9dd7a0803f29880858cd06

Author: Luca Barbieri <luca at luca-barbieri.com>
Date:   Wed Aug 11 16:00:32 2010 +0200

translate_generic: fix broken A8R8G8B8_UNORM output

translate was attempting to output A8R8G8B8_UNORM as if it were
R8G8B8A8_UNORM.

Now the tests just added pass.

---

 .../auxiliary/translate/translate_generic.c        |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/gallium/auxiliary/translate/translate_generic.c b/src/gallium/auxiliary/translate/translate_generic.c
index 809a4e4..021099a 100644
--- a/src/gallium/auxiliary/translate/translate_generic.c
+++ b/src/gallium/auxiliary/translate/translate_generic.c
@@ -187,9 +187,15 @@ ATTRIB( R8G8B8_SNORM,    3, char, TO_8_SNORM )
 ATTRIB( R8G8_SNORM,      2, char, TO_8_SNORM )
 ATTRIB( R8_SNORM,        1, char, TO_8_SNORM )
 
-ATTRIB( A8R8G8B8_UNORM,       4, ubyte, TO_8_UNORM )
-/*ATTRIB( R8G8B8A8_UNORM,       4, ubyte, TO_8_UNORM )*/
-
+static void
+emit_A8R8G8B8_UNORM( const float *attrib, void *ptr)
+{
+   ubyte *out = (ubyte *)ptr;
+   out[0] = TO_8_UNORM(attrib[3]);
+   out[1] = TO_8_UNORM(attrib[0]);
+   out[2] = TO_8_UNORM(attrib[1]);
+   out[3] = TO_8_UNORM(attrib[2]);
+}
 
 static void
 emit_B8G8R8A8_UNORM( const float *attrib, void *ptr)




More information about the mesa-commit mailing list