Chromium Code Reviews| Index: src/c/sk_paint.cpp |
| diff --git a/src/c/sk_paint.cpp b/src/c/sk_paint.cpp |
| index e71285d4d5ca16924051fedc5750d28d558fc1be..edd672c01a9f248453427c76ec8b7162c9cb464c 100644 |
| --- a/src/c/sk_paint.cpp |
| +++ b/src/c/sk_paint.cpp |
| @@ -132,4 +132,42 @@ void sk_paint_set_stroke_join(sk_paint_t* cpaint, sk_stroke_join_t cjoin) { |
| } |
| } |
| +static SkXfermode::Mode convert_skxfermodemode(sk_xfermode_mode_t mode) { |
| + switch (mode) { |
| + case CLEAR_SK_XFERMODE_MODE: return SkXfermode::kClear_Mode; |
| + case SRC_SK_XFERMODE_MODE: return SkXfermode::kSrc_Mode; |
| + case DST_SK_XFERMODE_MODE: return SkXfermode::kDst_Mode; |
| + case SRCOVER_SK_XFERMODE_MODE: return SkXfermode::kSrcOver_Mode; |
| + case DSTOVER_SK_XFERMODE_MODE: return SkXfermode::kDstOver_Mode; |
| + case SRCIN_SK_XFERMODE_MODE: return SkXfermode::kSrcIn_Mode; |
| + case DSTIN_SK_XFERMODE_MODE: return SkXfermode::kDstIn_Mode; |
| + case SRCOUT_SK_XFERMODE_MODE: return SkXfermode::kSrcOut_Mode; |
| + case DSTOUT_SK_XFERMODE_MODE: return SkXfermode::kDstOut_Mode; |
| + case SRCATOP_SK_XFERMODE_MODE: return SkXfermode::kSrcATop_Mode; |
| + case DSTATOP_SK_XFERMODE_MODE: return SkXfermode::kDstATop_Mode; |
| + case XOR_SK_XFERMODE_MODE: return SkXfermode::kXor_Mode; |
| + case PLUS_SK_XFERMODE_MODE: return SkXfermode::kPlus_Mode; |
| + case MODULATE_SK_XFERMODE_MODE: return SkXfermode::kModulate_Mode; |
| + case SCREEN_SK_XFERMODE_MODE: return SkXfermode::kScreen_Mode; |
| + case OVERLAY_SK_XFERMODE_MODE: return SkXfermode::kOverlay_Mode; |
| + case DARKEN_SK_XFERMODE_MODE: return SkXfermode::kDarken_Mode; |
| + case LIGHTEN_SK_XFERMODE_MODE: return SkXfermode::kLighten_Mode; |
| + case COLORDODGE_SK_XFERMODE_MODE: return SkXfermode::kColorDodge_Mode; |
| + case COLORBURN_SK_XFERMODE_MODE: return SkXfermode::kColorBurn_Mode; |
| + case HARDLIGHT_SK_XFERMODE_MODE: return SkXfermode::kHardLight_Mode; |
| + case SOFTLIGHT_SK_XFERMODE_MODE: return SkXfermode::kSoftLight_Mode; |
| + case DIFFERENCE_SK_XFERMODE_MODE: return SkXfermode::kDifference_Mode; |
| + case EXCLUSION_SK_XFERMODE_MODE: return SkXfermode::kExclusion_Mode; |
| + case MULTIPLY_SK_XFERMODE_MODE: return SkXfermode::kMultiply_Mode; |
| + case HUE_SK_XFERMODE_MODE: return SkXfermode::kHue_Mode; |
| + case SATURATION_SK_XFERMODE_MODE: return SkXfermode::kSaturation_Mode; |
| + case COLOR_SK_XFERMODE_MODE: return SkXfermode::kColor_Mode; |
| + case LUMINOSITY_SK_XFERMODE_MODE: return SkXfermode::kLuminosity_Mode; |
| + default: return SkXfermode::kSrcOver_Mode; |
|
reed1
2015/07/31 15:33:42
Why do we have default?
hal.canary
2015/07/31 15:41:59
In case the user passes in garbage
sk_paint
|
| + } |
| +} |
| + |
| +void sk_paint_set_xfermode_mode(sk_paint_t* paint, sk_xfermode_mode_t mode) { |
| + AsPaint(paint)->setXfermodeMode(convert_skxfermodemode(mode)); |
| +} |