OLD | NEW |
1 #include "SkPdfBasics.h" | 1 #include "SkPdfBasics.h" |
2 #include "SkPdfNativeTokenizer.h" | 2 #include "SkPdfNativeTokenizer.h" |
3 | 3 |
| 4 #include "SkDashPathEffect.h" |
| 5 |
4 PdfContext::PdfContext(SkNativeParsedPDF* doc) | 6 PdfContext::PdfContext(SkNativeParsedPDF* doc) |
5 : fPdfDoc(doc) | 7 : fPdfDoc(doc) |
6 , fTmpPageAllocator(new SkPdfAllocator()) { | 8 , fTmpPageAllocator(new SkPdfAllocator()) { |
7 } | 9 } |
8 | 10 |
9 PdfContext::~PdfContext() { | 11 PdfContext::~PdfContext() { |
10 delete fTmpPageAllocator; | 12 delete fTmpPageAllocator; |
11 } | 13 } |
| 14 |
| 15 void SkPdfGraphicsState::applyGraphicsState(SkPaint* paint, bool stroking) { |
| 16 if (stroking) { |
| 17 fStroking.applyGraphicsState(paint); |
| 18 } else { |
| 19 fNonStroking.applyGraphicsState(paint); |
| 20 } |
| 21 |
| 22 // TODO(edisonn): get this from pdfContext->options, |
| 23 // or pdfContext->addPaintOptions(&paint); |
| 24 paint->setAntiAlias(true); |
| 25 |
| 26 // TODO(edisonn): miter, ... |
| 27 if (stroking) { |
| 28 paint->setStrokeWidth(SkDoubleToScalar(fLineWidth)); |
| 29 // TODO(edisonn): perf, two sets of allocs, create SkDashPathEffect cons
tr that takes ownership |
| 30 // of the intervals |
| 31 if (fDashArrayLength > 0 && fDashPhase > 0) { |
| 32 paint->setPathEffect(new SkDashPathEffect(fDashArray, fDashArrayLeng
th, fDashPhase))->unref(); |
| 33 } |
| 34 } |
| 35 } |
OLD | NEW |