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     static SkCornerPathEffect* Create(SkScalar radius) {
     24         return SkNEW_ARGS(SkCornerPathEffect, (radius));
     25     }
     26     virtual ~SkCornerPathEffect();
     27 
     28     virtual bool filterPath(SkPath* dst, const SkPath& src,
     29                             SkStrokeRec*, const SkRect*) const SK_OVERRIDE;
     30 
     31     SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkCornerPathEffect)
     32 
     33 protected:
     34     explicit SkCornerPathEffect(SkScalar radius);
     35     explicit SkCornerPathEffect(SkReadBuffer&);
     36     virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE;
     37 
     38 private:
     39     SkScalar    fRadius;
     40 
     41     typedef SkPathEffect INHERITED;
     42 };
     43 
     44 #endif
     45