Index: src/pdf/SkPDFGraphicState.cpp |
diff --git a/src/pdf/SkPDFGraphicState.cpp b/src/pdf/SkPDFGraphicState.cpp |
index a78c4c51b581c352c06d6501c8166f5c16f34e88..d60526c11a07e494b0f7adb6480934a1201cb39e 100644 |
--- a/src/pdf/SkPDFGraphicState.cpp |
+++ b/src/pdf/SkPDFGraphicState.cpp |
@@ -12,58 +12,58 @@ |
#include "SkPDFGraphicState.h" |
#include "SkPDFUtils.h" |
-static const char* as_blend_mode(SkXfermode::Mode mode) { |
+static const char* as_blend_mode(SkBlendMode mode) { |
switch (mode) { |
- case SkXfermode::kSrcOver_Mode: |
+ case SkBlendMode::kSrcOver: |
return "Normal"; |
- case SkXfermode::kMultiply_Mode: |
+ case SkBlendMode::kMultiply: |
return "Multiply"; |
- case SkXfermode::kScreen_Mode: |
+ case SkBlendMode::kScreen: |
return "Screen"; |
- case SkXfermode::kOverlay_Mode: |
+ case SkBlendMode::kOverlay: |
return "Overlay"; |
- case SkXfermode::kDarken_Mode: |
+ case SkBlendMode::kDarken: |
return "Darken"; |
- case SkXfermode::kLighten_Mode: |
+ case SkBlendMode::kLighten: |
return "Lighten"; |
- case SkXfermode::kColorDodge_Mode: |
+ case SkBlendMode::kColorDodge: |
return "ColorDodge"; |
- case SkXfermode::kColorBurn_Mode: |
+ case SkBlendMode::kColorBurn: |
return "ColorBurn"; |
- case SkXfermode::kHardLight_Mode: |
+ case SkBlendMode::kHardLight: |
return "HardLight"; |
- case SkXfermode::kSoftLight_Mode: |
+ case SkBlendMode::kSoftLight: |
return "SoftLight"; |
- case SkXfermode::kDifference_Mode: |
+ case SkBlendMode::kDifference: |
return "Difference"; |
- case SkXfermode::kExclusion_Mode: |
+ case SkBlendMode::kExclusion: |
return "Exclusion"; |
- case SkXfermode::kHue_Mode: |
+ case SkBlendMode::kHue: |
return "Hue"; |
- case SkXfermode::kSaturation_Mode: |
+ case SkBlendMode::kSaturation: |
return "Saturation"; |
- case SkXfermode::kColor_Mode: |
+ case SkBlendMode::kColor: |
return "Color"; |
- case SkXfermode::kLuminosity_Mode: |
+ case SkBlendMode::kLuminosity: |
return "Luminosity"; |
// These are handled in SkPDFDevice::setUpContentEntry. |
- case SkXfermode::kClear_Mode: |
- case SkXfermode::kSrc_Mode: |
- case SkXfermode::kDst_Mode: |
- case SkXfermode::kDstOver_Mode: |
- case SkXfermode::kSrcIn_Mode: |
- case SkXfermode::kDstIn_Mode: |
- case SkXfermode::kSrcOut_Mode: |
- case SkXfermode::kDstOut_Mode: |
- case SkXfermode::kSrcATop_Mode: |
- case SkXfermode::kDstATop_Mode: |
- case SkXfermode::kModulate_Mode: |
+ case SkBlendMode::kClear: |
+ case SkBlendMode::kSrc: |
+ case SkBlendMode::kDst: |
+ case SkBlendMode::kDstOver: |
+ case SkBlendMode::kSrcIn: |
+ case SkBlendMode::kDstIn: |
+ case SkBlendMode::kSrcOut: |
+ case SkBlendMode::kDstOut: |
+ case SkBlendMode::kSrcATop: |
+ case SkBlendMode::kDstATop: |
+ case SkBlendMode::kModulate: |
return "Normal"; |
// TODO(vandebo): Figure out if we can support more of these modes. |
- case SkXfermode::kXor_Mode: |
- case SkXfermode::kPlus_Mode: |
+ case SkBlendMode::kXor: |
+ case SkBlendMode::kPlus: |
return nullptr; |
} |
return nullptr; |
@@ -71,32 +71,28 @@ static const char* as_blend_mode(SkXfermode::Mode mode) { |
// If a SkXfermode is unsupported in PDF, this function returns |
// SrcOver, otherwise, it returns that Xfermode as a Mode. |
-static SkXfermode::Mode mode_for_pdf(const SkXfermode* xfermode) { |
- SkXfermode::Mode mode = SkXfermode::kSrcOver_Mode; |
- if (xfermode) { |
- xfermode->asMode(&mode); |
- } |
+static SkBlendMode mode_for_pdf(SkBlendMode mode) { |
switch (mode) { |
- case SkXfermode::kSrcOver_Mode: |
- case SkXfermode::kMultiply_Mode: |
- case SkXfermode::kScreen_Mode: |
- case SkXfermode::kOverlay_Mode: |
- case SkXfermode::kDarken_Mode: |
- case SkXfermode::kLighten_Mode: |
- case SkXfermode::kColorDodge_Mode: |
- case SkXfermode::kColorBurn_Mode: |
- case SkXfermode::kHardLight_Mode: |
- case SkXfermode::kSoftLight_Mode: |
- case SkXfermode::kDifference_Mode: |
- case SkXfermode::kExclusion_Mode: |
- case SkXfermode::kHue_Mode: |
- case SkXfermode::kSaturation_Mode: |
- case SkXfermode::kColor_Mode: |
- case SkXfermode::kLuminosity_Mode: |
+ case SkBlendMode::kSrcOver: |
+ case SkBlendMode::kMultiply: |
+ case SkBlendMode::kScreen: |
+ case SkBlendMode::kOverlay: |
+ case SkBlendMode::kDarken: |
+ case SkBlendMode::kLighten: |
+ case SkBlendMode::kColorDodge: |
+ case SkBlendMode::kColorBurn: |
+ case SkBlendMode::kHardLight: |
+ case SkBlendMode::kSoftLight: |
+ case SkBlendMode::kDifference: |
+ case SkBlendMode::kExclusion: |
+ case SkBlendMode::kHue: |
+ case SkBlendMode::kSaturation: |
+ case SkBlendMode::kColor: |
+ case SkBlendMode::kLuminosity: |
// Mode is suppported and handled by pdf graphics state. |
return mode; |
default: |
- return SkXfermode::kSrcOver_Mode; // Default mode. |
+ return SkBlendMode::kSrcOver; // Default mode. |
} |
} |
@@ -106,7 +102,7 @@ SkPDFGraphicState::SkPDFGraphicState(const SkPaint& p) |
, fAlpha(p.getAlpha()) |
, fStrokeCap(SkToU8(p.getStrokeCap())) |
, fStrokeJoin(SkToU8(p.getStrokeJoin())) |
- , fMode(SkToU8(mode_for_pdf(p.getXfermode()))) {} |
+ , fMode(SkToU8((unsigned)mode_for_pdf(p.getBlendMode()))) {} |
// static |
SkPDFGraphicState* SkPDFGraphicState::GetGraphicStateForPaint( |
@@ -186,7 +182,6 @@ void SkPDFGraphicState::emitObject( |
SkPaint::Cap strokeCap = (SkPaint::Cap)fStrokeCap; |
SkPaint::Join strokeJoin = (SkPaint::Join)fStrokeJoin; |
- SkXfermode::Mode xferMode = (SkXfermode::Mode)fMode; |
static_assert(SkPaint::kButt_Cap == 0, "paint_cap_mismatch"); |
static_assert(SkPaint::kRound_Cap == 1, "paint_cap_mismatch"); |
@@ -205,6 +200,6 @@ void SkPDFGraphicState::emitObject( |
dict->insertScalar("LW", fStrokeWidth); |
dict->insertScalar("ML", fStrokeMiter); |
dict->insertBool("SA", true); // SA = Auto stroke adjustment. |
- dict->insertName("BM", as_blend_mode(xferMode)); |
+ dict->insertName("BM", as_blend_mode((SkBlendMode)fMode)); |
dict->emitObject(stream, objNumMap); |
} |