OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2006 The Android Open Source Project | 2 * Copyright 2006 The Android Open Source Project |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 | 8 |
9 #include "SkMaskFilter.h" | 9 #include "SkMaskFilter.h" |
10 #include "SkBlitter.h" | 10 #include "SkBlitter.h" |
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
207 } | 207 } |
208 | 208 |
209 static int countNestedRects(const SkPath& path, SkRect rects[2]) { | 209 static int countNestedRects(const SkPath& path, SkRect rects[2]) { |
210 if (path.isNestedFillRects(rects)) { | 210 if (path.isNestedFillRects(rects)) { |
211 return 2; | 211 return 2; |
212 } | 212 } |
213 return path.isRect(&rects[0]); | 213 return path.isRect(&rects[0]); |
214 } | 214 } |
215 | 215 |
216 bool SkMaskFilter::filterRRect(const SkRRect& devRRect, const SkMatrix& matrix, | 216 bool SkMaskFilter::filterRRect(const SkRRect& devRRect, const SkMatrix& matrix, |
217 const SkRasterClip& clip, SkBlitter* blitter, | 217 const SkRasterClip& clip, SkBlitter* blitter) con
st { |
218 SkPaint::Style style) const { | |
219 // Attempt to speed up drawing by creating a nine patch. If a nine patch | 218 // Attempt to speed up drawing by creating a nine patch. If a nine patch |
220 // cannot be used, return false to allow our caller to recover and perform | 219 // cannot be used, return false to allow our caller to recover and perform |
221 // the drawing another way. | 220 // the drawing another way. |
222 NinePatch patch; | 221 NinePatch patch; |
223 patch.fMask.fImage = nullptr; | 222 patch.fMask.fImage = nullptr; |
224 if (kTrue_FilterReturn != this->filterRRectToNine(devRRect, matrix, | 223 if (kTrue_FilterReturn != this->filterRRectToNine(devRRect, matrix, |
225 clip.getBounds(), | 224 clip.getBounds(), |
226 &patch)) { | 225 &patch)) { |
227 SkASSERT(nullptr == patch.fMask.fImage); | 226 SkASSERT(nullptr == patch.fMask.fImage); |
228 return false; | 227 return false; |
229 } | 228 } |
230 draw_nine(patch.fMask, patch.fOuterRect, patch.fCenter, true, clip, blitter)
; | 229 draw_nine(patch.fMask, patch.fOuterRect, patch.fCenter, true, clip, blitter)
; |
231 return true; | 230 return true; |
232 } | 231 } |
233 | 232 |
234 bool SkMaskFilter::filterPath(const SkPath& devPath, const SkMatrix& matrix, | 233 bool SkMaskFilter::filterPath(const SkPath& devPath, const SkMatrix& matrix, |
235 const SkRasterClip& clip, SkBlitter* blitter, | 234 const SkRasterClip& clip, SkBlitter* blitter, |
236 SkPaint::Style style) const { | 235 SkStrokeRec::InitStyle style) const { |
237 SkRect rects[2]; | 236 SkRect rects[2]; |
238 int rectCount = 0; | 237 int rectCount = 0; |
239 if (SkPaint::kFill_Style == style) { | 238 if (SkStrokeRec::kFill_InitStyle == style) { |
240 rectCount = countNestedRects(devPath, rects); | 239 rectCount = countNestedRects(devPath, rects); |
241 } | 240 } |
242 if (rectCount > 0) { | 241 if (rectCount > 0) { |
243 NinePatch patch; | 242 NinePatch patch; |
244 | 243 |
245 switch (this->filterRectsToNine(rects, rectCount, matrix, clip.getBounds
(), &patch)) { | 244 switch (this->filterRectsToNine(rects, rectCount, matrix, clip.getBounds
(), &patch)) { |
246 case kFalse_FilterReturn: | 245 case kFalse_FilterReturn: |
247 SkASSERT(nullptr == patch.fMask.fImage); | 246 SkASSERT(nullptr == patch.fMask.fImage); |
248 return false; | 247 return false; |
249 | 248 |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
351 srcM.fRowBytes = 0; | 350 srcM.fRowBytes = 0; |
352 srcM.fFormat = SkMask::kA8_Format; | 351 srcM.fFormat = SkMask::kA8_Format; |
353 | 352 |
354 SkIPoint margin; // ignored | 353 SkIPoint margin; // ignored |
355 if (this->filterMask(&dstM, srcM, SkMatrix::I(), &margin)) { | 354 if (this->filterMask(&dstM, srcM, SkMatrix::I(), &margin)) { |
356 dst->set(dstM.fBounds); | 355 dst->set(dstM.fBounds); |
357 } else { | 356 } else { |
358 dst->set(srcM.fBounds); | 357 dst->set(srcM.fBounds); |
359 } | 358 } |
360 } | 359 } |
OLD | NEW |