Index: src/pdf/SkPDFDevice.cpp |
diff --git a/src/pdf/SkPDFDevice.cpp b/src/pdf/SkPDFDevice.cpp |
index db0825af3a9f39d19dcc2a009690484cd32e8137..bb8345be0f87418b5ed9ee7a23596b847232e55f 100644 |
--- a/src/pdf/SkPDFDevice.cpp |
+++ b/src/pdf/SkPDFDevice.cpp |
@@ -1186,12 +1186,7 @@ SkPDFDict* SkPDFDevice::getResourceDict() { |
// For compatibility, add all proc sets (only used for output to PS |
// devices). |
- const char procs[][7] = {"PDF", "Text", "ImageB", "ImageC", "ImageI"}; |
- SkAutoTUnref<SkPDFArray> procSets(new SkPDFArray()); |
- procSets->reserve(SK_ARRAY_COUNT(procs)); |
- for (size_t i = 0; i < SK_ARRAY_COUNT(procs); i++) |
- procSets->appendName(procs[i]); |
- fResourceDict->insert("ProcSet", procSets.get()); |
+ fResourceDict->insert("ProcSet", SkPDFUtils::CreateFullProcSetsArray())->unref(); |
} |
return fResourceDict; |
} |
@@ -1491,7 +1486,8 @@ void SkPDFDevice::drawFormXObjectWithClip(SkPDFFormXObject* xobject, |
this->drawPaint(draw, stockPaint); |
SkAutoTUnref<SkPDFFormXObject> maskFormXObject(createFormXObjectFromDevice()); |
SkAutoTUnref<SkPDFGraphicState> sMaskGS( |
- SkPDFGraphicState::GetSMaskGraphicState(maskFormXObject, invertClip)); |
+ SkPDFGraphicState::GetSMaskGraphicState(maskFormXObject, invertClip, |
+ SkPDFGraphicState::kAlpha_SMaskMode)); |
// Draw the xobject with the clip as a mask. |
ScopedContentEntry content(this, &fExistingClipStack, fExistingClipRegion, |
@@ -1647,12 +1643,16 @@ void SkPDFDevice::finishContentEntry(const SkXfermode::Mode xfermode, |
if (xfermode == SkXfermode::kSrcIn_Mode || |
xfermode == SkXfermode::kSrcOut_Mode) { |
sMaskGS.reset(SkPDFGraphicState::GetSMaskGraphicState( |
- dst, xfermode == SkXfermode::kSrcOut_Mode)); |
+ dst, |
+ xfermode == SkXfermode::kSrcOut_Mode, |
+ SkPDFGraphicState::kAlpha_SMaskMode)); |
fXObjectResources.push(srcFormXObject.get()); |
srcFormXObject.get()->ref(); |
} else { |
sMaskGS.reset(SkPDFGraphicState::GetSMaskGraphicState( |
- srcFormXObject.get(), xfermode == SkXfermode::kDstOut_Mode)); |
+ srcFormXObject.get(), |
+ xfermode == SkXfermode::kDstOut_Mode, |
+ SkPDFGraphicState::kAlpha_SMaskMode)); |
// dst already added to fXObjectResources in drawFormXObjectWithClip. |
} |
SkPDFUtils::ApplyGraphicState(addGraphicStateResource(sMaskGS.get()), |