4a1660901787483a66afe4aa93bd21f34e9a4164
kent
  Sun Feb 17 10:46:52 2013 -0800
Adding functions to extract a color component from a 32 bit color.
diff --git src/inc/memgfx.h src/inc/memgfx.h
index c3c3952..1eb7b6e 100644
--- src/inc/memgfx.h
+++ src/inc/memgfx.h
@@ -22,44 +22,50 @@
 
 #if defined(__sgi__) || defined(__sgi) || defined(__powerpc__) || defined(sparc) || defined(__ppc__) || defined(__s390__) || defined(__s390x__)
 
 #define MEMGFX_BIGENDIAN	1
 #define MG_WHITE   0xffffffff
 #define MG_BLACK   0x000000ff
 #define MG_RED     0xff0000ff
 #define MG_GREEN   0x00ff00ff
 #define MG_BLUE    0x0000ffff
 #define MG_CYAN    0x00ffffff
 #define MG_MAGENTA 0xff00ffff
 #define MG_YELLOW  0xffff00ff
 #define MG_GRAY    0x808080ff
 
 #define MAKECOLOR_32(r,g,b) (((unsigned int)0xff) | ((unsigned int)b<<8) | ((unsigned int)g << 16) | ((unsigned int)r << 24))
+#define COLOR_32_RED(c) (((c)>>24)&0xff)
+#define COLOR_32_GREEN(c) (((c)>>16)&0xff)
+#define COLOR_32_BLUE(c) (((c)>>8)&0xff)
 
 #else
 
 #define MG_WHITE   0xffffffff
 #define MG_BLACK   0xff000000
 #define MG_RED     0xff0000ff
 #define MG_GREEN   0xff00ff00
 #define MG_BLUE    0xffff0000
 #define MG_CYAN    0xffffff00
 #define MG_MAGENTA 0xffff00ff
 #define MG_YELLOW  0xff00ffff
 #define MG_GRAY    0xff808080
 
 #define MAKECOLOR_32(r,g,b) (((unsigned int)0xff<<24) | ((unsigned int)b<<16) | ((unsigned int)g << 8) | (unsigned int)r)
+#define COLOR_32_RED(c) ((c)&0xff)
+#define COLOR_32_GREEN(c) (((c)>>8)&0xff)
+#define COLOR_32_BLUE(c) (((c)>>16)&0xff)
 #endif
 
 #else /* 8-bit color */
 typedef unsigned char Color;
 
 #define MG_WHITE 0
 #define MG_BLACK 1
 #define MG_RED 2
 #define MG_GREEN 3
 #define MG_BLUE 4
 #define MG_CYAN 5
 #define MG_MAGENTA 6
 #define MG_YELLOW 7
 #define MG_GRAY 8
 #define MG_FREE_COLORS_START 9
@@ -374,16 +380,19 @@
  *   saturation scale 's', and 
  *   lightness scale 'l'
  * Returns the transformed rgb value 
  * Use H=0, S=L=1 for identity transformation
  */
 
 struct rgbColor mgRgbTransformHsv(struct rgbColor in, double h, double s, double v);
 /* Transform rgb 'in' value using
  *   hue shift 'h' (0..360 degrees), 
  *   saturation scale 's', and 
  *   value scale 'v'
  * Returns the transformed rgb value 
  * Use H=0, S=V=1 for identity transformation
  */
 
+struct rgbColor mgColorIxToRgb(struct memGfx *mg, int colorIx);
+/* Return rgb value at color index. */
+
 #endif /* MEMGFX_H */