summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/graphics/skia
diff options
context:
space:
mode:
authorMike Reed <reed@google.com>2009-06-23 08:50:20 -0400
committerMike Reed <reed@google.com>2009-06-23 08:50:20 -0400
commite587935eabebbce97def3a6ea1ac7296d1d48654 (patch)
tree43a5908785008e72b3586132bb47479f5d563bf9 /WebCore/platform/graphics/skia
parent686f452e43c96f0a3095d2e0c33d44f2862a0461 (diff)
downloadexternal_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.cpp34
-rw-r--r--WebCore/platform/graphics/skia/SkiaUtils.h2
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