Merge pull request #2865 from alan-baker/update-license
[platform/upstream/glslang.git] / Test / preprocessor.simple.vert
1 #version 310 es\r
2 #define X 1\r
3 #define Y clamp\r
4 #define Z X\r
5 \r
6 #define F 1, 2\r
7 \r
8 #define make_function \\r
9   float fn ( float x ) \\r
10   {\\r
11     return x + 4.0; \\r
12   }\r
13 \r
14 make_function\r
15 \r
16 int main() {\r
17   gl_Position = vec4(X);\r
18   gl_Position = Y(1, 2, 3);\r
19   gl_Position = vec4(Z);\r
20   gl_Position = vec4(F);\r
21   gl_Position = vec4(fn(3));\r
22   [] . ++ --\r
23   + - * % / - ! ~\r
24   << >> < > <= >=\r
25   == !=\r
26   & ^ | && ^^ || ? :\r
27   += -= *= /= %= <<= >>= &= |= ^=\r
28   1.2 2E10 5u -5lf\r
29 }\r
30 \r
31 struct S {\r
32     int member1;\r
33     float member2;\r
34     vec4 member3;\r
35 };\r
36 \r
37 #define xyz xxyz\r
38 #define yzy() yyz\r
39 \r
40 #define FUN_MAC() \\r
41         vec3 a = vec3(0); \\r
42         vec3 b = a.zxyz;  \\r
43         vec3 b = a.xyz;   \\r
44         vec3 b = a.yzy();   \\r
45         vec3 b = a.xyz();   \\r
46         vec3 b = a.yzy;   \\r
47         vec3 b = a.z;\r
48 \r
49 void foo()\r
50 {\r
51     S s;\r
52     s.member2 + s.member1;\r
53     s.member3.zyx;\r
54     s.member2.xyz;\r
55     s.member2.yzy();\r
56     s.member2.xyz();\r
57     s.member2.yzy;\r
58     FUN_MAC()\r
59     yzy\r
60 \r
61     ();\r
62     yzy\r
63 \r
64 \r
65 }\r