mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-09 20:10:06 +00:00
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
|
|
|
|
|
|
}
|