d906702f78
Otherwise, the class is unchanged. Review URL: https://codereview.chromium.org/77763007 git-svn-id: http://skia.googlecode.com/svn/trunk@12330 2bbb7eff-a529-9590-31e7-b0007b416f81
42 lines
1.3 KiB
C++
42 lines
1.3 KiB
C++
/*
|
|
* Copyright 2013 Google Inc.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
* found in the LICENSE file.
|
|
*/
|
|
|
|
#include "SkPdfGraphicsState.h"
|
|
|
|
#include "SkDashPathEffect.h"
|
|
|
|
void SkPdfGraphicsState::applyGraphicsState(SkPaint* paint, bool stroking) {
|
|
if (stroking) {
|
|
fStroking.applyGraphicsState(paint);
|
|
} else {
|
|
fNonStroking.applyGraphicsState(paint);
|
|
}
|
|
|
|
// TODO(edisonn): Perf, we should load this option from pdfContext->options,
|
|
// or pdfContext->addPaintOptions(&paint);
|
|
paint->setAntiAlias(true);
|
|
|
|
// TODO(edisonn): miter, ...
|
|
if (stroking) {
|
|
paint->setStrokeWidth(SkDoubleToScalar(fLineWidth));
|
|
// TODO(edisonn): perf, avoid allocs 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
|
|
}
|