Index: src/pdf/SkPDFDevice.cpp |
diff --git a/src/pdf/SkPDFDevice.cpp b/src/pdf/SkPDFDevice.cpp |
index ff7dd2cd9252475e46eed12a4c8d623a07f4eb68..0b15d6ab43915c591cbb09a0dfb8419af370ce64 100644 |
--- a/src/pdf/SkPDFDevice.cpp |
+++ b/src/pdf/SkPDFDevice.cpp |
@@ -1948,7 +1948,14 @@ void SkPDFDevice::finishContentEntry(const SkXfermode::Mode xfermode, |
SkPaint stockPaint; |
- if (xfermode == SkXfermode::kClear_Mode) { |
+ if (xfermode == SkXfermode::kSrcATop_Mode) { |
+ ScopedContentEntry content(this, &clipStack, clipRegion, identity, |
+ stockPaint); |
+ if (content.entry()) { |
+ SkPDFUtils::DrawFormXObject(this->addXObjectResource(dst), |
+ &content.entry()->fContent); |
+ } |
+ } else if (xfermode == SkXfermode::kClear_Mode || !srcFormXObject.get()) { |
return; |
} else if (xfermode == SkXfermode::kSrc_Mode || |
xfermode == SkXfermode::kDstATop_Mode) { |
@@ -1962,13 +1969,6 @@ void SkPDFDevice::finishContentEntry(const SkXfermode::Mode xfermode, |
if (xfermode == SkXfermode::kSrc_Mode) { |
return; |
} |
- } else if (xfermode == SkXfermode::kSrcATop_Mode) { |
- ScopedContentEntry content(this, &clipStack, clipRegion, identity, |
- stockPaint); |
- if (content.entry()) { |
- SkPDFUtils::DrawFormXObject(this->addXObjectResource(dst), |
- &content.entry()->fContent); |
- } |
} |
SkASSERT(xfermode == SkXfermode::kSrcIn_Mode || |