| 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..cc9c0095e769d430ae7efbd0c81f6e26b9e3944a 100644
|
| --- a/Source/core/platform/graphics/skia/SkiaUtils.cpp
|
| +++ b/Source/core/platform/graphics/skia/SkiaUtils.cpp
|
| @@ -61,8 +61,53 @@ static const struct CompositOpToXfermodeMode {
|
| { CompositePlusLighter, SkXfermode::kPlus_Mode }
|
| };
|
|
|
| -SkXfermode::Mode WebCoreCompositeToSkiaComposite(CompositeOperator op)
|
| +COMPILE_ASSERT((BlendModeNormal == 0
|
| + && BlendModeMultiply == 1
|
| + && BlendModeScreen == 2
|
| + && BlendModeOverlay == 3
|
| + && BlendModeDarken == 4
|
| + && BlendModeLighten == 5
|
| + && BlendModeColorDodge == 6
|
| + && BlendModeColorBurn == 7
|
| + && BlendModeHardLight == 8
|
| + && BlendModeSoftLight == 9
|
| + && BlendModeDifference == 10
|
| + && BlendModeExclusion == 11
|
| + && BlendModeHue == 12
|
| + && BlendModeSaturation == 13
|
| + && BlendModeColor == 14
|
| + && BlendModeLuminosity == 15),
|
| + KeepBlendOpsAndSkXfermodesInSync);
|
| +
|
| +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++) {
|
|
|