| Index: Source/platform/graphics/skia/SkiaUtils.cpp
|
| diff --git a/Source/platform/graphics/skia/SkiaUtils.cpp b/Source/platform/graphics/skia/SkiaUtils.cpp
|
| index ae21e4c6ea09b85dc237ca7fcc0da4fa728c213b..e5447e28418438ed192a2df2d851d13bab6d90c8 100644
|
| --- a/Source/platform/graphics/skia/SkiaUtils.cpp
|
| +++ b/Source/platform/graphics/skia/SkiaUtils.cpp
|
| @@ -79,6 +79,7 @@ static const SkXfermode::Mode gMapBlendOpsToXfermodeModes[] = {
|
|
|
| SkXfermode::Mode WebCoreCompositeToSkiaComposite(CompositeOperator op, WebBlendMode blendMode)
|
| {
|
| + ASSERT(op == CompositeSourceOver || blendMode == WebBlendModeNormal);
|
| if (blendMode != WebBlendModeNormal) {
|
| if (static_cast<uint8_t>(blendMode) >= SK_ARRAY_COUNT(gMapBlendOpsToXfermodeModes)) {
|
| SkDEBUGF(("GraphicsContext::setPlatformCompositeOperation unknown WebBlendMode %d\n", blendMode));
|
| @@ -96,6 +97,80 @@ SkXfermode::Mode WebCoreCompositeToSkiaComposite(CompositeOperator op, WebBlendM
|
| return table[static_cast<uint8_t>(op)].m_xfermodeMode;
|
| }
|
|
|
| +CompositeOperator compositeOperatorFromSkia(SkXfermode::Mode xferMode)
|
| +{
|
| + switch (xferMode) {
|
| + case SkXfermode::kClear_Mode:
|
| + return CompositeClear;
|
| + case SkXfermode::kSrc_Mode:
|
| + return CompositeCopy;
|
| + case SkXfermode::kSrcOver_Mode:
|
| + return CompositeSourceOver;
|
| + case SkXfermode::kSrcIn_Mode:
|
| + return CompositeSourceIn;
|
| + case SkXfermode::kSrcOut_Mode:
|
| + return CompositeSourceOut;
|
| + case SkXfermode::kSrcATop_Mode:
|
| + return CompositeSourceAtop;
|
| + case SkXfermode::kDstOver_Mode:
|
| + return CompositeDestinationOver;
|
| + case SkXfermode::kDstIn_Mode:
|
| + return CompositeDestinationIn;
|
| + case SkXfermode::kDstOut_Mode:
|
| + return CompositeDestinationOut;
|
| + case SkXfermode::kDstATop_Mode:
|
| + return CompositeDestinationAtop;
|
| + case SkXfermode::kXor_Mode:
|
| + return CompositeXOR;
|
| + case SkXfermode::kPlus_Mode:
|
| + return CompositePlusLighter;
|
| + default:
|
| + break;
|
| + }
|
| + return CompositeSourceOver;
|
| +}
|
| +
|
| +WebBlendMode blendModeFromSkia(SkXfermode::Mode xferMode)
|
| +{
|
| + switch (xferMode) {
|
| + case SkXfermode::kSrcOver_Mode:
|
| + return WebBlendModeNormal;
|
| + case SkXfermode::kMultiply_Mode:
|
| + return WebBlendModeMultiply;
|
| + case SkXfermode::kScreen_Mode:
|
| + return WebBlendModeScreen;
|
| + case SkXfermode::kOverlay_Mode:
|
| + return WebBlendModeOverlay;
|
| + case SkXfermode::kDarken_Mode:
|
| + return WebBlendModeDarken;
|
| + case SkXfermode::kLighten_Mode:
|
| + return WebBlendModeLighten;
|
| + case SkXfermode::kColorDodge_Mode:
|
| + return WebBlendModeColorDodge;
|
| + case SkXfermode::kColorBurn_Mode:
|
| + return WebBlendModeColorBurn;
|
| + case SkXfermode::kHardLight_Mode:
|
| + return WebBlendModeHardLight;
|
| + case SkXfermode::kSoftLight_Mode:
|
| + return WebBlendModeSoftLight;
|
| + case SkXfermode::kDifference_Mode:
|
| + return WebBlendModeDifference;
|
| + case SkXfermode::kExclusion_Mode:
|
| + return WebBlendModeExclusion;
|
| + case SkXfermode::kHue_Mode:
|
| + return WebBlendModeHue;
|
| + case SkXfermode::kSaturation_Mode:
|
| + return WebBlendModeSaturation;
|
| + case SkXfermode::kColor_Mode:
|
| + return WebBlendModeColor;
|
| + case SkXfermode::kLuminosity_Mode:
|
| + return WebBlendModeLuminosity;
|
| + default:
|
| + break;
|
| + }
|
| + return WebBlendModeNormal;
|
| +}
|
| +
|
| bool SkPathContainsPoint(const SkPath& originalPath, const FloatPoint& point, SkPath::FillType ft)
|
| {
|
| SkRect bounds = originalPath.getBounds();
|
|
|