Index: experimental/PdfViewer/SkPdfBasics.cpp |
=================================================================== |
--- experimental/PdfViewer/SkPdfBasics.cpp (revision 10357) |
+++ experimental/PdfViewer/SkPdfBasics.cpp (working copy) |
@@ -1,6 +1,8 @@ |
#include "SkPdfBasics.h" |
#include "SkPdfNativeTokenizer.h" |
+#include "SkDashPathEffect.h" |
+ |
PdfContext::PdfContext(SkNativeParsedPDF* doc) |
: fPdfDoc(doc) |
, fTmpPageAllocator(new SkPdfAllocator()) { |
@@ -9,3 +11,25 @@ |
PdfContext::~PdfContext() { |
delete fTmpPageAllocator; |
} |
+ |
+void SkPdfGraphicsState::applyGraphicsState(SkPaint* paint, bool stroking) { |
+ if (stroking) { |
+ fStroking.applyGraphicsState(paint); |
+ } else { |
+ fNonStroking.applyGraphicsState(paint); |
+ } |
+ |
+ // TODO(edisonn): get this from pdfContext->options, |
+ // or pdfContext->addPaintOptions(&paint); |
+ paint->setAntiAlias(true); |
+ |
+ // TODO(edisonn): miter, ... |
+ if (stroking) { |
+ paint->setStrokeWidth(SkDoubleToScalar(fLineWidth)); |
+ // TODO(edisonn): perf, two sets of allocs, create SkDashPathEffect constr that takes ownership |
+ // of the intervals |
+ if (fDashArrayLength > 0 && fDashPhase > 0) { |
+ paint->setPathEffect(new SkDashPathEffect(fDashArray, fDashArrayLength, fDashPhase))->unref(); |
+ } |
+ } |
+} |