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