/* * Copyright 2011 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SkDrawProcs_DEFINED #define SkDrawProcs_DEFINED #include "SkDraw.h" #include "SkGlyph.h" bool SkDrawTreatAAStrokeAsHairline(SkScalar strokeWidth, const SkMatrix&, SkScalar* coverage); /** * If the current paint is set to stroke and the stroke-width when applied to * the matrix is <= 1.0, then this returns true, and sets coverage (simulating * a stroke by drawing a hairline with partial coverage). If any of these * conditions are false, then this returns false and coverage is ignored. */ inline bool SkDrawTreatAsHairline(const SkPaint& paint, const SkMatrix& matrix, SkScalar* coverage) { if (SkPaint::kStroke_Style != paint.getStyle()) { return false; } SkScalar strokeWidth = paint.getStrokeWidth(); if (0 == strokeWidth) { *coverage = SK_Scalar1; return true; } if (!paint.isAntiAlias()) { return false; } return SkDrawTreatAAStrokeAsHairline(strokeWidth, matrix, coverage); } #endif