Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members

CascadeColor.h

Go to the documentation of this file.
00001 //
00002 // CascadeColor.h - header file for class CascadeColor
00003 //
00004 // Copyright (c) 2003, Roku, LLC.  All rights reserved.
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 // class CascadeColor inline methods
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 //  LOG
00237 //  20-Jan-03   dwoodward       created
00238 //  20-Jan-03   dwoodward       1.0 STATUS: 100% complete
00239 //  26-Jan-03   dwoodward       reworked to not be opaque and driver dependent
00240 //  05-May-03   dwoodward   doxygenated
00241 //  08-Jul-03   dwoodward   fixed alpha treatment
00242 //  16-Sep-03   dwoodward   added operator ==

Generated on Sun Jul 24 14:27:17 2005 for Cascade Library by  doxygen 1.4.1