1fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot/*
2fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Copyright 2006 The Android Open Source Project
3fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot *
4fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Use of this source code is governed by a BSD-style license that can be
5fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * found in the LICENSE file.
6fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot */
7fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
8fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#ifndef SkCornerPathEffect_DEFINED
9fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#define SkCornerPathEffect_DEFINED
10fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
11fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkPathEffect.h"
12fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
13fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot/** \class SkCornerPathEffect
14fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
15fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    SkCornerPathEffect is a subclass of SkPathEffect that can turn sharp corners
16fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    into various treatments (e.g. rounded corners)
17fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot*/
18fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotclass SK_API SkCornerPathEffect : public SkPathEffect {
19fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotpublic:
20fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    /** radius must be > 0 to have an effect. It specifies the distance from each corner
21fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot        that should be "rounded".
22fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    */
23fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    static sk_sp<SkPathEffect> Make(SkScalar radius) {
24fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot        return sk_sp<SkPathEffect>(new SkCornerPathEffect(radius));
25fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    }
26fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
27fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    virtual bool filterPath(SkPath* dst, const SkPath& src,
28fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot                            SkStrokeRec*, const SkRect*) const override;
29fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
30fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    SK_TO_STRING_OVERRIDE()
31fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkCornerPathEffect)
32fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
33fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
34fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    bool exposedInAndroidJavaAPI() const override { return true; }
35fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#endif
36fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
37fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotprotected:
38fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    ~SkCornerPathEffect() override;
39fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
40fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    explicit SkCornerPathEffect(SkScalar radius);
41fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    void flatten(SkWriteBuffer&) const override;
42fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
43fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotprivate:
44fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    SkScalar    fRadius;
45fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
46fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot    typedef SkPathEffect INHERITED;
47fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot};
48fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot
49fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#endif
50