00001
00002
00003
00004
00005
00008
00009 #ifndef _ROKU_INCLUDE_CASCADE_GRAPHICS_CASCADECOLOR_H
00010 #define _ROKU_INCLUDE_CASCADE_GRAPHICS_CASCADECOLOR_H
00011
00012 #include <cascade/CascadeObject.h>
00013
00029 class CascadeColor : public CascadeObject
00030 {
00031 public:
00032 CascadeColor() { SetRGBA(0, 0, 0, 0xFF); }
00036 CascadeColor(u8 red, u8 green, u8 blue) { SetRGBA(red, green, blue, 0xFF); }
00043 CascadeColor(u8 red, u8 green, u8 blue, u8 alpha) { SetRGBA(red, green, blue, alpha); }
00051 CascadeColor(const CascadeColor & color) { m_nColor = color.m_nColor; }
00056
00057 public:
00058 inline void SetRed(u8 red);
00063 inline void SetGreen(u8 green);
00068 inline void SetBlue(u8 blue);
00073 inline void SetAlpha(u8 alpha);
00078 inline void SetRGB(u8 red, u8 green, u8 blue);
00086 inline void SetRGBA(u8 red, u8 green, u8 blue, u8 alpha);
00094 inline u8 GetRed();
00099 inline u8 GetGreen();
00104 inline u8 GetBlue();
00109 inline u8 GetAlpha();
00114 inline void GetRGB(u8 & redToSet, u8 & greenToSet, u8 & blueToSet);
00122 inline void GetRGBA(u8 & redToSet, u8 & greenToSet, u8 & blueToSet, u8 & alphaToSet);
00131 inline bool operator == (const CascadeColor & colorThat) const
00132 {
00133 return (m_nColor == colorThat.m_nColor);
00134 }
00140 public:
00141 u32 m_nColor;
00146 };
00147
00149
00150 inline void
00151 CascadeColor::SetRed(u8 red)
00152 {
00153 m_nColor &= 0x00FFFFFF;
00154 m_nColor |= ((u32)red) << 24;
00155 }
00156
00157 inline void
00158 CascadeColor::SetGreen(u8 green)
00159 {
00160
00161 m_nColor &= 0xFF00FFFF;
00162 m_nColor |= ((u32)green) << 16;
00163 }
00164
00165 inline void
00166 CascadeColor::SetBlue(u8 blue)
00167 {
00168 m_nColor &= 0xFFFF00FF;
00169 m_nColor |= ((u32)blue) << 8;
00170 }
00171
00172 inline void
00173 CascadeColor::SetAlpha(u8 alpha)
00174 {
00175 m_nColor &= 0xFFFFFF00;
00176 m_nColor |= ((u32)alpha);
00177 }
00178
00179 inline void
00180 CascadeColor::SetRGB(u8 red, u8 green, u8 blue)
00181 {
00182 m_nColor = (((u32)red) << 24) | (((u32)green) << 16) | (((u32)blue) << 8) | (m_nColor & 0x000000FF);
00183 }
00184
00185 inline void
00186 CascadeColor::SetRGBA(u8 red, u8 green, u8 blue, u8 alpha)
00187 {
00188 m_nColor = (((u32)red) << 24) | (((u32)green) << 16) | (((u32)blue) << 8) | ((u32)alpha);
00189 }
00190
00191 inline u8
00192 CascadeColor::GetRed()
00193 {
00194 return (u8)(m_nColor >> 24);
00195 }
00196
00197 inline u8
00198 CascadeColor::GetGreen()
00199 {
00200 return (u8)(m_nColor >> 16);
00201 }
00202
00203 inline u8
00204 CascadeColor::GetBlue()
00205 {
00206 return (u8)(m_nColor >> 8);
00207 }
00208
00209 inline u8
00210 CascadeColor::GetAlpha()
00211 {
00212 return (u8)m_nColor;
00213 }
00214
00215 inline void
00216 CascadeColor::GetRGB(u8 & redToSet, u8 & greenToSet, u8 & blueToSet)
00217 {
00218 redToSet = (u8)(m_nColor >> 24);
00219 greenToSet = (u8)(m_nColor >> 16);
00220 blueToSet = (u8)(m_nColor >> 8);
00221 }
00222
00223 inline void
00224 CascadeColor::GetRGBA(u8 & redToSet, u8 & greenToSet, u8 & blueToSet, u8 & alphaToSet)
00225 {
00226 redToSet = (u8)(m_nColor >> 24);
00227 greenToSet = (u8)(m_nColor >> 16);
00228 blueToSet = (u8)(m_nColor >> 8);
00229 alphaToSet = (u8)m_nColor;
00230 }
00231
00232 #endif // #ifndef _ROKU_INCLUDE_CASCADE_GRAPHICS_CASCADECOLOR_H
00233
00235
00237
00238
00239
00240
00241
00242