Chromium Code Reviews| Index: include/effects/SkRRectsGaussianEdgeShader.h |
| diff --git a/include/effects/SkRRectsGaussianEdgeShader.h b/include/effects/SkRRectsGaussianEdgeShader.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..0bdb06b143171a7c04e607fbe64d8d43cf151943 |
| --- /dev/null |
| +++ b/include/effects/SkRRectsGaussianEdgeShader.h |
| @@ -0,0 +1,37 @@ |
| +/* |
| + * 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 SkRRectsGaussianEdgeShader_DEFINED |
| +#define SkRRectsGaussianEdgeShader_DEFINED |
| + |
| +#include "SkShader.h" |
| + |
| +class SkRRect; |
| + |
| +class SK_API SkRRectsGaussianEdgeShader { |
| +public: |
| + /** Returns a shader 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. |
| + * Raster will draw nothing. |
| + * |
| + * 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 |
|
bsalomon
2016/09/12 14:56:52
Is there a bad behavior if drawn larger or does it
robertphillips
2016/09/12 15:13:49
Right now there is bad behavior but I'm currently
|
| + * area of the coverage geometry if it is known to be occluded. |
| + */ |
| + static sk_sp<SkShader> Make(const SkRRect& first, |
| + const SkRRect& second, |
| + SkScalar radius, SkScalar pad); |
| + |
| + SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP() |
| + |
| +private: |
| + SkRRectsGaussianEdgeShader(); // can't be instantiated |
| +}; |
| + |
| +#endif |