• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2018 Google Inc.
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 SkOpPathEffect_DEFINED
9 #define SkOpPathEffect_DEFINED
10 
11 #include "include/core/SkMatrix.h"
12 #include "include/core/SkPaint.h"
13 #include "include/core/SkPathEffect.h"
14 #include "include/pathops/SkPathOps.h"
15 
16 class SK_API SkMergePathEffect {
17 public:
18     /*  Defers to two other patheffects, and then combines their outputs using the specified op.
19      *  e.g.
20      *      result = output_one op output_two
21      *
22      *  If either one or two is nullptr, then the original path is passed through to the op.
23      */
24     static sk_sp<SkPathEffect> Make(sk_sp<SkPathEffect> one, sk_sp<SkPathEffect> two, SkPathOp op);
25 };
26 
27 class SK_API SkMatrixPathEffect {
28 public:
29     static sk_sp<SkPathEffect> MakeTranslate(SkScalar dx, SkScalar dy);
30     static sk_sp<SkPathEffect> Make(const SkMatrix&);
31 };
32 
33 class SK_API SkStrokePathEffect {
34 public:
35     static sk_sp<SkPathEffect> Make(SkScalar width, SkPaint::Join, SkPaint::Cap,
36                                     SkScalar miter = 4);
37 };
38 
39 #endif
40