diff options
author | 2012-05-07 13:51:05 +0000 | |
---|---|---|
committer | 2012-05-07 13:51:05 +0000 | |
commit | e3987da2d293c4a6d0ccaac1c4066c20fb652ee6 (patch) | |
tree | 7879a857c96348757e5d02182ceec453ca8a826d | |
parent | c56a83ca9c1011fadd25475188fc2ea08930ec41 (diff) |
make CanNormalize inline for the float build (big speedup for PathIter)
git-svn-id: http://skia.googlecode.com/svn/trunk@3845 2bbb7eff-a529-9590-31e7-b0007b416f81
-rw-r--r-- | include/core/SkPoint.h | 8 | ||||
-rw-r--r-- | src/core/SkPoint.cpp | 5 |
2 files changed, 7 insertions, 6 deletions
diff --git a/include/core/SkPoint.h b/include/core/SkPoint.h index 4570e25613..cc483a62ac 100644 --- a/include/core/SkPoint.h +++ b/include/core/SkPoint.h @@ -213,7 +213,13 @@ struct SK_API SkPoint { * Return true if the computed length of the vector is >= the internal * tolerance (used to avoid dividing by tiny values). */ - static bool CanNormalize(SkScalar dx, SkScalar dy); + static bool CanNormalize(SkScalar dx, SkScalar dy) +#ifdef SK_SCALAR_IS_FLOAT + // Simple enough (and performance critical sometimes) so we inline it. + { return (dx*dx + dy*dy) > (SK_ScalarNearlyZero * SK_ScalarNearlyZero); } +#else + ; +#endif bool canNormalize() const { return CanNormalize(fX, fY); diff --git a/src/core/SkPoint.cpp b/src/core/SkPoint.cpp index a347b86a7d..c51b7cabe1 100644 --- a/src/core/SkPoint.cpp +++ b/src/core/SkPoint.cpp @@ -118,11 +118,6 @@ SkScalar SkPoint::Normalize(SkPoint* pt) { return 0; } -bool SkPoint::CanNormalize(SkScalar dx, SkScalar dy) { - float mag2_unused; - return !isLengthNearlyZero(dx, dy, &mag2_unused); -} - SkScalar SkPoint::Length(SkScalar dx, SkScalar dy) { return sk_float_sqrt(getLengthSquared(dx, dy)); } |