diff options
author | Florin Malita <fmalita@chromium.org> | 2017-08-08 15:47:35 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-08-08 20:18:33 +0000 |
commit | 3b30c4f188ac674b92332a45f682f94cb91f61db (patch) | |
tree | fe72f899646860579914ffe7a47a9bd683734e6b /tests | |
parent | 26308e1757d46fe553c46e2b2b19689a60ecc7c5 (diff) |
Relocate gradient negative fract() workaround to GLSLCodeGenerator
Change-Id: If5aba5b266f86f677b6e63b0f79792f1d3213336
Reviewed-on: https://skia-review.googlesource.com/32202
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/SkSLGLSLTest.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/SkSLGLSLTest.cpp b/tests/SkSLGLSLTest.cpp index 80727d9804..c1bf2bbbce 100644 --- a/tests/SkSLGLSLTest.cpp +++ b/tests/SkSLGLSLTest.cpp @@ -360,6 +360,29 @@ DEF_TEST(SkSLMinAbs, r) { "}\n"); } +DEF_TEST(SkSLFractNegative, r) { + static constexpr char input[] = + "void main() {" + "float x = -42.0;" + "sk_FragColor.r = fract(x);" + "}"; + static constexpr char output_default[] = + "#version 400\n" + "out vec4 sk_FragColor;\n" + "void main() {\n" + " sk_FragColor.x = fract(-42.0);\n" + "}\n"; + static constexpr char output_workaround[] = + "#version 400\n" + "out vec4 sk_FragColor;\n" + "void main() {\n" + " sk_FragColor.x = (0.5 - sign(-42.0) * (0.5 - fract(abs(-42.0))));\n" + "}\n"; + + test(r, input, *SkSL::ShaderCapsFactory::Default(), output_default); + test(r, input, *SkSL::ShaderCapsFactory::CannotUseFractForNegativeValues(), output_workaround); +} + DEF_TEST(SkSLNegatedAtan, r) { test(r, "void main() { float2 x = float2(sqrt(2)); sk_FragColor.r = atan(x.x, -x.y); }", |