00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef SkPorterDuff_DEFINED
00018 #define SkPorterDuff_DEFINED
00019
00020 #include "SkColor.h"
00021 #include "SkXfermode.h"
00022
00023 class SkXfermode;
00024
00027 class SkPorterDuff {
00028 public:
00037 enum Mode {
00038 kClear_Mode,
00039 kSrc_Mode,
00040 kDst_Mode,
00041 kSrcOver_Mode,
00042 kDstOver_Mode,
00043 kSrcIn_Mode,
00044 kDstIn_Mode,
00045 kSrcOut_Mode,
00046 kDstOut_Mode,
00047 kSrcATop_Mode,
00048 kDstATop_Mode,
00049 kXor_Mode,
00050 kDarken_Mode,
00051 kLighten_Mode,
00052 kMultiply_Mode,
00053 kScreen_Mode,
00054 kAdd_Mode,
00055
00056 kModeCount
00057 };
00058
00061 static SkXfermode* CreateXfermode(Mode mode);
00062
00066 static SkXfermodeProc GetXfermodeProc(Mode mode);
00067
00073 static SkXfermodeProc16 GetXfermodeProc16(Mode mode, SkColor srcColor);
00074
00080 static bool IsMode(SkXfermode*, Mode* mode);
00081
00084 static SkXfermode::Mode ToXfermodeMode(Mode);
00085 };
00086
00087 #endif
00088