Home | History | Annotate | Download | only in effects
      1 /*
      2  * Copyright 2006 The Android Open Source Project
      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 SkCornerPathEffect_DEFINED
      9 #define SkCornerPathEffect_DEFINED
     10 
     11 #include "SkPathEffect.h"
     12 
     13 /** \class SkCornerPathEffect
     14 
     15     SkCornerPathEffect is a subclass of SkPathEffect that can turn sharp corners
     16     into various treatments (e.g. rounded corners)
     17 */
     18 class SK_API SkCornerPathEffect : public SkPathEffect {
     19 public:
     20     /** radius must be > 0 to have an effect. It specifies the distance from each corner
     21         that should be "rounded".
     22     */
     23     SkCornerPathEffect(SkScalar radius);
     24     virtual ~SkCornerPathEffect();
     25 
     26     virtual bool filterPath(SkPath* dst, const SkPath& src,
     27                             SkStrokeRec*, const SkRect*) const SK_OVERRIDE;
     28 
     29     SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkCornerPathEffect)
     30 
     31 protected:
     32     SkCornerPathEffect(SkFlattenableReadBuffer&);
     33     virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
     34 
     35 private:
     36     SkScalar    fRadius;
     37 
     38     typedef SkPathEffect INHERITED;
     39 };
     40 
     41 #endif
     42