00001 #if !defined( __ARSCOLOR_H__ )
00002 #define __ARSCOLOR_H__
00003
00004 namespace Ars
00005 {
00006 class RGBColor {
00007 public:
00008 unsigned char red;
00009 unsigned char green;
00010 unsigned char blue;
00011 unsigned char alpha;
00012
00018 RGBColor(const unsigned char r, const unsigned char g, const unsigned char b, const unsigned char a = 0xFF)
00019 : red(r), green(g), blue(b), alpha(a) { }
00020
00024 RGBColor(const Uint32* pColorValue, const SDL_PixelFormat* pFormat);
00025
00028 unsigned long int SDLColor(SDL_PixelFormat* pFormat) const { return SDL_MapRGBA(pFormat, red, green, blue, alpha); }
00029
00032 bool operator==(const RGBColor& c) const { return (red == c.red && green == c.green && blue == c.blue); }
00033
00036 bool operator!=(const RGBColor& c) const { return (red != c.red || green != c.green || blue != c.blue); }
00037
00039 RGBColor& operator=(const RGBColor& c);
00040
00042 RGBColor operator+(const RGBColor& c) const;
00043
00045 RGBColor operator|(const RGBColor& c) const;
00046
00048 RGBColor operator&(const RGBColor& c) const;
00049
00051 RGBColor operator^(const RGBColor& c) const;
00052
00053 RGBColor FadeColor( const int factor ) const;
00054 };
00055 }
00056
00057 #endif
00058