| /* |
| * Copyright 2016 Google Inc. |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #ifndef SkRRectsGaussianEdgeMaskFilter_DEFINED |
| #define SkRRectsGaussianEdgeMaskFilter_DEFINED |
| |
| #include "SkMaskFilter.h" |
| #include "SkScalar.h" |
| |
| class SkRRect; |
| |
| class SK_API SkRRectsGaussianEdgeMaskFilter { |
| public: |
| /** Returns a mask filter that applies a Gaussian blur depending on distance to the edge |
| * of the intersection of two round rects. |
| * Currently this is only useable with round rects that have the same radii at |
| * all the corners and for which the x & y radii are equal. |
| * |
| * In order to minimize fill the coverage geometry that should be drawn should be no larger |
| * than the intersection of the bounding boxes of the two round rects. Ambitious users can |
| * omit the center area of the coverage geometry if it is known to be occluded. |
| */ |
| static sk_sp<SkMaskFilter> Make(const SkRRect& first, |
| const SkRRect& second, |
| SkScalar radius); |
| |
| SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP() |
| |
| private: |
| SkRRectsGaussianEdgeMaskFilter(); // can't be instantiated |
| }; |
| |
| #endif |