Index: src/pdf/SkPDFGraphicState.cpp |
diff --git a/src/pdf/SkPDFGraphicState.cpp b/src/pdf/SkPDFGraphicState.cpp |
index 9cf21458233f6025807ce0be554a59e5e95b1d1c..ad9578578a93e4734f9e16968e2bb5e2c38ac0af 100644 |
--- a/src/pdf/SkPDFGraphicState.cpp |
+++ b/src/pdf/SkPDFGraphicState.cpp |
@@ -138,13 +138,17 @@ SkPDFObject* SkPDFGraphicState::GetInvertFunction() { |
// static |
SkPDFGraphicState* SkPDFGraphicState::GetSMaskGraphicState( |
- SkPDFFormXObject* sMask, bool invert) { |
+ SkPDFFormXObject* sMask, bool invert, bool alpha) { |
// The practical chances of using the same mask more than once are unlikely |
// enough that it's not worth canonicalizing. |
SkAutoMutexAcquire lock(CanonicalPaintsMutex()); |
SkAutoTUnref<SkPDFDict> sMaskDict(new SkPDFDict("Mask")); |
- sMaskDict->insertName("S", "Alpha"); |
+ if (alpha) { |
+ sMaskDict->insertName("S", "Alpha"); |
+ } else { |
+ sMaskDict->insertName("S", "Luminosity"); |
+ } |
sMaskDict->insert("G", new SkPDFObjRef(sMask))->unref(); |
SkPDFGraphicState* result = new SkPDFGraphicState; |
@@ -203,6 +207,8 @@ void SkPDFGraphicState::populateDict() { |
fPopulated = true; |
insertName("Type", "ExtGState"); |
+ // do a SMask if paint involves a gradient alpha |
vandebo (ex-Chrome)
2013/07/03 17:07:01
How would paint involve a gradient alpha? We have
ducky
2013/07/03 23:32:09
That wasn't supposed to be there. I somehow missed
|
+ //TODO ADD STUFF HERE |
SkAutoTUnref<SkPDFScalar> alpha( |
new SkPDFScalar(SkScalarDiv(fPaint.getAlpha(), 0xFF))); |
insert("CA", alpha.get()); |