/* * 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(SkDashPathEffect::Create(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 }