Reland "Workaround constexpr bug in MSVC 2015 in GrTextureOp"
This is a reland of 9eff78e2623d600282ca63c2e9988e0ffbba2949
Original change's description:
> Workaround constexpr bug in MSVC 2015 in GrTextureOp
>
> Change-Id: I441858aab5fcd63e5467625a23681c5bcd35f25b
> Reviewed-on: https://skia-review.googlesource.com/130122
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>
Change-Id: I90e5d807f658baadfab80333d84872d8105bf02b
Reviewed-on: https://skia-review.googlesource.com/130306
Reviewed-by: Stephen White <senorblanco@chromium.org>
diff --git a/src/gpu/ops/GrTextureOp.cpp b/src/gpu/ops/GrTextureOp.cpp
index 933a173..4d0c41d 100644
--- a/src/gpu/ops/GrTextureOp.cpp
+++ b/src/gpu/ops/GrTextureOp.cpp
@@ -790,9 +790,14 @@
ih[t] = 1.f / texture->height();
}
+#if defined(_MSC_VER) && _MSC_VER <= 1910
+# define MAYBE_CONSTEXPR const
+#else
+# define MAYBE_CONSTEXPR constexpr
+#endif
using TessFn =
decltype(&TextureOp::tess<SkPoint, MultiTexture::kNo, Domain::kNo, GrAA::kNo>);
- static constexpr TessFn kTessFns[] = {
+ static MAYBE_CONSTEXPR TessFn kTessFns[] = {
&TextureOp::tess<SkPoint, MultiTexture::kNo, Domain::kNo, GrAA::kNo>,
&TextureOp::tess<SkPoint, MultiTexture::kNo, Domain::kNo, GrAA::kYes>,
&TextureOp::tess<SkPoint, MultiTexture::kNo, Domain::kYes, GrAA::kNo>,
@@ -810,6 +815,7 @@
&TextureOp::tess<SkPoint3, MultiTexture::kYes, Domain::kYes, GrAA::kNo>,
&TextureOp::tess<SkPoint3, MultiTexture::kYes, Domain::kYes, GrAA::kYes>,
};
+#undef MAYBE_CONSTEXPR
int tessFnIdx = 0;
tessFnIdx |= coverageAA ? 0x1 : 0x0;
tessFnIdx |= fDomain ? 0x2 : 0x0;