Chromium Code Reviews| Index: src/pdf/SkPDFDevice.cpp |
| diff --git a/src/pdf/SkPDFDevice.cpp b/src/pdf/SkPDFDevice.cpp |
| index e4b07f04fa794bcd27373564411445a039cd4afe..9251aa65d0ae38863f21677de6122ddef99b4b00 100644 |
| --- a/src/pdf/SkPDFDevice.cpp |
| +++ b/src/pdf/SkPDFDevice.cpp |
| @@ -973,16 +973,16 @@ void SkPDFDevice::drawPath(const SkDraw& d, const SkPath& origPath, |
| } |
| #ifdef SK_PDF_USE_PATHOPS |
| - if (handleInversePath(d, origPath, paint, pathIsMutable)) { |
| + if (handleInversePath(d, origPath, paint, pathIsMutable, prePathMatrix)) { |
| return; |
| } |
| #endif |
| - if (handleRectAnnotation(pathPtr->getBounds(), *d.fMatrix, paint)) { |
| + if (handleRectAnnotation(pathPtr->getBounds(), matrix, paint)) { |
| return; |
| } |
| - ScopedContentEntry content(this, d, paint); |
| + ScopedContentEntry content(this, d.fClipStack, *d.fClip, matrix, paint); |
| if (!content.entry()) { |
| return; |
| } |
| @@ -1485,7 +1485,8 @@ SkData* SkPDFDevice::copyContentToData() const { |
| * in the first place. |
| */ |
| bool SkPDFDevice::handleInversePath(const SkDraw& d, const SkPath& origPath, |
| - const SkPaint& paint, bool pathIsMutable) { |
| + const SkPaint& paint, bool pathIsMutable, |
| + const SkMatrix* prePathMatrix) { |
| if (!origPath.isInverseFillType()) { |
| return false; |
| } |
| @@ -1519,7 +1520,11 @@ bool SkPDFDevice::handleInversePath(const SkDraw& d, const SkPath& origPath, |
| // (clip bounds are given in device space). |
| SkRect bounds; |
| SkMatrix transformInverse; |
| - if (!d.fMatrix->invert(&transformInverse)) { |
| + SkMatrix totalMatrix = *d.fMatrix; |
| + if (prePathMatrix) { |
| + totalMatrix.preConcat(*prePathMatrix); |
| + } |
| + if (!totalMatrix.invert(&transformInverse)) { |
| return false; |
| } |
| bounds.set(d.fClip->getBounds()); |
| @@ -1534,7 +1539,7 @@ bool SkPDFDevice::handleInversePath(const SkDraw& d, const SkPath& origPath, |
| return false; |
| } |
| - drawPath(d, modifiedPath, noInversePaint, NULL, true); |
| + drawPath(d, modifiedPath, noInversePaint, &totalMatrix, true); |
|
vandebo (ex-Chrome)
2013/10/04 18:40:21
Shouldn't this be the prePathMatrix?
edisonn
2013/10/04 18:46:23
Done.
|
| return true; |
| } |
| #endif |