11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
20910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project/*
31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2006 The Android Open Source Project
40910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project *
51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be
61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file.
70910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project */
80910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
91cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#ifndef SkCornerPathEffect_DEFINED
110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#define SkCornerPathEffect_DEFINED
120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkPathEffect.h"
140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project/** \class SkCornerPathEffect
160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SkCornerPathEffect is a subclass of SkPathEffect that can turn sharp corners
180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    into various treatments (e.g. rounded corners)
190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project*/
20137a4ca42423bbb6d683067ea544c9a48f18f06cDerek Sollenbergerclass SK_API SkCornerPathEffect : public SkPathEffect {
210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectpublic:
220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    /** radius must be > 0 to have an effect. It specifies the distance from each corner
230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project        that should be "rounded".
240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    */
250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SkCornerPathEffect(SkScalar radius);
260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    virtual ~SkCornerPathEffect();
270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    // overrides for SkPathEffect
290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    //  This method is not exported to java.
300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    virtual bool filterPath(SkPath* dst, const SkPath& src, SkScalar* width);
310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    // overrides for SkFlattenable
330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    //  This method is not exported to java.
340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    virtual Factory getFactory();
350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    //  This method is not exported to java.
360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    virtual void flatten(SkFlattenableWriteBuffer&);
370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
381cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger    static SkFlattenable* CreateProc(SkFlattenableReadBuffer&);
391cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
401cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger    SK_DECLARE_FLATTENABLE_REGISTRAR()
411cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectprotected:
430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SkCornerPathEffect(SkFlattenableReadBuffer&);
440910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
450910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectprivate:
460910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SkScalar    fRadius;
470910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
480910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    typedef SkPathEffect INHERITED;
490910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project};
500910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
510910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif
520910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
53