2af83ac4f6
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2321713004 Review-Url: https://codereview.chromium.org/2321713004
38 lines
1.2 KiB
C++
38 lines
1.2 KiB
C++
/*
|
|
* 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
|
|
* 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
|