1 2/* 3 * Copyright 2014 Google Inc. 4 * 5 * Use of this source code is governed by a BSD-style license that can be 6 * found in the LICENSE file. 7 */ 8 9#ifndef GrDashingEffect_DEFINED 10#define GrDashingEffect_DEFINED 11 12#include "GrTypesPriv.h" 13#include "SkPathEffect.h" 14 15class GrGpu; 16class GrDrawTarget; 17class GrGeometryProcessor; 18class GrPaint; 19class GrStrokeInfo; 20 21class GrGLDashingEffect; 22class SkPath; 23 24namespace GrDashingEffect { 25 bool DrawDashLine(const SkPoint pts[2], const GrPaint& paint, const GrStrokeInfo& strokeInfo, 26 GrGpu* gpu, GrDrawTarget* target, const SkMatrix& vm); 27 28 enum DashCap { 29 kRound_DashCap, 30 kNonRound_DashCap, 31 }; 32 33 /** 34 * An effect that renders a dashed line. It is intended to be used as a coverage effect. 35 * The effect is meant for dashed lines that only have a single on/off interval pair. 36 * Bounding geometry is rendered and the effect computes coverage based on the fragment's 37 * position relative to the dashed line. 38 */ 39 GrGeometryProcessor* Create(GrPrimitiveEdgeType edgeType, 40 const SkPathEffect::DashInfo& info, 41 SkScalar strokeWidth, 42 DashCap cap); 43} 44 45#endif 46