Geometry 295
Geometry 295
#define CITRA_GLES
#if defined(GL_ANDROID_extension_pack_es31a)
#extension GL_ANDROID_extension_pack_es31a : enable
#endif // defined(GL_ANDROID_extension_pack_es31a)
#if defined(GL_EXT_clip_cull_distance)
#extension GL_EXT_clip_cull_distance : enable
#endif // defined(GL_EXT_clip_cull_distance)
#define mul_s(x, y) (x * y)
#define fma_s(x, y, z) fma(x, y, z)
#define dot_s(x, y) dot(x, y)
#define dot_3(x, y) dot(x, y)
int vtx_idx = 0;
bool prim_emit = false;
bool winding = false;
void SetEmit(int i, bool p, bool w) {
vtx_idx = i;
prim_emit = p;
winding = w;
}
void Emit() {
gs_out_attr[vtx_idx] = vtx_regs;
if (prim_emit) {
if (winding) {
EmitPrim(1,0,2);
winding = false;
} else {
EmitPrim(0,1,2);
}
}
}
void main() {
ExecGS();
}
bvec2 bool_regs = bvec2(false);
ivec3 addr_regs = ivec3(0);
bool Gfn0();
vec4 tmp_reg2;
vec4 tmp_reg3;
vec4 tmp_reg4;
vec4 tmp_reg5;
vec4 tmp_reg6;
vec4 tmp_reg7;
vec4 tmp_reg8;
vec4 tmp_reg9;
vec4 tmp_reg10;
vec4 tmp_reg11;
vec4 tmp_reg12;
bool ExecGS() {tmp_reg2 = vec4(0, 0, 0, 1);
tmp_reg3 = vec4(0, 0, 0, 1);
tmp_reg4 = vec4(0, 0, 0, 1);
tmp_reg5 = vec4(0, 0, 0, 1);
tmp_reg6 = vec4(0, 0, 0, 1);
tmp_reg7 = vec4(0, 0, 0, 1);
tmp_reg8 = vec4(0, 0, 0, 1);
tmp_reg9 = vec4(0, 0, 0, 1);
tmp_reg10 = vec4(0, 0, 0, 1);
tmp_reg11 = vec4(0, 0, 0, 1);
tmp_reg12 = vec4(0, 0, 0, 1);
Gfn0();
return true;
}
bool Gfn0() {
bool_regs = lessThan(gs_pica.f[93].xx, vs_out_reg2[0].zw);
tmp_reg9 = gs_pica.f[85].xwww;
tmp_reg10 = gs_pica.f[85].ywww;
tmp_reg11 = gs_pica.f[85].xzzz;
tmp_reg12 = gs_pica.f[85].yzzz;
if (bool_regs.y) {
tmp_reg9 = gs_pica.f[85].ywww;
tmp_reg10 = gs_pica.f[85].xwww;
tmp_reg11 = gs_pica.f[85].yzzz;
tmp_reg12 = gs_pica.f[85].xzzz;
}
if (bool_regs.x) {
tmp_reg3 = gs_pica.f[93].xxxy;
tmp_reg4 = gs_pica.f[93].xxxy;
tmp_reg5 = vs_out_reg1[0];
tmp_reg7 = gs_pica.f[93].xxxx;
tmp_reg8 = gs_pica.f[93].xxxx;
tmp_reg2 = vs_out_reg3[0];
vtx_regs[0] = tmp_reg2;
tmp_reg6.xy = (vs_out_reg2[0].xyyy + tmp_reg9).xy;
tmp_reg6.zw = (gs_pica.f[93].xxxx).zw;
vtx_regs[4] = tmp_reg6;
vtx_regs[1] = tmp_reg3;
vtx_regs[2] = tmp_reg4;
vtx_regs[3] = tmp_reg5;
vtx_regs[5] = tmp_reg7;
vtx_regs[6] = tmp_reg8;
SetEmit(0, false, false);
Emit();
tmp_reg2 = vs_out_reg4[0];
vtx_regs[0] = tmp_reg2;
tmp_reg6.xy = (vs_out_reg2[0].xyyy + tmp_reg10).xy;
tmp_reg6.zw = (gs_pica.f[93].xxxx).zw;
vtx_regs[4] = tmp_reg6;
vtx_regs[1] = tmp_reg3;
vtx_regs[2] = tmp_reg4;
vtx_regs[3] = tmp_reg5;
vtx_regs[5] = tmp_reg7;
vtx_regs[6] = tmp_reg8;
SetEmit(1, false, false);
Emit();
tmp_reg2 = vs_out_reg5[0];
vtx_regs[0] = tmp_reg2;
tmp_reg6.xy = (vs_out_reg2[0].xyyy + tmp_reg11).xy;
tmp_reg6.zw = (gs_pica.f[93].xxxx).zw;
vtx_regs[4] = tmp_reg6;
vtx_regs[1] = tmp_reg3;
vtx_regs[2] = tmp_reg4;
vtx_regs[3] = tmp_reg5;
vtx_regs[5] = tmp_reg7;
vtx_regs[6] = tmp_reg8;
SetEmit(2, true, false);
Emit();
tmp_reg2 = vs_out_reg6[0];
vtx_regs[0] = tmp_reg2;
tmp_reg6.xy = (vs_out_reg2[0].xyyy + tmp_reg12).xy;
tmp_reg6.zw = (gs_pica.f[93].xxxx).zw;
vtx_regs[4] = tmp_reg6;
vtx_regs[1] = tmp_reg3;
vtx_regs[2] = tmp_reg4;
vtx_regs[3] = tmp_reg5;
vtx_regs[5] = tmp_reg7;
vtx_regs[6] = tmp_reg8;
SetEmit(0, true, true);
Emit();
}
return true;
}