| OLD | NEW | 
|---|
| 1 | 1 | 
| 2 /* | 2 /* | 
| 3  * Copyright 2011 The Android Open Source Project | 3  * Copyright 2011 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 "SkScan.h" | 10 #include "SkScan.h" | 
| (...skipping 829 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 840     // need precise rounding (not just SkAlphaMul) so that values like | 840     // need precise rounding (not just SkAlphaMul) so that values like | 
| 841     // a=228, b=252 don't overflow the result | 841     // a=228, b=252 don't overflow the result | 
| 842     return SkToU8(a + b - SkAlphaMulRound(a, b)); | 842     return SkToU8(a + b - SkAlphaMulRound(a, b)); | 
| 843 } | 843 } | 
| 844 | 844 | 
| 845 static void inner_scanline(FDot8 L, int top, FDot8 R, U8CPU alpha, | 845 static void inner_scanline(FDot8 L, int top, FDot8 R, U8CPU alpha, | 
| 846                            SkBlitter* blitter) { | 846                            SkBlitter* blitter) { | 
| 847     SkASSERT(L < R); | 847     SkASSERT(L < R); | 
| 848 | 848 | 
| 849     if ((L >> 8) == ((R - 1) >> 8)) {  // 1x1 pixel | 849     if ((L >> 8) == ((R - 1) >> 8)) {  // 1x1 pixel | 
| 850         blitter->blitV(L >> 8, top, 1, InvAlphaMul(alpha, R - L)); | 850         FDot8 widClamp = R - L; | 
|  | 851         // border case clamp 256 to 255 instead of going through call_hline_blit
      ter | 
|  | 852         // see skbug/4406 | 
|  | 853         widClamp = widClamp - (widClamp >> 8); | 
|  | 854         blitter->blitV(L >> 8, top, 1, InvAlphaMul(alpha, widClamp)); | 
| 851         return; | 855         return; | 
| 852     } | 856     } | 
| 853 | 857 | 
| 854     int left = L >> 8; | 858     int left = L >> 8; | 
| 855     if (L & 0xFF) { | 859     if (L & 0xFF) { | 
| 856         blitter->blitV(left, top, 1, InvAlphaMul(alpha, L & 0xFF)); | 860         blitter->blitV(left, top, 1, InvAlphaMul(alpha, L & 0xFF)); | 
| 857         left += 1; | 861         left += 1; | 
| 858     } | 862     } | 
| 859 | 863 | 
| 860     int rite = R >> 8; | 864     int rite = R >> 8; | 
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 994 | 998 | 
| 995 void SkScan::AntiFrameRect(const SkRect& r, const SkPoint& strokeSize, | 999 void SkScan::AntiFrameRect(const SkRect& r, const SkPoint& strokeSize, | 
| 996                            const SkRasterClip& clip, SkBlitter* blitter) { | 1000                            const SkRasterClip& clip, SkBlitter* blitter) { | 
| 997     if (clip.isBW()) { | 1001     if (clip.isBW()) { | 
| 998         AntiFrameRect(r, strokeSize, &clip.bwRgn(), blitter); | 1002         AntiFrameRect(r, strokeSize, &clip.bwRgn(), blitter); | 
| 999     } else { | 1003     } else { | 
| 1000         SkAAClipBlitterWrapper wrap(clip, blitter); | 1004         SkAAClipBlitterWrapper wrap(clip, blitter); | 
| 1001         AntiFrameRect(r, strokeSize, &wrap.getRgn(), wrap.getBlitter()); | 1005         AntiFrameRect(r, strokeSize, &wrap.getRgn(), wrap.getBlitter()); | 
| 1002     } | 1006     } | 
| 1003 } | 1007 } | 
| OLD | NEW | 
|---|