/* * 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 Make(const SkRRect& first, const SkRRect& second, SkScalar radius); SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP() private: SkRRectsGaussianEdgeMaskFilter(); // can't be instantiated }; #endif