aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkFDot6.h
diff options
context:
space:
mode:
authorGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-08-07 21:35:13 +0000
committerGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-08-07 21:35:13 +0000
commit4b163ed2c22facbe8891616874ae07ba7827d9c9 (patch)
treea6c54760e3ded8456cc4a410beb9da4a5bfeabcf /src/core/SkFDot6.h
parent2ddff9388694263c7be9347de7eb768cd0847997 (diff)
Privatization:
move SkFDot.h to private move parts of SkMath.h into SkMathPriv.h Review URL: https://codereview.appspot.com/6461045 git-svn-id: http://skia.googlecode.com/svn/trunk@4997 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/core/SkFDot6.h')
-rw-r--r--src/core/SkFDot6.h58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/core/SkFDot6.h b/src/core/SkFDot6.h
new file mode 100644
index 0000000000..aa588572f8
--- /dev/null
+++ b/src/core/SkFDot6.h
@@ -0,0 +1,58 @@
+
+/*
+ * Copyright 2006 The Android Open Source Project
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+#ifndef SkFDot6_DEFINED
+#define SkFDot6_DEFINED
+
+#include "SkMath.h"
+
+typedef int32_t SkFDot6;
+
+#define SK_FDot6One (64)
+#define SK_FDot6Half (32)
+
+#ifdef SK_DEBUG
+ inline SkFDot6 SkIntToFDot6(S16CPU x) {
+ SkASSERT(SkToS16(x) == x);
+ return x << 6;
+ }
+#else
+ #define SkIntToFDot6(x) ((x) << 6)
+#endif
+
+#define SkFDot6Floor(x) ((x) >> 6)
+#define SkFDot6Ceil(x) (((x) + 63) >> 6)
+#define SkFDot6Round(x) (((x) + 32) >> 6)
+
+#define SkFixedToFDot6(x) ((x) >> 10)
+
+inline SkFixed SkFDot6ToFixed(SkFDot6 x) {
+ SkASSERT((x << 10 >> 10) == x);
+
+ return x << 10;
+}
+
+#ifdef SK_SCALAR_IS_FLOAT
+ #define SkScalarToFDot6(x) (SkFDot6)((x) * 64)
+#else
+ #define SkScalarToFDot6(x) ((x) >> 10)
+#endif
+
+inline SkFixed SkFDot6Div(SkFDot6 a, SkFDot6 b) {
+ SkASSERT(b != 0);
+
+ if (a == (int16_t)a) {
+ return (a << 16) / b;
+ } else {
+ return SkFixedDiv(a, b);
+ }
+}
+
+#endif
+