8#ifndef skgpu_BlurUtils_DEFINED
9#define skgpu_BlurUtils_DEFINED
52 std::array<SkV4, kMaxBlurSamples/4>& kernel) {
66 std::array<SkV4, kMaxBlurSamples/2>& offsetsAndKernel) {
static int SigmaToRadius(float sigma)
static constexpr bool IsEffectivelyIdentity(float sigma)
static constexpr int kMaxSamples
static void Compute1DBlurKernel(float sigma, int radius, SkSpan< float > kernel)
static void Compute1DBlurLinearKernel(float sigma, int radius, std::array< SkV4, kMaxSamples/2 > &offsetsAndKernel)
static constexpr float kMaxLinearSigma
static void Compute2DBlurOffsets(SkISize radius, std::array< SkV4, kMaxSamples/2 > &offsets)
static constexpr int LinearKernelWidth(int radius)
static const SkRuntimeEffect * GetBlur2DEffect(const SkISize &radii)
static constexpr int KernelWidth(int radius)
static const SkRuntimeEffect * GetLinearBlur1DEffect(int radius)
static void Compute2DBlurKernel(SkSize sigma, SkISize radius, SkSpan< float > kernel)
constexpr bool BlurIsEffectivelyIdentity(float sigma)
SkBitmap CreateRRectBlurMask(const SkRRect &rrectToDraw, const SkISize &dimensions, float sigma)
static constexpr int kMaxBlurSamples
int ComputeIntegralTableWidth(float sixSigma)
static constexpr float kMaxLinearBlurSigma
void Compute1DBlurKernel(float sigma, int radius, SkSpan< float > kernel)
void Compute2DBlurOffsets(SkISize radius, std::array< SkV4, kMaxBlurSamples/2 > &offsets)
SkBitmap CreateCircleProfile(float sigma, float radius, int profileWidth)
const SkRuntimeEffect * GetLinearBlur1DEffect(int radius)
int BlurSigmaRadius(float sigma)
constexpr int BlurKernelWidth(int radius)
void Compute2DBlurKernel(SkSize sigma, SkISize radius, SkSpan< float > kernel)
constexpr int BlurLinearKernelWidth(int radius)
SkBitmap CreateHalfPlaneProfile(int profileWidth)
SkBitmap CreateIntegralTable(int width)
const SkRuntimeEffect * GetBlur2DEffect(const SkISize &radii)
void Compute1DBlurLinearKernel(float sigma, int radius, std::array< SkV4, kMaxBlurSamples/2 > &offsetsAndKernel)