1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
diff --git a/include/core/SkColor.h b/include/core/SkColor.h
index 53df435e46..ce74db8b27 100644
--- a/include/core/SkColor.h
+++ b/include/core/SkColor.h
@@ -400,6 +400,7 @@ using SkColor4f = SkRGBA4f<kUnpremul_SkAlphaType>;
template <> SK_API SkColor4f SkColor4f::FromColor(SkColor);
template <> SK_API SkColor SkColor4f::toSkColor() const;
+template <> uint32_t SkColor4f::toBytes_RGBA() const;
namespace SkColors {
constexpr SkColor4f kTransparent = {0, 0, 0, 0};
diff --git a/include/private/SkColorData.h b/include/private/SkColorData.h
index 2090ab4b7e..801511586f 100644
--- a/include/private/SkColorData.h
+++ b/include/private/SkColorData.h
@@ -441,4 +441,6 @@ constexpr SkPMColor4f SK_PMColor4fILLEGAL = { SK_FloatNegativeInfinity,
SK_FloatNegativeInfinity,
SK_FloatNegativeInfinity };
+template <> uint32_t SkPMColor4f::toBytes_RGBA() const;
+
#endif
diff --git a/src/gpu/text/GrTextBlobCache.h b/src/gpu/text/GrTextBlobCache.h
index 1484cee527..dcb53b20a1 100644
--- a/src/gpu/text/GrTextBlobCache.h
+++ b/src/gpu/text/GrTextBlobCache.h
@@ -197,4 +197,6 @@ private:
SkMessageBus<PurgeBlobMessage>::Inbox fPurgeBlobInbox;
};
+template<> SkMessageBus<GrTextBlobCache::PurgeBlobMessage>* SkMessageBus<GrTextBlobCache::PurgeBlobMessage>::Get();
+
#endif
diff --git a/src/gpu/vk/GrVkSemaphore.cpp b/src/gpu/vk/GrVkSemaphore.cpp
index 191b6a3ce5..26754acccd 100644
--- a/src/gpu/vk/GrVkSemaphore.cpp
+++ b/src/gpu/vk/GrVkSemaphore.cpp
@@ -10,6 +10,7 @@
#include "include/gpu/GrBackendSemaphore.h"
#include "src/gpu/vk/GrVkGpu.h"
#include "src/gpu/vk/GrVkUtil.h"
+#include "tools/gpu/vk/GrVulkanDefines.h"
#ifdef VK_USE_PLATFORM_WIN32_KHR
// windows wants to define this as CreateSemaphoreA or CreateSemaphoreW
diff --git a/src/utils/Sk3D.cpp b/src/utils/Sk3D.cpp
index 0df42b5fa9..97b85233b3 100644
--- a/src/utils/Sk3D.cpp
+++ b/src/utils/Sk3D.cpp
@@ -38,6 +38,9 @@ void Sk3LookAt(SkMatrix44* dst, const SkPoint3& eye, const SkPoint3& center, con
dst->invert(dst);
}
+#undef far
+#undef near
+
bool Sk3Perspective(SkMatrix44* dst, float near, float far, float angle) {
SkASSERT(far > near);
diff --git a/src/utils/win/SkDWriteGeometrySink.h b/src/utils/win/SkDWriteGeometrySink.h
index 019539b191..5dd7bef353 100644
--- a/src/utils/win/SkDWriteGeometrySink.h
+++ b/src/utils/win/SkDWriteGeometrySink.h
@@ -13,6 +13,8 @@
class SkPath;
+#define CONST const
+
#include <dwrite.h>
#include <d2d1.h>
diff --git a/third_party/skcms/skcms.cc b/third_party/skcms/skcms.cc
index cc5738d977..c67310f6cc 100644
--- a/third_party/skcms/skcms.cc
+++ b/third_party/skcms/skcms.cc
@@ -124,7 +124,8 @@ static float minus_1_ulp(float x) {
// Most transfer functions we work with are sRGBish.
// For exotic HDR transfer functions, we encode them using a tf.g that makes no sense,
// and repurpose the other fields to hold the parameters of the HDR functions.
-enum TFKind { Bad, sRGBish, PQish, HLGish, HLGinvish };
+enum TFKind_skcms { Bad, sRGBish, PQish, HLGish, HLGinvish };
+#define TFKind TFKind_skcms
struct TF_PQish { float A,B,C,D,E,F; };
struct TF_HLGish { float R,G,a,b,c; };
@@ -2011,7 +2012,9 @@ typedef enum {
Op_store_hhhh,
Op_store_fff,
Op_store_ffff,
-} Op;
+} Op_skcms;
+
+#define Op Op_skcms
#if defined(__clang__)
template <int N, typename T> using Vec = T __attribute__((ext_vector_type(N)));
diff --git a/src/core/SkM44.cpp b/src/core/SkM44.cpp
index 2c82a0abd7..8505253d12 100644
--- a/src/core/SkM44.cpp
+++ b/src/core/SkM44.cpp
@@ -300,6 +300,8 @@ SkM44 Sk3LookAt(const SkV3& eye, const SkV3& center, const SkV3& up) {
return m;
}
+#undef near
+#undef far
SkM44 Sk3Perspective(float near, float far, float angle) {
SkASSERT(far > near);
diff --git a/src/shaders/SkImageShader.cpp b/src/shaders/SkImageShader.cpp
index b8fd426e13..5e6f2a9b28 100755
--- a/src/shaders/SkImageShader.cpp
+++ b/src/shaders/SkImageShader.cpp
@@ -781,6 +781,8 @@ bool SkImageShader::onProgram(skvm::Builder* p,
// See GrCubicEffect for details of these weights.
// TODO: these maybe don't seem right looking at gm/bicubic and GrBicubicEffect.
+#undef near
+#undef far
auto near = [&](skvm::F32 t) {
// 1/18 + 9/18t + 27/18t^2 - 21/18t^3 == t ( t ( -21/18t + 27/18) + 9/18) + 1/18
return p->mad(t,
|