| Index: src/effects/SkBlurMask.h
|
| diff --git a/src/effects/SkBlurMask.h b/src/effects/SkBlurMask.h
|
| index e0b8d54ce1e11f94b821e166709457e9147da87b..f95c110c90a9c59a0312bd83a8189ec2435546e3 100644
|
| --- a/src/effects/SkBlurMask.h
|
| +++ b/src/effects/SkBlurMask.h
|
| @@ -62,6 +62,41 @@ public:
|
| SkIPoint* margin = NULL);
|
|
|
| static SkScalar ConvertRadiusToSigma(SkScalar radius);
|
| +
|
| + /* Helper functions for analytic rectangle blurs */
|
| +
|
| + /** Look up the intensity of the (one dimnensional) blurred half-plane.
|
| + @param profile The precomputed 1D blur profile; memory allocated by and managed by
|
| + ComputeBlurProfile below.
|
| + @param loc the location to look up; The lookup will clamp invalid inputs, but
|
| + meaningful data are available between 0 and blurred_width
|
| + @param blurred_width The width of the final, blurred rectangle
|
| + @param sharp_width The width of the original, unblurred rectangle.
|
| + */
|
| + static uint8_t ProfileLookup(const uint8_t* profile, int loc, int blurred_width, int sharp_width);
|
| +
|
| + /** Allocate memory for and populate the profile of a 1D blurred halfplane. The caller
|
| + must free the memory. The amount of memory allocated will be exactly 6*sigma bytes.
|
| + @param sigma The standard deviation of the gaussian blur kernel
|
| + @param profile_out The location to store the allocated profile curve
|
| + */
|
| +
|
| + static void ComputeBlurProfile(SkScalar sigma, uint8_t** profile_out);
|
| +
|
| + /** Compute an entire scanline of a blurred step function. This is a 1D helper that
|
| + will produce both the horizontal and vertical profiles of the blurry rectangle.
|
| + @param pixels Location to store the resulting pixel data; allocated and managed by caller
|
| + @param profile Precomputed blur profile computed by ComputeBlurProfile above.
|
| + @param width Size of the pixels array.
|
| + @param sigma Standard deviation of the gaussian blur kernel used to compute the profile;
|
| + this implicitly gives the size of the pixels array.
|
| + */
|
| +
|
| + static void ComputeBlurredScanline(uint8_t* pixels, const uint8_t* profile,
|
| + unsigned int width, SkScalar sigma);
|
| +
|
| +
|
| +
|
| };
|
|
|
| #endif
|
|
|