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 */