mesa: Fix bad conversion in AL1616_REV texstore.
authorEric Anholt <eric@anholt.net>
Wed, 2 Dec 2009 20:42:36 +0000 (12:42 -0800)
committerEric Anholt <eric@anholt.net>
Thu, 3 Dec 2009 00:19:36 +0000 (16:19 -0800)
src/mesa/main/texstore.c

index 5387eb12837a833001f4952b46638c7899d3ecbc..792c83141ec67e813c91fbe5db56cf0fbc941740 100644 (file)
@@ -2197,18 +2197,22 @@ _mesa_texstore_al1616(TEXSTORE_PARAMS)
             GLuint *dstUI = (GLuint *) dstRow;
             if (dstFormat == MESA_FORMAT_AL1616) {
                for (col = 0; col < srcWidth; col++) {
-                  /* src[0] is luminance, src[1] is alpha */
-                 dstUI[col] = PACK_COLOR_1616( FLOAT_TO_USHORT(src[1]),
-                                              FLOAT_TO_USHORT(src[0]) );
-                 src += 2;
+                 GLushort l, a;
+
+                 UNCLAMPED_FLOAT_TO_USHORT(l, src[0]);
+                 UNCLAMPED_FLOAT_TO_USHORT(a, src[1]);
+                 dstUI[col] = PACK_COLOR_1616(a, l);
+                 src += 2;
                }
             }
             else {
                for (col = 0; col < srcWidth; col++) {
-                  /* src[0] is luminance, src[1] is alpha */
-                 dstUI[col] = PACK_COLOR_1616_REV( FLOAT_TO_UBYTE(src[1]),
-                                                  FLOAT_TO_UBYTE(src[0]) );
-                 src += 2;
+                 GLushort l, a;
+
+                 UNCLAMPED_FLOAT_TO_USHORT(l, src[0]);
+                 UNCLAMPED_FLOAT_TO_USHORT(a, src[1]);
+                 dstUI[col] = PACK_COLOR_1616_REV(a, l);
+                 src += 2;
                }
             }
             dstRow += dstRowStride;