[require] GLSL >= 1.20 [vertex shader] #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; uniform vec4 posFixup; void order_ps_input(in vec4[12]); vec4 vs_out[12]; vec4 R0; vec4 R1; vec4 R2; vec4 R3; vec4 tmp0; vec4 tmp1; void main() { R0.y = (fract(vs_in3.y)); R0.x = (fract(vs_in3.x)); R0.y = (vs_in3.y + -R0.y); R0.y = (R0.y * vs_c[209].x); A0.w = (int(floor(abs(R0.y) + 0.5) * sign(R0.y))); R0.x = (vs_in3.x + -R0.x); R0.x = (R0.x * vs_c[209].x); A0.z = (int(floor(abs(R0.x) + 0.5) * sign(R0.x))); R0.x = (dot(vs_in0.xyzw, vs_c[A0.w + 4].xyzw)); R0.y = (dot(vs_in0.xyzw, vs_c[A0.w + 5].xyzw)); R0.w = (vs_c[209].y); R0.z = (dot(vs_in0.xyzw, vs_c[A0.w + 6].xyzw)); R1.xyzw = (vs_in4.yyyy * R0.xyzw); R0.x = (dot(vs_in0.xyzw, vs_c[A0.z + 4].xyzw)); R0.y = (dot(vs_in0.xyzw, vs_c[A0.z + 5].xyzw)); R0.z = (dot(vs_in0.xyzw, vs_c[A0.z + 6].xyzw)); R0.w = (vs_c[209].y); R1.xyzw = ((vs_in4.xxxx * R0.xyzw) + R1.xyzw); R0.y = (fract(vs_in3.z)); R0.x = (fract(vs_in3.w)); R0.y = (vs_in3.z + -R0.y); R0.y = (R0.y * vs_c[209].x); A0.y = (int(floor(abs(R0.y) + 0.5) * sign(R0.y))); R0.x = (vs_in3.w + -R0.x); R0.x = (R0.x * vs_c[209].x); A0.x = (int(floor(abs(R0.x) + 0.5) * sign(R0.x))); R0.x = (dot(vs_in0.xyzw, vs_c[A0.y + 4].xyzw)); R0.y = (dot(vs_in0.xyzw, vs_c[A0.y + 5].xyzw)); R0.z = (dot(vs_in0.xyzw, vs_c[A0.y + 6].xyzw)); R0.w = (vs_c[209].y); R1.xyzw = ((vs_in4.zzzz * R0.xyzw) + R1.xyzw); R0.x = (dot(vs_c[A0.x + 4].xyzw, vs_in0.xyzw)); R0.y = (dot(vs_in0.xyzw, vs_c[A0.x + 5].xyzw)); R0.z = (dot(vs_in0.xyzw, vs_c[A0.x + 6].xyzw)); R0.w = (vs_c[209].y); R0.xyzw = ((R0.xyzw * vs_in4.wwww) + R1.xyzw); R1.z = (dot(vs_c[A0.w + 6].xyz, vs_in1.xyz)); R1.x = (dot(vs_c[A0.w + 4].xyz, vs_in1.xyz)); R1.y = (dot(vs_c[A0.w + 5].xyz, vs_in1.xyz)); R2.xyz = (vs_in4.yyy * R1.xyz); R1.z = (dot(vs_c[A0.z + 6].xyz, vs_in1.xyz)); R1.y = (dot(vs_c[A0.z + 5].xyz, vs_in1.xyz)); R1.x = (dot(vs_c[A0.z + 4].xyz, vs_in1.xyz)); R2.xyz = ((vs_in4.xxx * R1.xyz) + R2.xyz); R1.z = (dot(vs_c[A0.y + 6].xyz, vs_in1.xyz)); R1.y = (dot(vs_c[A0.y + 5].xyz, vs_in1.xyz)); R1.x = (dot(vs_c[A0.y + 4].xyz, vs_in1.xyz)); R2.xyz = ((vs_in4.zzz * R1.xyz) + R2.xyz); R1.z = (dot(vs_c[A0.x + 6].xyz, vs_in1.xyz)); R1.y = (dot(vs_c[A0.x + 5].xyz, vs_in1.xyz)); R1.x = (dot(vs_c[A0.x + 4].xyz, vs_in1.xyz)); R2.xyz = ((vs_in4.www * R1.xyz) + R2.xyz); R1.xyz = ((-R0.xyz * vs_c[207].www) + vs_c[207].xyz); R2.w = (dot(R2.xyz, R2.xyz)); R1.w = (dot(R1.xyz, R1.xyz)); R2.w = (inversesqrt(abs(R2.w))); R1.w = (inversesqrt(abs(R1.w))); R2.xyz = (R2.www * R2.xyz); R1.xyz = (R1.www * R1.xyz); R1.x = (dot(R1.xyz, R2.xyz)); R1.x = (min(R1.x, vs_c[209].y)); R1.x = (max(R1.x, vs_c[209].z)); R1.xyz = (R1.xxx * vs_c[208].xyz); R3.xyz = (R1.xyz * vs_c[205].xyz); R1.xyz = (vs_c[204].xyz); R1.xyz = ((vs_c[205].xyz * R1.xyz) + R3.xyz); R1.xyz = (R1.xyz + vs_c[206].xyz); R1.xyz = (min(R1.xyz, vs_c[209].yyy)); vs_out[8].xyz = (max(R1.xyz, vs_c[209].zzz)); R1.z = (dot(R2.xyz, vs_c[202].xyz)); R1.x = (dot(R2.xyz, vs_c[200].xyz)); R1.y = (dot(R2.xyz, vs_c[201].xyz)); vs_out[1].z = (dot(R1.xyz, vs_c[2].xyz)); vs_out[1].y = (dot(R1.xyz, vs_c[1].xyz)); vs_out[1].x = (dot(R1.xyz, vs_c[0].xyz)); vs_out[10].w = (dot(R0.xyzw, vs_c[199].xyzw)); vs_out[10].z = (dot(R0.xyzw, vs_c[198].xyzw)); vs_out[10].y = (dot(R0.xyzw, vs_c[197].xyzw)); vs_out[10].x = (dot(R0.xyzw, vs_c[196].xyzw)); vs_out[0].xy = (vs_in2.xy); vs_out[8].w = (vs_c[209].y); order_ps_input(vs_out); gl_FogFragCoord = gl_Position.z; gl_ClipVertex = gl_Position; 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; } void order_ps_input(in vec4 vs_out[12]) { gl_TexCoord[0].xy = vs_out[0].xy; gl_TexCoord[1].xyz = vs_out[1].xyz; gl_FrontColor.xyzw = vs_out[8].xyzw; gl_Position.xyzw = vs_out[10].xyzw; } [fragment shader] #version 120 vec4 tmp0, tmp1; vec4 ret; vec4 arg0, arg1, arg2; uniform sampler2D ps_sampler0; vec4 tex0; uniform samplerCube ps_sampler1; vec4 tex1; uniform vec4 specular_enable; uniform struct { vec4 color; float density; float end; float scale; } ffp_fog; void main() { tex0 = texture2D(ps_sampler0, gl_TexCoord[0].xy); tex1 = textureCube(ps_sampler1, gl_TexCoord[1].xyz); ret = tex0 * gl_Color; ret.xyz = clamp(tex1.xyz + ret.xyz, 0.0, 1.0); ret.w = tex1.w * ret.w; gl_FragData[0] = gl_SecondaryColor * specular_enable + ret; float fog = (ffp_fog.end - gl_FogFragCoord) * ffp_fog.scale; gl_FragData[0].xyz = mix(ffp_fog.color.xyz, gl_FragData[0].xyz, clamp(fog, 0.0, 1.0)); } [test] uniform int ps_sampler0 0 uniform int ps_sampler1 1 draw rect -1 -1 2 2