1/* 2 * Copyright 2014 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8#ifndef SkArcToPathEffect_DEFINED 9#define SkArcToPathEffect_DEFINED 10 11#include "SkPathEffect.h" 12 13class SK_API SkArcToPathEffect : public SkPathEffect { 14public: 15 /** radius must be > 0 to have an effect. It specifies the distance from each corner 16 that should be "rounded". 17 */ 18 static sk_sp<SkPathEffect> Make(SkScalar radius) { 19 if (radius <= 0) { 20 return NULL; 21 } 22 return sk_sp<SkPathEffect>(new SkArcToPathEffect(radius)); 23 } 24 25 bool filterPath(SkPath* dst, const SkPath& src, SkStrokeRec*, const SkRect*) const override; 26 27 SK_TO_STRING_OVERRIDE() 28 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkArcToPathEffect) 29 30protected: 31 explicit SkArcToPathEffect(SkScalar radius); 32 void flatten(SkWriteBuffer&) const override; 33 34private: 35 SkScalar fRadius; 36 37 typedef SkPathEffect INHERITED; 38}; 39 40#endif 41