#version 450 | |
struct S { | |
int a; | |
}; | |
uniform ubuf { | |
S s; | |
}; | |
uniform sampler2D s2d; | |
layout(location = 0) in vec4 inv; | |
layout(location = 0) out vec4 outv; | |
vec4 foo(S s) | |
{ | |
vec4 r = s.a * inv; | |
++r; | |
if (r.x > 3.0) | |
--r; | |
else | |
r *= 2; | |
return r; | |
} | |
void main() | |
{ | |
outv = foo(s); | |
outv += texture(s2d, vec2(0.5)); | |
switch (s.a) { | |
case 10: | |
++outv; | |
break; | |
case 20: | |
outv = 2 * outv; | |
++outv; | |
break; | |
default: | |
--outv; | |
break; | |
} | |
for (int i = 0; i < 10; ++i) | |
outv *= 3.0; | |
outv.x < 10.0 ? | |
outv = sin(outv) : | |
outv = cos(outv); | |
} |