| 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
|
| +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++) {
|
|
|