00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00029 #ifndef _GG_Clr_h_
00030 #define _GG_Clr_h_
00031
00032 #include <GG/Base.h>
00033
00034 #include <boost/serialization/access.hpp>
00035 #include <boost/serialization/nvp.hpp>
00036
00037
00038 namespace GG {
00039
00044 struct GG_API Clr
00045 {
00047 Clr();
00048 Clr(GLubyte r_, GLubyte g_, GLubyte b_, GLubyte a_);
00049
00050
00051 GLubyte r;
00052 GLubyte g;
00053 GLubyte b;
00054 GLubyte a;
00055
00056 private:
00057 friend class boost::serialization::access;
00058 template <class Archive>
00059 void serialize(Archive& ar, const unsigned int version);
00060 };
00061
00062 GG_API Clr FloatClr(float r_, float g_, float b_, float a_);
00063
00064 GG_API bool operator==(const Clr& rhs, const Clr& lhs);
00065 GG_API bool operator!=(const Clr& rhs, const Clr& lhs);
00066
00067
00068 extern GG_API const Clr CLR_ZERO;
00069 extern GG_API const Clr CLR_BLACK;
00070 extern GG_API const Clr CLR_WHITE;
00071 extern GG_API const Clr CLR_GRAY;
00072 extern GG_API const Clr CLR_SHADOW;
00073 extern GG_API const Clr CLR_RED;
00074 extern GG_API const Clr CLR_GREEN;
00075 extern GG_API const Clr CLR_BLUE;
00076 extern GG_API const Clr CLR_CYAN;
00077 extern GG_API const Clr CLR_YELLOW;
00078 extern GG_API const Clr CLR_MAGENTA;
00079
00080 }
00081
00082
00083 template <class Archive>
00084 void GG::Clr::serialize(Archive& ar, const unsigned int version)
00085 {
00086 ar & BOOST_SERIALIZATION_NVP(r)
00087 & BOOST_SERIALIZATION_NVP(g)
00088 & BOOST_SERIALIZATION_NVP(b)
00089 & BOOST_SERIALIZATION_NVP(a);
00090 }
00091
00092 #endif // _GG_Clr_h_
00093