Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Side by Side Diff: src/effects/SkBlurMask.cpp

Issue 85463005: remove SkFloatToScalar macro (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: add flag to expose SkFloatToScalar to chromium Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/effects/SkBicubicImageFilter.cpp ('k') | src/effects/SkBlurMaskFilter.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2006 The Android Open Source Project 3 * Copyright 2006 The Android Open Source Project
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 9
10 #include "SkBlurMask.h" 10 #include "SkBlurMask.h"
11 #include "SkMath.h" 11 #include "SkMath.h"
12 #include "SkTemplates.h" 12 #include "SkTemplates.h"
13 #include "SkEndian.h" 13 #include "SkEndian.h"
14 14
15 15
16 SkScalar SkBlurMask::ConvertRadiusToSigma(SkScalar radius) { 16 SkScalar SkBlurMask::ConvertRadiusToSigma(SkScalar radius) {
17 // This constant approximates the scaling done in the software path's 17 // This constant approximates the scaling done in the software path's
18 // "high quality" mode, in SkBlurMask::Blur() (1 / sqrt(3)). 18 // "high quality" mode, in SkBlurMask::Blur() (1 / sqrt(3)).
19 // IMHO, it actually should be 1: we blur "less" than we should do 19 // IMHO, it actually should be 1: we blur "less" than we should do
20 // according to the CSS and canvas specs, simply because Safari does the sam e. 20 // according to the CSS and canvas specs, simply because Safari does the sam e.
21 // Firefox used to do the same too, until 4.0 where they fixed it. So at so me 21 // Firefox used to do the same too, until 4.0 where they fixed it. So at so me
22 // point we should probably get rid of these scaling constants and rebaselin e 22 // point we should probably get rid of these scaling constants and rebaselin e
23 // all the blur tests. 23 // all the blur tests.
24 static const SkScalar kBLUR_SIGMA_SCALE = SkFloatToScalar(0.57735f); 24 static const SkScalar kBLUR_SIGMA_SCALE = 0.57735f;
25 25
26 return radius ? kBLUR_SIGMA_SCALE * radius + 0.5f : 0.0f; 26 return radius ? kBLUR_SIGMA_SCALE * radius + 0.5f : 0.0f;
27 } 27 }
28 28
29 #define UNROLL_SEPARABLE_LOOPS 29 #define UNROLL_SEPARABLE_LOOPS
30 30
31 /** 31 /**
32 * This function performs a box blur in X, of the given radius. If the 32 * This function performs a box blur in X, of the given radius. If the
33 * "transpose" parameter is true, it will transpose the pixels on write, 33 * "transpose" parameter is true, it will transpose the pixels on write,
34 * such that X and Y are swapped. Reads are always performed from contiguous 34 * such that X and Y are swapped. Reads are always performed from contiguous
(...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 } 398 }
399 #undef RIGHT_BORDER_ITER 399 #undef RIGHT_BORDER_ITER
400 SkASSERT(outer_sum == 0 && inner_sum == 0); 400 SkASSERT(outer_sum == 0 && inner_sum == 0);
401 } 401 }
402 return new_width; 402 return new_width;
403 } 403 }
404 404
405 static void get_adjusted_radii(SkScalar passRadius, int *loRadius, int *hiRadius ) 405 static void get_adjusted_radii(SkScalar passRadius, int *loRadius, int *hiRadius )
406 { 406 {
407 *loRadius = *hiRadius = SkScalarCeil(passRadius); 407 *loRadius = *hiRadius = SkScalarCeil(passRadius);
408 if (SkIntToScalar(*hiRadius) - passRadius > SkFloatToScalar(0.5f)) { 408 if (SkIntToScalar(*hiRadius) - passRadius > 0.5f) {
409 *loRadius = *hiRadius - 1; 409 *loRadius = *hiRadius - 1;
410 } 410 }
411 } 411 }
412 412
413 #include "SkColorPriv.h" 413 #include "SkColorPriv.h"
414 414
415 static void merge_src_with_blur(uint8_t dst[], int dstRB, 415 static void merge_src_with_blur(uint8_t dst[], int dstRB,
416 const uint8_t src[], int srcRB, 416 const uint8_t src[], int srcRB,
417 const uint8_t blur[], int blurRB, 417 const uint8_t blur[], int blurRB,
418 int sw, int sh) { 418 int sw, int sh) {
(...skipping 573 matching lines...) Expand 10 before | Expand all | Expand 10 after
992 (void)autoCall.detach(); 992 (void)autoCall.detach();
993 } 993 }
994 994
995 if (style == kInner_Style) { 995 if (style == kInner_Style) {
996 dst->fBounds = src.fBounds; // restore trimmed bounds 996 dst->fBounds = src.fBounds; // restore trimmed bounds
997 dst->fRowBytes = src.fRowBytes; 997 dst->fRowBytes = src.fRowBytes;
998 } 998 }
999 999
1000 return true; 1000 return true;
1001 } 1001 }
OLDNEW
« no previous file with comments | « src/effects/SkBicubicImageFilter.cpp ('k') | src/effects/SkBlurMaskFilter.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698