00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef SkColor_DEFINED
00018 #define SkColor_DEFINED
00019
00020 #include "SkScalar.h"
00021
00029 typedef uint8_t SkAlpha;
00035 typedef uint32_t SkColor;
00036
00039 static inline SkColor SkColorSetARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b)
00040 {
00041 SkASSERT(a <= 255 && r <= 255 && g <= 255 && b <= 255);
00042
00043 return (a << 24) | (r << 16) | (g << 8) | (b << 0);
00044 }
00045
00049 #define SkColorSetRGB(r, g, b) SkColorSetARGB(0xFF, r, g, b)
00050
00052 #define SkColorGetA(color) (((color) >> 24) & 0xFF)
00053
00054 #define SkColorGetR(color) (((color) >> 16) & 0xFF)
00055
00056 #define SkColorGetG(color) (((color) >> 8) & 0xFF)
00057
00058 #define SkColorGetB(color) (((color) >> 0) & 0xFF)
00059
00060 static inline SkColor SkColorSetA(SkColor c, U8CPU a) {
00061 return (c & 0x00FFFFFF) | (a << 24);
00062 }
00063
00064
00065
00066 #define SK_ColorBLACK 0xFF000000
00067 #define SK_ColorDKGRAY 0xFF444444
00068 #define SK_ColorGRAY 0xFF888888
00069 #define SK_ColorLTGRAY 0xFFCCCCCC
00070 #define SK_ColorWHITE 0xFFFFFFFF
00071
00072 #define SK_ColorRED 0xFFFF0000
00073 #define SK_ColorGREEN 0xFF00FF00
00074 #define SK_ColorBLUE 0xFF0000FF
00075 #define SK_ColorYELLOW 0xFFFFFF00
00076 #define SK_ColorCYAN 0xFF00FFFF
00077 #define SK_ColorMAGENTA 0xFFFF00FF
00078
00080
00081
00090 void SkRGBToHSV(U8CPU red, U8CPU green, U8CPU blue, SkScalar hsv[3]);
00091
00099 static inline void SkColorToHSV(SkColor color, SkScalar hsv[3])
00100 {
00101 SkRGBToHSV(SkColorGetR(color), SkColorGetG(color), SkColorGetB(color), hsv);
00102 }
00103
00113 SkColor SkHSVToColor(U8CPU alpha, const SkScalar hsv[3]);
00114
00123 static inline SkColor SkHSVToColor(const SkScalar hsv[3])
00124 {
00125 return SkHSVToColor(0xFF, hsv);
00126 }
00127
00129
00134 typedef uint32_t SkPMColor;
00135
00138 SkPMColor SkPreMultiplyARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b);
00143 SkPMColor SkPreMultiplyColor(SkColor c);
00144
00147 typedef SkPMColor (*SkXfermodeProc)(SkPMColor src, SkPMColor dst);
00148
00152 typedef uint16_t (*SkXfermodeProc16)(SkPMColor src, uint16_t dst);
00153
00154 #endif
00155