diff options
author | Mike Reed <reed@google.com> | 2009-06-23 08:50:20 -0400 |
---|---|---|
committer | Mike Reed <reed@google.com> | 2009-06-23 08:50:20 -0400 |
commit | e587935eabebbce97def3a6ea1ac7296d1d48654 (patch) | |
tree | 43a5908785008e72b3586132bb47479f5d563bf9 /WebCore/platform/graphics/skia | |
parent | 686f452e43c96f0a3095d2e0c33d44f2862a0461 (diff) | |
download | external_webkit-e587935eabebbce97def3a6ea1ac7296d1d48654.zip external_webkit-e587935eabebbce97def3a6ea1ac7296d1d48654.tar.gz external_webkit-e587935eabebbce97def3a6ea1ac7296d1d48654.tar.bz2 |
remove references to deprecated porterduff
Diffstat (limited to 'WebCore/platform/graphics/skia')
-rw-r--r-- | WebCore/platform/graphics/skia/SkiaUtils.cpp | 34 | ||||
-rw-r--r-- | WebCore/platform/graphics/skia/SkiaUtils.h | 2 |
2 files changed, 36 insertions, 0 deletions
diff --git a/WebCore/platform/graphics/skia/SkiaUtils.cpp b/WebCore/platform/graphics/skia/SkiaUtils.cpp index 4242e7d..a7a266d 100644 --- a/WebCore/platform/graphics/skia/SkiaUtils.cpp +++ b/WebCore/platform/graphics/skia/SkiaUtils.cpp @@ -42,6 +42,40 @@ namespace WebCore { +static const struct CompositOpToSkiaMode { + uint8_t mCompositOp; + uint8_t mMode; +} gMapCompositOpsToSkiaModes[] = { + { CompositeClear, SkXfermode::kClear_Mode }, + { CompositeCopy, SkXfermode::kSrc_Mode }, + { CompositeSourceOver, SkXfermode::kSrcOver_Mode }, + { CompositeSourceIn, SkXfermode::kSrcIn_Mode }, + { CompositeSourceOut, SkXfermode::kSrcOut_Mode }, + { CompositeSourceAtop, SkXfermode::kSrcATop_Mode }, + { CompositeDestinationOver, SkXfermode::kDstOver_Mode }, + { CompositeDestinationIn, SkXfermode::kDstIn_Mode }, + { CompositeDestinationOut, SkXfermode::kDstOut_Mode }, + { CompositeDestinationAtop, SkXfermode::kDstATop_Mode }, + { CompositeXOR, SkXfermode::kXor_Mode }, + // need more details on the composite modes to be sure these are right + { CompositePlusDarker, SkXfermode::kDarken_Mode }, + { CompositeHighlight, SkXfermode::kSrcOver_Mode }, // TODO + { CompositePlusLighter, SkXfermode::kPlus_Mode } +}; + +SkXfermode::Mode WebCoreCompositeToSkiaMode(CompositeOperator op) +{ + const CompositOpToSkiaMode* table = gMapCompositOpsToSkiaModes; + + for (unsigned i = 0; i < SK_ARRAY_COUNT(gMapCompositOpsToSkiaModes); i++) { + if (table[i].mCompositOp == op) + return (SkXfermode::Mode)table[i].mMode; + } + + SkDEBUGF(("GraphicsContext::setCompositeOperation uknown CompositeOperator %d\n", op)); + return SkXfermode::kSrcOver_Mode; // fall-back +} + static const struct CompositOpToPorterDuffMode { uint8_t mCompositOp; uint8_t mPorterDuffMode; diff --git a/WebCore/platform/graphics/skia/SkiaUtils.h b/WebCore/platform/graphics/skia/SkiaUtils.h index 0e68574..aa4cd4d 100644 --- a/WebCore/platform/graphics/skia/SkiaUtils.h +++ b/WebCore/platform/graphics/skia/SkiaUtils.h @@ -37,12 +37,14 @@ #include "GraphicsContext.h" #include "SkPath.h" #include "SkPorterDuff.h" +#include "SkXfermode.h" class SkCanvas; class SkRegion; namespace WebCore { +SkXfermode::Mode WebCoreCompositeToSkiaMode(CompositeOperator); SkPorterDuff::Mode WebCoreCompositeToSkiaComposite(CompositeOperator); // move this guy into SkColor.h |