1/* 2 * Copyright 2016 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 SkRRectsGaussianEdgeMaskFilter_DEFINED 9#define SkRRectsGaussianEdgeMaskFilter_DEFINED 10 11#include "SkMaskFilter.h" 12#include "SkScalar.h" 13 14class SkRRect; 15 16class SK_API SkRRectsGaussianEdgeMaskFilter { 17public: 18 /** Returns a mask filter that applies a Gaussian blur depending on distance to the edge 19 * of the intersection of two round rects. 20 * Currently this is only useable with round rects that have the same radii at 21 * all the corners and for which the x & y radii are equal. 22 * 23 * In order to minimize fill the coverage geometry that should be drawn should be no larger 24 * than the intersection of the bounding boxes of the two round rects. Ambitious users can 25 * omit the center area of the coverage geometry if it is known to be occluded. 26 */ 27 static sk_sp<SkMaskFilter> Make(const SkRRect& first, 28 const SkRRect& second, 29 SkScalar radius); 30 31 SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP() 32 33private: 34 SkRRectsGaussianEdgeMaskFilter(); // can't be instantiated 35}; 36 37#endif 38