Chromium Code Reviews| Index: Source/core/platform/graphics/skia/SkiaUtils.cpp |
| diff --git a/Source/core/platform/graphics/skia/SkiaUtils.cpp b/Source/core/platform/graphics/skia/SkiaUtils.cpp |
| index 9b343ff8b3501b55736714ae33665e5aae30ecb3..d4330e4fd47bc8b7d3aa66051bf7a16093407497 100644 |
| --- a/Source/core/platform/graphics/skia/SkiaUtils.cpp |
| +++ b/Source/core/platform/graphics/skia/SkiaUtils.cpp |
| @@ -61,8 +61,36 @@ static const struct CompositOpToXfermodeMode { |
| { CompositePlusLighter, SkXfermode::kPlus_Mode } |
| }; |
| -SkXfermode::Mode WebCoreCompositeToSkiaComposite(CompositeOperator op) |
| +// keep this array in sync with BlendMode enum in GraphicsTypes.h |
|
eseidel
2013/05/08 19:34:44
We can COMPILE_ASSERT That these match, no?
rosca
2013/05/08 21:37:17
Yes, we can compile_assert, but I'm not sure it wo
|
| +static const uint8_t gMapBlendOpsToXfermodeModes[] = { |
| + SkXfermode::kClear_Mode, // BlendModeNormal |
| + SkXfermode::kMultiply_Mode, // BlendModeMultiply |
| + SkXfermode::kScreen_Mode, // BlendModeScreen |
| + SkXfermode::kOverlay_Mode, // BlendModeOverlay |
| + SkXfermode::kDarken_Mode, // BlendModeDarken |
| + SkXfermode::kLighten_Mode, // BlendModeLighten |
| + SkXfermode::kColorDodge_Mode, // BlendModeColorDodge |
| + SkXfermode::kColorBurn_Mode, // BlendModeColorBurn |
| + SkXfermode::kHardLight_Mode, // BlendModeHardLight |
| + SkXfermode::kSoftLight_Mode, // BlendModeSoftLight |
| + SkXfermode::kDifference_Mode, // BlendModeDifference |
| + SkXfermode::kExclusion_Mode, // BlendModeExclusion |
| + SkXfermode::kHue_Mode, // BlendModeHue |
| + SkXfermode::kSaturation_Mode, // BlendModeSaturation |
| + SkXfermode::kColor_Mode, // BlendModeColor |
| + SkXfermode::kLuminosity_Mode // BlendModeLuminosity |
| +}; |
| + |
| +SkXfermode::Mode WebCoreCompositeToSkiaComposite(CompositeOperator op, BlendMode blendMode) |
| { |
| + if (blendMode != BlendModeNormal) { |
| + if ((uint8_t)blendMode >= SK_ARRAY_COUNT(gMapBlendOpsToXfermodeModes)) { |
| + SkDEBUGF(("GraphicsContext::setPlatformCompositeOperation unknown BlendMode %d\n", blendMode)); |
| + return SkXfermode::kSrcOver_Mode; |
| + } |
| + return (SkXfermode::Mode)gMapBlendOpsToXfermodeModes[(uint8_t)blendMode]; |
| + } |
| + |
| const CompositOpToXfermodeMode* table = gMapCompositOpsToXfermodeModes; |
| for (unsigned i = 0; i < SK_ARRAY_COUNT(gMapCompositOpsToXfermodeModes); i++) { |