9a43c18740
Review URL: https://codereview.chromium.org/20628008 git-svn-id: http://skia.googlecode.com/svn/trunk@10494 2bbb7eff-a529-9590-31e7-b0007b416f81
44 lines
1.3 KiB
C++
44 lines
1.3 KiB
C++
#include "SkPdfBasics.h"
|
|
#include "SkPdfNativeTokenizer.h"
|
|
|
|
#include "SkDashPathEffect.h"
|
|
|
|
PdfContext::PdfContext(SkNativeParsedPDF* doc)
|
|
: fPdfDoc(doc)
|
|
, fTmpPageAllocator(new SkPdfAllocator()) {
|
|
}
|
|
|
|
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) {
|
|
paint->setPathEffect(new SkDashPathEffect(fDashArray, fDashArrayLength, fDashPhase))->unref();
|
|
}
|
|
}
|
|
|
|
// TODO(edisonn): NYI multiple blend modes
|
|
if (fBlendModesLength == 1 && fBlendModes[0] != SkXfermode::kSrc_Mode) {
|
|
paint->setXfermodeMode(fBlendModes[0]);
|
|
}
|
|
|
|
//paint->setStrokeMiter(SkDoubleToScalar(fMiterLimit));
|
|
// TODO(edisonn): impl cap and join
|
|
}
|