From e7e81c15c144b8133f696d0744ed9f7e8d06e936 Mon Sep 17 00:00:00 2001 From: Ethan Nicholas Date: Tue, 12 Dec 2017 09:48:48 -0500 Subject: converted vertex shaders to device coords Bug: skia:6239 Change-Id: I1a3b67fe84d208d426d71deb7aea6b0cd433af37 Reviewed-on: https://skia-review.googlesource.com/75501 Reviewed-by: Chris Dalton Commit-Queue: Ethan Nicholas --- tests/SkSLGLSLTest.cpp | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) (limited to 'tests/SkSLGLSLTest.cpp') 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 -- cgit v1.2.3