66 lines
		
	
	
		
			975 B
		
	
	
	
		
			GLSL
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			975 B
		
	
	
	
		
			GLSL
		
	
	
		
			Executable File
		
	
	
	
	
#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
 | 
						|
 | 
						|
 | 
						|
}
 |