aboutsummaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorGravatar Hal Canary <halcanary@google.com>2018-06-11 21:44:01 -0400
committerGravatar Mike Klein <mtklein@google.com>2018-06-12 15:03:21 +0000
commit2a2f67592602b18527bc3fd449132d420cd5b62e (patch)
tree0f6078db2af3b904f08e8cc0118055bf1db621a5 /include
parent7c525e62d405d57ae7a7742cf607b9770a83a0ab (diff)
SkTypes: extract SkTo
Change-Id: I8de790d5013db2105ad885fa2683303d7c250b09 Reviewed-on: https://skia-review.googlesource.com/133620 Reviewed-by: Mike Klein <mtklein@google.com>
Diffstat (limited to 'include')
-rw-r--r--include/core/SkColorPriv.h1
-rw-r--r--include/core/SkImageInfo.h2
-rw-r--r--include/core/SkMath.h2
-rw-r--r--include/core/SkMatrix.h1
-rw-r--r--include/core/SkPaint.h1
-rw-r--r--include/core/SkPath.h1
-rw-r--r--include/core/SkStream.h1
-rw-r--r--include/core/SkString.h4
-rw-r--r--include/core/SkTypes.h15
-rw-r--r--include/gpu/GrResourceKey.h2
-rw-r--r--include/private/SkFixed.h4
-rw-r--r--include/private/SkPathRef.h7
-rw-r--r--include/private/SkTDArray.h4
-rw-r--r--include/private/SkTo.h28
-rw-r--r--include/utils/SkInterpolator.h2
15 files changed, 48 insertions, 27 deletions
diff --git a/include/core/SkColorPriv.h b/include/core/SkColorPriv.h
index 0cd02e8034..188ce6a172 100644
--- a/include/core/SkColorPriv.h
+++ b/include/core/SkColorPriv.h
@@ -8,6 +8,7 @@
#ifndef SkColorPriv_DEFINED
#define SkColorPriv_DEFINED
+#include "../private/SkTo.h"
#include "SkColor.h"
#include "SkMath.h"
diff --git a/include/core/SkImageInfo.h b/include/core/SkImageInfo.h
index f09b8d6b03..80a51cf242 100644
--- a/include/core/SkImageInfo.h
+++ b/include/core/SkImageInfo.h
@@ -22,7 +22,9 @@
#include "SkMath.h"
#include "SkRect.h"
#include "SkSize.h"
+
#include "../private/SkTFitsIn.h"
+#include "../private/SkTo.h"
class SkReadBuffer;
class SkWriteBuffer;
diff --git a/include/core/SkMath.h b/include/core/SkMath.h
index fb551abb40..19ab2f8c68 100644
--- a/include/core/SkMath.h
+++ b/include/core/SkMath.h
@@ -1,4 +1,3 @@
-
/*
* Copyright 2006 The Android Open Source Project
*
@@ -10,6 +9,7 @@
#ifndef SkMath_DEFINED
#define SkMath_DEFINED
+#include "../private/SkTo.h"
#include "SkTypes.h"
// 64bit -> 32bit utilities
diff --git a/include/core/SkMatrix.h b/include/core/SkMatrix.h
index a20146880f..bedb536f18 100644
--- a/include/core/SkMatrix.h
+++ b/include/core/SkMatrix.h
@@ -19,6 +19,7 @@
#define SkMatrix_DEFINED
#include "SkRect.h"
+#include "../private/SkTo.h"
struct SkRSXform;
struct SkPoint3;
diff --git a/include/core/SkPaint.h b/include/core/SkPaint.h
index 4c82e50f00..3d471d15ff 100644
--- a/include/core/SkPaint.h
+++ b/include/core/SkPaint.h
@@ -18,6 +18,7 @@
#ifndef SkPaint_DEFINED
#define SkPaint_DEFINED
+#include "../private/SkTo.h"
#include "SkBlendMode.h"
#include "SkColor.h"
#include "SkFilterQuality.h"
diff --git a/include/core/SkPath.h b/include/core/SkPath.h
index 6b04dd3d1d..2846d9f467 100644
--- a/include/core/SkPath.h
+++ b/include/core/SkPath.h
@@ -20,6 +20,7 @@
#include "SkMatrix.h"
#include "../private/SkPathRef.h"
+#include "../private/SkTo.h"
class SkAutoPathBoundsUpdate;
class SkData;
diff --git a/include/core/SkStream.h b/include/core/SkStream.h
index 2d9f9db120..d73c8a097e 100644
--- a/include/core/SkStream.h
+++ b/include/core/SkStream.h
@@ -8,6 +8,7 @@
#ifndef SkStream_DEFINED
#define SkStream_DEFINED
+#include "../private/SkTo.h"
#include "SkData.h"
#include "SkRefCnt.h"
#include "SkScalar.h"
diff --git a/include/core/SkString.h b/include/core/SkString.h
index c2fd9c0e36..aa3292abfe 100644
--- a/include/core/SkString.h
+++ b/include/core/SkString.h
@@ -1,4 +1,3 @@
-
/*
* Copyright 2006 The Android Open Source Project
*
@@ -11,8 +10,9 @@
#define SkString_DEFINED
#include "../private/SkTArray.h"
-#include "SkScalar.h"
+#include "../private/SkTo.h"
#include "SkRefCnt.h"
+#include "SkScalar.h"
#include <atomic>
#include <stdarg.h>
diff --git a/include/core/SkTypes.h b/include/core/SkTypes.h
index 7945e12426..a4dcc3cc37 100644
--- a/include/core/SkTypes.h
+++ b/include/core/SkTypes.h
@@ -149,21 +149,6 @@ typedef unsigned U16CPU;
*/
typedef uint8_t SkBool8;
-#include "../private/SkTFitsIn.h"
-template <typename D, typename S> constexpr D SkTo(S s) {
- return SkASSERT(SkTFitsIn<D>(s)),
- static_cast<D>(s);
-}
-#define SkToS8(x) SkTo<int8_t>(x)
-#define SkToU8(x) SkTo<uint8_t>(x)
-#define SkToS16(x) SkTo<int16_t>(x)
-#define SkToU16(x) SkTo<uint16_t>(x)
-#define SkToS32(x) SkTo<int32_t>(x)
-#define SkToU32(x) SkTo<uint32_t>(x)
-#define SkToInt(x) SkTo<int>(x)
-#define SkToUInt(x) SkTo<unsigned>(x)
-#define SkToSizeT(x) SkTo<size_t>(x)
-
/** Returns 0 or 1 based on the condition
*/
#define SkToBool(cond) ((cond) != 0)
diff --git a/include/gpu/GrResourceKey.h b/include/gpu/GrResourceKey.h
index 0240387a6b..90b84d72bf 100644
--- a/include/gpu/GrResourceKey.h
+++ b/include/gpu/GrResourceKey.h
@@ -1,4 +1,3 @@
-
/*
* Copyright 2014 Google Inc.
*
@@ -11,6 +10,7 @@
#include "../private/SkOnce.h"
#include "../private/SkTemplates.h"
+#include "../private/SkTo.h"
#include "GrTypes.h"
#include "SkData.h"
#include "SkString.h"
diff --git a/include/private/SkFixed.h b/include/private/SkFixed.h
index 15062f55b3..0d15e02aa9 100644
--- a/include/private/SkFixed.h
+++ b/include/private/SkFixed.h
@@ -8,9 +8,9 @@
#ifndef SkFixed_DEFINED
#define SkFixed_DEFINED
-#include "SkScalar.h"
#include "SkSafe_math.h"
-
+#include "SkScalar.h"
+#include "SkTo.h"
#include "SkTypes.h"
/** \file SkFixed.h
diff --git a/include/private/SkPathRef.h b/include/private/SkPathRef.h
index d9c8849334..94d5bf13b2 100644
--- a/include/private/SkPathRef.h
+++ b/include/private/SkPathRef.h
@@ -1,4 +1,3 @@
-
/*
* Copyright 2012 Google Inc.
*
@@ -9,14 +8,16 @@
#ifndef SkPathRef_DEFINED
#define SkPathRef_DEFINED
-#include "../private/SkAtomics.h"
-#include "../private/SkTDArray.h"
+#include "SkAtomics.h"
#include "SkMatrix.h"
#include "SkPoint.h"
#include "SkRRect.h"
#include "SkRect.h"
#include "SkRefCnt.h"
+#include "SkTDArray.h"
#include "SkTemplates.h"
+#include "SkTo.h"
+
#include <limits>
class SkRBuffer;
diff --git a/include/private/SkTDArray.h b/include/private/SkTDArray.h
index b030dc5627..dd3212d0dd 100644
--- a/include/private/SkTDArray.h
+++ b/include/private/SkTDArray.h
@@ -1,4 +1,3 @@
-
/*
* Copyright 2006 The Android Open Source Project
*
@@ -10,8 +9,9 @@
#ifndef SkTDArray_DEFINED
#define SkTDArray_DEFINED
-#include "SkTypes.h"
#include "SkMalloc.h"
+#include "SkTo.h"
+#include "SkTypes.h"
template <typename T> class SkTDArray {
public:
diff --git a/include/private/SkTo.h b/include/private/SkTo.h
new file mode 100644
index 0000000000..9b5b7fd164
--- /dev/null
+++ b/include/private/SkTo.h
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2018 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+#ifndef SkTo_DEFINED
+#define SkTo_DEFINED
+
+#include "SkTypes.h"
+#include "SkTFitsIn.h"
+
+template <typename D, typename S> constexpr D SkTo(S s) {
+ return SkASSERT(SkTFitsIn<D>(s)),
+ static_cast<D>(s);
+}
+
+template <typename S> constexpr int8_t SkToS8(S x) { return SkTo<int8_t>(x); }
+template <typename S> constexpr uint8_t SkToU8(S x) { return SkTo<uint8_t>(x); }
+template <typename S> constexpr int16_t SkToS16(S x) { return SkTo<int16_t>(x); }
+template <typename S> constexpr uint16_t SkToU16(S x) { return SkTo<uint16_t>(x); }
+template <typename S> constexpr int32_t SkToS32(S x) { return SkTo<int32_t>(x); }
+template <typename S> constexpr uint32_t SkToU32(S x) { return SkTo<uint32_t>(x); }
+template <typename S> constexpr int SkToInt(S x) { return SkTo<int>(x); }
+template <typename S> constexpr unsigned SkToUInt(S x) { return SkTo<unsigned>(x); }
+template <typename S> constexpr size_t SkToSizeT(S x) { return SkTo<size_t>(x); }
+
+#endif // SkTo_DEFINED
diff --git a/include/utils/SkInterpolator.h b/include/utils/SkInterpolator.h
index 31d50eeac7..f426263be7 100644
--- a/include/utils/SkInterpolator.h
+++ b/include/utils/SkInterpolator.h
@@ -1,4 +1,3 @@
-
/*
* Copyright 2006 The Android Open Source Project
*
@@ -10,6 +9,7 @@
#ifndef SkInterpolator_DEFINED
#define SkInterpolator_DEFINED
+#include "../private/SkTo.h"
#include "SkScalar.h"
class SK_API SkInterpolatorBase : SkNoncopyable {