| |
| /* |
| * Copyright 2014 Google Inc. |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #ifndef GrDashingEffect_DEFINED |
| #define GrDashingEffect_DEFINED |
| |
| #include "GrColor.h" |
| #include "GrTypesPriv.h" |
| #include "SkPathEffect.h" |
| |
| class GrGpu; |
| class GrDrawState; |
| class GrDrawTarget; |
| class GrGeometryProcessor; |
| class GrPaint; |
| class GrStrokeInfo; |
| |
| class GrGLDashingEffect; |
| class SkPath; |
| |
| namespace GrDashingEffect { |
| bool DrawDashLine(GrGpu*, GrDrawTarget*, GrDrawState*, GrColor, const SkPoint pts[2], |
| const GrPaint& paint, const GrStrokeInfo& strokeInfo, |
| const SkMatrix& vm); |
| |
| enum DashCap { |
| kRound_DashCap, |
| kNonRound_DashCap, |
| }; |
| |
| /** |
| * An effect that renders a dashed line. It is intended to be used as a coverage effect. |
| * The effect is meant for dashed lines that only have a single on/off interval pair. |
| * Bounding geometry is rendered and the effect computes coverage based on the fragment's |
| * position relative to the dashed line. |
| */ |
| GrGeometryProcessor* Create(GrColor, |
| GrPrimitiveEdgeType edgeType, |
| const SkPathEffect::DashInfo& info, |
| SkScalar strokeWidth, |
| DashCap cap); |
| } |
| |
| #endif |