OLD | NEW |
| (Empty) |
1 #include "SkPdfBasics.h" | |
2 #include "SkPdfNativeTokenizer.h" | |
3 | |
4 #include "SkDashPathEffect.h" | |
5 | |
6 PdfContext::PdfContext(SkNativeParsedPDF* doc) | |
7 : fPdfDoc(doc) | |
8 , fTmpPageAllocator(new SkPdfAllocator()) { | |
9 } | |
10 | |
11 PdfContext::~PdfContext() { | |
12 delete fTmpPageAllocator; | |
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) { | |
32 paint->setPathEffect(new SkDashPathEffect(fDashArray, fDashArrayLeng
th, fDashPhase))->unref(); | |
33 } | |
34 } | |
35 | |
36 // TODO(edisonn): NYI multiple blend modes | |
37 if (fBlendModesLength == 1 && fBlendModes[0] != SkXfermode::kSrc_Mode) { | |
38 paint->setXfermodeMode(fBlendModes[0]); | |
39 } | |
40 | |
41 //paint->setStrokeMiter(SkDoubleToScalar(fMiterLimit)); | |
42 // TODO(edisonn): impl cap and join | |
43 } | |
OLD | NEW |