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