#version 120 #extension GL_ARB_draw_instanced : enable #extension GL_ARB_shader_bit_encoding : enable #extension GL_ARB_uniform_buffer_object : enable uniform vec4 vs_c[256]; ivec4 A0; attribute vec4 vs_in0; attribute vec4 vs_in1; attribute vec4 vs_in2; attribute vec4 vs_in3; attribute vec4 vs_in4; attribute vec4 vs_in5; attribute vec4 vs_in6; uniform vec4 posFixup; void order_ps_input(in vec4[12]); vec4 vs_out[12]; vec4 R0; vec4 R1; vec4 R2; vec4 R3; vec4 R4; vec4 tmp0; vec4 tmp1; void main() { vs_out[5].xy = (vs_c[254].xx * vs_in6.xy); R0.xyz = ((vs_c[21].xxx * vs_in1.xyz) + vs_c[21].yyy); R1.xyzw = ((vs_in5.xyzw * vs_c[0].xxxx) + vs_c[0].yyyy); R2.xyzw = (fract(R1.xyzw)); R1.xyzw = (R1.xyzw + -R2.xyzw); R1.xyzw = (R1.xyzw * vs_c[0].zzzz); A0.xyzw = (ivec4(floor(abs(R1.xyzw) + vec4(0.5)) * sign(R1.xyzw))); R1.xyzw = (vs_in4.yyyy * vs_c[A0.y + 85].xyzw); R1.xyzw = ((vs_c[A0.x + 85].xyzw * vs_in4.xxxx) + R1.xyzw); R1.xyzw = ((vs_c[A0.z + 85].xyzw * vs_in4.zzzz) + R1.xyzw); R1.xyzw = ((vs_c[A0.w + 85].xyzw * vs_in4.wwww) + R1.xyzw); vs_out[1].x = (dot(R1.xyz, R0.xyz)); R2.xyzw = (vs_in4.yyyy * vs_c[A0.y + 86].xyzw); R2.xyzw = ((vs_c[A0.x + 86].xyzw * vs_in4.xxxx) + R2.xyzw); R2.xyzw = ((vs_c[A0.z + 86].xyzw * vs_in4.zzzz) + R2.xyzw); R2.xyzw = ((vs_c[A0.w + 86].xyzw * vs_in4.wwww) + R2.xyzw); vs_out[1].y = (dot(R2.xyz, R0.xyz)); R3.xyzw = (vs_in4.yyyy * vs_c[A0.y + 87].xyzw); R3.xyzw = ((vs_c[A0.x + 87].xyzw * vs_in4.xxxx) + R3.xyzw); R3.xyzw = ((vs_c[A0.z + 87].xyzw * vs_in4.zzzz) + R3.xyzw); R3.xyzw = ((vs_c[A0.w + 87].xyzw * vs_in4.wwww) + R3.xyzw); vs_out[1].z = (dot(R3.xyz, R0.xyz)); R0.xyz = ((vs_c[21].xxx * vs_in2.xyz) + vs_c[21].yyy); vs_out[2].x = (dot(R1.xyz, R0.xyz)); vs_out[2].y = (dot(R2.xyz, R0.xyz)); vs_out[2].z = (dot(R3.xyz, R0.xyz)); R0.xyz = ((vs_c[21].xxx * vs_in3.xyz) + vs_c[21].yyy); vs_out[3].x = (dot(R1.xyz, R0.xyz)); vs_out[3].y = (dot(R2.xyz, R0.xyz)); vs_out[3].z = (dot(R3.xyz, R0.xyz)); R0.xyzw = (vs_in4.yyyy * vs_c[A0.y + 88].xyzw); R0.xyzw = ((vs_c[A0.x + 88].xyzw * vs_in4.xxxx) + R0.xyzw); R0.xyzw = ((vs_c[A0.z + 88].xyzw * vs_in4.zzzz) + R0.xyzw); vs_out[4].xyzw = ((vs_c[A0.w + 88].xyzw * vs_in4.wwww) + R0.xyzw); R0.xyzw = ((vs_in0.xyzx * vs_c[1].xxxy) + vs_c[1].yyyx); R2.y = (dot(R2.xyzw, R0.xyzw)); R4.xyzw = (R2.yyyy * vs_c[13].xyzw); R2.x = (dot(R1.xyzw, R0.xyzw)); R2.z = (dot(R3.xyzw, R0.xyzw)); R0.xyzw = ((R2.xxxx * vs_c[12].xyzw) + R4.xyzw); R0.xyzw = ((R2.zzzz * vs_c[14].xyzw) + R0.xyzw); vs_out[0].xyzw = (R0.xyzw + vs_c[15].xyzw); R0.xyz = (-R2.xyz + vs_c[24].xyz); R0.x = (dot(R0.xyz, R0.xyz)); R0.x = (inversesqrt(abs(R0.x))); R0.x = (1.0 / R0.x); vs_out[6].w = ((R0.x * vs_c[22].y) + vs_c[22].x); R0.xyzw = (R2.yyyy * vs_c[82].xyzw); vs_out[6].xyz = (R2.xyz); R0.xyzw = ((R2.xxxx * vs_c[81].xyzw) + R0.xyzw); R0.xyzw = ((R2.zzzz * vs_c[83].xyzw) + R0.xyzw); vs_out[7].xyzw = (R0.xyzw + vs_c[84].xyzw); vs_out[5].zw = (vs_c[0].ww); order_ps_input(vs_out); gl_FogFragCoord = gl_Position.z; gl_Position.y = gl_Position.y * posFixup.y; gl_Position.xy += posFixup.zw * gl_Position.ww; gl_Position.z = gl_Position.z * 2.0 - gl_Position.w; } #version 120 varying vec4 ps_link[12]; void order_ps_input(in vec4 vs_out[12]) { gl_Position.xyzw = vs_out[0].xyzw; ps_link[0].xy = vs_out[4].xy; ps_link[1].xy = vs_out[5].xy; ps_link[2].xyz = vs_out[1].xyz; ps_link[3].xyz = vs_out[2].xyz; ps_link[4].xyz = vs_out[3].xyz; ps_link[5].xyzw = vs_out[6].xyzw; ps_link[6].xyzw = vs_out[7].xyzw; ps_link[0].zw = vec2(0.0); ps_link[1].zw = vec2(0.0); ps_link[2].w = 0.0; ps_link[3].w = 0.0; ps_link[4].w = 0.0; }