gallium: add pack for _FLOAT formats to pack_ub
authorKeith Whitwell <keith@tungstengraphics.com>
Tue, 29 Apr 2008 20:30:31 +0000 (21:30 +0100)
committerKeith Whitwell <keith@tungstengraphics.com>
Tue, 29 Apr 2008 20:30:31 +0000 (21:30 +0100)
src/gallium/auxiliary/util/u_pack_color.h

index bb2c34e5f6e666c935e7b23ecdd4b02a2244fdfc..0b917c005f1526b0a8c8770ec0db0f1bdcff154d 100644 (file)
@@ -101,6 +101,24 @@ util_pack_color_ub(ubyte r, ubyte g, ubyte b, ubyte a,
          *d = ((a & 0xf0) << 8) | ((r & 0xf0) << 4) | ((g & 0xf0) << 0) | (b >> 4);
       }
       return;
+   case PIPE_FORMAT_R32G32B32A32_FLOAT:
+      {
+         float *d = (float *) dest;
+         d[0] = (float)r / 255.0f;
+         d[1] = (float)g / 255.0f;
+         d[2] = (float)b / 255.0f;
+         d[3] = (float)a / 255.0f;
+      }
+      return;
+   case PIPE_FORMAT_R32G32B32_FLOAT:
+      {
+         float *d = (float *) dest;
+         d[0] = (float)r / 255.0f;
+         d[1] = (float)g / 255.0f;
+         d[2] = (float)b / 255.0f;
+      }
+      return;
+
    /* XXX lots more cases to add */
    default:
       debug_print_format("gallium: unhandled format in util_pack_color_ub()", format);