diff options
author | bungeman <bungeman@google.com> | 2016-03-10 13:39:30 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-10 13:39:30 -0800 |
commit | dd67e3d1b3c1e9f400f1ddd37e9e52c8a2952eec (patch) | |
tree | 102da412fead8502ad31ed7b16852a12f03a721c /include/core/SkScalar.h | |
parent | c43c35fb7ed459d86a514fe6c058352caa55b7f4 (diff) |
Add SkScalarTruncToScalar and speed up SkScalarFraction.
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1783583003
Review URL: https://codereview.chromium.org/1783583003
Diffstat (limited to 'include/core/SkScalar.h')
-rw-r--r-- | include/core/SkScalar.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/include/core/SkScalar.h b/include/core/SkScalar.h index 84b53c8575..c154609fcb 100644 --- a/include/core/SkScalar.h +++ b/include/core/SkScalar.h @@ -38,6 +38,7 @@ typedef float SkScalar; #define SkScalarFloorToScalar(x) sk_float_floor(x) #define SkScalarCeilToScalar(x) sk_float_ceil(x) #define SkScalarRoundToScalar(x) sk_float_floor((x) + 0.5f) +#define SkScalarTruncToScalar(x) sk_float_trunc(x) #define SkScalarFloorToInt(x) sk_float_floor2int(x) #define SkScalarCeilToInt(x) sk_float_ceil2int(x) @@ -46,7 +47,6 @@ typedef float SkScalar; #define SkScalarAbs(x) sk_float_abs(x) #define SkScalarCopySign(x, y) sk_float_copysign(x, y) #define SkScalarMod(x, y) sk_float_mod(x,y) -#define SkScalarFraction(x) sk_float_mod(x, 1.0f) #define SkScalarSqrt(x) sk_float_sqrt(x) #define SkScalarPow(b, e) sk_float_pow(b, e) @@ -81,6 +81,7 @@ typedef double SkScalar; #define SkScalarFloorToScalar(x) floor(x) #define SkScalarCeilToScalar(x) ceil(x) #define SkScalarRoundToScalar(x) floor((x) + 0.5) +#define SkScalarTruncToScalar(x) trunc(x) #define SkScalarFloorToInt(x) (int)floor(x) #define SkScalarCeilToInt(x) (int)ceil(x) @@ -89,7 +90,6 @@ typedef double SkScalar; #define SkScalarAbs(x) abs(x) #define SkScalarCopySign(x, y) copysign(x, y) #define SkScalarMod(x, y) fmod(x,y) -#define SkScalarFraction(x) fmod(x, 1.0) #define SkScalarSqrt(x) sqrt(x) #define SkScalarPow(b, e) pow(b, e) @@ -168,6 +168,11 @@ static inline int SkDScalarRoundToInt(SkScalar x) { return (int)floor(xx); } +/** Returns the fractional part of the scalar. */ +static inline SkScalar SkScalarFraction(SkScalar x) { + return x - SkScalarTruncToScalar(x); +} + static inline SkScalar SkScalarClampMax(SkScalar x, SkScalar max) { x = SkTMin(x, max); x = SkTMax<SkScalar>(x, 0); |