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 foo() 50{ 51 S s; 52 s.member2 + s.member1; 53 s.member3.zyx; 54 s.member2.xyz; 55 s.member2.yzy(); 56 s.member2.xyz(); 57 s.member2.yzy; 58 FUN_MAC() 59 yzy 60 61 (); 62 yzy 63 64 65} 66