| 1 | /* | 
|---|
| 2 | * Copyright 2018 Google Inc. | 
|---|
| 3 | * | 
|---|
| 4 | * Use of this source code is governed by a BSD-style license that can be | 
|---|
| 5 | * found in the LICENSE file. | 
|---|
| 6 | */ | 
|---|
| 7 |  | 
|---|
| 8 | #ifndef SkBlurPriv_DEFINED | 
|---|
| 9 | #define SkBlurPriv_DEFINED | 
|---|
| 10 |  | 
|---|
| 11 | #include "include/core/SkRRect.h" | 
|---|
| 12 | #include "include/core/SkSize.h" | 
|---|
| 13 |  | 
|---|
| 14 | static const int kSkBlurRRectMaxDivisions = 6; | 
|---|
| 15 |  | 
|---|
| 16 | // This method computes all the parameters for drawing a partially occluded nine-patched | 
|---|
| 17 | // blurred rrect mask: | 
|---|
| 18 | //   rrectToDraw - the integerized rrect to draw in the mask | 
|---|
| 19 | //   widthHeight - how large to make the mask (rrectToDraw will be centered in this coord sys) | 
|---|
| 20 | //   rectXs, rectYs - the x & y coordinates of the covering geometry lattice | 
|---|
| 21 | //   texXs, texYs - the texture coordinate at each point in rectXs & rectYs | 
|---|
| 22 | //   numXs, numYs - number of coordinates in the x & y directions | 
|---|
| 23 | //   skipMask - bit mask that contains a 1-bit whenever one of the cells is occluded | 
|---|
| 24 | // It returns true if 'devRRect' is nine-patchable | 
|---|
| 25 | bool SkComputeBlurredRRectParams(const SkRRect& srcRRect, const SkRRect& devRRect, | 
|---|
| 26 | const SkRect& occluder, | 
|---|
| 27 | SkScalar sigma, SkScalar xformedSigma, | 
|---|
| 28 | SkRRect* rrectToDraw, | 
|---|
| 29 | SkISize* widthHeight, | 
|---|
| 30 | SkScalar rectXs[kSkBlurRRectMaxDivisions], | 
|---|
| 31 | SkScalar rectYs[kSkBlurRRectMaxDivisions], | 
|---|
| 32 | SkScalar texXs[kSkBlurRRectMaxDivisions], | 
|---|
| 33 | SkScalar texYs[kSkBlurRRectMaxDivisions], | 
|---|
| 34 | int* numXs, int* numYs, uint32_t* skipMask); | 
|---|
| 35 |  | 
|---|
| 36 | extern void sk_register_blur_maskfilter_createproc(); | 
|---|
| 37 |  | 
|---|
| 38 | #endif | 
|---|
| 39 |  | 
|---|