aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkBlitter_Sprite.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/SkBlitter_Sprite.cpp')
-rw-r--r--src/core/SkBlitter_Sprite.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/core/SkBlitter_Sprite.cpp b/src/core/SkBlitter_Sprite.cpp
index cef4cfaa2f..950f18791f 100644
--- a/src/core/SkBlitter_Sprite.cpp
+++ b/src/core/SkBlitter_Sprite.cpp
@@ -68,11 +68,14 @@ public:
if (0xFF != paint.getAlpha()) {
return false;
}
- SkBlendMode mode = paint.getBlendMode();
- if (SkBlendMode::kSrc == mode) {
+ SkXfermode::Mode mode;
+ if (!SkXfermode::AsMode(paint.getXfermode(), &mode)) {
+ return false;
+ }
+ if (SkXfermode::kSrc_Mode == mode) {
return true;
}
- if (SkBlendMode::kSrcOver == mode && src.isOpaque()) {
+ if (SkXfermode::kSrcOver_Mode == mode && src.isOpaque()) {
return true;
}
@@ -82,7 +85,7 @@ public:
return false;
}
- return SkBlendMode::kSrcOver == mode;
+ return SkXfermode::kSrcOver_Mode == mode;
}
SkSpriteBlitter_Src_SrcOver(const SkPixmap& src)
@@ -91,11 +94,14 @@ public:
void setup(const SkPixmap& dst, int left, int top, const SkPaint& paint) override {
SkASSERT(Supports(dst, fSource, paint));
this->INHERITED::setup(dst, left, top, paint);
- SkBlendMode mode = paint.getBlendMode();
+ SkXfermode::Mode mode;
+ if (!SkXfermode::AsMode(paint.getXfermode(), &mode)) {
+ SkFAIL("Should never happen.");
+ }
- SkASSERT(mode == SkBlendMode::kSrcOver || mode == SkBlendMode::kSrc);
+ SkASSERT(mode == SkXfermode::kSrcOver_Mode || mode == SkXfermode::kSrc_Mode);
- if (mode == SkBlendMode::kSrcOver && !fSource.isOpaque()) {
+ if (mode == SkXfermode::kSrcOver_Mode && !fSource.isOpaque()) {
fUseMemcpy = false;
}
}