aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/SkSLGLSLTest.cpp
diff options
context:
space:
mode:
authorGravatar Ethan Nicholas <ethannicholas@google.com>2017-12-12 09:48:48 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-12-12 15:24:09 +0000
commite7e81c15c144b8133f696d0744ed9f7e8d06e936 (patch)
treea8b97c5e3ee2dea146a9cedbff3a33356a181180 /tests/SkSLGLSLTest.cpp
parent344e9037e1befdee76691a1239a47829e6af4ea5 (diff)
converted vertex shaders to device coords
Bug: skia:6239 Change-Id: I1a3b67fe84d208d426d71deb7aea6b0cd433af37 Reviewed-on: https://skia-review.googlesource.com/75501 Reviewed-by: Chris Dalton <csmartdalton@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Diffstat (limited to 'tests/SkSLGLSLTest.cpp')
-rw-r--r--tests/SkSLGLSLTest.cpp52
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/SkSLGLSLTest.cpp b/tests/SkSLGLSLTest.cpp
index a40b72c2e8..d815b8c439 100644
--- a/tests/SkSLGLSLTest.cpp
+++ b/tests/SkSLGLSLTest.cpp
@@ -1673,4 +1673,56 @@ DEF_TEST(SkSLForceHighPrecision, r) {
&inputs);
}
+DEF_TEST(SkSLNormalization, r) {
+ test(r,
+ "uniform float4 sk_RTAdjust; void main() { sk_Position = half4(1); }",
+ *SkSL::ShaderCapsFactory::Default(),
+ "#version 400\n"
+ "uniform vec4 sk_RTAdjust;\n"
+ "void main() {\n"
+ " gl_Position = vec4(1.0);\n"
+ " gl_Position = vec4(gl_Position.x * sk_RTAdjust.x + gl_Position.w * sk_RTAdjust.y, "
+ "gl_Position.y * sk_RTAdjust.z + gl_Position.w * sk_RTAdjust.w, "
+ "0, "
+ "gl_Position.w);\n"
+ "}\n",
+ SkSL::Program::kVertex_Kind);
+ test(r,
+ "uniform float4 sk_RTAdjust;"
+ "layout(points) in;"
+ "layout(invocations = 2) in;"
+ "layout(line_strip, max_vertices = 2) out;"
+ "void main() {"
+ "sk_Position = sk_in[0].sk_Position + float4(-0.5, 0, 0, sk_InvocationID);"
+ "EmitVertex();"
+ "sk_Position = sk_in[0].sk_Position + float4(0.5, 0, 0, sk_InvocationID);"
+ "EmitVertex();"
+ "EndPrimitive();"
+ "}",
+ *SkSL::ShaderCapsFactory::Default(),
+ "#version 400\n"
+ "uniform vec4 sk_RTAdjust;\n"
+ "layout (points) in ;\n"
+ "layout (invocations = 2) in ;\n"
+ "layout (line_strip, max_vertices = 2) out ;\n"
+ "void main() {\n"
+ " gl_Position = gl_in[0].gl_Position + vec4(-0.5, 0.0, 0.0, float(gl_InvocationID));\n"
+ " {\n"
+ " gl_Position = vec4(gl_Position.x * sk_RTAdjust.x + gl_Position.w * "
+ "sk_RTAdjust.y, gl_Position.y * sk_RTAdjust.z + gl_Position.w * "
+ "sk_RTAdjust.w, 0, gl_Position.w);\n"
+ " EmitVertex();\n"
+ " }\n"
+ " gl_Position = gl_in[0].gl_Position + vec4(0.5, 0.0, 0.0, float(gl_InvocationID));\n"
+ " {\n"
+ " gl_Position = vec4(gl_Position.x * sk_RTAdjust.x + gl_Position.w * "
+ "sk_RTAdjust.y, gl_Position.y * sk_RTAdjust.z + gl_Position.w * "
+ "sk_RTAdjust.w, 0, gl_Position.w);\n"
+ " EmitVertex();\n"
+ " }\n"
+ " EndPrimitive();\n"
+ "}\n",
+ SkSL::Program::kGeometry_Kind);
+}
+
#endif