| 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 #include "SkBuffer.h" | 8 #include "SkBuffer.h" |
| 9 #include "SkCubicClipper.h" | 9 #include "SkCubicClipper.h" |
| 10 #include "SkErrorInternals.h" | 10 #include "SkErrorInternals.h" |
| (...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 311 this->resetFields(); | 311 this->resetFields(); |
| 312 } | 312 } |
| 313 | 313 |
| 314 void SkPath::rewind() { | 314 void SkPath::rewind() { |
| 315 SkDEBUGCODE(this->validate();) | 315 SkDEBUGCODE(this->validate();) |
| 316 | 316 |
| 317 SkPathRef::Rewind(&fPathRef); | 317 SkPathRef::Rewind(&fPathRef); |
| 318 this->resetFields(); | 318 this->resetFields(); |
| 319 } | 319 } |
| 320 | 320 |
| 321 bool SkPath::isLastContourClosed() const { |
| 322 int verbCount = fPathRef->countVerbs(); |
| 323 if (0 == verbCount) { |
| 324 return false; |
| 325 } |
| 326 return kClose_Verb == fPathRef->atVerb(verbCount - 1); |
| 327 } |
| 328 |
| 321 bool SkPath::isLine(SkPoint line[2]) const { | 329 bool SkPath::isLine(SkPoint line[2]) const { |
| 322 int verbCount = fPathRef->countVerbs(); | 330 int verbCount = fPathRef->countVerbs(); |
| 323 | 331 |
| 324 if (2 == verbCount) { | 332 if (2 == verbCount) { |
| 325 SkASSERT(kMove_Verb == fPathRef->atVerb(0)); | 333 SkASSERT(kMove_Verb == fPathRef->atVerb(0)); |
| 326 if (kLine_Verb == fPathRef->atVerb(1)) { | 334 if (kLine_Verb == fPathRef->atVerb(1)) { |
| 327 SkASSERT(2 == fPathRef->countPoints()); | 335 SkASSERT(2 == fPathRef->countPoints()); |
| 328 if (line) { | 336 if (line) { |
| 329 const SkPoint* pts = fPathRef->points(); | 337 const SkPoint* pts = fPathRef->points(); |
| 330 line[0] = pts[0]; | 338 line[0] = pts[0]; |
| (...skipping 2753 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3084 } | 3092 } |
| 3085 } while (!done); | 3093 } while (!done); |
| 3086 return SkToBool(tangents.count()) ^ isInverse; | 3094 return SkToBool(tangents.count()) ^ isInverse; |
| 3087 } | 3095 } |
| 3088 | 3096 |
| 3089 int SkPath::ConvertConicToQuads(const SkPoint& p0, const SkPoint& p1, const SkPo
int& p2, | 3097 int SkPath::ConvertConicToQuads(const SkPoint& p0, const SkPoint& p1, const SkPo
int& p2, |
| 3090 SkScalar w, SkPoint pts[], int pow2) { | 3098 SkScalar w, SkPoint pts[], int pow2) { |
| 3091 const SkConic conic(p0, p1, p2, w); | 3099 const SkConic conic(p0, p1, p2, w); |
| 3092 return conic.chopIntoQuadsPOW2(pts, pow2); | 3100 return conic.chopIntoQuadsPOW2(pts, pow2); |
| 3093 } | 3101 } |
| OLD | NEW |