Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(368)

Unified Diff: src/pdf/SkPDFDevice.cpp

Issue 18585002: Implemented transparent gradients (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Merge new SkPDFResourceDict method names Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | src/pdf/SkPDFFormXObject.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/pdf/SkPDFDevice.cpp
diff --git a/src/pdf/SkPDFDevice.cpp b/src/pdf/SkPDFDevice.cpp
index d323009af337584d8fd9ecad62d10787d01e4804..f7077a949b9921e7a8ac9835f53710bb69b9c0c4 100644
--- a/src/pdf/SkPDFDevice.cpp
+++ b/src/pdf/SkPDFDevice.cpp
@@ -425,14 +425,7 @@ void GraphicStackState::updateDrawingState(const GraphicStateEntry& state) {
// PDF treats a shader as a color, so we only set one or the other.
if (state.fShaderIndex >= 0) {
if (state.fShaderIndex != currentEntry()->fShaderIndex) {
- SkString resourceName = SkPDFResourceDict::getResourceName(
- SkPDFResourceDict::kPattern_ResourceType,
- state.fShaderIndex);
- fContentStream->writeText("/Pattern CS /Pattern cs /");
- fContentStream->writeText(resourceName.c_str());
- fContentStream->writeText(" SCN /");
- fContentStream->writeText(resourceName.c_str());
- fContentStream->writeText(" scn\n");
+ SkPDFUtils::ApplyPattern(state.fShaderIndex, fContentStream);
currentEntry()->fShaderIndex = state.fShaderIndex;
}
} else {
@@ -1407,7 +1400,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,
@@ -1563,12 +1557,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()),
« no previous file with comments | « no previous file | src/pdf/SkPDFFormXObject.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698