OSDN Git Service

hack/fix pack_color() for correct ps3 format
authorBrian <brian.paul@tungstengraphics.com>
Tue, 1 Jan 2008 21:01:14 +0000 (14:01 -0700)
committerBrian <brian.paul@tungstengraphics.com>
Tue, 1 Jan 2008 22:21:50 +0000 (15:21 -0700)
src/mesa/pipe/cell/spu/tri.c

index 90452f1..cd648db 100644 (file)
@@ -42,6 +42,7 @@
 
 
 #include "pipe/p_compiler.h"
+#include "pipe/p_format.h"
 #include "pipe/p_util.h"
 #include "main.h"
 #include "tri.h"
@@ -235,8 +236,16 @@ pack_color(const float color[4])
    uint g = (uint) (color[1] * 255.0);
    uint b = (uint) (color[2] * 255.0);
    uint a = (uint) (color[3] * 255.0);
-   uint icolor = (b << 24) | (g << 16) | (r << 8) | a;
-   return icolor;
+   const enum pipe_format format = PIPE_FORMAT_A8R8G8B8_UNORM; /* XXX temp */
+   switch (format) {
+   case PIPE_FORMAT_A8R8G8B8_UNORM:
+      return (a << 24) | (r << 16) | (g << 8) | b;
+   case PIPE_FORMAT_B8G8R8A8_UNORM:
+      return (b << 24) | (g << 16) | (r << 8) | a;
+   default:
+      assert(0);
+      return 0;
+   }
 }