diff options
author | 2012-03-07 21:47:41 +0000 | |
---|---|---|
committer | 2012-03-07 21:47:41 +0000 | |
commit | 4bc0a9db18d58698057b8f38a6f21537aca4ddcf (patch) | |
tree | 76a2fc3e9fb8ceea5281164733605eccba5ca7bf /include | |
parent | b372942bbc842b5728cbc8e9dd024928a793846a (diff) |
use higher precision (64bit) fixed-point for matrix proc
Review URL: https://codereview.appspot.com/5772044
git-svn-id: http://skia.googlecode.com/svn/trunk@3336 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'include')
-rw-r--r-- | include/core/SkFixed.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/include/core/SkFixed.h b/include/core/SkFixed.h index 0af5d9ddd4..2040f14de8 100644 --- a/include/core/SkFixed.h +++ b/include/core/SkFixed.h @@ -264,4 +264,20 @@ inline bool SkFixedNearlyZero(SkFixed x, SkFixed tolerance = SK_FixedNearlyZero) #define SkFixedMulAdd(x, y, a) (SkFixedMul(x, y) + (a)) #endif +/////////////////////////////////////////////////////////////////////////////// + +typedef int64_t SkFixed48; + +#define SkIntToFixed48(x) ((SkFixed48)(x) << 48) +#define SkFixed48ToInt(x) ((int)((x) >> 48)) +#define SkFixedToFixed48(x) ((SkFixed48)(x) << 32) +#define SkFixed48ToFixed(x) ((SkFixed)((x) >> 32)) +#define SkFloatToFixed48(x) ((SkFixed48)((x) * (65536.0f * 65536.0f * 65536.0f))) + +#ifdef SK_SCALAR_IS_FLOAT + #define SkScalarToFixed48(x) SkFloatToFixed48(x) +#else + #define SkScalarToFixed48(x) SkFixedToFixed48(x) +#endif + #endif |