SkCornerPathEffect.h revision a2ca41e3afdd8fad5e0e924dec029f33918e0a67
18403881c365ab36b721ccc4500af1b3a5bd25870mikesamuel
28403881c365ab36b721ccc4500af1b3a5bd25870mikesamuel/*
38403881c365ab36b721ccc4500af1b3a5bd25870mikesamuel * Copyright 2006 The Android Open Source Project
48403881c365ab36b721ccc4500af1b3a5bd25870mikesamuel *
58403881c365ab36b721ccc4500af1b3a5bd25870mikesamuel * Use of this source code is governed by a BSD-style license that can be
68403881c365ab36b721ccc4500af1b3a5bd25870mikesamuel * found in the LICENSE file.
78403881c365ab36b721ccc4500af1b3a5bd25870mikesamuel */
88403881c365ab36b721ccc4500af1b3a5bd25870mikesamuel
98403881c365ab36b721ccc4500af1b3a5bd25870mikesamuel
108403881c365ab36b721ccc4500af1b3a5bd25870mikesamuel#ifndef SkCornerPathEffect_DEFINED
118403881c365ab36b721ccc4500af1b3a5bd25870mikesamuel#define SkCornerPathEffect_DEFINED
128403881c365ab36b721ccc4500af1b3a5bd25870mikesamuel
138403881c365ab36b721ccc4500af1b3a5bd25870mikesamuel#include "SkPathEffect.h"
148403881c365ab36b721ccc4500af1b3a5bd25870mikesamuel
158403881c365ab36b721ccc4500af1b3a5bd25870mikesamuel/** \class SkCornerPathEffect
168403881c365ab36b721ccc4500af1b3a5bd25870mikesamuel
178403881c365ab36b721ccc4500af1b3a5bd25870mikesamuel    SkCornerPathEffect is a subclass of SkPathEffect that can turn sharp corners
188403881c365ab36b721ccc4500af1b3a5bd25870mikesamuel    into various treatments (e.g. rounded corners)
198403881c365ab36b721ccc4500af1b3a5bd25870mikesamuel*/
208403881c365ab36b721ccc4500af1b3a5bd25870mikesamuelclass SK_API SkCornerPathEffect : public SkPathEffect {
218403881c365ab36b721ccc4500af1b3a5bd25870mikesamuelpublic:
228403881c365ab36b721ccc4500af1b3a5bd25870mikesamuel    /** radius must be > 0 to have an effect. It specifies the distance from each corner
238403881c365ab36b721ccc4500af1b3a5bd25870mikesamuel        that should be "rounded".
248403881c365ab36b721ccc4500af1b3a5bd25870mikesamuel    */
258403881c365ab36b721ccc4500af1b3a5bd25870mikesamuel    SkCornerPathEffect(SkScalar radius);
268403881c365ab36b721ccc4500af1b3a5bd25870mikesamuel    virtual ~SkCornerPathEffect();
278403881c365ab36b721ccc4500af1b3a5bd25870mikesamuel
288403881c365ab36b721ccc4500af1b3a5bd25870mikesamuel    // overrides for SkPathEffect
295c702c12be71d8070da9287cc4a044617dd726a7manico.james@gmail.com    //  This method is not exported to java.
305c702c12be71d8070da9287cc4a044617dd726a7manico.james@gmail.com    virtual bool filterPath(SkPath* dst, const SkPath& src, SkScalar* width);
315c702c12be71d8070da9287cc4a044617dd726a7manico.james@gmail.com
325c702c12be71d8070da9287cc4a044617dd726a7manico.james@gmail.com    // overrides for SkFlattenable
335c702c12be71d8070da9287cc4a044617dd726a7manico.james@gmail.com    //  This method is not exported to java.
345c702c12be71d8070da9287cc4a044617dd726a7manico.james@gmail.com    virtual Factory getFactory();
355c702c12be71d8070da9287cc4a044617dd726a7manico.james@gmail.com    //  This method is not exported to java.
365c702c12be71d8070da9287cc4a044617dd726a7manico.james@gmail.com    virtual void flatten(SkFlattenableWriteBuffer&);
375c702c12be71d8070da9287cc4a044617dd726a7manico.james@gmail.com
385c702c12be71d8070da9287cc4a044617dd726a7manico.james@gmail.com    static SkFlattenable* CreateProc(SkFlattenableReadBuffer&);
395c702c12be71d8070da9287cc4a044617dd726a7manico.james@gmail.com
405c702c12be71d8070da9287cc4a044617dd726a7manico.james@gmail.comprotected:
415c702c12be71d8070da9287cc4a044617dd726a7manico.james@gmail.com    SkCornerPathEffect(SkFlattenableReadBuffer&);
425c702c12be71d8070da9287cc4a044617dd726a7manico.james@gmail.com
435c702c12be71d8070da9287cc4a044617dd726a7manico.james@gmail.comprivate:
445c702c12be71d8070da9287cc4a044617dd726a7manico.james@gmail.com    SkScalar    fRadius;
455c702c12be71d8070da9287cc4a044617dd726a7manico.james@gmail.com
465c702c12be71d8070da9287cc4a044617dd726a7manico.james@gmail.com    typedef SkPathEffect INHERITED;
475c702c12be71d8070da9287cc4a044617dd726a7manico.james@gmail.com};
485c702c12be71d8070da9287cc4a044617dd726a7manico.james@gmail.com
495c702c12be71d8070da9287cc4a044617dd726a7manico.james@gmail.com#endif
505c702c12be71d8070da9287cc4a044617dd726a7manico.james@gmail.com
515c702c12be71d8070da9287cc4a044617dd726a7manico.james@gmail.com