#version 400 | |
flat in ivec4 uiv4; | |
in vec4 uv4; | |
bool ub; | |
bool uba; | |
bvec4 ub41, ub42; | |
in float uf; | |
flat in int ui; | |
out float of1; | |
out vec4 of4; | |
bool foo() { ++of1; return of1 > 10.0; } | |
void main() | |
{ | |
of1 = 0.0; | |
of4 = vec4(0.0); | |
if (ub || ui > 2) // not worth short circuiting | |
++of1; | |
if (ub && !uba) // not worth short circuiting | |
++of1; | |
if (ub || foo()) // must short circuit | |
++of1; | |
if (ub && foo()) // must short circuit | |
++of1; | |
if (foo() || ub) // not worth short circuiting | |
++of1; | |
if (foo() && ub) // not worth short circuiting | |
++of1; | |
if (ub || ++of1 > 1.0) // must short circuit | |
++of4; | |
if (++of1 > 1.0 || ub) // not worth short circuiting | |
++of4; | |
if (ub || sin(uf) * 4.0 > of1) // worth short circuiting | |
++of1; | |
if (ub && sin(uf) * 4.0 > of1) // worth short circuiting | |
++of1; | |
} |