66 lines
		
	
	
		
			975 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			975 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
| #version 310 es
 | |
| #define X 1
 | |
| #define Y clamp
 | |
| #define Z X
 | |
| 
 | |
| #define F 1, 2
 | |
| 
 | |
| #define make_function \
 | |
|   float fn ( float x ) \
 | |
|   {\
 | |
|     return x + 4.0; \
 | |
|   }
 | |
| 
 | |
| make_function
 | |
| 
 | |
| int main() {
 | |
|   gl_Position = vec4(X);
 | |
|   gl_Position = Y(1, 2, 3);
 | |
|   gl_Position = vec4(Z);
 | |
|   gl_Position = vec4(F);
 | |
|   gl_Position = vec4(fn(3));
 | |
|   [] . ++ --
 | |
|   + - * % / - ! ~
 | |
|   << >> < > <= >=
 | |
|   == !=
 | |
|   & ^ | && ^^ || ? :
 | |
|   += -= *= /= %= <<= >>= &= |= ^=
 | |
|   1.2 2E10 5u -5lf
 | |
| }
 | |
| 
 | |
| struct S {
 | |
|     int member1;
 | |
|     float member2;
 | |
|     vec4 member3;
 | |
| };
 | |
| 
 | |
| #define xyz xxyz
 | |
| #define yzy() yyz
 | |
| 
 | |
| #define FUN_MAC() \
 | |
| 	vec3 a = vec3(0); \
 | |
| 	vec3 b = a.zxyz;  \
 | |
| 	vec3 b = a.xyz;   \
 | |
| 	vec3 b = a.yzy();   \
 | |
| 	vec3 b = a.xyz();   \
 | |
| 	vec3 b = a.yzy;   \
 | |
| 	vec3 b = a.z;
 | |
| 
 | |
| void foo()
 | |
| {
 | |
|     S s;
 | |
|     s.member2 + s.member1;
 | |
|     s.member3.zyx;
 | |
|     s.member2.xyz;
 | |
|     s.member2.yzy();
 | |
|     s.member2.xyz();
 | |
|     s.member2.yzy;
 | |
|     FUN_MAC()
 | |
|     yzy
 | |
| 
 | |
|     ();
 | |
|     yzy
 | |
| 
 | |
| 
 | |
| }
 | 
