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

Side by Side Diff: src/core/SkScan_AntiPath.cpp

Issue 943053004: Remove SK_USE_LEGACY_AA_COVERAGE guarded code. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 10 months 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
« no previous file with comments | « no previous file | src/core/SkScan_Path.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 "SkScanPriv.h" 10 #include "SkScanPriv.h"
(...skipping 11 matching lines...) Expand all
22 We have two techniques for capturing the output of the supersampler: 22 We have two techniques for capturing the output of the supersampler:
23 - SUPERMASK, which records a large mask-bitmap 23 - SUPERMASK, which records a large mask-bitmap
24 this is often faster for small, complex objects 24 this is often faster for small, complex objects
25 - RLE, which records a rle-encoded scanline 25 - RLE, which records a rle-encoded scanline
26 this is often faster for large objects with big spans 26 this is often faster for large objects with big spans
27 27
28 These blitters use two coordinate systems: 28 These blitters use two coordinate systems:
29 - destination coordinates, scale equal to the output - often 29 - destination coordinates, scale equal to the output - often
30 abbreviated with 'i' or 'I' in variable names 30 abbreviated with 'i' or 'I' in variable names
31 - supersampled coordinates, scale equal to the output * SCALE 31 - supersampled coordinates, scale equal to the output * SCALE
32
33 Enabling SK_USE_LEGACY_AA_COVERAGE keeps the aa coverage calculations as
34 they were before the fix that unified the output of the RLE and MASK
35 supersamplers.
36 */ 32 */
37 33
38 //#define FORCE_SUPERMASK 34 //#define FORCE_SUPERMASK
39 //#define FORCE_RLE 35 //#define FORCE_RLE
40 //#define SK_USE_LEGACY_AA_COVERAGE
41 36
42 /////////////////////////////////////////////////////////////////////////////// 37 ///////////////////////////////////////////////////////////////////////////////
43 38
44 /// Base class for a single-pass supersampled blitter. 39 /// Base class for a single-pass supersampled blitter.
45 class BaseSuperBlitter : public SkBlitter { 40 class BaseSuperBlitter : public SkBlitter {
46 public: 41 public:
47 BaseSuperBlitter(SkBlitter* realBlitter, const SkIRect& ir, 42 BaseSuperBlitter(SkBlitter* realBlitter, const SkIRect& ir,
48 const SkRegion& clip, bool isInverse); 43 const SkRegion& clip, bool isInverse);
49 44
50 /// Must be explicitly defined on subclasses. 45 /// Must be explicitly defined on subclasses.
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 } 178 }
184 179
185 /** coverage_to_partial_alpha() is being used by SkAlphaRuns, which 180 /** coverage_to_partial_alpha() is being used by SkAlphaRuns, which
186 *accumulates* SCALE pixels worth of "alpha" in [0,(256/SCALE)] 181 *accumulates* SCALE pixels worth of "alpha" in [0,(256/SCALE)]
187 to produce a final value in [0, 255] and handles clamping 256->255 182 to produce a final value in [0, 255] and handles clamping 256->255
188 itself, with the same (alpha - (alpha >> 8)) correction as 183 itself, with the same (alpha - (alpha >> 8)) correction as
189 coverage_to_exact_alpha(). 184 coverage_to_exact_alpha().
190 */ 185 */
191 static inline int coverage_to_partial_alpha(int aa) { 186 static inline int coverage_to_partial_alpha(int aa) {
192 aa <<= 8 - 2*SHIFT; 187 aa <<= 8 - 2*SHIFT;
193 #ifdef SK_USE_LEGACY_AA_COVERAGE
194 aa -= aa >> (8 - SHIFT - 1);
195 #endif
196 return aa; 188 return aa;
197 } 189 }
198 190
199 /** coverage_to_exact_alpha() is being used by our blitter, which wants 191 /** coverage_to_exact_alpha() is being used by our blitter, which wants
200 a final value in [0, 255]. 192 a final value in [0, 255].
201 */ 193 */
202 static inline int coverage_to_exact_alpha(int aa) { 194 static inline int coverage_to_exact_alpha(int aa) {
203 int alpha = (256 >> SHIFT) * aa; 195 int alpha = (256 >> SHIFT) * aa;
204 // clamp 256->255 196 // clamp 256->255
205 return alpha - (alpha >> 8); 197 return alpha - (alpha >> 8);
(...skipping 560 matching lines...) Expand 10 before | Expand all | Expand 10 after
766 AntiFillPath(path, clip.bwRgn(), blitter); 758 AntiFillPath(path, clip.bwRgn(), blitter);
767 } else { 759 } else {
768 SkRegion tmp; 760 SkRegion tmp;
769 SkAAClipBlitter aaBlitter; 761 SkAAClipBlitter aaBlitter;
770 762
771 tmp.setRect(clip.getBounds()); 763 tmp.setRect(clip.getBounds());
772 aaBlitter.init(blitter, &clip.aaRgn()); 764 aaBlitter.init(blitter, &clip.aaRgn());
773 SkScan::AntiFillPath(path, tmp, &aaBlitter, true); 765 SkScan::AntiFillPath(path, tmp, &aaBlitter, true);
774 } 766 }
775 } 767 }
OLDNEW
« no previous file with comments | « no previous file | src/core/SkScan_Path.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698