glslang testing: Remove dependence on testfiles from LunarGLASS.
[platform/upstream/glslang.git] / Test / matrix.frag
1 #version 130\r
2 \r
3 //#define TEST_POST_110\r
4 \r
5 uniform mat3 colorTransform;\r
6 varying vec3 Color;\r
7 uniform mat4 m, n;\r
8 \r
9 #ifdef TEST_POST_110\r
10 uniform mat4x3 um43;\r
11 uniform mat3x4 un34;\r
12 #else\r
13 uniform mat4 um43;\r
14 uniform mat4 un34;\r
15 #endif\r
16 \r
17 varying vec4 v;\r
18 \r
19 #ifdef TEST_POST_110\r
20 varying vec3 u;\r
21 #else\r
22 varying vec4 u;\r
23 #endif\r
24 \r
25 void main()\r
26 {\r
27     gl_FragColor = vec4(un34[1]);\r
28     gl_FragColor += vec4(Color * colorTransform, 1.0);\r
29 \r
30     if (m != n)\r
31         gl_FragColor += v;\r
32    else {\r
33         gl_FragColor += m * v;\r
34         gl_FragColor += v * (m - n);\r
35    }\r
36     \r
37 #ifdef TEST_POST_110\r
38     mat3x4 m34 = outerProduct(v, u);\r
39     m34 += mat4(v.x);\r
40     m34 += mat4(u, u.x, u, u.x, u, u.x, u.x);\r
41 #else\r
42     mat4 m34 = mat4(v.x*u.x, v.x*u.y, v.x*u.z, v.x*u.w, \r
43                     v.y*u.x, v.y*u.y, v.y*u.z, v.y*u.w, \r
44                     v.z*u.x, v.z*u.y, v.z*u.z, v.z*u.w, \r
45                     v.w*u.x, v.w*u.y, v.w*u.z, v.w*u.w);\r
46     m34 += mat4(v.x);\r
47     m34 += mat4(u, u.x, u, u.x, u, u.x, u.x);\r
48 \r
49 #endif\r
50 \r
51     if (m34 == un34)\r
52         gl_FragColor += m34 * u;\r
53     else\r
54         gl_FragColor += (un34 * um43) * v;\r
55 }\r