//: color.h : Grafik-Bibliothek ohne Grafiktreiber - R.Richter 2011-01-15 ///////////////////////////////////////////////////////////////////////// #ifndef COLOR_H #define COLOR_H // Farben, 24 bit Farbtiefe mit Transparenz (Alpha-Kanal) class Color { public: typedef unsigned char Channel; typedef unsigned long RGBAlpha; enum { NONE = 0xFF000000, BLACK = 0x00000000, WHITE = 0x00FFFFFF, RED = 0x00FF0000, GREEN = 0x0000FF00, BLUE = 0x000000FF, YELLOW = 0x00FFFF00 }; Color(Channel red, Channel green, Channel blue, Channel alpha = 0) : value( rgba(red, green, blue, alpha ) ) { } Color(RGBAlpha color = 0xff000000) // default: transparent : value(color) { } Channel alpha() const { return Channel(value>>24); } Channel red() const { return Channel(value>>16); } Channel green() const { return Channel(value>>8); } Channel blue() const { return Channel(value); } operator unsigned long() const { return value; } private: RGBAlpha value; static RGBAlpha rgba(Channel red, Channel green, Channel blue, Channel alpha) { return RGBAlpha(alpha)<<24 | RGBAlpha(red)<<16 | RGBAlpha(green)<<8 | RGBAlpha(blue); } }; #endif // COLOR_H //~