| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2011 Google Inc. | 3 * Copyright 2011 Google Inc. |
| 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 #include "SkAAClip.h" | 9 #include "SkAAClip.h" |
| 10 #include "SkBlitter.h" | 10 #include "SkBlitter.h" |
| (...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 212 prevOffset = yoff->fOffset; | 212 prevOffset = yoff->fOffset; |
| 213 const uint8_t* row = head->data() + yoff->fOffset; | 213 const uint8_t* row = head->data() + yoff->fOffset; |
| 214 size_t rowLength = compute_row_length(row, fBounds.width()); | 214 size_t rowLength = compute_row_length(row, fBounds.width()); |
| 215 SkASSERT(yoff->fOffset + rowLength <= head->fDataSize); | 215 SkASSERT(yoff->fOffset + rowLength <= head->fDataSize); |
| 216 yoff += 1; | 216 yoff += 1; |
| 217 } | 217 } |
| 218 // check the last entry; | 218 // check the last entry; |
| 219 --yoff; | 219 --yoff; |
| 220 SkASSERT(yoff->fY == lastY); | 220 SkASSERT(yoff->fY == lastY); |
| 221 } | 221 } |
| 222 |
| 223 static void dump_one_row(const uint8_t* SK_RESTRICT row, |
| 224 int width, int leading_num) { |
| 225 if (leading_num) { |
| 226 SkDebugf( "%03d ", leading_num ); |
| 227 } |
| 228 while (width > 0) { |
| 229 int n = row[0]; |
| 230 int val = row[1]; |
| 231 char out = '.'; |
| 232 if (val == 0xff) { |
| 233 out = '*'; |
| 234 } else if (val > 0) { |
| 235 out = '+'; |
| 236 } |
| 237 for (int i = 0 ; i < n ; i++) { |
| 238 SkDebugf( "%c", out ); |
| 239 } |
| 240 row += 2; |
| 241 width -= n; |
| 242 } |
| 243 SkDebugf( "\n" ); |
| 244 } |
| 245 |
| 246 void SkAAClip::debug(bool compress_y) const { |
| 247 Iter iter(*this); |
| 248 const int width = fBounds.width(); |
| 249 |
| 250 int y = fBounds.fTop; |
| 251 while (!iter.done()) { |
| 252 if (compress_y) { |
| 253 dump_one_row(iter.data(), width, iter.bottom() - iter.top() + 1); |
| 254 } else { |
| 255 do { |
| 256 dump_one_row(iter.data(), width, 0); |
| 257 } while (++y < iter.bottom()); |
| 258 } |
| 259 iter.next(); |
| 260 } |
| 261 } |
| 222 #endif | 262 #endif |
| 223 | 263 |
| 224 /////////////////////////////////////////////////////////////////////////////// | 264 /////////////////////////////////////////////////////////////////////////////// |
| 225 | 265 |
| 226 // Count the number of zeros on the left and right edges of the passed in | 266 // Count the number of zeros on the left and right edges of the passed in |
| 227 // RLE row. If 'row' is all zeros return 'width' in both variables. | 267 // RLE row. If 'row' is all zeros return 'width' in both variables. |
| 228 static void count_left_right_zeros(const uint8_t* row, int width, | 268 static void count_left_right_zeros(const uint8_t* row, int width, |
| 229 int* leftZ, int* riteZ) { | 269 int* leftZ, int* riteZ) { |
| 230 int zeros = 0; | 270 int zeros = 0; |
| 231 do { | 271 do { |
| (...skipping 1956 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2188 rowMask.fBounds.fBottom = y + 1; | 2228 rowMask.fBounds.fBottom = y + 1; |
| 2189 fBlitter->blitMask(rowMask, rowMask.fBounds); | 2229 fBlitter->blitMask(rowMask, rowMask.fBounds); |
| 2190 src = (const void*)((const char*)src + srcRB); | 2230 src = (const void*)((const char*)src + srcRB); |
| 2191 } while (++y < localStopY); | 2231 } while (++y < localStopY); |
| 2192 } while (y < stopY); | 2232 } while (y < stopY); |
| 2193 } | 2233 } |
| 2194 | 2234 |
| 2195 const SkBitmap* SkAAClipBlitter::justAnOpaqueColor(uint32_t* value) { | 2235 const SkBitmap* SkAAClipBlitter::justAnOpaqueColor(uint32_t* value) { |
| 2196 return NULL; | 2236 return NULL; |
| 2197 } | 2237 } |
| OLD | NEW |