00001
00012 #ifndef _GHULBUSGRAPHICS_COLOR_HPP_INCLUDE_GUARD_
00013 #define _GHULBUSGRAPHICS_COLOR_HPP_INCLUDE_GUARD_
00014
00015 namespace GhulbusGraphics {
00022 typedef unsigned int GBCOLOR;
00025 typedef unsigned char GBCOLOR_COMPONENT;
00026
00029 namespace GBCOLOR32 {
00030 inline GBCOLOR XRGB(GBCOLOR_COMPONENT r, GBCOLOR_COMPONENT g, GBCOLOR_COMPONENT b) {
00031 return ( 0xFF000000 | (r<<16) | (g<<8) | (b) );
00032 }
00033 inline GBCOLOR XRGB(int r, int g, int b) {
00034 return ( 0xFF000000 | ((r&0xff)<<16) | ((g&0xff)<<8) | (b&0xff) );
00035 }
00036 inline GBCOLOR ARGB(GBCOLOR_COMPONENT a, GBCOLOR_COMPONENT r, GBCOLOR_COMPONENT g, GBCOLOR_COMPONENT b) {
00037 return ( (a<<24) | (r<<16) | (g<<8) | (b) );
00038 }
00039 inline GBCOLOR ARGB(int a, int r, int g, int b) {
00040 return ( ((a&0xff)<<24) | ((r&0xff)<<16) | ((g&0xff)<<8) | (b&0xff) );
00041 }
00042 inline GBCOLOR_COMPONENT GetR(GBCOLOR c) {
00043 return static_cast<GBCOLOR_COMPONENT>( (c>>16) & 0xff );
00044 }
00045 inline GBCOLOR_COMPONENT GetG(GBCOLOR c) {
00046 return static_cast<GBCOLOR_COMPONENT>( (c>>8) & 0xff );
00047 }
00048 inline GBCOLOR_COMPONENT GetB(GBCOLOR c) {
00049 return static_cast<GBCOLOR_COMPONENT>( c & 0xff );
00050 }
00051 inline GBCOLOR_COMPONENT GetA(GBCOLOR c) {
00052 return static_cast<GBCOLOR_COMPONENT>( (c>>24) & 0xff );
00053 }
00054 };
00055 };
00056
00057 #endif