bool SkStrokeRec::applyToPath(SkPath* dst, const SkPath& src) const { if (fWidth <= 0) { // hairline or fill return false; } SkStroke stroker; stroker.setCap(fCap); stroker.setJoin(fJoin); stroker.setMiterLimit(fMiterLimit); stroker.setWidth(fWidth); stroker.setDoFill(fStrokeAndFill); stroker.strokePath(src, dst); return true; }
bool SkStrokeRec::applyToPath(SkPath* dst, const SkPath& src) const { if (fWidth <= 0) { // hairline or fill return false; } SkStroke stroker; stroker.setCap(fCap); stroker.setJoin(fJoin); stroker.setMiterLimit(fMiterLimit); stroker.setWidth(fWidth); stroker.setDoFill(fStrokeAndFill); #if QUAD_STROKE_APPROXIMATION stroker.setError(1); #endif stroker.strokePath(src, dst); return true; }
bool SkStrokePathEffect::filterPath(SkPath* dst, const SkPath& src, SkScalar* width) { if (fWidth < 0 || fStyle == SkPaint::kFill_Style) return false; if (fStyle == SkPaint::kStroke_Style && fWidth == 0) // hairline { *width = 0; return true; } SkStroke stroke; stroke.setWidth(fWidth); stroke.setMiterLimit(fMiter); stroke.setJoin((SkPaint::Join)fJoin); stroke.setCap((SkPaint::Cap)fCap); stroke.setDoFill(fStyle == SkPaint::kStrokeAndFill_Style); stroke.strokePath(src, dst); return true; }