16c177a1a49fcfe8bfd5f3ffda3ee50bbe2679463jvanverth/*
26c177a1a49fcfe8bfd5f3ffda3ee50bbe2679463jvanverth * Copyright 2016 Google Inc.
36c177a1a49fcfe8bfd5f3ffda3ee50bbe2679463jvanverth *
46c177a1a49fcfe8bfd5f3ffda3ee50bbe2679463jvanverth * Use of this source code is governed by a BSD-style license that can be
56c177a1a49fcfe8bfd5f3ffda3ee50bbe2679463jvanverth * found in the LICENSE file.
66c177a1a49fcfe8bfd5f3ffda3ee50bbe2679463jvanverth */
76c177a1a49fcfe8bfd5f3ffda3ee50bbe2679463jvanverth
86c177a1a49fcfe8bfd5f3ffda3ee50bbe2679463jvanverth#ifndef SkGaussianEdgeShader_DEFINED
96c177a1a49fcfe8bfd5f3ffda3ee50bbe2679463jvanverth#define SkGaussianEdgeShader_DEFINED
106c177a1a49fcfe8bfd5f3ffda3ee50bbe2679463jvanverth
116c177a1a49fcfe8bfd5f3ffda3ee50bbe2679463jvanverth#include "SkShader.h"
126c177a1a49fcfe8bfd5f3ffda3ee50bbe2679463jvanverth
136c177a1a49fcfe8bfd5f3ffda3ee50bbe2679463jvanverthclass SK_API SkGaussianEdgeShader {
146c177a1a49fcfe8bfd5f3ffda3ee50bbe2679463jvanverthpublic:
156c177a1a49fcfe8bfd5f3ffda3ee50bbe2679463jvanverth    /** Returns a shader that applies a Gaussian blur depending on distance to the edge
166c177a1a49fcfe8bfd5f3ffda3ee50bbe2679463jvanverth    * Currently this is only useable with Circle and RRect shapes on the GPU backend.
176c177a1a49fcfe8bfd5f3ffda3ee50bbe2679463jvanverth    * Raster will draw nothing.
186c177a1a49fcfe8bfd5f3ffda3ee50bbe2679463jvanverth    */
19a8370b2c56e42b9e29b4cfbda95d14fdfba7f15ejvanverth    static sk_sp<SkShader> Make();
206c177a1a49fcfe8bfd5f3ffda3ee50bbe2679463jvanverth
216c177a1a49fcfe8bfd5f3ffda3ee50bbe2679463jvanverth    SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP()
2205a4cf59591024d838b204bb0f6fac42598ead28robertphillips
2305a4cf59591024d838b204bb0f6fac42598ead28robertphillipsprivate:
2405a4cf59591024d838b204bb0f6fac42598ead28robertphillips    SkGaussianEdgeShader(); // can't be instantiated
256c177a1a49fcfe8bfd5f3ffda3ee50bbe2679463jvanverth};
266c177a1a49fcfe8bfd5f3ffda3ee50bbe2679463jvanverth
276c177a1a49fcfe8bfd5f3ffda3ee50bbe2679463jvanverth#endif
28