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)); |
+} |