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 "SkRRect.h" 12 #include "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