Registering codec ogg. Registering codec ffmpeg as universal. In path /usr/games/bin Vega Strike See http://www.gnu.org/copyleft/gpl.html for license details. Using .vegastrike as the home directory Found MODDIR = /usr/share/games/vegastrike/data/mods DATADIR - Found a datadir in config, using : /usr/share/games/vegastrike/data SIMULATION_ATOM: 0.05 ['/usr/lib64/python26.zip', '/usr/lib64/python2.6', '/usr/lib64/python2.6/plat-linux2', '/usr/lib64/python2.6/lib-tk', '/usr/lib64/python2.6/lib-old', '/usr/lib64/python2.6/lib-dynload', '/usr/lib64/python2.6/site-packages', '/usr/lib64/python2.6/site-packages/gtk-2.0', '/usr/lib64/portage/pym'] ['/usr/share/games/vegastrike/data/modules/builtin', '/usr/share/games/vegastrike/data/modules/quests', '/usr/share/games/vegastrike/data/modules/missions', '/usr/share/games/vegastrike/data/modules/ai', '/usr/share/games/vegastrike/data/modules', '/usr/share/games/vegastrike/data/bases'] Creating scene manager... Creating template manager... GLSL source for shader 2: uniform int light_enabled[gl_MaxLights]; uniform int max_light_enabled; uniform vec4 detail0Plane; uniform vec4 detail1Plane; vec2 EnvMapGen(vec3 f) { float fzp1=f.z+1.0; float m=2.0*sqrt(f.x*f.x+f.y*f.y+(fzp1)*(fzp1)); return vec2(f.x/m+.5,f.y/m+.5); } void main() { vec4 position=gl_ModelViewMatrix*gl_Vertex; vec3 eyetopos=normalize(position.xyz/position.w);//find the direction from eye to object vec3 normal = normalize(gl_NormalMatrix * gl_Normal);//normalize the normal in world space gl_TexCoord[1].xy=EnvMapGen(reflect(-eyetopos,normal)); gl_TexCoord[1].zw=vec2(0); gl_TexCoord[0]=gl_MultiTexCoord0; //gl_TexCoord[7]=gl_MultiTexCoord0*detail0Plane;//detail texture ///set primary color to the front light[0] ambient and light model ambient + emissive material properties vec4 pc=gl_FrontLightProduct[0].ambient+gl_FrontLightModelProduct.sceneColor; vec4 sc=vec4(0); for (int li=0;li<5;++li) {//computed in engine if (light_enabled[li]!=0&&li<=max_light_enabled) {//only compute for enabled lights //do per vertex lighting for lights 1,2,3,4,5,6,7+ vec3 lightvec=gl_LightSource[li].position.xyz*position.w-position.xyz*gl_LightSource[li].position.w; float dist=length(lightvec); vec4 att = 1.0 / (gl_LightSource[li].constantAttenuation + gl_LightSource[li].linearAttenuation * vec4(dist) + gl_LightSource[li].quadraticAttenuation * vec4(dist * dist)); lightvec=lightvec/dist; vec3 halfangle=lightvec-eyetopos; halfangle=halfangle/length(halfangle); pc+=att*(gl_FrontMaterial.emission+gl_FrontMaterial.ambient*(gl_LightSource[li].ambient) + max(dot(normal,lightvec),0.0)*gl_LightSource[li].diffuse*gl_FrontMaterial.diffuse); sc+=att*gl_FrontMaterial.specular*gl_LightSource[li].specular*pow(max(dot(normal,halfangle),0.0),gl_FrontMaterial.shininess); } } //FIXME this may be better served as an ftransform--but I figure this will get more opts in the future gl_Position=gl_ModelViewProjectionMatrix*gl_Vertex; gl_FrontColor=gl_BackColor=pc; gl_FrontSecondaryColor=sc; } GLSL IR for shader 2: ( (declare (uniform ) vec4 detail1Plane@0x32a3400) (declare (uniform ) vec4 detail0Plane@0x32a3580) (declare (uniform ) int max_light_enabled@0x32a3700) (declare (uniform ) (array int 8) light_enabled@0x32a3880) (declare (out ) vec4 gl_Position@0x3176670) (declare (out ) float gl_PointSize@0x3176880) (declare (in ) vec4 gl_Vertex@0x3176ab0) (declare (in ) vec3 gl_Normal@0x3162420) (declare (in ) vec4 gl_Color@0x3162650) (declare (in ) vec4 gl_SecondaryColor@0x3177220) (declare (in ) vec4 gl_MultiTexCoord0@0x31773b0) (declare (in ) vec4 gl_MultiTexCoord1@0x31775a0) (declare (in ) vec4 gl_MultiTexCoord2@0x31777d0) (declare (in ) vec4 gl_MultiTexCoord3@0x3177a00) (declare (in ) vec4 gl_MultiTexCoord4@0x3177c30) (declare (in ) vec4 gl_MultiTexCoord5@0x3177e60) (declare (in ) vec4 gl_MultiTexCoord6@0x3178090) (declare (in ) vec4 gl_MultiTexCoord7@0x31782c0) (declare (in ) float gl_FogCoord@0x31784f0) (declare (out ) vec4 gl_ClipVertex@0x3178720) (declare (out ) vec4 gl_FrontColor@0x3178950) (declare (out ) vec4 gl_BackColor@0x3178b80) (declare (out ) vec4 gl_FrontSecondaryColor@0x3178db0) (declare (out ) vec4 gl_BackSecondaryColor@0x3178fe0) (declare (out ) float gl_FogFragCoord@0x3179210) (declare (uniform ) mat4 gl_ModelViewMatrix@0x3179440) (declare (uniform ) mat4 gl_ProjectionMatrix@0x3179670) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x31798a0) (declare (uniform ) mat3 gl_NormalMatrix@0x3179af0) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0x3179d20) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0x3179f70) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0x317a1c0) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0x317a410) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0x317a660) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0x317a8b0) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0x317ab00) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0x317ad50) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0x317afa0) (declare (uniform ) float gl_NormalScale@0x317b210) (declare (uniform ) gl_LightModelParameters gl_LightModel@0x317b440) (declare () int gl_MaxLights@0x317b670) (declare () int gl_MaxClipPlanes@0x317b980) (declare () int gl_MaxTextureUnits@0x317bc90) (declare () int gl_MaxTextureCoords@0x317bfa0) (declare () int gl_MaxVertexAttribs@0x317c2b0) (declare () int gl_MaxVertexUniformComponents@0x317c5c0) (declare () int gl_MaxVaryingFloats@0x317c8f0) (declare () int gl_MaxVertexTextureImageUnits@0x317cc00) (declare () int gl_MaxCombinedTextureImageUnits@0x317cf30) (declare () int gl_MaxTextureImageUnits@0x317d260) (declare () int gl_MaxFragmentUniformComponents@0x317d570) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0x317de20) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0x317e030) (declare (uniform ) (array vec4 6) gl_ClipPlane@0x317e3f0) (declare (uniform ) gl_PointParameters gl_Point@0x317e620) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x317e850) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0x317ea80) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x317ee50) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x317f080) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0x317f2d0) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0x317f6c0) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0x317f8f0) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0x317fcb0) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0x317fee0) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0x3180110) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0x3180340) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0x3180570) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0x31807a0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0x31809d0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0x3180c00) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0x3180e30) (declare (uniform ) gl_FogParameters gl_Fog@0x3181060) (declare (out ) (array vec4 0) gl_TexCoord@0x3181410) (declare () int gl_MaxDrawBuffers@0x3181640) (function EnvMapGen (signature vec2 (parameters (declare (in ) vec3 f@0x32a3280) ) ( (declare (temporary ) float assignment_tmp@0x32a2c80) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x32a2c80) (expression float + (swiz z (var_ref f@0x32a3280) )(constant float (1.000000)) ) ) (declare (temporary ) float sqrt_retval@0x32a1d80) (assign (constant bool (1)) (x) (var_ref sqrt_retval@0x32a1d80) (call sqrt ((expression float + (expression float + (expression float * (swiz x (var_ref f@0x32a3280) )(swiz x (var_ref f@0x32a3280) )) (expression float * (swiz y (var_ref f@0x32a3280) )(swiz y (var_ref f@0x32a3280) )) ) (expression float * (var_ref assignment_tmp@0x32a2c80) (var_ref assignment_tmp@0x32a2c80) ) ) )) ) (declare (temporary ) float assignment_tmp@0x32a1900) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x32a1900) (expression float * (constant float (2.000000)) (var_ref sqrt_retval@0x32a1d80) ) ) (declare (temporary ) vec2 vec_ctor@0x32a0e80) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x32a0e80) (swiz xx (expression float + (expression float / (swiz x (var_ref f@0x32a3280) )(var_ref assignment_tmp@0x32a1900) ) (constant float (0.500000)) ) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x32a0e80) (swiz xx (expression float + (expression float / (swiz y (var_ref f@0x32a3280) )(var_ref assignment_tmp@0x32a1900) ) (constant float (0.500000)) ) )) (return (var_ref vec_ctor@0x32a0e80) ) )) ) (function main (signature void (parameters ) ( (declare () int li@0x329bf40) (declare () vec4 sc@0x329c790) (declare () vec4 pc@0x329cf10) (declare () vec3 normal@0x329f4c0) (declare () vec3 eyetopos@0x32a0100) (declare () vec4 position@0x32a0880) (declare (temporary ) vec4 assignment_tmp@0x32a0580) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x32a0580) (expression vec4 * (var_ref gl_ModelViewMatrix@0x3179440) (var_ref gl_Vertex@0x3176ab0) ) ) (assign (constant bool (1)) (xyzw) (var_ref position@0x32a0880) (var_ref assignment_tmp@0x32a0580) ) (declare (temporary ) vec3 normalize_retval@0x329fc70) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x329fc70) (call normalize ((expression vec3 / (swiz xyz (var_ref assignment_tmp@0x32a0580) )(swiz w (var_ref assignment_tmp@0x32a0580) )) )) ) (assign (constant bool (1)) (xyz) (var_ref eyetopos@0x32a0100) (var_ref normalize_retval@0x329fc70) ) (declare (temporary ) vec3 normalize_retval@0x329f040) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x329f040) (call normalize ((expression vec3 * (var_ref gl_NormalMatrix@0x3179af0) (var_ref gl_Normal@0x3162420) ) )) ) (assign (constant bool (1)) (xyz) (var_ref normal@0x329f4c0) (var_ref normalize_retval@0x329f040) ) (declare (temporary ) vec3 reflect_retval@0x329e590) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x329e590) (call reflect ((expression vec3 neg (var_ref eyetopos@0x32a0100) ) (var_ref normalize_retval@0x329f040) )) ) (declare (temporary ) vec2 EnvMapGen_retval@0x329e110) (assign (constant bool (1)) (xy) (var_ref EnvMapGen_retval@0x329e110) (call EnvMapGen ((var_ref reflect_retval@0x329e590) )) ) (assign (constant bool (1)) (xy) (array_ref (var_ref gl_TexCoord@0x3181410) (constant int (1)) ) (var_ref EnvMapGen_retval@0x329e110) ) (assign (constant bool (1)) (zw) (array_ref (var_ref gl_TexCoord@0x3181410) (constant int (1)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x3181410) (constant int (0)) ) (var_ref gl_MultiTexCoord0@0x31773b0) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x329cf10) (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x317f6c0) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontLightModelProduct@0x317f080) sceneColor) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x329c790) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (x) (var_ref li@0x329bf40) (constant int (0)) ) (declare (temporary ) bool and_tmp@0x32868e0) (if (expression bool != (array_ref (var_ref light_enabled@0x32a3880) (constant int (0)) ) (constant int (0)) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x32868e0) (expression bool <= (constant int (0)) (var_ref max_light_enabled@0x32a3700) ) ) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x32868e0) (constant bool (0)) ) )) (if (var_ref and_tmp@0x32868e0) ( (declare () vec3 halfangle@0x3285fc0) (declare () vec4 att@0x3285d70) (declare () vec3 lightvec@0x3285970) (declare (temporary ) vec3 assignment_tmp@0x32857c0) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x32857c0) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (constant int (0)) ) position) )(swiz w (var_ref position@0x32a0880) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref position@0x32a0880) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (constant int (0)) ) position) )) ) ) ) (assign (constant bool (1)) (xyz) (var_ref lightvec@0x3285970) (var_ref assignment_tmp@0x32857c0) ) (declare (temporary ) float length_retval@0x3284830) (assign (constant bool (1)) (x) (var_ref length_retval@0x3284830) (call length ((var_ref assignment_tmp@0x32857c0) )) ) (assign (constant bool (1)) (xyzw) (var_ref att@0x3285d70) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) linearAttenuation) (swiz xxxx (var_ref length_retval@0x3284830) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref length_retval@0x3284830) (var_ref length_retval@0x3284830) ) )) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x3282b50) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x3282b50) (expression vec3 / (var_ref lightvec@0x3285970) (var_ref length_retval@0x3284830) ) ) (assign (constant bool (1)) (xyz) (var_ref lightvec@0x3285970) (var_ref assignment_tmp@0x3282b50) ) (declare (temporary ) vec3 assignment_tmp@0x3282180) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x3282180) (expression vec3 + (var_ref assignment_tmp@0x3282b50) (expression vec3 neg (var_ref eyetopos@0x32a0100) ) ) ) (assign (constant bool (1)) (xyz) (var_ref halfangle@0x3285fc0) (var_ref assignment_tmp@0x3282180) ) (declare (temporary ) float length_retval@0x3281830) (assign (constant bool (1)) (x) (var_ref length_retval@0x3281830) (call length ((var_ref assignment_tmp@0x3282180) )) ) (assign (constant bool (1)) (xyz) (var_ref halfangle@0x3285fc0) (expression vec3 / (var_ref halfangle@0x3285fc0) (var_ref length_retval@0x3281830) ) ) (declare (temporary ) float dot_retval@0x3280bc0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x3280bc0) (call dot ((var_ref normal@0x329f4c0) (var_ref lightvec@0x3285970) )) ) (declare (temporary ) float max_retval@0x3280670) (assign (constant bool (1)) (x) (var_ref max_retval@0x3280670) (call max ((var_ref dot_retval@0x3280bc0) (constant float (0.000000)) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x329cf10) (expression vec4 + (var_ref pc@0x329cf10) (expression vec4 * (var_ref att@0x3285d70) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x317e850) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x317e850) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) ambient) ) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x3280670) (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x317e850) diffuse) ) ) ) ) ) (declare (temporary ) float dot_retval@0x327eae0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x327eae0) (call dot ((var_ref normal@0x329f4c0) (var_ref halfangle@0x3285fc0) )) ) (declare (temporary ) float max_retval@0x327e590) (assign (constant bool (1)) (x) (var_ref max_retval@0x327e590) (call max ((var_ref dot_retval@0x327eae0) (constant float (0.000000)) )) ) (declare (temporary ) float pow_retval@0x327e040) (assign (constant bool (1)) (x) (var_ref pow_retval@0x327e040) (call pow ((var_ref max_retval@0x327e590) (record_ref (var_ref gl_FrontMaterial@0x317e850) shininess) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x329c790) (expression vec4 + (var_ref sc@0x329c790) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x3285d70) (record_ref (var_ref gl_FrontMaterial@0x317e850) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) specular) ) (var_ref pow_retval@0x327e040) ) ) ) ) ()) (assign (constant bool (1)) (x) (var_ref li@0x329bf40) (expression int + (var_ref li@0x329bf40) (constant int (1)) ) ) (declare (temporary ) bool and_tmp@0x327bd90) (if (expression bool != (array_ref (var_ref light_enabled@0x32a3880) (var_ref li@0x329bf40) ) (constant int (0)) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x327bd90) (expression bool <= (var_ref li@0x329bf40) (var_ref max_light_enabled@0x32a3700) ) ) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x327bd90) (constant bool (0)) ) )) (if (var_ref and_tmp@0x327bd90) ( (declare () vec3 halfangle@0x327b470) (declare () vec4 att@0x327b1f0) (declare () vec3 lightvec@0x327ac30) (declare (temporary ) vec3 assignment_tmp@0x327aab0) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x327aab0) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) position) )(swiz w (var_ref position@0x32a0880) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref position@0x32a0880) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) position) )) ) ) ) (assign (constant bool (1)) (xyz) (var_ref lightvec@0x327ac30) (var_ref assignment_tmp@0x327aab0) ) (declare (temporary ) float length_retval@0x32799b0) (assign (constant bool (1)) (x) (var_ref length_retval@0x32799b0) (call length ((var_ref assignment_tmp@0x327aab0) )) ) (assign (constant bool (1)) (xyzw) (var_ref att@0x327b1f0) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) linearAttenuation) (swiz xxxx (var_ref length_retval@0x32799b0) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref length_retval@0x32799b0) (var_ref length_retval@0x32799b0) ) )) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x3277d40) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x3277d40) (expression vec3 / (var_ref lightvec@0x327ac30) (var_ref length_retval@0x32799b0) ) ) (assign (constant bool (1)) (xyz) (var_ref lightvec@0x327ac30) (var_ref assignment_tmp@0x3277d40) ) (declare (temporary ) vec3 assignment_tmp@0x3277670) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x3277670) (expression vec3 + (var_ref assignment_tmp@0x3277d40) (expression vec3 neg (var_ref eyetopos@0x32a0100) ) ) ) (assign (constant bool (1)) (xyz) (var_ref halfangle@0x327b470) (var_ref assignment_tmp@0x3277670) ) (declare (temporary ) float length_retval@0x3276c80) (assign (constant bool (1)) (x) (var_ref length_retval@0x3276c80) (call length ((var_ref assignment_tmp@0x3277670) )) ) (assign (constant bool (1)) (xyz) (var_ref halfangle@0x327b470) (expression vec3 / (var_ref halfangle@0x327b470) (var_ref length_retval@0x3276c80) ) ) (declare (temporary ) float dot_retval@0x3275ea0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x3275ea0) (call dot ((var_ref normal@0x329f4c0) (var_ref lightvec@0x327ac30) )) ) (declare (temporary ) float max_retval@0x3275950) (assign (constant bool (1)) (x) (var_ref max_retval@0x3275950) (call max ((var_ref dot_retval@0x3275ea0) (constant float (0.000000)) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x329cf10) (expression vec4 + (var_ref pc@0x329cf10) (expression vec4 * (var_ref att@0x327b1f0) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x317e850) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x317e850) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) ambient) ) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x3275950) (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x317e850) diffuse) ) ) ) ) ) (declare (temporary ) float dot_retval@0x32740e0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x32740e0) (call dot ((var_ref normal@0x329f4c0) (var_ref halfangle@0x327b470) )) ) (declare (temporary ) float max_retval@0x3273b90) (assign (constant bool (1)) (x) (var_ref max_retval@0x3273b90) (call max ((var_ref dot_retval@0x32740e0) (constant float (0.000000)) )) ) (declare (temporary ) float pow_retval@0x3273640) (assign (constant bool (1)) (x) (var_ref pow_retval@0x3273640) (call pow ((var_ref max_retval@0x3273b90) (record_ref (var_ref gl_FrontMaterial@0x317e850) shininess) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x329c790) (expression vec4 + (var_ref sc@0x329c790) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x327b1f0) (record_ref (var_ref gl_FrontMaterial@0x317e850) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) specular) ) (var_ref pow_retval@0x3273640) ) ) ) ) ()) (assign (constant bool (1)) (x) (var_ref li@0x329bf40) (expression int + (var_ref li@0x329bf40) (constant int (1)) ) ) (declare (temporary ) bool and_tmp@0x3271e70) (if (expression bool != (array_ref (var_ref light_enabled@0x32a3880) (var_ref li@0x329bf40) ) (constant int (0)) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x3271e70) (expression bool <= (var_ref li@0x329bf40) (var_ref max_light_enabled@0x32a3700) ) ) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x3271e70) (constant bool (0)) ) )) (if (var_ref and_tmp@0x3271e70) ( (declare () vec3 halfangle@0x3271550) (declare () vec4 att@0x32713d0) (declare () vec3 lightvec@0x3271000) (declare (temporary ) vec3 assignment_tmp@0x3270e80) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x3270e80) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) position) )(swiz w (var_ref position@0x32a0880) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref position@0x32a0880) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) position) )) ) ) ) (assign (constant bool (1)) (xyz) (var_ref lightvec@0x3271000) (var_ref assignment_tmp@0x3270e80) ) (declare (temporary ) float length_retval@0x32700f0) (assign (constant bool (1)) (x) (var_ref length_retval@0x32700f0) (call length ((var_ref assignment_tmp@0x3270e80) )) ) (assign (constant bool (1)) (xyzw) (var_ref att@0x32713d0) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) linearAttenuation) (swiz xxxx (var_ref length_retval@0x32700f0) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref length_retval@0x32700f0) (var_ref length_retval@0x32700f0) ) )) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x326e480) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x326e480) (expression vec3 / (var_ref lightvec@0x3271000) (var_ref length_retval@0x32700f0) ) ) (assign (constant bool (1)) (xyz) (var_ref lightvec@0x3271000) (var_ref assignment_tmp@0x326e480) ) (declare (temporary ) vec3 assignment_tmp@0x326dac0) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x326dac0) (expression vec3 + (var_ref assignment_tmp@0x326e480) (expression vec3 neg (var_ref eyetopos@0x32a0100) ) ) ) (assign (constant bool (1)) (xyz) (var_ref halfangle@0x3271550) (var_ref assignment_tmp@0x326dac0) ) (declare (temporary ) float length_retval@0x326d0d0) (assign (constant bool (1)) (x) (var_ref length_retval@0x326d0d0) (call length ((var_ref assignment_tmp@0x326dac0) )) ) (assign (constant bool (1)) (xyz) (var_ref halfangle@0x3271550) (expression vec3 / (var_ref halfangle@0x3271550) (var_ref length_retval@0x326d0d0) ) ) (declare (temporary ) float dot_retval@0x326c530) (assign (constant bool (1)) (x) (var_ref dot_retval@0x326c530) (call dot ((var_ref normal@0x329f4c0) (var_ref lightvec@0x3271000) )) ) (declare (temporary ) float max_retval@0x326bdf0) (assign (constant bool (1)) (x) (var_ref max_retval@0x326bdf0) (call max ((var_ref dot_retval@0x326c530) (constant float (0.000000)) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x329cf10) (expression vec4 + (var_ref pc@0x329cf10) (expression vec4 * (var_ref att@0x32713d0) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x317e850) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x317e850) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) ambient) ) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x326bdf0) (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x317e850) diffuse) ) ) ) ) ) (declare (temporary ) float dot_retval@0x326a6b0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x326a6b0) (call dot ((var_ref normal@0x329f4c0) (var_ref halfangle@0x3271550) )) ) (declare (temporary ) float max_retval@0x3269dd0) (assign (constant bool (1)) (x) (var_ref max_retval@0x3269dd0) (call max ((var_ref dot_retval@0x326a6b0) (constant float (0.000000)) )) ) (declare (temporary ) float pow_retval@0x32694c0) (assign (constant bool (1)) (x) (var_ref pow_retval@0x32694c0) (call pow ((var_ref max_retval@0x3269dd0) (record_ref (var_ref gl_FrontMaterial@0x317e850) shininess) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x329c790) (expression vec4 + (var_ref sc@0x329c790) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x32713d0) (record_ref (var_ref gl_FrontMaterial@0x317e850) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) specular) ) (var_ref pow_retval@0x32694c0) ) ) ) ) ()) (assign (constant bool (1)) (x) (var_ref li@0x329bf40) (expression int + (var_ref li@0x329bf40) (constant int (1)) ) ) (declare (temporary ) bool and_tmp@0x32672a0) (if (expression bool != (array_ref (var_ref light_enabled@0x32a3880) (var_ref li@0x329bf40) ) (constant int (0)) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x32672a0) (expression bool <= (var_ref li@0x329bf40) (var_ref max_light_enabled@0x32a3700) ) ) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x32672a0) (constant bool (0)) ) )) (if (var_ref and_tmp@0x32672a0) ( (declare () vec3 halfangle@0x32664f0) (declare () vec4 att@0x3266270) (declare () vec3 lightvec@0x3265bd0) (declare (temporary ) vec3 assignment_tmp@0x3265980) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x3265980) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) position) )(swiz w (var_ref position@0x32a0880) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref position@0x32a0880) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) position) )) ) ) ) (assign (constant bool (1)) (xyz) (var_ref lightvec@0x3265bd0) (var_ref assignment_tmp@0x3265980) ) (declare (temporary ) float length_retval@0x3264510) (assign (constant bool (1)) (x) (var_ref length_retval@0x3264510) (call length ((var_ref assignment_tmp@0x3265980) )) ) (assign (constant bool (1)) (xyzw) (var_ref att@0x3266270) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) linearAttenuation) (swiz xxxx (var_ref length_retval@0x3264510) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref length_retval@0x3264510) (var_ref length_retval@0x3264510) ) )) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x3262020) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x3262020) (expression vec3 / (var_ref lightvec@0x3265bd0) (var_ref length_retval@0x3264510) ) ) (assign (constant bool (1)) (xyz) (var_ref lightvec@0x3265bd0) (var_ref assignment_tmp@0x3262020) ) (declare (temporary ) vec3 assignment_tmp@0x3261820) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x3261820) (expression vec3 + (var_ref assignment_tmp@0x3262020) (expression vec3 neg (var_ref eyetopos@0x32a0100) ) ) ) (assign (constant bool (1)) (xyz) (var_ref halfangle@0x32664f0) (var_ref assignment_tmp@0x3261820) ) (declare (temporary ) float length_retval@0x3260a20) (assign (constant bool (1)) (x) (var_ref length_retval@0x3260a20) (call length ((var_ref assignment_tmp@0x3261820) )) ) (assign (constant bool (1)) (xyz) (var_ref halfangle@0x32664f0) (expression vec3 / (var_ref halfangle@0x32664f0) (var_ref length_retval@0x3260a20) ) ) (declare (temporary ) float dot_retval@0x325fe10) (assign (constant bool (1)) (x) (var_ref dot_retval@0x325fe10) (call dot ((var_ref normal@0x329f4c0) (var_ref lightvec@0x3265bd0) )) ) (declare (temporary ) float max_retval@0x325f560) (assign (constant bool (1)) (x) (var_ref max_retval@0x325f560) (call max ((var_ref dot_retval@0x325fe10) (constant float (0.000000)) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x329cf10) (expression vec4 + (var_ref pc@0x329cf10) (expression vec4 * (var_ref att@0x3266270) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x317e850) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x317e850) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) ambient) ) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x325f560) (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x317e850) diffuse) ) ) ) ) ) (declare (temporary ) float dot_retval@0x325d340) (assign (constant bool (1)) (x) (var_ref dot_retval@0x325d340) (call dot ((var_ref normal@0x329f4c0) (var_ref halfangle@0x32664f0) )) ) (declare (temporary ) float max_retval@0x325ca30) (assign (constant bool (1)) (x) (var_ref max_retval@0x325ca30) (call max ((var_ref dot_retval@0x325d340) (constant float (0.000000)) )) ) (declare (temporary ) float pow_retval@0x325c2a0) (assign (constant bool (1)) (x) (var_ref pow_retval@0x325c2a0) (call pow ((var_ref max_retval@0x325ca30) (record_ref (var_ref gl_FrontMaterial@0x317e850) shininess) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x329c790) (expression vec4 + (var_ref sc@0x329c790) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x3266270) (record_ref (var_ref gl_FrontMaterial@0x317e850) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) specular) ) (var_ref pow_retval@0x325c2a0) ) ) ) ) ()) (assign (constant bool (1)) (x) (var_ref li@0x329bf40) (expression int + (var_ref li@0x329bf40) (constant int (1)) ) ) (declare (temporary ) bool and_tmp@0x32a6280) (if (expression bool != (array_ref (var_ref light_enabled@0x32a3880) (var_ref li@0x329bf40) ) (constant int (0)) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x32a6280) (expression bool <= (var_ref li@0x329bf40) (var_ref max_light_enabled@0x32a3700) ) ) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x32a6280) (constant bool (0)) ) )) (if (var_ref and_tmp@0x32a6280) ( (declare () vec3 halfangle@0x32a6a00) (declare () vec4 att@0x32a6b80) (declare () vec3 lightvec@0x32a6e80) (declare (temporary ) vec3 assignment_tmp@0x32a7180) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x32a7180) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) position) )(swiz w (var_ref position@0x32a0880) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref position@0x32a0880) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) position) )) ) ) ) (assign (constant bool (1)) (xyz) (var_ref lightvec@0x32a6e80) (var_ref assignment_tmp@0x32a7180) ) (declare (temporary ) float length_retval@0x32a7f00) (assign (constant bool (1)) (x) (var_ref length_retval@0x32a7f00) (call length ((var_ref assignment_tmp@0x32a7180) )) ) (assign (constant bool (1)) (xyzw) (var_ref att@0x32a6b80) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) linearAttenuation) (swiz xxxx (var_ref length_retval@0x32a7f00) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref length_retval@0x32a7f00) (var_ref length_retval@0x32a7f00) ) )) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x3327550) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x3327550) (expression vec3 / (var_ref lightvec@0x32a6e80) (var_ref length_retval@0x32a7f00) ) ) (assign (constant bool (1)) (xyz) (var_ref lightvec@0x32a6e80) (var_ref assignment_tmp@0x3327550) ) (declare (temporary ) vec3 assignment_tmp@0x3318a00) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x3318a00) (expression vec3 + (var_ref assignment_tmp@0x3327550) (expression vec3 neg (var_ref eyetopos@0x32a0100) ) ) ) (assign (constant bool (1)) (xyz) (var_ref halfangle@0x32a6a00) (var_ref assignment_tmp@0x3318a00) ) (declare (temporary ) float length_retval@0x3312750) (assign (constant bool (1)) (x) (var_ref length_retval@0x3312750) (call length ((var_ref assignment_tmp@0x3318a00) )) ) (assign (constant bool (1)) (xyz) (var_ref halfangle@0x32a6a00) (expression vec3 / (var_ref halfangle@0x32a6a00) (var_ref length_retval@0x3312750) ) ) (declare (temporary ) float dot_retval@0x33065f0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x33065f0) (call dot ((var_ref normal@0x329f4c0) (var_ref lightvec@0x32a6e80) )) ) (declare (temporary ) float max_retval@0x3302b50) (assign (constant bool (1)) (x) (var_ref max_retval@0x3302b50) (call max ((var_ref dot_retval@0x33065f0) (constant float (0.000000)) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x329cf10) (expression vec4 + (var_ref pc@0x329cf10) (expression vec4 * (var_ref att@0x32a6b80) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x317e850) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x317e850) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) ambient) ) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x3302b50) (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x317e850) diffuse) ) ) ) ) ) (declare (temporary ) float dot_retval@0x32ddcb0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x32ddcb0) (call dot ((var_ref normal@0x329f4c0) (var_ref halfangle@0x32a6a00) )) ) (declare (temporary ) float max_retval@0x32da060) (assign (constant bool (1)) (x) (var_ref max_retval@0x32da060) (call max ((var_ref dot_retval@0x32ddcb0) (constant float (0.000000)) )) ) (declare (temporary ) float pow_retval@0x32d0c90) (assign (constant bool (1)) (x) (var_ref pow_retval@0x32d0c90) (call pow ((var_ref max_retval@0x32da060) (record_ref (var_ref gl_FrontMaterial@0x317e850) shininess) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x329c790) (expression vec4 + (var_ref sc@0x329c790) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x32a6b80) (record_ref (var_ref gl_FrontMaterial@0x317e850) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x317ee50) (var_ref li@0x329bf40) ) specular) ) (var_ref pow_retval@0x32d0c90) ) ) ) ) ()) (assign (constant bool (1)) (x) (var_ref li@0x329bf40) (expression int + (var_ref li@0x329bf40) (constant int (1)) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x3176670) (expression vec4 * (var_ref gl_ModelViewProjectionMatrix@0x31798a0) (var_ref gl_Vertex@0x3176ab0) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_BackColor@0x3178b80) (var_ref pc@0x329cf10) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0x3178950) (var_ref pc@0x329cf10) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontSecondaryColor@0x3178db0) (var_ref sc@0x329c790) ) )) ) ) GLSL source for shader 3: uniform int light_enabled[gl_MaxLights]; uniform int max_light_enabled; uniform sampler2D diffuseMap; uniform sampler2D envMap; uniform sampler2D specMap; uniform sampler2D glowMap; uniform sampler2D normalMap; uniform sampler2D damageMap; uniform sampler2D detail0Map; uniform sampler2D detail1Map; uniform vec4 cloaking; uniform vec4 damage; //varying vec4 gl_FrontColor; vec3 matmul(vec3 tangent, vec3 binormal, vec3 normal,vec3 lightVec) { return vec3(dot(lightVec,tangent),dot(lightVec,binormal),dot(lightVec,normal)); } vec3 imatmul(vec3 tangent, vec3 binormal, vec3 normal,vec3 lightVec) { return lightVec.xxx*tangent+lightVec.yyy*binormal+lightVec.zzz*normal; } vec3 expand(vec3 expandme) { //debug only--if you dont want to use bump mapreturn vec3(0,0,1); return expandme*vec3(2.0)-vec3(1.0); } vec2 EnvMapGen(vec3 f) { float fzp1=f.z+1.0; float m=2.0*sqrt(f.x*f.x+f.y*f.y+(fzp1)*(fzp1)); return vec2(f.x/m+.5,f.y/m+.5); } void main() { //get damaged and undamaged colors vec4 undamagedcolor=texture2D(diffuseMap,gl_TexCoord[0].xy); vec4 damagecolor=texture2D(damageMap,gl_TexCoord[0].xy); //mix the colors based on damage... if you had detail maps, these would go here vec4 diffsurface= mix(undamagedcolor,damagecolor,damage.x); // +texture2D(detail0Map,gl_TexCoord[7].xy);//do not support yet //have a specular surface unless the damage color is quite bright (maybe dark!?) vec4 specsurface=texture2D(specMap,gl_TexCoord[0].xy)*(1.0-damagecolor*damage.x*2.0); //add in lights 0..8 and ambient terms vec4 ambient=gl_Color; //add in the dot of light and normal* diffuse mat*diffuse light //find the color of specularity of this surface... lookup in env map the normal vec4 specularity=gl_SecondaryColor+texture2D(envMap,gl_TexCoord[1].xy); //sum everything up including glow from surface...and if cloaking, fade it out :-) gl_FragColor=(ambient*diffsurface+specularity*specsurface+texture2D(glowMap,gl_TexCoord[0].xy))*cloaking.rrrg; } GLSL IR for shader 3: ( (declare (uniform ) vec4 damage@0x3723930) (declare (uniform ) vec4 cloaking@0x3723ae0) (declare (uniform ) sampler2D detail1Map@0x3740340) (declare (uniform ) sampler2D detail0Map@0x37404c0) (declare (uniform ) sampler2D damageMap@0x3740640) (declare (uniform ) sampler2D normalMap@0x37407c0) (declare (uniform ) sampler2D glowMap@0x3740940) (declare (uniform ) sampler2D specMap@0x3740ad0) (declare (uniform ) sampler2D envMap@0x3740c60) (declare (uniform ) sampler2D diffuseMap@0x3740df0) (declare (uniform ) int max_light_enabled@0x3740f80) (declare (uniform ) (array int 8) light_enabled@0x3741100) (declare (in ) vec4 gl_FragCoord@0x3643240) (declare (in ) bool gl_FrontFacing@0x3293f40) (declare (out ) vec4 gl_FragColor@0x3294390) (declare (out ) float gl_FragDepth@0x3294540) (declare (in ) vec4 gl_Color@0x32946f0) (declare (in ) vec4 gl_SecondaryColor@0x3294b40) (declare (in ) float gl_FogFragCoord@0x3294cc0) (declare (uniform ) mat4 gl_ModelViewMatrix@0x3294e70) (declare (uniform ) mat4 gl_ProjectionMatrix@0x32952c0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x3295440) (declare (uniform ) mat3 gl_NormalMatrix@0x3295890) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0x3295a40) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0x3295bf0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0x3296040) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0x32961c0) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0x3296610) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0x32967c0) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0x3296c10) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0x3296dc0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0x3297210) (declare (uniform ) float gl_NormalScale@0x3297810) (declare (uniform ) gl_LightModelParameters gl_LightModel@0x32979c0) (declare () int gl_MaxLights@0x3297b70) (declare () int gl_MaxClipPlanes@0x3298140) (declare () int gl_MaxTextureUnits@0x3298740) (declare () int gl_MaxTextureCoords@0x3298a70) (declare () int gl_MaxVertexAttribs@0x3299040) (declare () int gl_MaxVertexUniformComponents@0x3299630) (declare () int gl_MaxVaryingFloats@0x3299ad0) (declare () int gl_MaxVertexTextureImageUnits@0x329a160) (declare () int gl_MaxCombinedTextureImageUnits@0x329a630) (declare () int gl_MaxTextureImageUnits@0x329acc0) (declare () int gl_MaxFragmentUniformComponents@0x329b190) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0x329baa0) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0x329bcf0) (declare (uniform ) (array vec4 6) gl_ClipPlane@0x329c310) (declare (uniform ) gl_PointParameters gl_Point@0x329c490) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x329c610) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0x329ca90) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x329cc10) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x329d210) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0x329d390) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0x329d690) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0x329d810) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0x329d990) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0x329dc90) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0x329de10) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0x329eb90) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0x329ed10) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0x32a1600) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0x32a2800) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0x32a2980) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0x32a2f80) (declare (uniform ) gl_FogParameters gl_Fog@0x32a5e00) (declare (in ) (array vec4 0) gl_TexCoord@0x32a6d00) (declare () int gl_MaxDrawBuffers@0x3186310) (declare (out ) (array vec4 1) gl_FragData@0x31866f0) (function matmul (signature vec3 (parameters (declare (in ) vec3 tangent@0x37237b0) (declare (in ) vec3 binormal@0x3723630) (declare (in ) vec3 normal@0x37234b0) (declare (in ) vec3 lightVec@0x3723330) ) ( (declare (temporary ) float dot_retval@0x3723030) (assign (constant bool (1)) (x) (var_ref dot_retval@0x3723030) (call dot ((var_ref lightVec@0x3723330) (var_ref tangent@0x37237b0) )) ) (declare (temporary ) float dot_retval@0x3722eb0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x3722eb0) (call dot ((var_ref lightVec@0x3723330) (var_ref binormal@0x3723630) )) ) (declare (temporary ) float dot_retval@0x3722d30) (assign (constant bool (1)) (x) (var_ref dot_retval@0x3722d30) (call dot ((var_ref lightVec@0x3723330) (var_ref normal@0x37234b0) )) ) (declare (temporary ) vec3 vec_ctor@0x37217b0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x37217b0) (swiz xxx (var_ref dot_retval@0x3723030) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x37217b0) (swiz xxx (var_ref dot_retval@0x3722eb0) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x37217b0) (swiz xxx (var_ref dot_retval@0x3722d30) )) (return (var_ref vec_ctor@0x37217b0) ) )) ) (function imatmul (signature vec3 (parameters (declare (in ) vec3 tangent@0x3721630) (declare (in ) vec3 binormal@0x37214b0) (declare (in ) vec3 normal@0x3721330) (declare (in ) vec3 lightVec@0x37211b0) ) ( (return (expression vec3 + (expression vec3 + (expression vec3 * (swiz xxx (var_ref lightVec@0x37211b0) )(var_ref tangent@0x3721630) ) (expression vec3 * (swiz yyy (var_ref lightVec@0x37211b0) )(var_ref binormal@0x37214b0) ) ) (expression vec3 * (swiz zzz (var_ref lightVec@0x37211b0) )(var_ref normal@0x3721330) ) ) ) )) ) (function expand (signature vec3 (parameters (declare (in ) vec3 expandme@0x3720eb0) ) ( (return (expression vec3 + (expression vec3 * (var_ref expandme@0x3720eb0) (constant vec3 (2.000000 2.000000 2.000000)) ) (constant vec3 (-1.000000 -1.000000 -1.000000)) ) ) )) ) (function EnvMapGen (signature vec2 (parameters (declare (in ) vec3 f@0x3720bb0) ) ( (declare (temporary ) float assignment_tmp@0x33e7580) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x33e7580) (expression float + (swiz z (var_ref f@0x3720bb0) )(constant float (1.000000)) ) ) (declare (temporary ) float sqrt_retval@0x33e7280) (assign (constant bool (1)) (x) (var_ref sqrt_retval@0x33e7280) (call sqrt ((expression float + (expression float + (expression float * (swiz x (var_ref f@0x3720bb0) )(swiz x (var_ref f@0x3720bb0) )) (expression float * (swiz y (var_ref f@0x3720bb0) )(swiz y (var_ref f@0x3720bb0) )) ) (expression float * (var_ref assignment_tmp@0x33e7580) (var_ref assignment_tmp@0x33e7580) ) ) )) ) (declare (temporary ) float assignment_tmp@0x33e7100) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x33e7100) (expression float * (constant float (2.000000)) (var_ref sqrt_retval@0x33e7280) ) ) (declare (temporary ) vec2 vec_ctor@0x33e6f80) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x33e6f80) (swiz xx (expression float + (expression float / (swiz x (var_ref f@0x3720bb0) )(var_ref assignment_tmp@0x33e7100) ) (constant float (0.500000)) ) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x33e6f80) (swiz xx (expression float + (expression float / (swiz y (var_ref f@0x3720bb0) )(var_ref assignment_tmp@0x33e7100) ) (constant float (0.500000)) ) )) (return (var_ref vec_ctor@0x33e6f80) ) )) ) (function main (signature void (parameters ) ( (declare () vec4 specularity@0x3717790) (declare () vec4 ambient@0x371e090) (declare () vec4 specsurface@0x3754230) (declare () vec4 diffsurface@0x33e1ac0) (declare () vec4 damagecolor@0x33f07b0) (declare () vec4 undamagedcolor@0x33e6980) (declare (temporary ) vec4 texture2D_retval@0x33ec4a0) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x33ec4a0) (call texture2D ((var_ref diffuseMap@0x3740df0) (swiz xy (array_ref (var_ref gl_TexCoord@0x32a6d00) (constant int (0)) ) ))) ) (assign (constant bool (1)) (xyzw) (var_ref undamagedcolor@0x33e6980) (var_ref texture2D_retval@0x33ec4a0) ) (declare (temporary ) vec4 texture2D_retval@0x33f00f0) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x33f00f0) (call texture2D ((var_ref damageMap@0x3740640) (swiz xy (array_ref (var_ref gl_TexCoord@0x32a6d00) (constant int (0)) ) ))) ) (assign (constant bool (1)) (xyzw) (var_ref damagecolor@0x33f07b0) (var_ref texture2D_retval@0x33f00f0) ) (declare (temporary ) vec4 mix_retval@0x33e15f0) (assign (constant bool (1)) (xyzw) (var_ref mix_retval@0x33e15f0) (call mix ((var_ref undamagedcolor@0x33e6980) (var_ref texture2D_retval@0x33f00f0) (swiz x (var_ref damage@0x3723930) ))) ) (assign (constant bool (1)) (xyzw) (var_ref diffsurface@0x33e1ac0) (var_ref mix_retval@0x33e15f0) ) (declare (temporary ) vec4 texture2D_retval@0x374c8f0) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x374c8f0) (call texture2D ((var_ref specMap@0x3740ad0) (swiz xy (array_ref (var_ref gl_TexCoord@0x32a6d00) (constant int (0)) ) ))) ) (assign (constant bool (1)) (xyzw) (var_ref specsurface@0x3754230) (expression vec4 * (var_ref texture2D_retval@0x374c8f0) (expression vec4 + (constant float (1.000000)) (expression vec4 neg (expression vec4 * (expression vec4 * (var_ref damagecolor@0x33f07b0) (swiz x (var_ref damage@0x3723930) )) (constant float (2.000000)) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref ambient@0x371e090) (var_ref gl_Color@0x32946f0) ) (declare (temporary ) vec4 texture2D_retval@0x3717200) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x3717200) (call texture2D ((var_ref envMap@0x3740c60) (swiz xy (array_ref (var_ref gl_TexCoord@0x32a6d00) (constant int (1)) ) ))) ) (assign (constant bool (1)) (xyzw) (var_ref specularity@0x3717790) (expression vec4 + (var_ref gl_SecondaryColor@0x3294b40) (var_ref texture2D_retval@0x3717200) ) ) (declare (temporary ) vec4 texture2D_retval@0x35c9360) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x35c9360) (call texture2D ((var_ref glowMap@0x3740940) (swiz xy (array_ref (var_ref gl_TexCoord@0x32a6d00) (constant int (0)) ) ))) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x3294390) (expression vec4 * (expression vec4 + (expression vec4 + (expression vec4 * (var_ref ambient@0x371e090) (var_ref diffsurface@0x33e1ac0) ) (expression vec4 * (var_ref specularity@0x3717790) (var_ref specsurface@0x3754230) ) ) (var_ref texture2D_retval@0x35c9360) ) (swiz xxxy (var_ref cloaking@0x3723ae0) )) ) )) ) ) GLSL IR for linked vertex program 1: ( (declare (uniform ) int max_light_enabled@0x34e78d0) (declare (uniform ) (array int 9) light_enabled@0x34e7750) (declare (out ) vec4 gl_Position@0x34e7500) (declare (in ) vec4 gl_Vertex@0x34a6080) (declare (in ) vec3 gl_Normal@0x34a5f00) (declare (in ) vec4 gl_MultiTexCoord0@0x34a59b0) (declare (out ) vec4 gl_FrontColor@0x346d600) (declare (out ) vec4 gl_BackColor@0x342a7f0) (declare (out ) vec4 gl_FrontSecondaryColor@0x342a670) (declare (uniform ) mat4 gl_ModelViewMatrix@0x342a120) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x3429d50) (declare (uniform ) mat3 gl_NormalMatrix@0x3429bd0) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x359e180) (declare (uniform ) (array gl_LightSourceParameters 9) gl_LightSource@0x359ddb0) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x359dc30) (declare (uniform ) (array gl_LightProducts 1) gl_FrontLightProduct@0x359d860) (declare (out ) (array vec4 0) gl_TexCoord@0x352f4a0) (function main (signature void (parameters ) ( (declare () vec4 sc@0x368c070) (declare () vec4 pc@0x3689c50) (declare (temporary ) vec4 flattening_tmp@0x38923b0) (assign (constant bool (1)) (xyzw) (var_ref flattening_tmp@0x38923b0) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x342a120) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x34a6080) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x342a120) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x34a6080) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x342a120) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x34a6080) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x342a120) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x34a6080) )) ) ) (declare () vec3 _ret_val@0x3735800) (declare () vec3 arg0@0x37377b0) (assign (constant bool (1)) (xyz) (var_ref arg0@0x37377b0) (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x38923b0) )(expression float rcp (swiz w (var_ref flattening_tmp@0x38923b0) )) ) ) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x3735800) (expression vec3 * (var_ref arg0@0x37377b0) (expression float rsq (expression float dot (var_ref arg0@0x37377b0) (var_ref arg0@0x37377b0) ) ) ) ) (declare () vec3 _ret_val@0x363c540) (declare (temporary ) vec3 flattening_tmp@0x3891f50) (assign (constant bool (1)) (xyz) (var_ref flattening_tmp@0x3891f50) (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x3429bd0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x34a5f00) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x3429bd0) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x34a5f00) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x3429bd0) (constant int (2)) ) (swiz z (var_ref gl_Normal@0x34a5f00) )) ) ) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref flattening_tmp@0x3891f50) (expression float rsq (expression float dot (var_ref flattening_tmp@0x3891f50) (var_ref flattening_tmp@0x3891f50) ) ) ) ) (declare () vec3 _ret_val@0x36491d0) (declare () vec3 i@0x36497e0) (assign (constant bool (1)) (xyz) (var_ref i@0x36497e0) (expression vec3 neg (var_ref _ret_val@0x3735800) ) ) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x36491d0) (expression vec3 + (var_ref i@0x36497e0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x363c540) (var_ref i@0x36497e0) ) (var_ref _ret_val@0x363c540) ) ) ) ) ) (declare (temporary ) float assignment_tmp@0x3683ca0) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x3683ca0) (expression float + (swiz z (var_ref _ret_val@0x36491d0) )(constant float (1.000000)) ) ) (declare (temporary ) float assignment_tmp@0x373a9e0) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x373a9e0) (expression float * (constant float (2.000000)) (expression float sqrt (expression float + (expression float + (expression float * (swiz x (var_ref _ret_val@0x36491d0) )(swiz x (var_ref _ret_val@0x36491d0) )) (expression float * (swiz y (var_ref _ret_val@0x36491d0) )(swiz y (var_ref _ret_val@0x36491d0) )) ) (expression float * (var_ref assignment_tmp@0x3683ca0) (var_ref assignment_tmp@0x3683ca0) ) ) ) ) ) (declare (temporary ) vec2 vec_ctor@0x36336c0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x36336c0) (swiz xx (expression float + (expression float * (swiz x (var_ref _ret_val@0x36491d0) )(expression float rcp (var_ref assignment_tmp@0x373a9e0) ) ) (constant float (0.500000)) ) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x36336c0) (swiz xx (expression float + (expression float * (swiz y (var_ref _ret_val@0x36491d0) )(expression float rcp (var_ref assignment_tmp@0x373a9e0) ) ) (constant float (0.500000)) ) )) (assign (constant bool (1)) (xy) (array_ref (var_ref gl_TexCoord@0x352f4a0) (constant int (1)) ) (var_ref vec_ctor@0x36336c0) ) (assign (constant bool (1)) (zw) (array_ref (var_ref gl_TexCoord@0x352f4a0) (constant int (1)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x352f4a0) (constant int (0)) ) (var_ref gl_MultiTexCoord0@0x34a59b0) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x3689c50) (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x359d860) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontLightModelProduct@0x359dc30) sceneColor) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x368c070) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (declare (temporary ) bool and_tmp@0x32cf890) (if (expression bool != (array_ref (var_ref light_enabled@0x34e7750) (constant int (0)) ) (constant int (0)) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x32cf890) (expression bool <= (constant int (0)) (var_ref max_light_enabled@0x34e78d0) ) ) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x32cf890) (constant bool (0)) ) )) (if (var_ref and_tmp@0x32cf890) ( (declare () vec4 att@0x325a0a0) (declare (temporary ) vec3 assignment_tmp@0x354c9a0) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x354c9a0) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) position) )(swiz w (var_ref flattening_tmp@0x38923b0) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x38923b0) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) position) )) ) ) ) (declare () float _ret_val@0x35aeae0) (assign (constant bool (1)) (x) (var_ref _ret_val@0x35aeae0) (expression float sqrt (expression float dot (var_ref assignment_tmp@0x354c9a0) (var_ref assignment_tmp@0x354c9a0) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref att@0x325a0a0) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x35aeae0) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x35aeae0) (var_ref _ret_val@0x35aeae0) ) )) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x3701a00) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x3701a00) (expression vec3 * (var_ref assignment_tmp@0x354c9a0) (expression float rcp (var_ref _ret_val@0x35aeae0) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x372e680) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x372e680) (expression vec3 + (var_ref assignment_tmp@0x3701a00) (expression vec3 neg (var_ref _ret_val@0x3735800) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x3689c50) (expression vec4 + (var_ref pc@0x3689c50) (expression vec4 * (var_ref att@0x325a0a0) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x359e180) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x359e180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x3701a00) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x368c070) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x325a0a0) (record_ref (var_ref gl_FrontMaterial@0x359e180) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x372e680) (expression float rsq (expression float dot (var_ref assignment_tmp@0x372e680) (var_ref assignment_tmp@0x372e680) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) shininess) ) ) ) ) ()) (declare (temporary ) bool and_tmp@0x367fa60) (if (expression bool != (array_ref (var_ref light_enabled@0x34e7750) (constant int (1)) ) (constant int (0)) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x367fa60) (expression bool <= (constant int (1)) (var_ref max_light_enabled@0x34e78d0) ) ) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x367fa60) (constant bool (0)) ) )) (if (var_ref and_tmp@0x367fa60) ( (declare () vec4 att@0x364e410) (declare (temporary ) vec3 assignment_tmp@0x3646770) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x3646770) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) position) )(swiz w (var_ref flattening_tmp@0x38923b0) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x38923b0) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) position) )) ) ) ) (declare () float _ret_val@0x38326f0) (assign (constant bool (1)) (x) (var_ref _ret_val@0x38326f0) (expression float sqrt (expression float dot (var_ref assignment_tmp@0x3646770) (var_ref assignment_tmp@0x3646770) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref att@0x364e410) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x38326f0) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x38326f0) (var_ref _ret_val@0x38326f0) ) )) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x31a7010) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x31a7010) (expression vec3 * (var_ref assignment_tmp@0x3646770) (expression float rcp (var_ref _ret_val@0x38326f0) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x319a820) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x319a820) (expression vec3 + (var_ref assignment_tmp@0x31a7010) (expression vec3 neg (var_ref _ret_val@0x3735800) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x3689c50) (expression vec4 + (var_ref pc@0x3689c50) (expression vec4 * (var_ref att@0x364e410) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x359e180) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x359e180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x31a7010) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x368c070) (expression vec4 + (var_ref sc@0x368c070) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x364e410) (record_ref (var_ref gl_FrontMaterial@0x359e180) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x319a820) (expression float rsq (expression float dot (var_ref assignment_tmp@0x319a820) (var_ref assignment_tmp@0x319a820) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) shininess) ) ) ) ) ) ()) (declare (temporary ) bool and_tmp@0x31fe640) (if (expression bool != (array_ref (var_ref light_enabled@0x34e7750) (constant int (2)) ) (constant int (0)) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x31fe640) (expression bool <= (constant int (2)) (var_ref max_light_enabled@0x34e78d0) ) ) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x31fe640) (constant bool (0)) ) )) (if (var_ref and_tmp@0x31fe640) ( (declare () vec4 att@0x3259ac0) (declare (temporary ) vec3 assignment_tmp@0x3259c20) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x3259c20) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) position) )(swiz w (var_ref flattening_tmp@0x38923b0) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x38923b0) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) position) )) ) ) ) (declare () float _ret_val@0x3669fc0) (assign (constant bool (1)) (x) (var_ref _ret_val@0x3669fc0) (expression float sqrt (expression float dot (var_ref assignment_tmp@0x3259c20) (var_ref assignment_tmp@0x3259c20) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref att@0x3259ac0) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x3669fc0) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x3669fc0) (var_ref _ret_val@0x3669fc0) ) )) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x38b2da0) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x38b2da0) (expression vec3 * (var_ref assignment_tmp@0x3259c20) (expression float rcp (var_ref _ret_val@0x3669fc0) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x38b3030) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x38b3030) (expression vec3 + (var_ref assignment_tmp@0x38b2da0) (expression vec3 neg (var_ref _ret_val@0x3735800) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x3689c50) (expression vec4 + (var_ref pc@0x3689c50) (expression vec4 * (var_ref att@0x3259ac0) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x359e180) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x359e180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x38b2da0) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x368c070) (expression vec4 + (var_ref sc@0x368c070) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x3259ac0) (record_ref (var_ref gl_FrontMaterial@0x359e180) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x38b3030) (expression float rsq (expression float dot (var_ref assignment_tmp@0x38b3030) (var_ref assignment_tmp@0x38b3030) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) shininess) ) ) ) ) ) ()) (declare (temporary ) bool and_tmp@0x38b4c40) (if (expression bool != (array_ref (var_ref light_enabled@0x34e7750) (constant int (3)) ) (constant int (0)) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x38b4c40) (expression bool <= (constant int (3)) (var_ref max_light_enabled@0x34e78d0) ) ) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x38b4c40) (constant bool (0)) ) )) (if (var_ref and_tmp@0x38b4c40) ( (declare () vec4 att@0x38b5360) (declare (temporary ) vec3 assignment_tmp@0x38b54c0) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x38b54c0) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) position) )(swiz w (var_ref flattening_tmp@0x38923b0) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x38923b0) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) position) )) ) ) ) (declare () float _ret_val@0x3851e90) (assign (constant bool (1)) (x) (var_ref _ret_val@0x3851e90) (expression float sqrt (expression float dot (var_ref assignment_tmp@0x38b54c0) (var_ref assignment_tmp@0x38b54c0) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref att@0x38b5360) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x3851e90) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x3851e90) (var_ref _ret_val@0x3851e90) ) )) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x38b5f80) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x38b5f80) (expression vec3 * (var_ref assignment_tmp@0x38b54c0) (expression float rcp (var_ref _ret_val@0x3851e90) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x38b6210) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x38b6210) (expression vec3 + (var_ref assignment_tmp@0x38b5f80) (expression vec3 neg (var_ref _ret_val@0x3735800) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x3689c50) (expression vec4 + (var_ref pc@0x3689c50) (expression vec4 * (var_ref att@0x38b5360) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x359e180) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x359e180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x38b5f80) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x368c070) (expression vec4 + (var_ref sc@0x368c070) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x38b5360) (record_ref (var_ref gl_FrontMaterial@0x359e180) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x38b6210) (expression float rsq (expression float dot (var_ref assignment_tmp@0x38b6210) (var_ref assignment_tmp@0x38b6210) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) shininess) ) ) ) ) ) ()) (declare (temporary ) bool and_tmp@0x38b7e20) (if (expression bool != (array_ref (var_ref light_enabled@0x34e7750) (constant int (4)) ) (constant int (0)) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x38b7e20) (expression bool <= (constant int (4)) (var_ref max_light_enabled@0x34e78d0) ) ) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x38b7e20) (constant bool (0)) ) )) (if (var_ref and_tmp@0x38b7e20) ( (declare () vec4 att@0x38b8540) (declare (temporary ) vec3 assignment_tmp@0x38b86a0) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x38b86a0) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) position) )(swiz w (var_ref flattening_tmp@0x38923b0) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x38923b0) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) position) )) ) ) ) (declare () float _ret_val@0x368f430) (assign (constant bool (1)) (x) (var_ref _ret_val@0x368f430) (expression float sqrt (expression float dot (var_ref assignment_tmp@0x38b86a0) (var_ref assignment_tmp@0x38b86a0) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref att@0x38b8540) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x368f430) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x368f430) (var_ref _ret_val@0x368f430) ) )) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x38b9160) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x38b9160) (expression vec3 * (var_ref assignment_tmp@0x38b86a0) (expression float rcp (var_ref _ret_val@0x368f430) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x38b93f0) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x38b93f0) (expression vec3 + (var_ref assignment_tmp@0x38b9160) (expression vec3 neg (var_ref _ret_val@0x3735800) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x3689c50) (expression vec4 + (var_ref pc@0x3689c50) (expression vec4 * (var_ref att@0x38b8540) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x359e180) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x359e180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x38b9160) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x368c070) (expression vec4 + (var_ref sc@0x368c070) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x38b8540) (record_ref (var_ref gl_FrontMaterial@0x359e180) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x38b93f0) (expression float rsq (expression float dot (var_ref assignment_tmp@0x38b93f0) (var_ref assignment_tmp@0x38b93f0) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) shininess) ) ) ) ) ) ()) (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x34e7500) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x3429d50) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x34a6080) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x3429d50) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x34a6080) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x3429d50) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x34a6080) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x3429d50) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x34a6080) )) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_BackColor@0x342a7f0) (var_ref pc@0x3689c50) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0x346d600) (var_ref pc@0x3689c50) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontSecondaryColor@0x342a670) (var_ref sc@0x368c070) ) )) ) ) Mesa IR for linked vertex program 1: 0: (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x342a120) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x34a6080) )) MUL TEMP[1], STATE[10], INPUT[0].xxxx; 1: (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x342a120) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x34a6080) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x342a120) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x34a6080) )) ) MAD TEMP[2], STATE[11], INPUT[0].yyyy, TEMP[1]; 2: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x342a120) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x34a6080) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x342a120) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x34a6080) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x342a120) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x34a6080) )) ) MAD TEMP[3], STATE[12], INPUT[0].zzzz, TEMP[2]; 3: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x342a120) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x34a6080) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x342a120) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x34a6080) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x342a120) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x34a6080) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x342a120) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x34a6080) )) ) MAD TEMP[4], STATE[13], INPUT[0].wwww, TEMP[3]; 4: (assign (constant bool (1)) (xyzw) (var_ref flattening_tmp@0x38923b0) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x342a120) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x34a6080) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x342a120) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x34a6080) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x342a120) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x34a6080) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x342a120) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x34a6080) )) ) ) MOV TEMP[5], TEMP[4]; 5: (expression float rcp (swiz w (var_ref flattening_tmp@0x38923b0) )) RCP TEMP[6].x, TEMP[5].wwww; 6: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x38923b0) )(expression float rcp (swiz w (var_ref flattening_tmp@0x38923b0) )) ) MUL TEMP[7].xyz, TEMP[5].xyzz, TEMP[6].xxxx; 7: (assign (constant bool (1)) (xyz) (var_ref arg0@0x37377b0) (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x38923b0) )(expression float rcp (swiz w (var_ref flattening_tmp@0x38923b0) )) ) ) MOV TEMP[8].xyz, TEMP[7].xyzz; 8: (expression float dot (var_ref arg0@0x37377b0) (var_ref arg0@0x37377b0) ) DP3 TEMP[9].x, TEMP[8].xyzz, TEMP[8].xyzz; 9: (expression float rsq (expression float dot (var_ref arg0@0x37377b0) (var_ref arg0@0x37377b0) ) ) RSQ TEMP[10].x, TEMP[9].xxxx; 10: (expression vec3 * (var_ref arg0@0x37377b0) (expression float rsq (expression float dot (var_ref arg0@0x37377b0) (var_ref arg0@0x37377b0) ) ) ) MUL TEMP[11].xyz, TEMP[8].xyzz, TEMP[10].xxxx; 11: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x3735800) (expression vec3 * (var_ref arg0@0x37377b0) (expression float rsq (expression float dot (var_ref arg0@0x37377b0) (var_ref arg0@0x37377b0) ) ) ) ) MOV TEMP[12].xyz, TEMP[11].xyzz; 12: (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x3429bd0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x34a5f00) )) MUL TEMP[13].xyz, STATE[14].xyzz, INPUT[2].xxxx; 13: (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x3429bd0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x34a5f00) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x3429bd0) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x34a5f00) )) ) MAD TEMP[14], STATE[15].xyzz, INPUT[2].yyyy, TEMP[13].xyzz; 14: (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x3429bd0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x34a5f00) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x3429bd0) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x34a5f00) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x3429bd0) (constant int (2)) ) (swiz z (var_ref gl_Normal@0x34a5f00) )) ) MAD TEMP[15], STATE[16].xyzz, INPUT[2].zzzz, TEMP[14].xyzz; 15: (assign (constant bool (1)) (xyz) (var_ref flattening_tmp@0x3891f50) (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x3429bd0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x34a5f00) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x3429bd0) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x34a5f00) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x3429bd0) (constant int (2)) ) (swiz z (var_ref gl_Normal@0x34a5f00) )) ) ) MOV TEMP[16].xyz, TEMP[15].xyzz; 16: (expression float dot (var_ref flattening_tmp@0x3891f50) (var_ref flattening_tmp@0x3891f50) ) DP3 TEMP[17].x, TEMP[16].xyzz, TEMP[16].xyzz; 17: (expression float rsq (expression float dot (var_ref flattening_tmp@0x3891f50) (var_ref flattening_tmp@0x3891f50) ) ) RSQ TEMP[18].x, TEMP[17].xxxx; 18: (expression vec3 * (var_ref flattening_tmp@0x3891f50) (expression float rsq (expression float dot (var_ref flattening_tmp@0x3891f50) (var_ref flattening_tmp@0x3891f50) ) ) ) MUL TEMP[19].xyz, TEMP[16].xyzz, TEMP[18].xxxx; 19: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref flattening_tmp@0x3891f50) (expression float rsq (expression float dot (var_ref flattening_tmp@0x3891f50) (var_ref flattening_tmp@0x3891f50) ) ) ) ) MOV TEMP[20].xyz, TEMP[19].xyzz; 20: (assign (constant bool (1)) (xyz) (var_ref i@0x36497e0) (expression vec3 neg (var_ref _ret_val@0x3735800) ) ) MOV TEMP[22].xyz, TEMP[12].-x-y-z-z; 21: (expression float dot (var_ref _ret_val@0x363c540) (var_ref i@0x36497e0) ) DP3 TEMP[23].x, TEMP[20].xyzz, TEMP[22].xyzz; 22: (expression vec3 * (expression float dot (var_ref _ret_val@0x363c540) (var_ref i@0x36497e0) ) (var_ref _ret_val@0x363c540) ) MUL TEMP[24].xyz, TEMP[23].xxxx, TEMP[20].xyzz; 23: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x363c540) (var_ref i@0x36497e0) ) (var_ref _ret_val@0x363c540) ) ) MUL TEMP[25].xyz, CONST[18].xxxx, TEMP[24].xyzz; 24: (expression vec3 + (var_ref i@0x36497e0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x363c540) (var_ref i@0x36497e0) ) (var_ref _ret_val@0x363c540) ) ) ) ) ADD TEMP[27].xyz, TEMP[22].xyzz, TEMP[25].-x-y-z-z; 25: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x36491d0) (expression vec3 + (var_ref i@0x36497e0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x363c540) (var_ref i@0x36497e0) ) (var_ref _ret_val@0x363c540) ) ) ) ) ) MOV TEMP[28].xyz, TEMP[27].xyzz; 26: (expression float + (swiz z (var_ref _ret_val@0x36491d0) )(constant float (1.000000)) ) ADD TEMP[29].x, TEMP[28].zzzz, CONST[18].yyyy; 27: (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x3683ca0) (expression float + (swiz z (var_ref _ret_val@0x36491d0) )(constant float (1.000000)) ) ) MOV TEMP[30], TEMP[29].xxxx; 28: (expression float * (swiz x (var_ref _ret_val@0x36491d0) )(swiz x (var_ref _ret_val@0x36491d0) )) MUL TEMP[31].x, TEMP[28].xxxx, TEMP[28].xxxx; 29: (expression float + (expression float * (swiz x (var_ref _ret_val@0x36491d0) )(swiz x (var_ref _ret_val@0x36491d0) )) (expression float * (swiz y (var_ref _ret_val@0x36491d0) )(swiz y (var_ref _ret_val@0x36491d0) )) ) MAD TEMP[32], TEMP[28].yyyy, TEMP[28].yyyy, TEMP[31].xxxx; 30: (expression float + (expression float + (expression float * (swiz x (var_ref _ret_val@0x36491d0) )(swiz x (var_ref _ret_val@0x36491d0) )) (expression float * (swiz y (var_ref _ret_val@0x36491d0) )(swiz y (var_ref _ret_val@0x36491d0) )) ) (expression float * (var_ref assignment_tmp@0x3683ca0) (var_ref assignment_tmp@0x3683ca0) ) ) MAD TEMP[33], TEMP[30].xxxx, TEMP[30].xxxx, TEMP[32].xxxx; 31: (expression float sqrt (expression float + (expression float + (expression float * (swiz x (var_ref _ret_val@0x36491d0) )(swiz x (var_ref _ret_val@0x36491d0) )) (expression float * (swiz y (var_ref _ret_val@0x36491d0) )(swiz y (var_ref _ret_val@0x36491d0) )) ) (expression float * (var_ref assignment_tmp@0x3683ca0) (var_ref assignment_tmp@0x3683ca0) ) ) ) RSQ TEMP[34].x, TEMP[33].xxxx; 32: MUL TEMP[34].x, TEMP[34].xxxx, TEMP[33].xxxx; 33: CMP TEMP[34].x, TEMP[33].-x-x-x-x, TEMP[34].xxxx, CONST[18].zzzz; 34: (expression float * (constant float (2.000000)) (expression float sqrt (expression float + (expression float + (expression float * (swiz x (var_ref _ret_val@0x36491d0) )(swiz x (var_ref _ret_val@0x36491d0) )) (expression float * (swiz y (var_ref _ret_val@0x36491d0) )(swiz y (var_ref _ret_val@0x36491d0) )) ) (expression float * (var_ref assignment_tmp@0x3683ca0) (var_ref assignment_tmp@0x3683ca0) ) ) ) ) MUL TEMP[35].x, CONST[18].xxxx, TEMP[34].xxxx; 35: (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x373a9e0) (expression float * (constant float (2.000000)) (expression float sqrt (expression float + (expression float + (expression float * (swiz x (var_ref _ret_val@0x36491d0) )(swiz x (var_ref _ret_val@0x36491d0) )) (expression float * (swiz y (var_ref _ret_val@0x36491d0) )(swiz y (var_ref _ret_val@0x36491d0) )) ) (expression float * (var_ref assignment_tmp@0x3683ca0) (var_ref assignment_tmp@0x3683ca0) ) ) ) ) ) MOV TEMP[36], TEMP[35].xxxx; 36: (expression float rcp (var_ref assignment_tmp@0x373a9e0) ) RCP TEMP[37].x, TEMP[36].xxxx; 37: (expression float + (expression float * (swiz x (var_ref _ret_val@0x36491d0) )(expression float rcp (var_ref assignment_tmp@0x373a9e0) ) ) (constant float (0.500000)) ) MAD TEMP[38], TEMP[28].xxxx, TEMP[37].xxxx, CONST[18].wwww; 38: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x36336c0) (swiz xx (expression float + (expression float * (swiz x (var_ref _ret_val@0x36491d0) )(expression float rcp (var_ref assignment_tmp@0x373a9e0) ) ) (constant float (0.500000)) ) )) MOV TEMP[39].x, TEMP[38].xxxx; 39: (expression float rcp (var_ref assignment_tmp@0x373a9e0) ) RCP TEMP[40].x, TEMP[36].xxxx; 40: (expression float + (expression float * (swiz y (var_ref _ret_val@0x36491d0) )(expression float rcp (var_ref assignment_tmp@0x373a9e0) ) ) (constant float (0.500000)) ) MAD TEMP[41], TEMP[28].yyyy, TEMP[40].xxxx, CONST[18].wwww; 41: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x36336c0) (swiz xx (expression float + (expression float * (swiz y (var_ref _ret_val@0x36491d0) )(expression float rcp (var_ref assignment_tmp@0x373a9e0) ) ) (constant float (0.500000)) ) )) MOV TEMP[39].y, TEMP[41].xxxx; 42: (assign (constant bool (1)) (xy) (array_ref (var_ref gl_TexCoord@0x352f4a0) (constant int (1)) ) (var_ref vec_ctor@0x36336c0) ) MOV OUTPUT[5].xy, TEMP[39].xyyy; 43: (assign (constant bool (1)) (zw) (array_ref (var_ref gl_TexCoord@0x352f4a0) (constant int (1)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) MOV OUTPUT[5].zw, CONST[18].zzzz; 44: (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x352f4a0) (constant int (0)) ) (var_ref gl_MultiTexCoord0@0x34a59b0) ) MOV OUTPUT[4], INPUT[8]; 45: (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x359d860) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontLightModelProduct@0x359dc30) sceneColor) ) ADD TEMP[42], STATE[19], STATE[20]; 46: (assign (constant bool (1)) (xyzw) (var_ref pc@0x3689c50) (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x359d860) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontLightModelProduct@0x359dc30) sceneColor) ) ) MOV TEMP[43], TEMP[42]; 47: (assign (constant bool (1)) (xyzw) (var_ref sc@0x368c070) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) MOV TEMP[44], CONST[18].zzzz; 48: (expression bool != (array_ref (var_ref light_enabled@0x34e7750) (constant int (0)) ) (constant int (0)) ) SNE.C TEMP[45].x, UNIFORM[1].xxxx, CONST[18].zzzz; 49: IF (NE.xxxx); # (if false, goto 52); 50: (expression bool <= (constant int (0)) (var_ref max_light_enabled@0x34e78d0) ) SLE TEMP[46].x, CONST[18].zzzz, UNIFORM[0].xxxx; 51: (assign (constant bool (1)) (x) (var_ref and_tmp@0x32cf890) (expression bool <= (constant int (0)) (var_ref max_light_enabled@0x34e78d0) ) ) MOV TEMP[47], TEMP[46].xxxx; 52: (expression bool != (array_ref (var_ref light_enabled@0x34e7750) (constant int (0)) ) (constant int (0)) ) ELSE; # (goto 54) 53: (assign (constant bool (1)) (x) (var_ref and_tmp@0x32cf890) (constant bool (0)) ) MOV TEMP[47], CONST[18].zzzz; 54: (expression bool != (array_ref (var_ref light_enabled@0x34e7750) (constant int (0)) ) (constant int (0)) ) ENDIF; 55: (var_ref and_tmp@0x32cf890) MOV.C TEMP[48], TEMP[47].xxxx; 56: IF (NE.xxxx); # (if false, goto 95); 57: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x38923b0) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) position) )) MUL TEMP[49].xyz, TEMP[5].xyzz, STATE[21].wwww; 58: (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) position) )(swiz w (var_ref flattening_tmp@0x38923b0) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x38923b0) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) position) )) ) ) MAD TEMP[51], STATE[21].xyzz, TEMP[5].wwww, TEMP[49].-x-y-z-z; 59: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x354c9a0) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) position) )(swiz w (var_ref flattening_tmp@0x38923b0) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x38923b0) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) position) )) ) ) ) MOV TEMP[52].xyz, TEMP[51].xyzz; 60: (expression float dot (var_ref assignment_tmp@0x354c9a0) (var_ref assignment_tmp@0x354c9a0) ) DP3 TEMP[53].x, TEMP[52].xyzz, TEMP[52].xyzz; 61: (expression float sqrt (expression float dot (var_ref assignment_tmp@0x354c9a0) (var_ref assignment_tmp@0x354c9a0) ) ) RSQ TEMP[54].x, TEMP[53].xxxx; 62: MUL TEMP[54].x, TEMP[54].xxxx, TEMP[53].xxxx; 63: CMP TEMP[54].x, TEMP[53].-x-x-x-x, TEMP[54].xxxx, CONST[18].zzzz; 64: (assign (constant bool (1)) (x) (var_ref _ret_val@0x35aeae0) (expression float sqrt (expression float dot (var_ref assignment_tmp@0x354c9a0) (var_ref assignment_tmp@0x354c9a0) ) ) ) MOV TEMP[55], TEMP[54].xxxx; 65: (expression float * (var_ref _ret_val@0x35aeae0) (var_ref _ret_val@0x35aeae0) ) MUL TEMP[56].x, TEMP[55].xxxx, TEMP[55].xxxx; 66: (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x35aeae0) )) ) MAD TEMP[57], STATE[22].yyyy, TEMP[55].xxxx, STATE[22].xxxx; 67: (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x35aeae0) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x35aeae0) (var_ref _ret_val@0x35aeae0) ) )) ) MAD TEMP[58], STATE[22].zzzz, TEMP[56].xxxx, TEMP[57]; 68: (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x35aeae0) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x35aeae0) (var_ref _ret_val@0x35aeae0) ) )) ) ) RCP TEMP[59].x, TEMP[58].xxxx; 69: RCP TEMP[59].y, TEMP[58].yyyy; 70: RCP TEMP[59].z, TEMP[58].zzzz; 71: RCP TEMP[59].w, TEMP[58].wwww; 72: (assign (constant bool (1)) (xyzw) (var_ref att@0x325a0a0) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x35aeae0) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x35aeae0) (var_ref _ret_val@0x35aeae0) ) )) ) ) ) MOV TEMP[60], TEMP[59]; 73: (expression float rcp (var_ref _ret_val@0x35aeae0) ) RCP TEMP[61].x, TEMP[55].xxxx; 74: (expression vec3 * (var_ref assignment_tmp@0x354c9a0) (expression float rcp (var_ref _ret_val@0x35aeae0) ) ) MUL TEMP[62].xyz, TEMP[52].xyzz, TEMP[61].xxxx; 75: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x3701a00) (expression vec3 * (var_ref assignment_tmp@0x354c9a0) (expression float rcp (var_ref _ret_val@0x35aeae0) ) ) ) MOV TEMP[63].xyz, TEMP[62].xyzz; 76: (expression vec3 + (var_ref assignment_tmp@0x3701a00) (expression vec3 neg (var_ref _ret_val@0x3735800) ) ) ADD TEMP[65].xyz, TEMP[63].xyzz, TEMP[12].-x-y-z-z; 77: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x372e680) (expression vec3 + (var_ref assignment_tmp@0x3701a00) (expression vec3 neg (var_ref _ret_val@0x3735800) ) ) ) MOV TEMP[66].xyz, TEMP[65].xyzz; 78: (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x3701a00) ) DP3 TEMP[67].x, TEMP[20].xyzz, TEMP[63].xyzz; 79: (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x3701a00) ) (constant float (0.000000)) ) MAX TEMP[68].x, TEMP[67].xxxx, CONST[18].zzzz; 80: (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x3701a00) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) diffuse) ) MUL TEMP[69], TEMP[68].xxxx, STATE[23]; 81: (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x359e180) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x359e180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) ambient) ) ) MAD TEMP[70], STATE[25], STATE[26], STATE[27]; 82: (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x359e180) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x359e180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x3701a00) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) diffuse) ) ) MAD TEMP[71], TEMP[69], STATE[24], TEMP[70]; 83: (expression vec4 + (var_ref pc@0x3689c50) (expression vec4 * (var_ref att@0x325a0a0) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x359e180) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x359e180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x3701a00) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) diffuse) ) ) ) ) MAD TEMP[72], TEMP[60], TEMP[71], TEMP[43]; 84: (assign (constant bool (1)) (xyzw) (var_ref pc@0x3689c50) (expression vec4 + (var_ref pc@0x3689c50) (expression vec4 * (var_ref att@0x325a0a0) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x359e180) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x359e180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x3701a00) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) diffuse) ) ) ) ) ) MOV TEMP[43], TEMP[72]; 85: (expression vec4 * (var_ref att@0x325a0a0) (record_ref (var_ref gl_FrontMaterial@0x359e180) specular) ) MUL TEMP[73], TEMP[60], STATE[28]; 86: (expression vec4 * (expression vec4 * (var_ref att@0x325a0a0) (record_ref (var_ref gl_FrontMaterial@0x359e180) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) specular) ) MUL TEMP[74], TEMP[73], STATE[29]; 87: (expression float dot (var_ref assignment_tmp@0x372e680) (var_ref assignment_tmp@0x372e680) ) DP3 TEMP[75].x, TEMP[66].xyzz, TEMP[66].xyzz; 88: (expression float rsq (expression float dot (var_ref assignment_tmp@0x372e680) (var_ref assignment_tmp@0x372e680) ) ) RSQ TEMP[76].x, TEMP[75].xxxx; 89: (expression vec3 * (var_ref assignment_tmp@0x372e680) (expression float rsq (expression float dot (var_ref assignment_tmp@0x372e680) (var_ref assignment_tmp@0x372e680) ) ) ) MUL TEMP[77].xyz, TEMP[66].xyzz, TEMP[76].xxxx; 90: (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x372e680) (expression float rsq (expression float dot (var_ref assignment_tmp@0x372e680) (var_ref assignment_tmp@0x372e680) ) ) ) ) DP3 TEMP[78].x, TEMP[20].xyzz, TEMP[77].xyzz; 91: (expression float max (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x372e680) (expression float rsq (expression float dot (var_ref assignment_tmp@0x372e680) (var_ref assignment_tmp@0x372e680) ) ) ) ) (constant float (0.000000)) ) MAX TEMP[79].x, TEMP[78].xxxx, CONST[18].zzzz; 92: (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x372e680) (expression float rsq (expression float dot (var_ref assignment_tmp@0x372e680) (var_ref assignment_tmp@0x372e680) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) shininess) ) POW TEMP[80].x, TEMP[79].xxxx, STATE[30].xxxx; 93: (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x325a0a0) (record_ref (var_ref gl_FrontMaterial@0x359e180) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x372e680) (expression float rsq (expression float dot (var_ref assignment_tmp@0x372e680) (var_ref assignment_tmp@0x372e680) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) shininess) ) ) MUL TEMP[81], TEMP[74], TEMP[80].xxxx; 94: (assign (constant bool (1)) (xyzw) (var_ref sc@0x368c070) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x325a0a0) (record_ref (var_ref gl_FrontMaterial@0x359e180) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (0)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x372e680) (expression float rsq (expression float dot (var_ref assignment_tmp@0x372e680) (var_ref assignment_tmp@0x372e680) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) shininess) ) ) ) MOV TEMP[44], TEMP[81]; 95: (var_ref and_tmp@0x32cf890) ENDIF; 96: (expression bool != (array_ref (var_ref light_enabled@0x34e7750) (constant int (1)) ) (constant int (0)) ) SNE.C TEMP[82].x, UNIFORM[2].xxxx, CONST[18].zzzz; 97: IF (NE.xxxx); # (if false, goto 100); 98: (expression bool <= (constant int (1)) (var_ref max_light_enabled@0x34e78d0) ) SLE TEMP[83].x, CONST[18].yyyy, UNIFORM[0].xxxx; 99: (assign (constant bool (1)) (x) (var_ref and_tmp@0x367fa60) (expression bool <= (constant int (1)) (var_ref max_light_enabled@0x34e78d0) ) ) MOV TEMP[84], TEMP[83].xxxx; 100: (expression bool != (array_ref (var_ref light_enabled@0x34e7750) (constant int (1)) ) (constant int (0)) ) ELSE; # (goto 102) 101: (assign (constant bool (1)) (x) (var_ref and_tmp@0x367fa60) (constant bool (0)) ) MOV TEMP[84], CONST[18].zzzz; 102: (expression bool != (array_ref (var_ref light_enabled@0x34e7750) (constant int (1)) ) (constant int (0)) ) ENDIF; 103: (var_ref and_tmp@0x367fa60) MOV.C TEMP[85], TEMP[84].xxxx; 104: IF (NE.xxxx); # (if false, goto 143); 105: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x38923b0) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) position) )) MUL TEMP[86].xyz, TEMP[5].xyzz, STATE[21].wwww; 106: (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) position) )(swiz w (var_ref flattening_tmp@0x38923b0) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x38923b0) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) position) )) ) ) MAD TEMP[88], STATE[21].xyzz, TEMP[5].wwww, TEMP[86].-x-y-z-z; 107: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x3646770) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) position) )(swiz w (var_ref flattening_tmp@0x38923b0) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x38923b0) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) position) )) ) ) ) MOV TEMP[89].xyz, TEMP[88].xyzz; 108: (expression float dot (var_ref assignment_tmp@0x3646770) (var_ref assignment_tmp@0x3646770) ) DP3 TEMP[90].x, TEMP[89].xyzz, TEMP[89].xyzz; 109: (expression float sqrt (expression float dot (var_ref assignment_tmp@0x3646770) (var_ref assignment_tmp@0x3646770) ) ) RSQ TEMP[91].x, TEMP[90].xxxx; 110: MUL TEMP[91].x, TEMP[91].xxxx, TEMP[90].xxxx; 111: CMP TEMP[91].x, TEMP[90].-x-x-x-x, TEMP[91].xxxx, CONST[18].zzzz; 112: (assign (constant bool (1)) (x) (var_ref _ret_val@0x38326f0) (expression float sqrt (expression float dot (var_ref assignment_tmp@0x3646770) (var_ref assignment_tmp@0x3646770) ) ) ) MOV TEMP[92], TEMP[91].xxxx; 113: (expression float * (var_ref _ret_val@0x38326f0) (var_ref _ret_val@0x38326f0) ) MUL TEMP[93].x, TEMP[92].xxxx, TEMP[92].xxxx; 114: (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x38326f0) )) ) MAD TEMP[94], STATE[22].yyyy, TEMP[92].xxxx, STATE[22].xxxx; 115: (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x38326f0) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x38326f0) (var_ref _ret_val@0x38326f0) ) )) ) MAD TEMP[95], STATE[22].zzzz, TEMP[93].xxxx, TEMP[94]; 116: (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x38326f0) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x38326f0) (var_ref _ret_val@0x38326f0) ) )) ) ) RCP TEMP[96].x, TEMP[95].xxxx; 117: RCP TEMP[96].y, TEMP[95].yyyy; 118: RCP TEMP[96].z, TEMP[95].zzzz; 119: RCP TEMP[96].w, TEMP[95].wwww; 120: (assign (constant bool (1)) (xyzw) (var_ref att@0x364e410) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x38326f0) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x38326f0) (var_ref _ret_val@0x38326f0) ) )) ) ) ) MOV TEMP[97], TEMP[96]; 121: (expression float rcp (var_ref _ret_val@0x38326f0) ) RCP TEMP[98].x, TEMP[92].xxxx; 122: (expression vec3 * (var_ref assignment_tmp@0x3646770) (expression float rcp (var_ref _ret_val@0x38326f0) ) ) MUL TEMP[99].xyz, TEMP[89].xyzz, TEMP[98].xxxx; 123: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x31a7010) (expression vec3 * (var_ref assignment_tmp@0x3646770) (expression float rcp (var_ref _ret_val@0x38326f0) ) ) ) MOV TEMP[100].xyz, TEMP[99].xyzz; 124: (expression vec3 + (var_ref assignment_tmp@0x31a7010) (expression vec3 neg (var_ref _ret_val@0x3735800) ) ) ADD TEMP[102].xyz, TEMP[100].xyzz, TEMP[12].-x-y-z-z; 125: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x319a820) (expression vec3 + (var_ref assignment_tmp@0x31a7010) (expression vec3 neg (var_ref _ret_val@0x3735800) ) ) ) MOV TEMP[103].xyz, TEMP[102].xyzz; 126: (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x31a7010) ) DP3 TEMP[104].x, TEMP[20].xyzz, TEMP[100].xyzz; 127: (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x31a7010) ) (constant float (0.000000)) ) MAX TEMP[105].x, TEMP[104].xxxx, CONST[18].zzzz; 128: (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x31a7010) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) diffuse) ) MUL TEMP[106], TEMP[105].xxxx, STATE[23]; 129: (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x359e180) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x359e180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) ambient) ) ) MAD TEMP[107], STATE[25], STATE[26], STATE[27]; 130: (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x359e180) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x359e180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x31a7010) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) diffuse) ) ) MAD TEMP[108], TEMP[106], STATE[24], TEMP[107]; 131: (expression vec4 + (var_ref pc@0x3689c50) (expression vec4 * (var_ref att@0x364e410) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x359e180) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x359e180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x31a7010) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) diffuse) ) ) ) ) MAD TEMP[109], TEMP[97], TEMP[108], TEMP[43]; 132: (assign (constant bool (1)) (xyzw) (var_ref pc@0x3689c50) (expression vec4 + (var_ref pc@0x3689c50) (expression vec4 * (var_ref att@0x364e410) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x359e180) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x359e180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x31a7010) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) diffuse) ) ) ) ) ) MOV TEMP[43], TEMP[109]; 133: (expression vec4 * (var_ref att@0x364e410) (record_ref (var_ref gl_FrontMaterial@0x359e180) specular) ) MUL TEMP[110], TEMP[97], STATE[28]; 134: (expression vec4 * (expression vec4 * (var_ref att@0x364e410) (record_ref (var_ref gl_FrontMaterial@0x359e180) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) specular) ) MUL TEMP[111], TEMP[110], STATE[29]; 135: (expression float dot (var_ref assignment_tmp@0x319a820) (var_ref assignment_tmp@0x319a820) ) DP3 TEMP[112].x, TEMP[103].xyzz, TEMP[103].xyzz; 136: (expression float rsq (expression float dot (var_ref assignment_tmp@0x319a820) (var_ref assignment_tmp@0x319a820) ) ) RSQ TEMP[113].x, TEMP[112].xxxx; 137: (expression vec3 * (var_ref assignment_tmp@0x319a820) (expression float rsq (expression float dot (var_ref assignment_tmp@0x319a820) (var_ref assignment_tmp@0x319a820) ) ) ) MUL TEMP[114].xyz, TEMP[103].xyzz, TEMP[113].xxxx; 138: (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x319a820) (expression float rsq (expression float dot (var_ref assignment_tmp@0x319a820) (var_ref assignment_tmp@0x319a820) ) ) ) ) DP3 TEMP[115].x, TEMP[20].xyzz, TEMP[114].xyzz; 139: (expression float max (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x319a820) (expression float rsq (expression float dot (var_ref assignment_tmp@0x319a820) (var_ref assignment_tmp@0x319a820) ) ) ) ) (constant float (0.000000)) ) MAX TEMP[116].x, TEMP[115].xxxx, CONST[18].zzzz; 140: (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x319a820) (expression float rsq (expression float dot (var_ref assignment_tmp@0x319a820) (var_ref assignment_tmp@0x319a820) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) shininess) ) POW TEMP[117].x, TEMP[116].xxxx, STATE[30].xxxx; 141: (expression vec4 + (var_ref sc@0x368c070) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x364e410) (record_ref (var_ref gl_FrontMaterial@0x359e180) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x319a820) (expression float rsq (expression float dot (var_ref assignment_tmp@0x319a820) (var_ref assignment_tmp@0x319a820) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) shininess) ) ) ) MAD TEMP[118], TEMP[111], TEMP[117].xxxx, TEMP[44]; 142: (assign (constant bool (1)) (xyzw) (var_ref sc@0x368c070) (expression vec4 + (var_ref sc@0x368c070) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x364e410) (record_ref (var_ref gl_FrontMaterial@0x359e180) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (1)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x319a820) (expression float rsq (expression float dot (var_ref assignment_tmp@0x319a820) (var_ref assignment_tmp@0x319a820) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) shininess) ) ) ) ) MOV TEMP[44], TEMP[118]; 143: (var_ref and_tmp@0x367fa60) ENDIF; 144: (expression bool != (array_ref (var_ref light_enabled@0x34e7750) (constant int (2)) ) (constant int (0)) ) SNE.C TEMP[119].x, UNIFORM[3].xxxx, CONST[18].zzzz; 145: IF (NE.xxxx); # (if false, goto 148); 146: (expression bool <= (constant int (2)) (var_ref max_light_enabled@0x34e78d0) ) SLE TEMP[120].x, CONST[18].xxxx, UNIFORM[0].xxxx; 147: (assign (constant bool (1)) (x) (var_ref and_tmp@0x31fe640) (expression bool <= (constant int (2)) (var_ref max_light_enabled@0x34e78d0) ) ) MOV TEMP[121], TEMP[120].xxxx; 148: (expression bool != (array_ref (var_ref light_enabled@0x34e7750) (constant int (2)) ) (constant int (0)) ) ELSE; # (goto 150) 149: (assign (constant bool (1)) (x) (var_ref and_tmp@0x31fe640) (constant bool (0)) ) MOV TEMP[121], CONST[18].zzzz; 150: (expression bool != (array_ref (var_ref light_enabled@0x34e7750) (constant int (2)) ) (constant int (0)) ) ENDIF; 151: (var_ref and_tmp@0x31fe640) MOV.C TEMP[122], TEMP[121].xxxx; 152: IF (NE.xxxx); # (if false, goto 191); 153: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x38923b0) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) position) )) MUL TEMP[123].xyz, TEMP[5].xyzz, STATE[21].wwww; 154: (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) position) )(swiz w (var_ref flattening_tmp@0x38923b0) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x38923b0) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) position) )) ) ) MAD TEMP[125], STATE[21].xyzz, TEMP[5].wwww, TEMP[123].-x-y-z-z; 155: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x3259c20) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) position) )(swiz w (var_ref flattening_tmp@0x38923b0) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x38923b0) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) position) )) ) ) ) MOV TEMP[126].xyz, TEMP[125].xyzz; 156: (expression float dot (var_ref assignment_tmp@0x3259c20) (var_ref assignment_tmp@0x3259c20) ) DP3 TEMP[127].x, TEMP[126].xyzz, TEMP[126].xyzz; 157: (expression float sqrt (expression float dot (var_ref assignment_tmp@0x3259c20) (var_ref assignment_tmp@0x3259c20) ) ) RSQ TEMP[128].x, TEMP[127].xxxx; 158: MUL TEMP[128].x, TEMP[128].xxxx, TEMP[127].xxxx; 159: CMP TEMP[128].x, TEMP[127].-x-x-x-x, TEMP[128].xxxx, CONST[18].zzzz; 160: (assign (constant bool (1)) (x) (var_ref _ret_val@0x3669fc0) (expression float sqrt (expression float dot (var_ref assignment_tmp@0x3259c20) (var_ref assignment_tmp@0x3259c20) ) ) ) MOV TEMP[129], TEMP[128].xxxx; 161: (expression float * (var_ref _ret_val@0x3669fc0) (var_ref _ret_val@0x3669fc0) ) MUL TEMP[130].x, TEMP[129].xxxx, TEMP[129].xxxx; 162: (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x3669fc0) )) ) MAD TEMP[131], STATE[22].yyyy, TEMP[129].xxxx, STATE[22].xxxx; 163: (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x3669fc0) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x3669fc0) (var_ref _ret_val@0x3669fc0) ) )) ) MAD TEMP[132], STATE[22].zzzz, TEMP[130].xxxx, TEMP[131]; 164: (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x3669fc0) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x3669fc0) (var_ref _ret_val@0x3669fc0) ) )) ) ) RCP TEMP[133].x, TEMP[132].xxxx; 165: RCP TEMP[133].y, TEMP[132].yyyy; 166: RCP TEMP[133].z, TEMP[132].zzzz; 167: RCP TEMP[133].w, TEMP[132].wwww; 168: (assign (constant bool (1)) (xyzw) (var_ref att@0x3259ac0) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x3669fc0) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x3669fc0) (var_ref _ret_val@0x3669fc0) ) )) ) ) ) MOV TEMP[134], TEMP[133]; 169: (expression float rcp (var_ref _ret_val@0x3669fc0) ) RCP TEMP[135].x, TEMP[129].xxxx; 170: (expression vec3 * (var_ref assignment_tmp@0x3259c20) (expression float rcp (var_ref _ret_val@0x3669fc0) ) ) MUL TEMP[136].xyz, TEMP[126].xyzz, TEMP[135].xxxx; 171: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x38b2da0) (expression vec3 * (var_ref assignment_tmp@0x3259c20) (expression float rcp (var_ref _ret_val@0x3669fc0) ) ) ) MOV TEMP[137].xyz, TEMP[136].xyzz; 172: (expression vec3 + (var_ref assignment_tmp@0x38b2da0) (expression vec3 neg (var_ref _ret_val@0x3735800) ) ) ADD TEMP[139].xyz, TEMP[137].xyzz, TEMP[12].-x-y-z-z; 173: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x38b3030) (expression vec3 + (var_ref assignment_tmp@0x38b2da0) (expression vec3 neg (var_ref _ret_val@0x3735800) ) ) ) MOV TEMP[140].xyz, TEMP[139].xyzz; 174: (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x38b2da0) ) DP3 TEMP[141].x, TEMP[20].xyzz, TEMP[137].xyzz; 175: (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x38b2da0) ) (constant float (0.000000)) ) MAX TEMP[142].x, TEMP[141].xxxx, CONST[18].zzzz; 176: (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x38b2da0) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) diffuse) ) MUL TEMP[143], TEMP[142].xxxx, STATE[23]; 177: (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x359e180) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x359e180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) ambient) ) ) MAD TEMP[144], STATE[25], STATE[26], STATE[27]; 178: (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x359e180) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x359e180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x38b2da0) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) diffuse) ) ) MAD TEMP[145], TEMP[143], STATE[24], TEMP[144]; 179: (expression vec4 + (var_ref pc@0x3689c50) (expression vec4 * (var_ref att@0x3259ac0) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x359e180) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x359e180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x38b2da0) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) diffuse) ) ) ) ) MAD TEMP[146], TEMP[134], TEMP[145], TEMP[43]; 180: (assign (constant bool (1)) (xyzw) (var_ref pc@0x3689c50) (expression vec4 + (var_ref pc@0x3689c50) (expression vec4 * (var_ref att@0x3259ac0) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x359e180) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x359e180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x38b2da0) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) diffuse) ) ) ) ) ) MOV TEMP[43], TEMP[146]; 181: (expression vec4 * (var_ref att@0x3259ac0) (record_ref (var_ref gl_FrontMaterial@0x359e180) specular) ) MUL TEMP[147], TEMP[134], STATE[28]; 182: (expression vec4 * (expression vec4 * (var_ref att@0x3259ac0) (record_ref (var_ref gl_FrontMaterial@0x359e180) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) specular) ) MUL TEMP[148], TEMP[147], STATE[29]; 183: (expression float dot (var_ref assignment_tmp@0x38b3030) (var_ref assignment_tmp@0x38b3030) ) DP3 TEMP[149].x, TEMP[140].xyzz, TEMP[140].xyzz; 184: (expression float rsq (expression float dot (var_ref assignment_tmp@0x38b3030) (var_ref assignment_tmp@0x38b3030) ) ) RSQ TEMP[150].x, TEMP[149].xxxx; 185: (expression vec3 * (var_ref assignment_tmp@0x38b3030) (expression float rsq (expression float dot (var_ref assignment_tmp@0x38b3030) (var_ref assignment_tmp@0x38b3030) ) ) ) MUL TEMP[151].xyz, TEMP[140].xyzz, TEMP[150].xxxx; 186: (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x38b3030) (expression float rsq (expression float dot (var_ref assignment_tmp@0x38b3030) (var_ref assignment_tmp@0x38b3030) ) ) ) ) DP3 TEMP[152].x, TEMP[20].xyzz, TEMP[151].xyzz; 187: (expression float max (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x38b3030) (expression float rsq (expression float dot (var_ref assignment_tmp@0x38b3030) (var_ref assignment_tmp@0x38b3030) ) ) ) ) (constant float (0.000000)) ) MAX TEMP[153].x, TEMP[152].xxxx, CONST[18].zzzz; 188: (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x38b3030) (expression float rsq (expression float dot (var_ref assignment_tmp@0x38b3030) (var_ref assignment_tmp@0x38b3030) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) shininess) ) POW TEMP[154].x, TEMP[153].xxxx, STATE[30].xxxx; 189: (expression vec4 + (var_ref sc@0x368c070) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x3259ac0) (record_ref (var_ref gl_FrontMaterial@0x359e180) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x38b3030) (expression float rsq (expression float dot (var_ref assignment_tmp@0x38b3030) (var_ref assignment_tmp@0x38b3030) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) shininess) ) ) ) MAD TEMP[155], TEMP[148], TEMP[154].xxxx, TEMP[44]; 190: (assign (constant bool (1)) (xyzw) (var_ref sc@0x368c070) (expression vec4 + (var_ref sc@0x368c070) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x3259ac0) (record_ref (var_ref gl_FrontMaterial@0x359e180) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (2)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x38b3030) (expression float rsq (expression float dot (var_ref assignment_tmp@0x38b3030) (var_ref assignment_tmp@0x38b3030) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) shininess) ) ) ) ) MOV TEMP[44], TEMP[155]; 191: (var_ref and_tmp@0x31fe640) ENDIF; 192: (expression bool != (array_ref (var_ref light_enabled@0x34e7750) (constant int (3)) ) (constant int (0)) ) SNE.C TEMP[156].x, UNIFORM[4].xxxx, CONST[18].zzzz; 193: IF (NE.xxxx); # (if false, goto 196); 194: (expression bool <= (constant int (3)) (var_ref max_light_enabled@0x34e78d0) ) SLE TEMP[157].x, CONST[31].xxxx, UNIFORM[0].xxxx; 195: (assign (constant bool (1)) (x) (var_ref and_tmp@0x38b4c40) (expression bool <= (constant int (3)) (var_ref max_light_enabled@0x34e78d0) ) ) MOV TEMP[158], TEMP[157].xxxx; 196: (expression bool != (array_ref (var_ref light_enabled@0x34e7750) (constant int (3)) ) (constant int (0)) ) ELSE; # (goto 198) 197: (assign (constant bool (1)) (x) (var_ref and_tmp@0x38b4c40) (constant bool (0)) ) MOV TEMP[158], CONST[18].zzzz; 198: (expression bool != (array_ref (var_ref light_enabled@0x34e7750) (constant int (3)) ) (constant int (0)) ) ENDIF; 199: (var_ref and_tmp@0x38b4c40) MOV.C TEMP[159], TEMP[158].xxxx; 200: IF (NE.xxxx); # (if false, goto 239); 201: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x38923b0) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) position) )) MUL TEMP[160].xyz, TEMP[5].xyzz, STATE[21].wwww; 202: (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) position) )(swiz w (var_ref flattening_tmp@0x38923b0) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x38923b0) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) position) )) ) ) MAD TEMP[162], STATE[21].xyzz, TEMP[5].wwww, TEMP[160].-x-y-z-z; 203: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x38b54c0) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) position) )(swiz w (var_ref flattening_tmp@0x38923b0) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x38923b0) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) position) )) ) ) ) MOV TEMP[163].xyz, TEMP[162].xyzz; 204: (expression float dot (var_ref assignment_tmp@0x38b54c0) (var_ref assignment_tmp@0x38b54c0) ) DP3 TEMP[164].x, TEMP[163].xyzz, TEMP[163].xyzz; 205: (expression float sqrt (expression float dot (var_ref assignment_tmp@0x38b54c0) (var_ref assignment_tmp@0x38b54c0) ) ) RSQ TEMP[165].x, TEMP[164].xxxx; 206: MUL TEMP[165].x, TEMP[165].xxxx, TEMP[164].xxxx; 207: CMP TEMP[165].x, TEMP[164].-x-x-x-x, TEMP[165].xxxx, CONST[18].zzzz; 208: (assign (constant bool (1)) (x) (var_ref _ret_val@0x3851e90) (expression float sqrt (expression float dot (var_ref assignment_tmp@0x38b54c0) (var_ref assignment_tmp@0x38b54c0) ) ) ) MOV TEMP[166], TEMP[165].xxxx; 209: (expression float * (var_ref _ret_val@0x3851e90) (var_ref _ret_val@0x3851e90) ) MUL TEMP[167].x, TEMP[166].xxxx, TEMP[166].xxxx; 210: (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x3851e90) )) ) MAD TEMP[168], STATE[22].yyyy, TEMP[166].xxxx, STATE[22].xxxx; 211: (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x3851e90) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x3851e90) (var_ref _ret_val@0x3851e90) ) )) ) MAD TEMP[169], STATE[22].zzzz, TEMP[167].xxxx, TEMP[168]; 212: (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x3851e90) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x3851e90) (var_ref _ret_val@0x3851e90) ) )) ) ) RCP TEMP[170].x, TEMP[169].xxxx; 213: RCP TEMP[170].y, TEMP[169].yyyy; 214: RCP TEMP[170].z, TEMP[169].zzzz; 215: RCP TEMP[170].w, TEMP[169].wwww; 216: (assign (constant bool (1)) (xyzw) (var_ref att@0x38b5360) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x3851e90) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x3851e90) (var_ref _ret_val@0x3851e90) ) )) ) ) ) MOV TEMP[171], TEMP[170]; 217: (expression float rcp (var_ref _ret_val@0x3851e90) ) RCP TEMP[172].x, TEMP[166].xxxx; 218: (expression vec3 * (var_ref assignment_tmp@0x38b54c0) (expression float rcp (var_ref _ret_val@0x3851e90) ) ) MUL TEMP[173].xyz, TEMP[163].xyzz, TEMP[172].xxxx; 219: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x38b5f80) (expression vec3 * (var_ref assignment_tmp@0x38b54c0) (expression float rcp (var_ref _ret_val@0x3851e90) ) ) ) MOV TEMP[174].xyz, TEMP[173].xyzz; 220: (expression vec3 + (var_ref assignment_tmp@0x38b5f80) (expression vec3 neg (var_ref _ret_val@0x3735800) ) ) ADD TEMP[176].xyz, TEMP[174].xyzz, TEMP[12].-x-y-z-z; 221: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x38b6210) (expression vec3 + (var_ref assignment_tmp@0x38b5f80) (expression vec3 neg (var_ref _ret_val@0x3735800) ) ) ) MOV TEMP[177].xyz, TEMP[176].xyzz; 222: (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x38b5f80) ) DP3 TEMP[178].x, TEMP[20].xyzz, TEMP[174].xyzz; 223: (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x38b5f80) ) (constant float (0.000000)) ) MAX TEMP[179].x, TEMP[178].xxxx, CONST[18].zzzz; 224: (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x38b5f80) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) diffuse) ) MUL TEMP[180], TEMP[179].xxxx, STATE[23]; 225: (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x359e180) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x359e180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) ambient) ) ) MAD TEMP[181], STATE[25], STATE[26], STATE[27]; 226: (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x359e180) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x359e180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x38b5f80) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) diffuse) ) ) MAD TEMP[182], TEMP[180], STATE[24], TEMP[181]; 227: (expression vec4 + (var_ref pc@0x3689c50) (expression vec4 * (var_ref att@0x38b5360) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x359e180) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x359e180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x38b5f80) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) diffuse) ) ) ) ) MAD TEMP[183], TEMP[171], TEMP[182], TEMP[43]; 228: (assign (constant bool (1)) (xyzw) (var_ref pc@0x3689c50) (expression vec4 + (var_ref pc@0x3689c50) (expression vec4 * (var_ref att@0x38b5360) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x359e180) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x359e180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x38b5f80) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) diffuse) ) ) ) ) ) MOV TEMP[43], TEMP[183]; 229: (expression vec4 * (var_ref att@0x38b5360) (record_ref (var_ref gl_FrontMaterial@0x359e180) specular) ) MUL TEMP[184], TEMP[171], STATE[28]; 230: (expression vec4 * (expression vec4 * (var_ref att@0x38b5360) (record_ref (var_ref gl_FrontMaterial@0x359e180) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) specular) ) MUL TEMP[185], TEMP[184], STATE[29]; 231: (expression float dot (var_ref assignment_tmp@0x38b6210) (var_ref assignment_tmp@0x38b6210) ) DP3 TEMP[186].x, TEMP[177].xyzz, TEMP[177].xyzz; 232: (expression float rsq (expression float dot (var_ref assignment_tmp@0x38b6210) (var_ref assignment_tmp@0x38b6210) ) ) RSQ TEMP[187].x, TEMP[186].xxxx; 233: (expression vec3 * (var_ref assignment_tmp@0x38b6210) (expression float rsq (expression float dot (var_ref assignment_tmp@0x38b6210) (var_ref assignment_tmp@0x38b6210) ) ) ) MUL TEMP[188].xyz, TEMP[177].xyzz, TEMP[187].xxxx; 234: (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x38b6210) (expression float rsq (expression float dot (var_ref assignment_tmp@0x38b6210) (var_ref assignment_tmp@0x38b6210) ) ) ) ) DP3 TEMP[189].x, TEMP[20].xyzz, TEMP[188].xyzz; 235: (expression float max (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x38b6210) (expression float rsq (expression float dot (var_ref assignment_tmp@0x38b6210) (var_ref assignment_tmp@0x38b6210) ) ) ) ) (constant float (0.000000)) ) MAX TEMP[190].x, TEMP[189].xxxx, CONST[18].zzzz; 236: (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x38b6210) (expression float rsq (expression float dot (var_ref assignment_tmp@0x38b6210) (var_ref assignment_tmp@0x38b6210) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) shininess) ) POW TEMP[191].x, TEMP[190].xxxx, STATE[30].xxxx; 237: (expression vec4 + (var_ref sc@0x368c070) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x38b5360) (record_ref (var_ref gl_FrontMaterial@0x359e180) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x38b6210) (expression float rsq (expression float dot (var_ref assignment_tmp@0x38b6210) (var_ref assignment_tmp@0x38b6210) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) shininess) ) ) ) MAD TEMP[192], TEMP[185], TEMP[191].xxxx, TEMP[44]; 238: (assign (constant bool (1)) (xyzw) (var_ref sc@0x368c070) (expression vec4 + (var_ref sc@0x368c070) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x38b5360) (record_ref (var_ref gl_FrontMaterial@0x359e180) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (3)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x38b6210) (expression float rsq (expression float dot (var_ref assignment_tmp@0x38b6210) (var_ref assignment_tmp@0x38b6210) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) shininess) ) ) ) ) MOV TEMP[44], TEMP[192]; 239: (var_ref and_tmp@0x38b4c40) ENDIF; 240: (expression bool != (array_ref (var_ref light_enabled@0x34e7750) (constant int (4)) ) (constant int (0)) ) SNE.C TEMP[193].x, UNIFORM[5].xxxx, CONST[18].zzzz; 241: IF (NE.xxxx); # (if false, goto 244); 242: (expression bool <= (constant int (4)) (var_ref max_light_enabled@0x34e78d0) ) SLE TEMP[194].x, CONST[31].yyyy, UNIFORM[0].xxxx; 243: (assign (constant bool (1)) (x) (var_ref and_tmp@0x38b7e20) (expression bool <= (constant int (4)) (var_ref max_light_enabled@0x34e78d0) ) ) MOV TEMP[195], TEMP[194].xxxx; 244: (expression bool != (array_ref (var_ref light_enabled@0x34e7750) (constant int (4)) ) (constant int (0)) ) ELSE; # (goto 246) 245: (assign (constant bool (1)) (x) (var_ref and_tmp@0x38b7e20) (constant bool (0)) ) MOV TEMP[195], CONST[18].zzzz; 246: (expression bool != (array_ref (var_ref light_enabled@0x34e7750) (constant int (4)) ) (constant int (0)) ) ENDIF; 247: (var_ref and_tmp@0x38b7e20) MOV.C TEMP[196], TEMP[195].xxxx; 248: IF (NE.xxxx); # (if false, goto 287); 249: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x38923b0) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) position) )) MUL TEMP[197].xyz, TEMP[5].xyzz, STATE[21].wwww; 250: (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) position) )(swiz w (var_ref flattening_tmp@0x38923b0) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x38923b0) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) position) )) ) ) MAD TEMP[199], STATE[21].xyzz, TEMP[5].wwww, TEMP[197].-x-y-z-z; 251: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x38b86a0) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) position) )(swiz w (var_ref flattening_tmp@0x38923b0) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x38923b0) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) position) )) ) ) ) MOV TEMP[200].xyz, TEMP[199].xyzz; 252: (expression float dot (var_ref assignment_tmp@0x38b86a0) (var_ref assignment_tmp@0x38b86a0) ) DP3 TEMP[201].x, TEMP[200].xyzz, TEMP[200].xyzz; 253: (expression float sqrt (expression float dot (var_ref assignment_tmp@0x38b86a0) (var_ref assignment_tmp@0x38b86a0) ) ) RSQ TEMP[202].x, TEMP[201].xxxx; 254: MUL TEMP[202].x, TEMP[202].xxxx, TEMP[201].xxxx; 255: CMP TEMP[202].x, TEMP[201].-x-x-x-x, TEMP[202].xxxx, CONST[18].zzzz; 256: (assign (constant bool (1)) (x) (var_ref _ret_val@0x368f430) (expression float sqrt (expression float dot (var_ref assignment_tmp@0x38b86a0) (var_ref assignment_tmp@0x38b86a0) ) ) ) MOV TEMP[203], TEMP[202].xxxx; 257: (expression float * (var_ref _ret_val@0x368f430) (var_ref _ret_val@0x368f430) ) MUL TEMP[204].x, TEMP[203].xxxx, TEMP[203].xxxx; 258: (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x368f430) )) ) MAD TEMP[205], STATE[22].yyyy, TEMP[203].xxxx, STATE[22].xxxx; 259: (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x368f430) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x368f430) (var_ref _ret_val@0x368f430) ) )) ) MAD TEMP[206], STATE[22].zzzz, TEMP[204].xxxx, TEMP[205]; 260: (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x368f430) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x368f430) (var_ref _ret_val@0x368f430) ) )) ) ) RCP TEMP[207].x, TEMP[206].xxxx; 261: RCP TEMP[207].y, TEMP[206].yyyy; 262: RCP TEMP[207].z, TEMP[206].zzzz; 263: RCP TEMP[207].w, TEMP[206].wwww; 264: (assign (constant bool (1)) (xyzw) (var_ref att@0x38b8540) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x368f430) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x368f430) (var_ref _ret_val@0x368f430) ) )) ) ) ) MOV TEMP[208], TEMP[207]; 265: (expression float rcp (var_ref _ret_val@0x368f430) ) RCP TEMP[209].x, TEMP[203].xxxx; 266: (expression vec3 * (var_ref assignment_tmp@0x38b86a0) (expression float rcp (var_ref _ret_val@0x368f430) ) ) MUL TEMP[210].xyz, TEMP[200].xyzz, TEMP[209].xxxx; 267: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x38b9160) (expression vec3 * (var_ref assignment_tmp@0x38b86a0) (expression float rcp (var_ref _ret_val@0x368f430) ) ) ) MOV TEMP[211].xyz, TEMP[210].xyzz; 268: (expression vec3 + (var_ref assignment_tmp@0x38b9160) (expression vec3 neg (var_ref _ret_val@0x3735800) ) ) ADD TEMP[213].xyz, TEMP[211].xyzz, TEMP[12].-x-y-z-z; 269: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x38b93f0) (expression vec3 + (var_ref assignment_tmp@0x38b9160) (expression vec3 neg (var_ref _ret_val@0x3735800) ) ) ) MOV TEMP[214].xyz, TEMP[213].xyzz; 270: (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x38b9160) ) DP3 TEMP[215].x, TEMP[20].xyzz, TEMP[211].xyzz; 271: (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x38b9160) ) (constant float (0.000000)) ) MAX TEMP[216].x, TEMP[215].xxxx, CONST[18].zzzz; 272: (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x38b9160) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) diffuse) ) MUL TEMP[217], TEMP[216].xxxx, STATE[23]; 273: (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x359e180) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x359e180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) ambient) ) ) MAD TEMP[218], STATE[25], STATE[26], STATE[27]; 274: (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x359e180) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x359e180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x38b9160) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) diffuse) ) ) MAD TEMP[219], TEMP[217], STATE[24], TEMP[218]; 275: (expression vec4 + (var_ref pc@0x3689c50) (expression vec4 * (var_ref att@0x38b8540) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x359e180) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x359e180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x38b9160) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) diffuse) ) ) ) ) MAD TEMP[220], TEMP[208], TEMP[219], TEMP[43]; 276: (assign (constant bool (1)) (xyzw) (var_ref pc@0x3689c50) (expression vec4 + (var_ref pc@0x3689c50) (expression vec4 * (var_ref att@0x38b8540) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x359e180) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x359e180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x363c540) (var_ref assignment_tmp@0x38b9160) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) diffuse) ) ) ) ) ) MOV TEMP[43], TEMP[220]; 277: (expression vec4 * (var_ref att@0x38b8540) (record_ref (var_ref gl_FrontMaterial@0x359e180) specular) ) MUL TEMP[221], TEMP[208], STATE[28]; 278: (expression vec4 * (expression vec4 * (var_ref att@0x38b8540) (record_ref (var_ref gl_FrontMaterial@0x359e180) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) specular) ) MUL TEMP[222], TEMP[221], STATE[29]; 279: (expression float dot (var_ref assignment_tmp@0x38b93f0) (var_ref assignment_tmp@0x38b93f0) ) DP3 TEMP[223].x, TEMP[214].xyzz, TEMP[214].xyzz; 280: (expression float rsq (expression float dot (var_ref assignment_tmp@0x38b93f0) (var_ref assignment_tmp@0x38b93f0) ) ) RSQ TEMP[224].x, TEMP[223].xxxx; 281: (expression vec3 * (var_ref assignment_tmp@0x38b93f0) (expression float rsq (expression float dot (var_ref assignment_tmp@0x38b93f0) (var_ref assignment_tmp@0x38b93f0) ) ) ) MUL TEMP[225].xyz, TEMP[214].xyzz, TEMP[224].xxxx; 282: (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x38b93f0) (expression float rsq (expression float dot (var_ref assignment_tmp@0x38b93f0) (var_ref assignment_tmp@0x38b93f0) ) ) ) ) DP3 TEMP[226].x, TEMP[20].xyzz, TEMP[225].xyzz; 283: (expression float max (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x38b93f0) (expression float rsq (expression float dot (var_ref assignment_tmp@0x38b93f0) (var_ref assignment_tmp@0x38b93f0) ) ) ) ) (constant float (0.000000)) ) MAX TEMP[227].x, TEMP[226].xxxx, CONST[18].zzzz; 284: (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x38b93f0) (expression float rsq (expression float dot (var_ref assignment_tmp@0x38b93f0) (var_ref assignment_tmp@0x38b93f0) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) shininess) ) POW TEMP[228].x, TEMP[227].xxxx, STATE[30].xxxx; 285: (expression vec4 + (var_ref sc@0x368c070) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x38b8540) (record_ref (var_ref gl_FrontMaterial@0x359e180) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x38b93f0) (expression float rsq (expression float dot (var_ref assignment_tmp@0x38b93f0) (var_ref assignment_tmp@0x38b93f0) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) shininess) ) ) ) MAD TEMP[229], TEMP[222], TEMP[228].xxxx, TEMP[44]; 286: (assign (constant bool (1)) (xyzw) (var_ref sc@0x368c070) (expression vec4 + (var_ref sc@0x368c070) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x38b8540) (record_ref (var_ref gl_FrontMaterial@0x359e180) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x359ddb0) (constant int (4)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x363c540) (expression vec3 * (var_ref assignment_tmp@0x38b93f0) (expression float rsq (expression float dot (var_ref assignment_tmp@0x38b93f0) (var_ref assignment_tmp@0x38b93f0) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x359e180) shininess) ) ) ) ) MOV TEMP[44], TEMP[229]; 287: (var_ref and_tmp@0x38b7e20) ENDIF; 288: (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x3429d50) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x34a6080) )) MUL TEMP[230], STATE[32], INPUT[0].xxxx; 289: (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x3429d50) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x34a6080) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x3429d50) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x34a6080) )) ) MAD TEMP[231], STATE[33], INPUT[0].yyyy, TEMP[230]; 290: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x3429d50) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x34a6080) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x3429d50) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x34a6080) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x3429d50) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x34a6080) )) ) MAD TEMP[232], STATE[34], INPUT[0].zzzz, TEMP[231]; 291: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x3429d50) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x34a6080) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x3429d50) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x34a6080) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x3429d50) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x34a6080) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x3429d50) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x34a6080) )) ) MAD TEMP[233], STATE[35], INPUT[0].wwww, TEMP[232]; 292: (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x34e7500) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x3429d50) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x34a6080) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x3429d50) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x34a6080) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x3429d50) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x34a6080) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x3429d50) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x34a6080) )) ) ) MOV OUTPUT[0], TEMP[233]; 293: (assign (constant bool (1)) (xyzw) (var_ref gl_BackColor@0x342a7f0) (var_ref pc@0x3689c50) ) MOV OUTPUT[13], TEMP[43]; 294: (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0x346d600) (var_ref pc@0x3689c50) ) MOV OUTPUT[1], TEMP[43]; 295: (assign (constant bool (1)) (xyzw) (var_ref gl_FrontSecondaryColor@0x342a670) (var_ref sc@0x368c070) ) MOV OUTPUT[2], TEMP[44]; 296: END GLSL IR for linked fragment program 1: ( (declare (uniform ) vec4 damage@0x36a2860) (declare (uniform ) vec4 cloaking@0x38bc820) (declare (uniform ) sampler2D damageMap@0x38bca30) (declare (uniform ) sampler2D glowMap@0x38bcb90) (declare (uniform ) sampler2D specMap@0x38bcc40) (declare (uniform ) sampler2D envMap@0x38bccf0) (declare (uniform ) sampler2D diffuseMap@0x38bcda0) (declare (out ) vec4 gl_FragColor@0x38bd110) (declare (in ) vec4 gl_Color@0x38bd270) (declare (in ) vec4 gl_SecondaryColor@0x38bd320) (declare (in ) (array vec4 0) gl_TexCoord@0x38bfe70) (function main (signature void (parameters ) ( (declare () vec4 _ret_val@0x3774a10) (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x3774a10) (tex (var_ref damageMap@0x38bca30) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (0)) ) ) (0 0 0) 1 () )) (declare () float arg2@0x37e3a20) (assign (constant bool (1)) (x) (var_ref arg2@0x37e3a20) (swiz x (var_ref damage@0x36a2860) )) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x38bd110) (expression vec4 * (expression vec4 + (expression vec4 + (expression vec4 * (var_ref gl_Color@0x38bd270) (expression vec4 + (expression vec4 * (tex (var_ref diffuseMap@0x38bcda0) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (0)) ) ) (0 0 0) 1 () )(expression float + (constant float (1.000000)) (expression float neg (var_ref arg2@0x37e3a20) ) ) ) (expression vec4 * (var_ref _ret_val@0x3774a10) (var_ref arg2@0x37e3a20) ) ) ) (expression vec4 * (expression vec4 + (var_ref gl_SecondaryColor@0x38bd320) (tex (var_ref envMap@0x38bccf0) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (1)) ) ) (0 0 0) 1 () )) (expression vec4 * (tex (var_ref specMap@0x38bcc40) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (0)) ) ) (0 0 0) 1 () )(expression vec4 + (constant float (1.000000)) (expression vec4 neg (expression vec4 * (expression vec4 * (var_ref _ret_val@0x3774a10) (swiz x (var_ref damage@0x36a2860) )) (constant float (2.000000)) ) ) ) ) ) ) (tex (var_ref glowMap@0x38bcb90) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (0)) ) ) (0 0 0) 1 () )) (swiz xxxy (var_ref cloaking@0x38bc820) )) ) )) ) ) Mesa IR for linked fragment program 1: 0: (tex (var_ref damageMap@0x38bca30) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (0)) ) ) (0 0 0) 1 () ) MOV TEMP[1], INPUT[4].xyyy; 1: TEX TEMP[2], TEMP[1], texture[0], 2D; 2: (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x3774a10) (tex (var_ref damageMap@0x38bca30) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (0)) ) ) (0 0 0) 1 () )) MOV TEMP[3], TEMP[2]; 3: (assign (constant bool (1)) (x) (var_ref arg2@0x37e3a20) (swiz x (var_ref damage@0x36a2860) )) MOV TEMP[4], UNIFORM[0].xxxx; 4: (tex (var_ref envMap@0x38bccf0) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (1)) ) ) (0 0 0) 1 () ) MOV TEMP[5], INPUT[5].xyyy; 5: TEX TEMP[6], TEMP[5], texture[3], 2D; 6: (expression vec4 + (var_ref gl_SecondaryColor@0x38bd320) (tex (var_ref envMap@0x38bccf0) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (1)) ) ) (0 0 0) 1 () )) ADD TEMP[7], INPUT[2], TEMP[6]; 7: (tex (var_ref specMap@0x38bcc40) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (0)) ) ) (0 0 0) 1 () ) MOV TEMP[8], INPUT[4].xyyy; 8: TEX TEMP[9], TEMP[8], texture[2], 2D; 9: (expression vec4 * (var_ref _ret_val@0x3774a10) (swiz x (var_ref damage@0x36a2860) )) MUL TEMP[10], TEMP[3], UNIFORM[0].xxxx; 10: (expression vec4 * (expression vec4 * (var_ref _ret_val@0x3774a10) (swiz x (var_ref damage@0x36a2860) )) (constant float (2.000000)) ) MUL TEMP[11], TEMP[10], CONST[7].yyyy; 11: (expression vec4 + (constant float (1.000000)) (expression vec4 neg (expression vec4 * (expression vec4 * (var_ref _ret_val@0x3774a10) (swiz x (var_ref damage@0x36a2860) )) (constant float (2.000000)) ) ) ) ADD TEMP[13], CONST[7].xxxx, TEMP[11].-x-y-z-w; 12: (expression vec4 * (tex (var_ref specMap@0x38bcc40) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (0)) ) ) (0 0 0) 1 () )(expression vec4 + (constant float (1.000000)) (expression vec4 neg (expression vec4 * (expression vec4 * (var_ref _ret_val@0x3774a10) (swiz x (var_ref damage@0x36a2860) )) (constant float (2.000000)) ) ) ) ) MUL TEMP[14], TEMP[9], TEMP[13]; 13: (tex (var_ref diffuseMap@0x38bcda0) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (0)) ) ) (0 0 0) 1 () ) MOV TEMP[15], INPUT[4].xyyy; 14: TEX TEMP[16], TEMP[15], texture[4], 2D; 15: (expression float + (constant float (1.000000)) (expression float neg (var_ref arg2@0x37e3a20) ) ) ADD TEMP[18].x, CONST[7].xxxx, TEMP[4].-x-x-x-x; 16: (expression vec4 * (tex (var_ref diffuseMap@0x38bcda0) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (0)) ) ) (0 0 0) 1 () )(expression float + (constant float (1.000000)) (expression float neg (var_ref arg2@0x37e3a20) ) ) ) MUL TEMP[19], TEMP[16], TEMP[18].xxxx; 17: (expression vec4 + (expression vec4 * (tex (var_ref diffuseMap@0x38bcda0) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (0)) ) ) (0 0 0) 1 () )(expression float + (constant float (1.000000)) (expression float neg (var_ref arg2@0x37e3a20) ) ) ) (expression vec4 * (var_ref _ret_val@0x3774a10) (var_ref arg2@0x37e3a20) ) ) MAD TEMP[20], TEMP[3], TEMP[4].xxxx, TEMP[19]; 18: (expression vec4 * (var_ref gl_Color@0x38bd270) (expression vec4 + (expression vec4 * (tex (var_ref diffuseMap@0x38bcda0) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (0)) ) ) (0 0 0) 1 () )(expression float + (constant float (1.000000)) (expression float neg (var_ref arg2@0x37e3a20) ) ) ) (expression vec4 * (var_ref _ret_val@0x3774a10) (var_ref arg2@0x37e3a20) ) ) ) MUL TEMP[21], INPUT[1], TEMP[20]; 19: (expression vec4 + (expression vec4 * (var_ref gl_Color@0x38bd270) (expression vec4 + (expression vec4 * (tex (var_ref diffuseMap@0x38bcda0) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (0)) ) ) (0 0 0) 1 () )(expression float + (constant float (1.000000)) (expression float neg (var_ref arg2@0x37e3a20) ) ) ) (expression vec4 * (var_ref _ret_val@0x3774a10) (var_ref arg2@0x37e3a20) ) ) ) (expression vec4 * (expression vec4 + (var_ref gl_SecondaryColor@0x38bd320) (tex (var_ref envMap@0x38bccf0) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (1)) ) ) (0 0 0) 1 () )) (expression vec4 * (tex (var_ref specMap@0x38bcc40) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (0)) ) ) (0 0 0) 1 () )(expression vec4 + (constant float (1.000000)) (expression vec4 neg (expression vec4 * (expression vec4 * (var_ref _ret_val@0x3774a10) (swiz x (var_ref damage@0x36a2860) )) (constant float (2.000000)) ) ) ) ) ) ) MAD TEMP[22], TEMP[7], TEMP[14], TEMP[21]; 20: (tex (var_ref glowMap@0x38bcb90) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (0)) ) ) (0 0 0) 1 () ) MOV TEMP[23], INPUT[4].xyyy; 21: TEX TEMP[24], TEMP[23], texture[1], 2D; 22: (expression vec4 + (expression vec4 + (expression vec4 * (var_ref gl_Color@0x38bd270) (expression vec4 + (expression vec4 * (tex (var_ref diffuseMap@0x38bcda0) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (0)) ) ) (0 0 0) 1 () )(expression float + (constant float (1.000000)) (expression float neg (var_ref arg2@0x37e3a20) ) ) ) (expression vec4 * (var_ref _ret_val@0x3774a10) (var_ref arg2@0x37e3a20) ) ) ) (expression vec4 * (expression vec4 + (var_ref gl_SecondaryColor@0x38bd320) (tex (var_ref envMap@0x38bccf0) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (1)) ) ) (0 0 0) 1 () )) (expression vec4 * (tex (var_ref specMap@0x38bcc40) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (0)) ) ) (0 0 0) 1 () )(expression vec4 + (constant float (1.000000)) (expression vec4 neg (expression vec4 * (expression vec4 * (var_ref _ret_val@0x3774a10) (swiz x (var_ref damage@0x36a2860) )) (constant float (2.000000)) ) ) ) ) ) ) (tex (var_ref glowMap@0x38bcb90) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (0)) ) ) (0 0 0) 1 () )) ADD TEMP[25], TEMP[22], TEMP[24]; 23: (expression vec4 * (expression vec4 + (expression vec4 + (expression vec4 * (var_ref gl_Color@0x38bd270) (expression vec4 + (expression vec4 * (tex (var_ref diffuseMap@0x38bcda0) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (0)) ) ) (0 0 0) 1 () )(expression float + (constant float (1.000000)) (expression float neg (var_ref arg2@0x37e3a20) ) ) ) (expression vec4 * (var_ref _ret_val@0x3774a10) (var_ref arg2@0x37e3a20) ) ) ) (expression vec4 * (expression vec4 + (var_ref gl_SecondaryColor@0x38bd320) (tex (var_ref envMap@0x38bccf0) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (1)) ) ) (0 0 0) 1 () )) (expression vec4 * (tex (var_ref specMap@0x38bcc40) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (0)) ) ) (0 0 0) 1 () )(expression vec4 + (constant float (1.000000)) (expression vec4 neg (expression vec4 * (expression vec4 * (var_ref _ret_val@0x3774a10) (swiz x (var_ref damage@0x36a2860) )) (constant float (2.000000)) ) ) ) ) ) ) (tex (var_ref glowMap@0x38bcb90) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (0)) ) ) (0 0 0) 1 () )) (swiz xxxy (var_ref cloaking@0x38bc820) )) MUL TEMP[26], TEMP[25], UNIFORM[1].xxxy; 24: (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x38bd110) (expression vec4 * (expression vec4 + (expression vec4 + (expression vec4 * (var_ref gl_Color@0x38bd270) (expression vec4 + (expression vec4 * (tex (var_ref diffuseMap@0x38bcda0) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (0)) ) ) (0 0 0) 1 () )(expression float + (constant float (1.000000)) (expression float neg (var_ref arg2@0x37e3a20) ) ) ) (expression vec4 * (var_ref _ret_val@0x3774a10) (var_ref arg2@0x37e3a20) ) ) ) (expression vec4 * (expression vec4 + (var_ref gl_SecondaryColor@0x38bd320) (tex (var_ref envMap@0x38bccf0) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (1)) ) ) (0 0 0) 1 () )) (expression vec4 * (tex (var_ref specMap@0x38bcc40) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (0)) ) ) (0 0 0) 1 () )(expression vec4 + (constant float (1.000000)) (expression vec4 neg (expression vec4 * (expression vec4 * (var_ref _ret_val@0x3774a10) (swiz x (var_ref damage@0x36a2860) )) (constant float (2.000000)) ) ) ) ) ) ) (tex (var_ref glowMap@0x38bcb90) (swiz xy (array_ref (var_ref gl_TexCoord@0x38bfe70) (constant int (0)) ) ) (0 0 0) 1 () )) (swiz xxxy (var_ref cloaking@0x38bc820) )) ) MOV OUTPUT[1], TEMP[26]; 25: END GLSL source for shader 5: uniform int light_enabled[gl_MaxLights]; uniform vec4 light_size[gl_MaxLights]; uniform int max_light_enabled; uniform vec4 detail0Plane; uniform vec4 detail1Plane; /* varyings: * gl_TexCoord[...] * 0 - tex coord * 1 - ws normal * 2 - ws tangent * 3 - ws binormal * 4 - vertex-to-eye direction * 5 - vertex-to-light0@xyz, light_size@z * 6 - vertex-to-light1@xyz, light_size@z * 7 - untransformed vertex position **/ //float selfshadowStep(float VNdotL) { return step(0.0,VNdotL); } // fast but hard selfshadow function float selfshadowStep(float VNdotL) { return smoothstep(0.0,0.25,VNdotL); } // costly but soft and nice selfshadow function vec4 lightPosAndSize0(in vec4 vertex) { vec4 lpos = gl_LightSource[0].position; vec4 rv; rv.xyz = lpos.xyz - vertex.xyz*lpos.w; rv.w = light_size[0].z; return rv; } vec4 lightPosAndSize1(in vec4 vertex) { vec4 lpos = gl_LightSource[1].position; vec4 rv; rv.xyz = lpos.xyz - vertex.xyz*lpos.w; rv.w = light_size[1].z; return rv; } vec4 lightPosAndAttenuation2(in vec4 vertex) { vec4 lpos = gl_LightSource[2].position; vec4 rv; rv.xyz = lpos.xyz - vertex.xyz*lpos.w; float t = length(rv.xyz); rv.xyz *= (1.0/t); rv.w = 1.0 / dot( vec3(1,t,t*t), vec3(gl_LightSource[2].constantAttenuation, gl_LightSource[2].linearAttenuation, gl_LightSource[2].quadraticAttenuation) ); return rv; } vec4 lightPosAndAttenuation3(in vec4 vertex) { vec4 lpos = gl_LightSource[3].position; vec4 rv; rv.xyz = lpos.xyz - vertex.xyz*lpos.w; float t = length(rv.xyz); rv.xyz *= (1.0/t); rv.w = 1.0 / dot( vec3(1,t,t*t), vec3(gl_LightSource[3].constantAttenuation, gl_LightSource[3].linearAttenuation, gl_LightSource[3].quadraticAttenuation) ); return rv; } vec4 lightPosAndAttenuation4(in vec4 vertex) { vec4 lpos = gl_LightSource[4].position; vec4 rv; rv.xyz = lpos.xyz - vertex.xyz*lpos.w; float t = length(rv.xyz); rv.xyz *= (1.0/t); rv.w = 1.0 / dot( vec3(1,t,t*t), vec3(gl_LightSource[4].constantAttenuation, gl_LightSource[4].linearAttenuation, gl_LightSource[4].quadraticAttenuation) ); return rv; } vec4 lightPosAndAttenuation5(in vec4 vertex) { vec4 lpos = gl_LightSource[5].position; vec4 rv; rv.xyz = lpos.xyz - vertex.xyz*lpos.w; float t = length(rv.xyz); rv.xyz *= (1.0/t); rv.w = 1.0 / dot( vec3(1,t,t*t), vec3(gl_LightSource[5].constantAttenuation, gl_LightSource[5].linearAttenuation, gl_LightSource[5].quadraticAttenuation) ); return rv; } vec4 lightPosAndAttenuation6(in vec4 vertex) { vec4 lpos = gl_LightSource[6].position; vec4 rv; rv.xyz = lpos.xyz - vertex.xyz*lpos.w; float t = length(rv.xyz); rv.xyz *= (1.0/t); rv.w = 1.0 / dot( vec3(1,t,t*t), vec3(gl_LightSource[6].constantAttenuation, gl_LightSource[6].linearAttenuation, gl_LightSource[6].quadraticAttenuation) ); return rv; } vec4 lightPosAndAttenuation7(in vec4 vertex) { vec4 lpos = gl_LightSource[7].position; vec4 rv; rv.xyz = lpos.xyz - vertex.xyz*lpos.w; float t = length(rv.xyz); rv.xyz *= (1.0/t); rv.w = 1.0 / dot( vec3(1,t,t*t), vec3(gl_LightSource[7].constantAttenuation, gl_LightSource[7].linearAttenuation, gl_LightSource[7].quadraticAttenuation) ); return rv; } void lighting2(in vec4 vertex, in vec3 refl, in vec3 normal, inout vec4 pc, inout vec4 sc) { vec4 lpatt = lightPosAndAttenuation2(vertex); float NdotL = dot( lpatt.xyz, normal ); float RdotL = dot( lpatt.xyz, refl ); pc += lpatt.w*( gl_FrontMaterial.ambient * gl_LightSource[2].ambient + max(0.0, NdotL) * gl_LightSource[2].diffuse * gl_FrontMaterial.diffuse ); sc += lpatt.w*( pow( max(0.0, RdotL) , max(1.0,gl_FrontMaterial.shininess) ) * selfshadowStep(NdotL) * gl_LightSource[2].specular * gl_FrontMaterial.specular ); } void lighting3(in vec4 vertex, in vec3 refl, in vec3 normal, inout vec4 pc, inout vec4 sc) { vec4 lpatt = lightPosAndAttenuation3(vertex); float NdotL = dot( lpatt.xyz, normal ); float RdotL = dot( lpatt.xyz, refl ); pc += lpatt.w*( gl_FrontMaterial.ambient * gl_LightSource[3].ambient + max(0.0, NdotL) * gl_LightSource[3].diffuse * gl_FrontMaterial.diffuse ); sc += lpatt.w*( pow( max(0.0, RdotL) , max(1.0,gl_FrontMaterial.shininess) ) * selfshadowStep(NdotL) * gl_LightSource[3].specular * gl_FrontMaterial.specular ); } void lighting4(in vec4 vertex, in vec3 refl, in vec3 normal, inout vec4 pc, inout vec4 sc) { vec4 lpatt = lightPosAndAttenuation4(vertex); float NdotL = dot( lpatt.xyz, normal ); float RdotL = dot( lpatt.xyz, refl ); pc += lpatt.w*( gl_FrontMaterial.ambient * gl_LightSource[4].ambient + max(0.0, NdotL) * gl_LightSource[4].diffuse * gl_FrontMaterial.diffuse ); sc += lpatt.w*( pow( max(0.0, RdotL) , max(1.0,gl_FrontMaterial.shininess) ) * selfshadowStep(NdotL) * gl_LightSource[4].specular * gl_FrontMaterial.specular ); } void lighting5(in vec4 vertex, in vec3 refl, in vec3 normal, inout vec4 pc, inout vec4 sc) { vec4 lpatt = lightPosAndAttenuation5(vertex); float NdotL = dot( lpatt.xyz, normal ); float RdotL = dot( lpatt.xyz, refl ); pc += lpatt.w*( gl_FrontMaterial.ambient * gl_LightSource[5].ambient + max(0.0, NdotL) * gl_LightSource[5].diffuse * gl_FrontMaterial.diffuse ); sc += lpatt.w*( pow( max(0.0, RdotL) , max(1.0,gl_FrontMaterial.shininess) ) * selfshadowStep(NdotL) * gl_LightSource[5].specular * gl_FrontMaterial.specular ); } void main() { // Compute position, eye-to-object direction and normalized world-space normal vec4 position = gl_ModelViewMatrix * gl_Vertex; vec3 eyetopos = normalize(position.xyz); vec3 normal = normalize(gl_NormalMatrix * gl_Normal); vec3 tangent = normalize(gl_NormalMatrix * gl_MultiTexCoord2.xyz); vec3 binormal = cross(tangent, normal) * sign(gl_MultiTexCoord2.w); // Load varyings gl_TexCoord[0] = gl_MultiTexCoord0; gl_TexCoord[1].xyz = normal; gl_TexCoord[2].xyz = tangent; gl_TexCoord[3].xyz = binormal; gl_TexCoord[4].xyz = -eyetopos; gl_TexCoord[5] = lightPosAndSize0(position); gl_TexCoord[6] = lightPosAndSize1(position); gl_TexCoord[1].w = gl_TexCoord[2].w = gl_TexCoord[3].w = gl_TexCoord[4].w = 0.0; gl_TexCoord[7] = position; // set primary color to the emissive material properties vec4 pc = gl_FrontMaterial.emission; vec4 sc = vec4(0.0); vec3 refl = reflect( eyetopos, normal ); if (max_light_enabled >= 2) { if (light_enabled[2] != 0) lighting2(position, refl, normal, pc, sc); if (light_enabled[3] != 0) lighting3(position, refl, normal, pc, sc); if (light_enabled[4] != 0) lighting4(position, refl, normal, pc, sc); if (light_enabled[5] != 0) lighting5(position, refl, normal, pc, sc); } // Need this instead of ftransform() for invariance gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; gl_FrontColor = gl_BackColor = pc; gl_FrontSecondaryColor = gl_BackSecondaryColor = sc; } GLSL IR for shader 5: ( (declare (uniform ) vec4 detail1Plane@0x3226130) (declare (uniform ) vec4 detail0Plane@0x3225f00) (declare (uniform ) int max_light_enabled@0x3720540) (declare (uniform ) (array vec4 8) light_size@0x3720310) (declare (uniform ) (array int 8) light_enabled@0x346bbf0) (declare (out ) vec4 gl_Position@0x33e99e0) (declare (out ) float gl_PointSize@0x35ae730) (declare (in ) vec4 gl_Vertex@0x34341a0) (declare (in ) vec3 gl_Normal@0x37775c0) (declare (in ) vec4 gl_Color@0x377ca50) (declare (in ) vec4 gl_SecondaryColor@0x378f750) (declare (in ) vec4 gl_MultiTexCoord0@0x3853590) (declare (in ) vec4 gl_MultiTexCoord1@0x3790c60) (declare (in ) vec4 gl_MultiTexCoord2@0x3790df0) (declare (in ) vec4 gl_MultiTexCoord3@0x3791ec0) (declare (in ) vec4 gl_MultiTexCoord4@0x3792090) (declare (in ) vec4 gl_MultiTexCoord5@0x3792360) (declare (in ) vec4 gl_MultiTexCoord6@0x3792530) (declare (in ) vec4 gl_MultiTexCoord7@0x37935c0) (declare (in ) float gl_FogCoord@0x3793790) (declare (out ) vec4 gl_ClipVertex@0x3793a60) (declare (out ) vec4 gl_FrontColor@0x3793c30) (declare (out ) vec4 gl_BackColor@0x3796460) (declare (out ) vec4 gl_FrontSecondaryColor@0x3796630) (declare (out ) vec4 gl_BackSecondaryColor@0x37977e0) (declare (out ) float gl_FogFragCoord@0x37979b0) (declare (uniform ) mat4 gl_ModelViewMatrix@0x3798b60) (declare (uniform ) mat4 gl_ProjectionMatrix@0x3798d30) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x3799ee0) (declare (uniform ) mat3 gl_NormalMatrix@0x379a020) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0x379c540) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0x379c680) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0x379c9e0) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0x379cb20) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0x379ee10) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0x379ef50) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0x379f2b0) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0x379f3f0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0x37a16e0) (declare (uniform ) float gl_NormalScale@0x37a18b0) (declare (uniform ) gl_LightModelParameters gl_LightModel@0x37a1b80) (declare () int gl_MaxLights@0x37a1d50) (declare () int gl_MaxClipPlanes@0x37a4090) (declare () int gl_MaxTextureUnits@0x37a4530) (declare () int gl_MaxTextureCoords@0x37a9080) (declare () int gl_MaxVertexAttribs@0x37a9520) (declare () int gl_MaxVertexUniformComponents@0x37a99c0) (declare () int gl_MaxVaryingFloats@0x37b1380) (declare () int gl_MaxVertexTextureImageUnits@0x37b1820) (declare () int gl_MaxCombinedTextureImageUnits@0x37b1cc0) (declare () int gl_MaxTextureImageUnits@0x37b9700) (declare () int gl_MaxFragmentUniformComponents@0x37b9ba0) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0x37ba040) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0x37c1a20) (declare (uniform ) (array vec4 6) gl_ClipPlane@0x37c1bf0) (declare (uniform ) gl_PointParameters gl_Point@0x37c1ec0) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x37c2090) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0x37c2360) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x37c2530) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x37d2080) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0x37d21c0) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0x37d3f40) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0x37d4110) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0x37d43e0) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0x37d45b0) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0x37d77b0) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0x37d7980) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0x37d9a90) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0x37d9c60) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0x37d9f30) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0x37da100) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0x37dd960) (declare (uniform ) gl_FogParameters gl_Fog@0x37ddb30) (declare (out ) (array vec4 0) gl_TexCoord@0x37df820) (declare () int gl_MaxDrawBuffers@0x37dfcc0) (function selfshadowStep (signature float (parameters (declare (in ) float VNdotL@0x385a450) ) ( (declare (temporary ) float smoothstep_retval@0x36fdc20) (assign (constant bool (1)) (x) (var_ref smoothstep_retval@0x36fdc20) (call smoothstep ((constant float (0.000000)) (constant float (0.250000)) (var_ref VNdotL@0x385a450) )) ) (return (var_ref smoothstep_retval@0x36fdc20) ) )) ) (function lightPosAndSize0 (signature vec4 (parameters (declare (in ) vec4 vertex@0x382d3c0) ) ( (declare () vec4 rv@0x38349f0) (declare (temporary ) vec4 assignment_tmp@0x3830ed0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x3830ed0) (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (0)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x38349f0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x3830ed0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x382d3c0) )(swiz w (var_ref assignment_tmp@0x3830ed0) )) ) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x38349f0) (swiz zzzz (array_ref (var_ref light_size@0x3720310) (constant int (0)) ) )) (return (var_ref rv@0x38349f0) ) )) ) (function lightPosAndSize1 (signature vec4 (parameters (declare (in ) vec4 vertex@0x3564ca0) ) ( (declare () vec4 rv@0x3365b10) (declare (temporary ) vec4 assignment_tmp@0x3364cc0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x3364cc0) (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (1)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x3365b10) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x3364cc0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x3564ca0) )(swiz w (var_ref assignment_tmp@0x3364cc0) )) ) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x3365b10) (swiz zzzz (array_ref (var_ref light_size@0x3720310) (constant int (1)) ) )) (return (var_ref rv@0x3365b10) ) )) ) (function lightPosAndAttenuation2 (signature vec4 (parameters (declare (in ) vec4 vertex@0x371b330) ) ( (declare () vec4 rv@0x356f990) (declare (temporary ) vec4 assignment_tmp@0x3567430) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x3567430) (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (2)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x356f990) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x3567430) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x371b330) )(swiz w (var_ref assignment_tmp@0x3567430) )) ) ) )) (declare (temporary ) float length_retval@0x3832400) (assign (constant bool (1)) (x) (var_ref length_retval@0x3832400) (call length ((swiz xyz (var_ref rv@0x356f990) ))) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x356f990) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x356f990) )(expression float rcp (var_ref length_retval@0x3832400) ) ) )) (declare (temporary ) vec3 vec_ctor@0x3700080) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x3700080) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x3700080) (swiz xxx (var_ref length_retval@0x3832400) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x3700080) (swiz xxx (expression float * (var_ref length_retval@0x3832400) (var_ref length_retval@0x3832400) ) )) (declare (temporary ) vec3 vec_ctor@0x31c39b0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x31c39b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (2)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x31c39b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (2)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x31c39b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (2)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x38612a0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x38612a0) (call dot ((var_ref vec_ctor@0x3700080) (var_ref vec_ctor@0x31c39b0) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x356f990) (swiz xxxx (expression float rcp (var_ref dot_retval@0x38612a0) ) )) (return (var_ref rv@0x356f990) ) )) ) (function lightPosAndAttenuation3 (signature vec4 (parameters (declare (in ) vec4 vertex@0x3214130) ) ( (declare () vec4 rv@0x3533ca0) (declare (temporary ) vec4 assignment_tmp@0x362dea0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x362dea0) (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (3)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x3533ca0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x362dea0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x3214130) )(swiz w (var_ref assignment_tmp@0x362dea0) )) ) ) )) (declare (temporary ) float length_retval@0x3211630) (assign (constant bool (1)) (x) (var_ref length_retval@0x3211630) (call length ((swiz xyz (var_ref rv@0x3533ca0) ))) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x3533ca0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x3533ca0) )(expression float rcp (var_ref length_retval@0x3211630) ) ) )) (declare (temporary ) vec3 vec_ctor@0x387ffb0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x387ffb0) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x387ffb0) (swiz xxx (var_ref length_retval@0x3211630) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x387ffb0) (swiz xxx (expression float * (var_ref length_retval@0x3211630) (var_ref length_retval@0x3211630) ) )) (declare (temporary ) vec3 vec_ctor@0x3881ea0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x3881ea0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (3)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x3881ea0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (3)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x3881ea0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (3)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x3835700) (assign (constant bool (1)) (x) (var_ref dot_retval@0x3835700) (call dot ((var_ref vec_ctor@0x387ffb0) (var_ref vec_ctor@0x3881ea0) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x3533ca0) (swiz xxxx (expression float rcp (var_ref dot_retval@0x3835700) ) )) (return (var_ref rv@0x3533ca0) ) )) ) (function lightPosAndAttenuation4 (signature vec4 (parameters (declare (in ) vec4 vertex@0x3210870) ) ( (declare () vec4 rv@0x35b0e20) (declare (temporary ) vec4 assignment_tmp@0x3225650) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x3225650) (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (4)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x35b0e20) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x3225650) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x3210870) )(swiz w (var_ref assignment_tmp@0x3225650) )) ) ) )) (declare (temporary ) float length_retval@0x3839b70) (assign (constant bool (1)) (x) (var_ref length_retval@0x3839b70) (call length ((swiz xyz (var_ref rv@0x35b0e20) ))) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x35b0e20) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x35b0e20) )(expression float rcp (var_ref length_retval@0x3839b70) ) ) )) (declare (temporary ) vec3 vec_ctor@0x3562b80) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x3562b80) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x3562b80) (swiz xxx (var_ref length_retval@0x3839b70) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x3562b80) (swiz xxx (expression float * (var_ref length_retval@0x3839b70) (var_ref length_retval@0x3839b70) ) )) (declare (temporary ) vec3 vec_ctor@0x354c470) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x354c470) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (4)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x354c470) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (4)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x354c470) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (4)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x383bfd0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x383bfd0) (call dot ((var_ref vec_ctor@0x3562b80) (var_ref vec_ctor@0x354c470) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x35b0e20) (swiz xxxx (expression float rcp (var_ref dot_retval@0x383bfd0) ) )) (return (var_ref rv@0x35b0e20) ) )) ) (function lightPosAndAttenuation5 (signature vec4 (parameters (declare (in ) vec4 vertex@0x3200320) ) ( (declare () vec4 rv@0x320c8f0) (declare (temporary ) vec4 assignment_tmp@0x320af90) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x320af90) (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (5)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x320c8f0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x320af90) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x3200320) )(swiz w (var_ref assignment_tmp@0x320af90) )) ) ) )) (declare (temporary ) float length_retval@0x3213200) (assign (constant bool (1)) (x) (var_ref length_retval@0x3213200) (call length ((swiz xyz (var_ref rv@0x320c8f0) ))) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x320c8f0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x320c8f0) )(expression float rcp (var_ref length_retval@0x3213200) ) ) )) (declare (temporary ) vec3 vec_ctor@0x31f6610) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x31f6610) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x31f6610) (swiz xxx (var_ref length_retval@0x3213200) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x31f6610) (swiz xxx (expression float * (var_ref length_retval@0x3213200) (var_ref length_retval@0x3213200) ) )) (declare (temporary ) vec3 vec_ctor@0x320de00) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x320de00) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (5)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x320de00) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (5)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x320de00) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (5)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x32151b0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x32151b0) (call dot ((var_ref vec_ctor@0x31f6610) (var_ref vec_ctor@0x320de00) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x320c8f0) (swiz xxxx (expression float rcp (var_ref dot_retval@0x32151b0) ) )) (return (var_ref rv@0x320c8f0) ) )) ) (function lightPosAndAttenuation6 (signature vec4 (parameters (declare (in ) vec4 vertex@0x3219a20) ) ( (declare () vec4 rv@0x3224190) (declare (temporary ) vec4 assignment_tmp@0x3221c70) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x3221c70) (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (6)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x3224190) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x3221c70) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x3219a20) )(swiz w (var_ref assignment_tmp@0x3221c70) )) ) ) )) (declare (temporary ) float length_retval@0x35af5b0) (assign (constant bool (1)) (x) (var_ref length_retval@0x35af5b0) (call length ((swiz xyz (var_ref rv@0x3224190) ))) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x3224190) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x3224190) )(expression float rcp (var_ref length_retval@0x35af5b0) ) ) )) (declare (temporary ) vec3 vec_ctor@0x37589c0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x37589c0) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x37589c0) (swiz xxx (var_ref length_retval@0x35af5b0) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x37589c0) (swiz xxx (expression float * (var_ref length_retval@0x35af5b0) (var_ref length_retval@0x35af5b0) ) )) (declare (temporary ) vec3 vec_ctor@0x32cef50) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x32cef50) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (6)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x32cef50) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (6)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x32cef50) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (6)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x35330d0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x35330d0) (call dot ((var_ref vec_ctor@0x37589c0) (var_ref vec_ctor@0x32cef50) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x3224190) (swiz xxxx (expression float rcp (var_ref dot_retval@0x35330d0) ) )) (return (var_ref rv@0x3224190) ) )) ) (function lightPosAndAttenuation7 (signature vec4 (parameters (declare (in ) vec4 vertex@0x35393f0) ) ( (declare () vec4 rv@0x3888890) (declare (temporary ) vec4 assignment_tmp@0x3540b30) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x3540b30) (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (7)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x3888890) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x3540b30) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x35393f0) )(swiz w (var_ref assignment_tmp@0x3540b30) )) ) ) )) (declare (temporary ) float length_retval@0x3392e00) (assign (constant bool (1)) (x) (var_ref length_retval@0x3392e00) (call length ((swiz xyz (var_ref rv@0x3888890) ))) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x3888890) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x3888890) )(expression float rcp (var_ref length_retval@0x3392e00) ) ) )) (declare (temporary ) vec3 vec_ctor@0x32ccde0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x32ccde0) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x32ccde0) (swiz xxx (var_ref length_retval@0x3392e00) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x32ccde0) (swiz xxx (expression float * (var_ref length_retval@0x3392e00) (var_ref length_retval@0x3392e00) ) )) (declare (temporary ) vec3 vec_ctor@0x385c160) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x385c160) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (7)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x385c160) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (7)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x385c160) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (7)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x325a800) (assign (constant bool (1)) (x) (var_ref dot_retval@0x325a800) (call dot ((var_ref vec_ctor@0x32ccde0) (var_ref vec_ctor@0x385c160) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x3888890) (swiz xxxx (expression float rcp (var_ref dot_retval@0x325a800) ) )) (return (var_ref rv@0x3888890) ) )) ) (function lighting2 (signature void (parameters (declare (in ) vec4 vertex@0x321ac30) (declare (in ) vec3 refl@0x321ace0) (declare (in ) vec3 normal@0x3576190) (declare (inout ) vec4 pc@0x3576240) (declare (inout ) vec4 sc@0x35762f0) ) ( (declare () float RdotL@0x353bd00) (declare () float NdotL@0x3537750) (declare () vec4 lpatt@0x362e630) (declare (temporary ) vec4 lightPosAndAttenuation2_retval@0x362e8a0) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation2_retval@0x362e8a0) (call lightPosAndAttenuation2 ((var_ref vertex@0x321ac30) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x362e630) (var_ref lightPosAndAttenuation2_retval@0x362e8a0) ) (declare (temporary ) float dot_retval@0x3537b50) (assign (constant bool (1)) (x) (var_ref dot_retval@0x3537b50) (call dot ((swiz xyz (var_ref lightPosAndAttenuation2_retval@0x362e8a0) )(var_ref normal@0x3576190) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x3537750) (var_ref dot_retval@0x3537b50) ) (declare (temporary ) float dot_retval@0x353dda0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x353dda0) (call dot ((swiz xyz (var_ref lpatt@0x362e630) )(var_ref refl@0x321ace0) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x353bd00) (var_ref dot_retval@0x353dda0) ) (declare (temporary ) float max_retval@0x35e9410) (assign (constant bool (1)) (x) (var_ref max_retval@0x35e9410) (call max ((constant float (0.000000)) (var_ref NdotL@0x3537750) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x3576240) (expression vec4 + (var_ref pc@0x3576240) (expression vec4 * (swiz w (var_ref lpatt@0x362e630) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x37c2090) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x35e9410) (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x37c2090) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x356d1b0) (assign (constant bool (1)) (x) (var_ref max_retval@0x356d1b0) (call max ((constant float (0.000000)) (var_ref RdotL@0x353bd00) )) ) (declare (temporary ) float max_retval@0x3718500) (assign (constant bool (1)) (x) (var_ref max_retval@0x3718500) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x37c2090) shininess) )) ) (declare (temporary ) float pow_retval@0x35f2030) (assign (constant bool (1)) (x) (var_ref pow_retval@0x35f2030) (call pow ((var_ref max_retval@0x356d1b0) (var_ref max_retval@0x3718500) )) ) (declare (temporary ) float selfshadowStep_retval@0x3397470) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x3397470) (call selfshadowStep ((var_ref NdotL@0x3537750) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x35762f0) (expression vec4 + (var_ref sc@0x35762f0) (expression vec4 * (swiz w (var_ref lpatt@0x362e630) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x35f2030) (var_ref selfshadowStep_retval@0x3397470) ) (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x37c2090) specular) ) ) ) ) (return) )) ) (function lighting3 (signature void (parameters (declare (in ) vec4 vertex@0x3859040) (declare (in ) vec3 refl@0x38590f0) (declare (in ) vec3 normal@0x38591a0) (declare (inout ) vec4 pc@0x3859250) (declare (inout ) vec4 sc@0x3859300) ) ( (declare () float RdotL@0x32cc170) (declare () float NdotL@0x31613a0) (declare () vec4 lpatt@0x32dc440) (declare (temporary ) vec4 lightPosAndAttenuation3_retval@0x37280a0) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation3_retval@0x37280a0) (call lightPosAndAttenuation3 ((var_ref vertex@0x3859040) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x32dc440) (var_ref lightPosAndAttenuation3_retval@0x37280a0) ) (declare (temporary ) float dot_retval@0x374a730) (assign (constant bool (1)) (x) (var_ref dot_retval@0x374a730) (call dot ((swiz xyz (var_ref lightPosAndAttenuation3_retval@0x37280a0) )(var_ref normal@0x38591a0) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x31613a0) (var_ref dot_retval@0x374a730) ) (declare (temporary ) float dot_retval@0x3217b60) (assign (constant bool (1)) (x) (var_ref dot_retval@0x3217b60) (call dot ((swiz xyz (var_ref lpatt@0x32dc440) )(var_ref refl@0x38590f0) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x32cc170) (var_ref dot_retval@0x3217b60) ) (declare (temporary ) float max_retval@0x335f210) (assign (constant bool (1)) (x) (var_ref max_retval@0x335f210) (call max ((constant float (0.000000)) (var_ref NdotL@0x31613a0) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x3859250) (expression vec4 + (var_ref pc@0x3859250) (expression vec4 * (swiz w (var_ref lpatt@0x32dc440) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x37c2090) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x335f210) (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x37c2090) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x38752f0) (assign (constant bool (1)) (x) (var_ref max_retval@0x38752f0) (call max ((constant float (0.000000)) (var_ref RdotL@0x32cc170) )) ) (declare (temporary ) float max_retval@0x37010b0) (assign (constant bool (1)) (x) (var_ref max_retval@0x37010b0) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x37c2090) shininess) )) ) (declare (temporary ) float pow_retval@0x3730f50) (assign (constant bool (1)) (x) (var_ref pow_retval@0x3730f50) (call pow ((var_ref max_retval@0x38752f0) (var_ref max_retval@0x37010b0) )) ) (declare (temporary ) float selfshadowStep_retval@0x31ef3b0) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x31ef3b0) (call selfshadowStep ((var_ref NdotL@0x31613a0) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x3859300) (expression vec4 + (var_ref sc@0x3859300) (expression vec4 * (swiz w (var_ref lpatt@0x32dc440) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x3730f50) (var_ref selfshadowStep_retval@0x31ef3b0) ) (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x37c2090) specular) ) ) ) ) (return) )) ) (function lighting4 (signature void (parameters (declare (in ) vec4 vertex@0x35fcf40) (declare (in ) vec3 refl@0x35fcff0) (declare (in ) vec3 normal@0x35fd0a0) (declare (inout ) vec4 pc@0x35fd150) (declare (inout ) vec4 sc@0x35fd200) ) ( (declare () float RdotL@0x35be3f0) (declare () float NdotL@0x35a0010) (declare () vec4 lpatt@0x349cd10) (declare (temporary ) vec4 lightPosAndAttenuation4_retval@0x35a7460) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation4_retval@0x35a7460) (call lightPosAndAttenuation4 ((var_ref vertex@0x35fcf40) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x349cd10) (var_ref lightPosAndAttenuation4_retval@0x35a7460) ) (declare (temporary ) float dot_retval@0x339bec0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x339bec0) (call dot ((swiz xyz (var_ref lightPosAndAttenuation4_retval@0x35a7460) )(var_ref normal@0x35fd0a0) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x35a0010) (var_ref dot_retval@0x339bec0) ) (declare (temporary ) float dot_retval@0x36e51f0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x36e51f0) (call dot ((swiz xyz (var_ref lpatt@0x349cd10) )(var_ref refl@0x35fcff0) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x35be3f0) (var_ref dot_retval@0x36e51f0) ) (declare (temporary ) float max_retval@0x3726160) (assign (constant bool (1)) (x) (var_ref max_retval@0x3726160) (call max ((constant float (0.000000)) (var_ref NdotL@0x35a0010) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x35fd150) (expression vec4 + (var_ref pc@0x35fd150) (expression vec4 * (swiz w (var_ref lpatt@0x349cd10) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x37c2090) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x3726160) (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x37c2090) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x34e0ee0) (assign (constant bool (1)) (x) (var_ref max_retval@0x34e0ee0) (call max ((constant float (0.000000)) (var_ref RdotL@0x35be3f0) )) ) (declare (temporary ) float max_retval@0x37362e0) (assign (constant bool (1)) (x) (var_ref max_retval@0x37362e0) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x37c2090) shininess) )) ) (declare (temporary ) float pow_retval@0x37366d0) (assign (constant bool (1)) (x) (var_ref pow_retval@0x37366d0) (call pow ((var_ref max_retval@0x34e0ee0) (var_ref max_retval@0x37362e0) )) ) (declare (temporary ) float selfshadowStep_retval@0x33e2aa0) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x33e2aa0) (call selfshadowStep ((var_ref NdotL@0x35a0010) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x35fd200) (expression vec4 + (var_ref sc@0x35fd200) (expression vec4 * (swiz w (var_ref lpatt@0x349cd10) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x37366d0) (var_ref selfshadowStep_retval@0x33e2aa0) ) (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x37c2090) specular) ) ) ) ) (return) )) ) (function lighting5 (signature void (parameters (declare (in ) vec4 vertex@0x3617e30) (declare (in ) vec3 refl@0x3617ee0) (declare (in ) vec3 normal@0x3617f90) (declare (inout ) vec4 pc@0x36180a0) (declare (inout ) vec4 sc@0x36181b0) ) ( (declare () float RdotL@0x31f89c0) (declare () float NdotL@0x387dee0) (declare () vec4 lpatt@0x3176ea0) (declare (temporary ) vec4 lightPosAndAttenuation5_retval@0x3856690) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation5_retval@0x3856690) (call lightPosAndAttenuation5 ((var_ref vertex@0x3617e30) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x3176ea0) (var_ref lightPosAndAttenuation5_retval@0x3856690) ) (declare (temporary ) float dot_retval@0x387e340) (assign (constant bool (1)) (x) (var_ref dot_retval@0x387e340) (call dot ((swiz xyz (var_ref lightPosAndAttenuation5_retval@0x3856690) )(var_ref normal@0x3617f90) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x387dee0) (var_ref dot_retval@0x387e340) ) (declare (temporary ) float dot_retval@0x31f8e20) (assign (constant bool (1)) (x) (var_ref dot_retval@0x31f8e20) (call dot ((swiz xyz (var_ref lpatt@0x3176ea0) )(var_ref refl@0x3617ee0) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x31f89c0) (var_ref dot_retval@0x31f8e20) ) (declare (temporary ) float max_retval@0x34a6b70) (assign (constant bool (1)) (x) (var_ref max_retval@0x34a6b70) (call max ((constant float (0.000000)) (var_ref NdotL@0x387dee0) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x36180a0) (expression vec4 + (var_ref pc@0x36180a0) (expression vec4 * (swiz w (var_ref lpatt@0x3176ea0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x37c2090) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (5)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x34a6b70) (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (5)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x37c2090) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x3600820) (assign (constant bool (1)) (x) (var_ref max_retval@0x3600820) (call max ((constant float (0.000000)) (var_ref RdotL@0x31f89c0) )) ) (declare (temporary ) float max_retval@0x35f5420) (assign (constant bool (1)) (x) (var_ref max_retval@0x35f5420) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x37c2090) shininess) )) ) (declare (temporary ) float pow_retval@0x33fd400) (assign (constant bool (1)) (x) (var_ref pow_retval@0x33fd400) (call pow ((var_ref max_retval@0x3600820) (var_ref max_retval@0x35f5420) )) ) (declare (temporary ) float selfshadowStep_retval@0x33fd880) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x33fd880) (call selfshadowStep ((var_ref NdotL@0x387dee0) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x36181b0) (expression vec4 + (var_ref sc@0x36181b0) (expression vec4 * (swiz w (var_ref lpatt@0x3176ea0) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x33fd400) (var_ref selfshadowStep_retval@0x33fd880) ) (record_ref (array_ref (var_ref gl_LightSource@0x37c2530) (constant int (5)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x37c2090) specular) ) ) ) ) (return) )) ) (function main (signature void (parameters ) ( (declare () vec3 refl@0x3616840) (declare () vec4 sc@0x31f4500) (declare () vec4 pc@0x32cd8d0) (declare () vec3 tangent@0x3557a00) (declare () vec3 normal@0x3569de0) (declare () vec3 eyetopos@0x34e63a0) (declare () vec4 position@0x37f5ad0) (declare (temporary ) vec4 assignment_tmp@0x34e5f20) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x34e5f20) (expression vec4 * (var_ref gl_ModelViewMatrix@0x3798b60) (var_ref gl_Vertex@0x34341a0) ) ) (assign (constant bool (1)) (xyzw) (var_ref position@0x37f5ad0) (var_ref assignment_tmp@0x34e5f20) ) (declare (temporary ) vec3 normalize_retval@0x35f9160) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x35f9160) (call normalize ((swiz xyz (var_ref assignment_tmp@0x34e5f20) ))) ) (assign (constant bool (1)) (xyz) (var_ref eyetopos@0x34e63a0) (var_ref normalize_retval@0x35f9160) ) (declare (temporary ) vec3 normalize_retval@0x33f6570) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x33f6570) (call normalize ((expression vec3 * (var_ref gl_NormalMatrix@0x379a020) (var_ref gl_Normal@0x37775c0) ) )) ) (assign (constant bool (1)) (xyz) (var_ref normal@0x3569de0) (var_ref normalize_retval@0x33f6570) ) (declare (temporary ) vec3 normalize_retval@0x386cb40) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x386cb40) (call normalize ((expression vec3 * (var_ref gl_NormalMatrix@0x379a020) (swiz xyz (var_ref gl_MultiTexCoord2@0x3790df0) )) )) ) (assign (constant bool (1)) (xyz) (var_ref tangent@0x3557a00) (var_ref normalize_retval@0x386cb40) ) (declare (temporary ) vec3 cross_retval@0x336a4a0) (assign (constant bool (1)) (xyz) (var_ref cross_retval@0x336a4a0) (call cross ((var_ref normalize_retval@0x386cb40) (var_ref normal@0x3569de0) )) ) (declare (temporary ) float sign_retval@0x336a9b0) (assign (constant bool (1)) (x) (var_ref sign_retval@0x336a9b0) (call sign ((swiz w (var_ref gl_MultiTexCoord2@0x3790df0) ))) ) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x37df820) (constant int (0)) ) (var_ref gl_MultiTexCoord0@0x3853590) ) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x37df820) (constant int (1)) ) (swiz xyz (var_ref normal@0x3569de0) )) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x37df820) (constant int (2)) ) (swiz xyz (var_ref tangent@0x3557a00) )) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x37df820) (constant int (3)) ) (swiz xyz (expression vec3 * (var_ref cross_retval@0x336a4a0) (var_ref sign_retval@0x336a9b0) ) )) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x37df820) (constant int (4)) ) (swiz xyz (expression vec3 neg (var_ref eyetopos@0x34e63a0) ) )) (declare (temporary ) vec4 lightPosAndSize0_retval@0x35aa4e0) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndSize0_retval@0x35aa4e0) (call lightPosAndSize0 ((var_ref position@0x37f5ad0) )) ) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x37df820) (constant int (5)) ) (var_ref lightPosAndSize0_retval@0x35aa4e0) ) (declare (temporary ) vec4 lightPosAndSize1_retval@0x38a5540) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndSize1_retval@0x38a5540) (call lightPosAndSize1 ((var_ref position@0x37f5ad0) )) ) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x37df820) (constant int (6)) ) (var_ref lightPosAndSize1_retval@0x38a5540) ) (assign (constant bool (1)) (w) (array_ref (var_ref gl_TexCoord@0x37df820) (constant int (4)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (w) (array_ref (var_ref gl_TexCoord@0x37df820) (constant int (3)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (w) (array_ref (var_ref gl_TexCoord@0x37df820) (constant int (2)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (w) (array_ref (var_ref gl_TexCoord@0x37df820) (constant int (1)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x37df820) (constant int (7)) ) (var_ref position@0x37f5ad0) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x32cd8d0) (record_ref (var_ref gl_FrontMaterial@0x37c2090) emission) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x31f4500) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (declare (temporary ) vec3 reflect_retval@0x3616c10) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x3616c10) (call reflect ((var_ref eyetopos@0x34e63a0) (var_ref normal@0x3569de0) )) ) (assign (constant bool (1)) (xyz) (var_ref refl@0x3616840) (var_ref reflect_retval@0x3616c10) ) (if (expression bool >= (var_ref max_light_enabled@0x3720540) (constant int (2)) ) ( (if (expression bool != (array_ref (var_ref light_enabled@0x346bbf0) (constant int (2)) ) (constant int (0)) ) ( (call lighting2 ((var_ref position@0x37f5ad0) (var_ref reflect_retval@0x3616c10) (var_ref normal@0x3569de0) (var_ref pc@0x32cd8d0) (var_ref sc@0x31f4500) )) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x346bbf0) (constant int (3)) ) (constant int (0)) ) ( (call lighting3 ((var_ref position@0x37f5ad0) (var_ref refl@0x3616840) (var_ref normal@0x3569de0) (var_ref pc@0x32cd8d0) (var_ref sc@0x31f4500) )) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x346bbf0) (constant int (4)) ) (constant int (0)) ) ( (call lighting4 ((var_ref position@0x37f5ad0) (var_ref refl@0x3616840) (var_ref normal@0x3569de0) (var_ref pc@0x32cd8d0) (var_ref sc@0x31f4500) )) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x346bbf0) (constant int (5)) ) (constant int (0)) ) ( (call lighting5 ((var_ref position@0x37f5ad0) (var_ref refl@0x3616840) (var_ref normal@0x3569de0) (var_ref pc@0x32cd8d0) (var_ref sc@0x31f4500) )) ) ()) ) ()) (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x33e99e0) (expression vec4 * (var_ref gl_ModelViewProjectionMatrix@0x3799ee0) (var_ref gl_Vertex@0x34341a0) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_BackColor@0x3796460) (var_ref pc@0x32cd8d0) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0x3793c30) (var_ref pc@0x32cd8d0) ) (assign (constant bool (1)) (xyzw) (var_ref gl_BackSecondaryColor@0x37977e0) (var_ref sc@0x31f4500) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontSecondaryColor@0x3796630) (var_ref sc@0x31f4500) ) )) ) ) GLSL source for shader 6: uniform int light_enabled[gl_MaxLights]; uniform int max_light_enabled; uniform sampler2D diffuseMap; uniform samplerCube envMap; uniform sampler2D specMap; uniform sampler2D glowMap; uniform sampler2D normalMap; uniform sampler2D damageMap; uniform sampler2D detail0Map; uniform sampler2D detail1Map; uniform vec4 cloaking; uniform vec4 damage; uniform vec4 envColor; // Normalmap types: #define CINEMUT_NM 1 #define RED_IN_ALPHA_NM 2 #define TRADITIONAL_NM 3 // Shininess sources #define AD_HOC_SHININESS 1 #define GLOSS_IN_SPEC_ALPHA 2 /**********************************/ // CUSTOMIZATION (EDITABLE) /**********************************/ #define SHININESS_FROM GLOSS_IN_SPEC_ALPHA #define NORMALMAP_TYPE CINEMUT_NM #define DEGAMMA_SPECULAR 1 #define DEGAMMA_GLOW_MAP 1 #define DEGAMMA_LIGHTS 1 #define DEGAMMA_ENVIRONMENT 1 #define SANITIZE 0 /**********************************/ /**********************************/ // DEBUGGING SWITCHES (EDITABLE) (all should be zero for normal operation) /**********************************/ // Light source switches: #define SUPRESS_LIGHTS 0 #define SUPRESS_ENVIRONMENT 0 #define SUPRESS_GLOWMAP 0 // Material switches: #define SUPRESS_DIFFUSE 0 #define USE_DIFF_AS_METAL 0 #define SUPRESS_SPECULAR 0 #define SUPRESS_DIELECTRIC 0 #define FORCE_FULL_REFLECT 0 #define SUPRESS_NORMALMAP 0 // Hack switches: #define SUPRESS_CORNER_TRIM 0 #define SHOW_FLAT_SHADED 0 #define SUPRESS_HI_Q_VNORM 0 /**********************************/ // SPECIALS: // Special showings for debugging (do not edit) #define SHOW_NO_SPECIAL 0 #define SHOW_MAT 1 #define SHOW_NORMAL 2 #define SHOW_TANGENTX 3 #define SHOW_TANGENTY 4 #define SHOW_TANGENTZ 5 #define SHOW_BINORMX 6 #define SHOW_BINORMY 7 #define SHOW_BINORMZ 8 #define SHOW_NOR_DOT_VIEW 9 #define SHOW_TAN_DOT_VIEW 10 #define SHOW_BIN_DOT_VIEW 11 #define SHOW_NOR_DOT_LIGHT0 12 #define SHOW_TAN_DOT_LIGHT0 13 #define SHOW_BIN_DOT_LIGHT0 14 #define SHOW_NOR_DOT_LIGHT1 15 #define SHOW_TAN_DOT_LIGHT1 16 #define SHOW_BIN_DOT_LIGHT1 17 #define SHOW_NOR_DOT_VNORM 18 #define SHOW_IS_PERIPHERY 19 #define SHOW_IS_NEAR_VERT 20 #define SHOW_IS_UGLY_CORNER 21 #define SHOW_MA_NO_CORNERS 22 #define SHOW_VNOR_DOT_FNOR 23 /**********************************/ // DEBUGGING SWITCHES (EDITABLE) // (set to SHOW_NO_SPECIAL for normal operation) /**********************************/ #define SHOW_SPECIAL SHOW_NO_SPECIAL /**********************************/ // CONSTANTS #define TWO_PI (6.2831853071795862) #define HALF_PI (1.5707963267948966) #define PI_OVER_3 (1.0471975511965976) vec3 matmul(vec3 tangent, vec3 binormal, vec3 normal,vec3 lightVec) { return normalize(vec3(dot(lightVec,tangent),dot(lightVec,binormal),dot(lightVec,normal))); } vec3 imatmul(vec3 tangent, vec3 binormal, vec3 normal,vec3 lightVec) { return normalize(lightVec.xxx*tangent+lightVec.yyy*binormal+lightVec.zzz*normal); } float bias(float f){ return f*0.5+0.5; } vec2 bias(vec2 f) { return f*0.5+vec2(0.5); } vec3 bias(vec3 f) { return f*0.5+vec3(0.5); } vec4 bias(vec4 f) { return f*0.5+vec4(0.5); } float expand(float f){ return f*2.0-1.0; } vec2 expand(vec2 f) { return f*2.0-vec2(1.0); } vec3 expand(vec3 f) { return f*2.0-vec3(1.0); } vec4 expand(vec4 f) { return f*2.0-vec4(1.0); } float lerp(float f, float a, float b){return (1.0-f)*a+f*b; } vec2 lerp(float f, vec2 a, vec2 b) { return (1.0-f)*a+f*b; } vec3 lerp(float f, vec3 a, vec3 b) { return (1.0-f)*a+f*b; } vec4 lerp(float f, vec4 a, vec4 b) { return (1.0-f)*a+f*b; } float saturate( in float a ){ return clamp( a, 0.0, 1.0 ); } vec2 saturate( in vec2 a ){ return clamp( a, vec2(0.0), vec2(1.0) ); } vec3 saturate( in vec3 a ){ return clamp( a, vec3(0.0), vec3(1.0) ); } vec4 saturate( in vec4 a ){ return clamp( a, vec4(0.0), vec4(1.0) ); } #if NORMALMAP_TYPE == CINEMUT_NM vec2 dUdV_first_decode( in vec4 nmfetch ) { return vec2( 0.3333*(nmfetch.r+nmfetch.g+nmfetch.b)-0.5, nmfetch.a-0.5 ); } vec3 dUdV_final_decode( vec2 blend_of_first_decode ) { return normalize( vec3( blend_of_first_decode, 0.25 ) ); } vec3 normalmap_decode(vec4 nm) { return dUdV_final_decode( dUdV_first_decode( nm ) ); } #endif #if NORMALMAP_TYPE == RED_IN_ALPHA_NM vec3 normalmap_decode(vec4 nm) { return normalize( vec3(nm.wy*vec2(2.0,2.0)-vec2(1.0,1.0),nm.z) ); } #endif #if NORMALMAP_TYPE == TRADITIONAL_NM vec3 normalmap_decode(vec4 nm) { return normalize( vec3(nm.xy*vec2(2.0,2.0)-vec2(1.0,1.0),nm.z) ); } #endif //GLOSS class void GLOSS_init( inout vec4 mat_gloss, in float gloss_in ) { //decrease resolution at high end of input range; --LOD 0 to LOD 1 difference is hardly noticeable //except on glossy AND very flat surfaces; whereas at the low end the resolution is more critical //See the forum posts indicate at the top of this file for the math derivation mat_gloss.x = 0.5 * ( gloss_in + gloss_in*gloss_in ); //relinearized input mat_gloss.y = 7.288828847 * ( 1.0 - mat_gloss.x ); //mip bias mat_gloss.z = PI_OVER_3 * pow( 2.5, (mat_gloss.y-8.0) ); //blur radius angle mat_gloss.w = TWO_PI * ( 1.0 - cos(mat_gloss.z) ); //blur solid angle } //private: float GLOSS_power( in float mat_gloss_sa, in float light_solid_angle ) //const { // shininess = ( 0.5 * pi / SolidAngle ) - 0.810660172 const float MAGIC_TERM = 0.810660172; return ( HALF_PI / (mat_gloss_sa + light_solid_angle) ) - MAGIC_TERM; } //public: #if SUPRESS_ENVIRONMENT == 0 //called GLOSS_... because it's part of the GLOSS class; but with no gloss for default vec3 GLOSS_env_reflection( in vec3 direction ) //const { //ENV MAP FETCH: vec3 result = textureCube( envMap, direction ).rgb; #if DEGAMMA_ENVIRONMENT return result * result; #else return result; #endif } #endif float GLOSS_phong_reflection( in float mat_gloss_sa, in float RdotL, in float light_solid_angle ) //const { float shininess = GLOSS_power( mat_gloss_sa, light_solid_angle ); //Below, multiplying by 3.621 would be correct; but the brightness is ridiculous in practice... //Well, no; correct only if we assume a chalk sphere and a chrome sphere throw the same total //ammount of light into your eye... return max( 0.0, pow( RdotL, shininess ) * shininess ); } float diffuse_soft_dot(in vec3 normal, in vec3 light, in float light_sa) { float NdotL = dot(normal, light); float normalized_sa = light_sa / TWO_PI; return (NdotL + normalized_sa) / (1.0 + normalized_sa); } //PER-LIGHT STUFF void lightingLight( in vec4 lightinfo, in vec3 normal, in vec3 vnormal, in vec3 reflection, in vec3 raw_light_col, in float mat_gloss_sa, inout vec3 light_acc, inout vec3 diffuse_acc, inout vec3 specular_acc) { vec3 light_pos = normalize(lightinfo.xyz); float light_sa = lightinfo.w; #if DEGAMMA_LIGHTS vec3 light_col = raw_light_col * raw_light_col; #else vec3 light_col = raw_light_col; #endif float VNdotLx4= saturate( 4.0 * diffuse_soft_dot(vnormal,light_pos,light_sa) ); float NdotL = clamp( diffuse_soft_dot(normal,light_pos,light_sa), 0.0, VNdotLx4 ); float RdotL = clamp( dot(reflection,light_pos), 0.0, VNdotLx4 ); light_acc += light_col; float phong = GLOSS_phong_reflection(mat_gloss_sa,RdotL,light_sa); specular_acc += ( phong * light_col ); diffuse_acc += ( NdotL * light_col ); } #define lighting(name, lightno_gl, lightno_tex) \ void name( \ in vec3 normal, in vec3 vnormal, in vec3 reflection, \ in float mat_gloss_sa, \ inout vec3 light_acc, inout vec3 diffuse_acc, inout vec3 specular_acc) \ { \ lightingLight( \ gl_TexCoord[lightno_tex], normal, vnormal, reflection, \ gl_LightSource[lightno_gl].diffuse.rgb, \ mat_gloss_sa, \ light_acc, diffuse_acc, specular_acc); \ } lighting(lighting0, 0, 5) lighting(lighting1, 1, 6) void main() { // Retreive texture coordinates vec2 tex_coord = gl_TexCoord[0].xy; // Retrieve vectors vec3 iNormal=gl_TexCoord[1].xyz; vec3 iTangent=gl_TexCoord[2].xyz; vec3 iBinormal=gl_TexCoord[3].xyz; vec3 vnormal=normalize(iNormal); //vec3 normal=imatmul(iTangent,iBinormal,iNormal,expand(texture2D(normalMap,tex_coord).yxz)*vec3(-1.0,1.0,1.0)); vec3 normal=imatmul(iTangent,iBinormal,iNormal,normalmap_decode(texture2D(normalMap,tex_coord))); // Other vectors vec3 eye = gl_TexCoord[4].xyz; // Sample textures vec4 damagecolor = texture2D(damageMap , tex_coord); vec4 diffcolor = texture2D(diffuseMap, tex_coord); vec4 speccolor = texture2D(specMap , tex_coord); vec4 glowcolor = texture2D(glowMap , tex_coord); //better apply damage lerps before de-gamma-ing diffcolor.rgb = lerp(damage.x, diffcolor, damagecolor).rgb; speccolor *= (1.0-damage.x); glowcolor.rgb *= (1.0-damage.x); //materials vec4 mtl_gloss; vec3 diff_col, mspec_col, glow_col; float alpha, UAO; //grab alpha channels alpha = diffcolor.a; UAO = glowcolor.a; //compute gloss-related stuff GLOSS_init( mtl_gloss, speccolor.a ); //de-gamma diff and spec diff_col = (diffcolor*diffcolor).rgb; #if DEGAMMA_SPECULAR mspec_col = (speccolor*speccolor).rgb; #else mspec_col = speccolor.rgb; #endif #if DEGAMMA_GLOW_MAP glow_col = (glowcolor*glowcolor).rgb; #else glow_col = glowcolor.rgb; #endif //reflection vec3 reflection = -reflect(eye,normal); // Init lighting accumulators vec3 light_acc = vec3(0.0); vec3 diffuse_acc = vec3(0.0); vec3 specular_acc = vec3(0.0); // Do lighting for every active light float mtl_gloss_sa = mtl_gloss.w; if (light_enabled[0] != 0) lighting0(normal, vnormal, reflection, mtl_gloss_sa, light_acc, diffuse_acc, specular_acc); if (light_enabled[1] != 0) lighting1(normal, vnormal, reflection, mtl_gloss_sa, light_acc, diffuse_acc, specular_acc); //Light in a lot of systems is just too dark. //Until the universe generator gets fixed, this hack fixes that: vec3 crank_factor = 3.0*normalize(light_acc)/light_acc; diffuse_acc *= crank_factor; specular_acc *= crank_factor; //Gather all incoming light: //NOTE: "Incoming" is a misnomer, really; what it means is that of all incoming light, these are the //portions expected to reflect specularly and/or diffusely, as per angle and shininess; --but not yet //modulated as per fresnel reflectivity or material colors. So I put them in quotes in the comments. //"Incoming specular": #if SUPRESS_ENVIRONMENT == 0 vec3 incoming_specular_light = GLOSS_env_reflection(reflection); #else vec3 incoming_specular_light = vec3(0.0); #endif #if SUPRESS_LIGHTS == 0 incoming_specular_light += specular_acc; #endif //"Incoming diffuse": #if SUPRESS_GLOWMAP == 0 vec3 incoming_diffuse_light = glow_col; #else vec3 incoming_diffuse_light = vec3(0.0); #endif #if SUPRESS_LIGHTS == 0 incoming_diffuse_light += diffuse_acc; #endif //Multiply and Add: vec3 final_reflected = incoming_specular_light * mspec_col * UAO; #if SUPRESS_DIFFUSE == 0 final_reflected += ( incoming_diffuse_light * diff_col ); #endif final_reflected *= UAO; #if 1 //temporarily final_reflected += glow_col; #endif gl_FragColor = vec4( sqrt(final_reflected), alpha ) * cloaking.rrrg; //Finitto! } GLSL IR for shader 6: ( (declare (uniform ) vec4 envColor@0x3897f60) (declare (uniform ) vec4 damage@0x3897d40) (declare (uniform ) vec4 cloaking@0x3897b10) (declare (uniform ) sampler2D detail1Map@0x3897900) (declare (uniform ) sampler2D detail0Map@0x38b1320) (declare (uniform ) sampler2D damageMap@0x38b10f0) (declare (uniform ) sampler2D normalMap@0x38b0ec0) (declare (uniform ) sampler2D glowMap@0x38b0ca0) (declare (uniform ) sampler2D specMap@0x38b0aa0) (declare (uniform ) samplerCube envMap@0x3316950) (declare (uniform ) sampler2D diffuseMap@0x3316720) (declare (uniform ) int max_light_enabled@0x33164f0) (declare (uniform ) (array int 8) light_enabled@0x33162c0) (declare (in ) vec4 gl_FragCoord@0x3226a80) (declare (in ) bool gl_FrontFacing@0x346a690) (declare (out ) vec4 gl_FragColor@0x321ffa0) (declare (out ) float gl_FragDepth@0x3857540) (declare (in ) vec4 gl_Color@0x385fcf0) (declare (in ) vec4 gl_SecondaryColor@0x3855700) (declare (in ) float gl_FogFragCoord@0x383b0c0) (declare (uniform ) mat4 gl_ModelViewMatrix@0x3221350) (declare (uniform ) mat4 gl_ProjectionMatrix@0x31f7540) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x33d1000) (declare (uniform ) mat3 gl_NormalMatrix@0x33d1120) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0x386c260) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0x386c380) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0x38677a0) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0x38678c0) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0x3865480) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0x38620a0) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0x38621e0) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0x385f420) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0x385c690) (declare (uniform ) float gl_NormalScale@0x385c7a0) (declare (uniform ) gl_LightModelParameters gl_LightModel@0x385bb70) (declare () int gl_MaxLights@0x3856f90) (declare () int gl_MaxClipPlanes@0x3855cb0) (declare () int gl_MaxTextureUnits@0x3853280) (declare () int gl_MaxTextureCoords@0x384eb40) (declare () int gl_MaxVertexAttribs@0x384db00) (declare () int gl_MaxVertexUniformComponents@0x3838330) (declare () int gl_MaxVaryingFloats@0x3837e00) (declare () int gl_MaxVertexTextureImageUnits@0x3831fc0) (declare () int gl_MaxCombinedTextureImageUnits@0x382fdd0) (declare () int gl_MaxTextureImageUnits@0x382e1d0) (declare () int gl_MaxFragmentUniformComponents@0x3406a00) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0x3372a40) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0x3622420) (declare (uniform ) (array vec4 6) gl_ClipPlane@0x3856ce0) (declare (uniform ) gl_PointParameters gl_Point@0x3343c20) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x3864f40) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0x3858aa0) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x386adc0) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x383bd70) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0x3465a70) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0x3773460) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0x3222100) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0x353cf30) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0x32cc5b0) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0x3853900) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0x3693250) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0x355fdd0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0x35395f0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0x35374a0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0x3533370) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0x3469a70) (declare (uniform ) gl_FogParameters gl_Fog@0x31d6870) (declare (in ) (array vec4 0) gl_TexCoord@0x3758db0) (declare () int gl_MaxDrawBuffers@0x373f5b0) (declare (out ) (array vec4 1) gl_FragData@0x3310a40) (function matmul (signature vec3 (parameters (declare (in ) vec3 tangent@0x3898190) (declare (in ) vec3 binormal@0x35a4370) (declare (in ) vec3 normal@0x35a4490) (declare (in ) vec3 lightVec@0x35a45a0) ) ( (declare (temporary ) float dot_retval@0x38aeda0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x38aeda0) (call dot ((var_ref lightVec@0x35a45a0) (var_ref tangent@0x3898190) )) ) (declare (temporary ) float dot_retval@0x38aefd0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x38aefd0) (call dot ((var_ref lightVec@0x35a45a0) (var_ref binormal@0x35a4370) )) ) (declare (temporary ) float dot_retval@0x38af2a0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x38af2a0) (call dot ((var_ref lightVec@0x35a45a0) (var_ref normal@0x35a4490) )) ) (declare (temporary ) vec3 vec_ctor@0x38af460) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x38af460) (swiz xxx (var_ref dot_retval@0x38aeda0) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x38af460) (swiz xxx (var_ref dot_retval@0x38aefd0) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x38af460) (swiz xxx (var_ref dot_retval@0x38af2a0) )) (declare (temporary ) vec3 normalize_retval@0x38a6df0) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x38a6df0) (call normalize ((var_ref vec_ctor@0x38af460) )) ) (return (var_ref normalize_retval@0x38a6df0) ) )) ) (function imatmul (signature vec3 (parameters (declare (in ) vec3 tangent@0x38a6fb0) (declare (in ) vec3 binormal@0x38a7060) (declare (in ) vec3 normal@0x38a7180) (declare (in ) vec3 lightVec@0x38a7290) ) ( (declare (temporary ) vec3 normalize_retval@0x3582870) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x3582870) (call normalize ((expression vec3 + (expression vec3 + (expression vec3 * (swiz xxx (var_ref lightVec@0x38a7290) )(var_ref tangent@0x38a6fb0) ) (expression vec3 * (swiz yyy (var_ref lightVec@0x38a7290) )(var_ref binormal@0x38a7060) ) ) (expression vec3 * (swiz zzz (var_ref lightVec@0x38a7290) )(var_ref normal@0x38a7180) ) ) )) ) (return (var_ref normalize_retval@0x3582870) ) )) ) (function bias (signature float (parameters (declare (in ) float f@0x3466b50) ) ( (return (expression float + (expression float * (var_ref f@0x3466b50) (constant float (0.500000)) ) (constant float (0.500000)) ) ) )) (signature vec2 (parameters (declare (in ) vec2 f@0x34673c0) ) ( (return (expression vec2 + (expression vec2 * (var_ref f@0x34673c0) (constant float (0.500000)) ) (constant vec2 (0.500000 0.500000)) ) ) )) (signature vec3 (parameters (declare (in ) vec3 f@0x32de3a0) ) ( (return (expression vec3 + (expression vec3 * (var_ref f@0x32de3a0) (constant float (0.500000)) ) (constant vec3 (0.500000 0.500000 0.500000)) ) ) )) (signature vec4 (parameters (declare (in ) vec4 f@0x32de680) ) ( (return (expression vec4 + (expression vec4 * (var_ref f@0x32de680) (constant float (0.500000)) ) (constant vec4 (0.500000 0.500000 0.500000 0.500000)) ) ) )) ) (function expand (signature float (parameters (declare (in ) float f@0x31cbf00) ) ( (return (expression float + (expression float * (var_ref f@0x31cbf00) (constant float (2.000000)) ) (constant float (-1.000000)) ) ) )) (signature vec2 (parameters (declare (in ) vec2 f@0x33eac10) ) ( (return (expression vec2 + (expression vec2 * (var_ref f@0x33eac10) (constant float (2.000000)) ) (constant vec2 (-1.000000 -1.000000)) ) ) )) (signature vec3 (parameters (declare (in ) vec3 f@0x33eb2c0) ) ( (return (expression vec3 + (expression vec3 * (var_ref f@0x33eb2c0) (constant float (2.000000)) ) (constant vec3 (-1.000000 -1.000000 -1.000000)) ) ) )) (signature vec4 (parameters (declare (in ) vec4 f@0x36ada70) ) ( (return (expression vec4 + (expression vec4 * (var_ref f@0x36ada70) (constant float (2.000000)) ) (constant vec4 (-1.000000 -1.000000 -1.000000 -1.000000)) ) ) )) ) (function lerp (signature float (parameters (declare (in ) float f@0x35f2620) (declare (in ) float a@0x35f2730) (declare (in ) float b@0x35f2840) ) ( (return (expression float + (expression float * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x35f2620) ) ) (var_ref a@0x35f2730) ) (expression float * (var_ref f@0x35f2620) (var_ref b@0x35f2840) ) ) ) )) (signature vec2 (parameters (declare (in ) float f@0x35a53f0) (declare (in ) vec2 a@0x35a5500) (declare (in ) vec2 b@0x35a5610) ) ( (return (expression vec2 + (expression vec2 * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x35a53f0) ) ) (var_ref a@0x35a5500) ) (expression vec2 * (var_ref f@0x35a53f0) (var_ref b@0x35a5610) ) ) ) )) (signature vec3 (parameters (declare (in ) float f@0x32234e0) (declare (in ) vec3 a@0x32235f0) (declare (in ) vec3 b@0x3223700) ) ( (return (expression vec3 + (expression vec3 * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x32234e0) ) ) (var_ref a@0x32235f0) ) (expression vec3 * (var_ref f@0x32234e0) (var_ref b@0x3223700) ) ) ) )) (signature vec4 (parameters (declare (in ) float f@0x36ad0b0) (declare (in ) vec4 a@0x36ad1c0) (declare (in ) vec4 b@0x36ad2d0) ) ( (return (expression vec4 + (expression vec4 * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x36ad0b0) ) ) (var_ref a@0x36ad1c0) ) (expression vec4 * (var_ref f@0x36ad0b0) (var_ref b@0x36ad2d0) ) ) ) )) ) (function saturate (signature float (parameters (declare (in ) float a@0x37e8ae0) ) ( (declare (temporary ) float clamp_retval@0x37f1df0) (assign (constant bool (1)) (x) (var_ref clamp_retval@0x37f1df0) (call clamp ((var_ref a@0x37e8ae0) (constant float (0.000000)) (constant float (1.000000)) )) ) (return (var_ref clamp_retval@0x37f1df0) ) )) (signature vec2 (parameters (declare (in ) vec2 a@0x37f20d0) ) ( (declare (temporary ) vec2 clamp_retval@0x35d9e70) (assign (constant bool (1)) (xy) (var_ref clamp_retval@0x35d9e70) (call clamp ((var_ref a@0x37f20d0) (constant vec2 (0.000000 0.000000)) (constant vec2 (1.000000 1.000000)) )) ) (return (var_ref clamp_retval@0x35d9e70) ) )) (signature vec3 (parameters (declare (in ) vec3 a@0x35da150) ) ( (declare (temporary ) vec3 clamp_retval@0x348e9d0) (assign (constant bool (1)) (xyz) (var_ref clamp_retval@0x348e9d0) (call clamp ((var_ref a@0x35da150) (constant vec3 (0.000000 0.000000 0.000000)) (constant vec3 (1.000000 1.000000 1.000000)) )) ) (return (var_ref clamp_retval@0x348e9d0) ) )) (signature vec4 (parameters (declare (in ) vec4 a@0x348ecb0) ) ( (declare (temporary ) vec4 clamp_retval@0x3471b30) (assign (constant bool (1)) (xyzw) (var_ref clamp_retval@0x3471b30) (call clamp ((var_ref a@0x348ecb0) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) (constant vec4 (1.000000 1.000000 1.000000 1.000000)) )) ) (return (var_ref clamp_retval@0x3471b30) ) )) ) (function dUdV_first_decode (signature vec2 (parameters (declare (in ) vec4 nmfetch@0x3471e10) ) ( (declare (temporary ) vec2 vec_ctor@0x35f2ea0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x35f2ea0) (swiz xx (expression float + (expression float * (constant float (0.333300)) (expression float + (expression float + (swiz x (var_ref nmfetch@0x3471e10) )(swiz y (var_ref nmfetch@0x3471e10) )) (swiz z (var_ref nmfetch@0x3471e10) )) ) (constant float (-0.500000)) ) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x35f2ea0) (swiz xx (expression float + (swiz w (var_ref nmfetch@0x3471e10) )(constant float (-0.500000)) ) )) (return (var_ref vec_ctor@0x35f2ea0) ) )) ) (function dUdV_final_decode (signature vec3 (parameters (declare (in ) vec2 blend_of_first_decode@0x3307ab0) ) ( (declare (temporary ) vec3 vec_ctor@0x35e7f50) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x35e7f50) (constant vec3 (0.000000 0.000000 0.250000)) ) (assign (constant bool (1)) (xy) (var_ref vec_ctor@0x35e7f50) (swiz xyx (var_ref blend_of_first_decode@0x3307ab0) )) (declare (temporary ) vec3 normalize_retval@0x35e85e0) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x35e85e0) (call normalize ((var_ref vec_ctor@0x35e7f50) )) ) (return (var_ref normalize_retval@0x35e85e0) ) )) ) (function normalmap_decode (signature vec3 (parameters (declare (in ) vec4 nm@0x35e8950) ) ( (declare (temporary ) vec2 dUdV_first_decode_retval@0x35fbea0) (assign (constant bool (1)) (xy) (var_ref dUdV_first_decode_retval@0x35fbea0) (call dUdV_first_decode ((var_ref nm@0x35e8950) )) ) (declare (temporary ) vec3 dUdV_final_decode_retval@0x35fc1b0) (assign (constant bool (1)) (xyz) (var_ref dUdV_final_decode_retval@0x35fc1b0) (call dUdV_final_decode ((var_ref dUdV_first_decode_retval@0x35fbea0) )) ) (return (var_ref dUdV_final_decode_retval@0x35fc1b0) ) )) ) (function GLOSS_init (signature void (parameters (declare (inout ) vec4 mat_gloss@0x35eab30) (declare (in ) float gloss_in@0x35eac50) ) ( (assign (constant bool (1)) (x) (var_ref mat_gloss@0x35eab30) (expression float * (constant float (0.500000)) (expression float + (var_ref gloss_in@0x35eac50) (expression float * (var_ref gloss_in@0x35eac50) (var_ref gloss_in@0x35eac50) ) ) ) ) (assign (constant bool (1)) (y) (var_ref mat_gloss@0x35eab30) (swiz xx (expression float * (constant float (7.288829)) (expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref mat_gloss@0x35eab30) )) ) ) )) (declare (temporary ) float pow_retval@0x35f6630) (assign (constant bool (1)) (x) (var_ref pow_retval@0x35f6630) (call pow ((constant float (2.500000)) (expression float + (swiz y (var_ref mat_gloss@0x35eab30) )(expression float neg (constant float (8.000000)) ) ) )) ) (assign (constant bool (1)) (z) (var_ref mat_gloss@0x35eab30) (swiz xxx (expression float * (constant float (1.047198)) (var_ref pow_retval@0x35f6630) ) )) (declare (temporary ) float cos_retval@0x33a5a80) (assign (constant bool (1)) (x) (var_ref cos_retval@0x33a5a80) (call cos ((swiz z (var_ref mat_gloss@0x35eab30) ))) ) (assign (constant bool (1)) (w) (var_ref mat_gloss@0x35eab30) (swiz xxxx (expression float * (constant float (6.283185)) (expression float + (constant float (1.000000)) (expression float neg (var_ref cos_retval@0x33a5a80) ) ) ) )) (return) )) ) (function GLOSS_power (signature float (parameters (declare (in ) float mat_gloss_sa@0x33986d0) (declare (in ) float light_solid_angle@0x33987f0) ) ( (return (expression float + (expression float / (constant float (1.570796)) (expression float + (var_ref mat_gloss_sa@0x33986d0) (var_ref light_solid_angle@0x33987f0) ) ) (constant float (-0.810660)) ) ) )) ) (function GLOSS_env_reflection (signature vec3 (parameters (declare (in ) vec3 direction@0x3333cd0) ) ( (declare (temporary ) vec4 textureCube_retval@0x33344e0) (assign (constant bool (1)) (xyzw) (var_ref textureCube_retval@0x33344e0) (call textureCube ((var_ref envMap@0x3316950) (var_ref direction@0x3333cd0) )) ) (declare (temporary ) vec3 assignment_tmp@0x339d2a0) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x339d2a0) (swiz xyz (var_ref textureCube_retval@0x33344e0) )) (return (expression vec3 * (var_ref assignment_tmp@0x339d2a0) (var_ref assignment_tmp@0x339d2a0) ) ) )) ) (function GLOSS_phong_reflection (signature float (parameters (declare (in ) float mat_gloss_sa@0x339da10) (declare (in ) float RdotL@0x35bf940) (declare (in ) float light_solid_angle@0x35bf9f0) ) ( (declare () float shininess@0x35c0000) (declare (temporary ) float GLOSS_power_retval@0x34b55d0) (assign (constant bool (1)) (x) (var_ref GLOSS_power_retval@0x34b55d0) (call GLOSS_power ((var_ref mat_gloss_sa@0x339da10) (var_ref light_solid_angle@0x35bf9f0) )) ) (assign (constant bool (1)) (x) (var_ref shininess@0x35c0000) (var_ref GLOSS_power_retval@0x34b55d0) ) (declare (temporary ) float pow_retval@0x35650f0) (assign (constant bool (1)) (x) (var_ref pow_retval@0x35650f0) (call pow ((var_ref RdotL@0x35bf940) (var_ref GLOSS_power_retval@0x34b55d0) )) ) (declare (temporary ) float max_retval@0x3565610) (assign (constant bool (1)) (x) (var_ref max_retval@0x3565610) (call max ((constant float (0.000000)) (expression float * (var_ref pow_retval@0x35650f0) (var_ref shininess@0x35c0000) ) )) ) (return (var_ref max_retval@0x3565610) ) )) ) (function diffuse_soft_dot (signature float (parameters (declare (in ) vec3 normal@0x3565980) (declare (in ) vec3 light@0x3565a30) (declare (in ) float light_sa@0x3565b40) ) ( (declare (temporary ) float dot_retval@0x3176350) (assign (constant bool (1)) (x) (var_ref dot_retval@0x3176350) (call dot ((var_ref normal@0x3565980) (var_ref light@0x3565a30) )) ) (declare (temporary ) float assignment_tmp@0x3164e20) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x3164e20) (expression float / (var_ref light_sa@0x3565b40) (constant float (6.283185)) ) ) (return (expression float / (expression float + (var_ref dot_retval@0x3176350) (var_ref assignment_tmp@0x3164e20) ) (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x3164e20) ) ) ) )) ) (function lightingLight (signature void (parameters (declare (in ) vec4 lightinfo@0x337e050) (declare (in ) vec3 normal@0x337e170) (declare (in ) vec3 vnormal@0x389e550) (declare (in ) vec3 reflection@0x389e660) (declare (in ) vec3 raw_light_col@0x389e780) (declare (in ) float mat_gloss_sa@0x389e8a0) (declare (inout ) vec3 light_acc@0x389e9c0) (declare (inout ) vec3 diffuse_acc@0x389eae0) (declare (inout ) vec3 specular_acc@0x389ec00) ) ( (declare () float NdotL@0x3332ff0) (declare () float VNdotLx4@0x3334b30) (declare () vec3 light_col@0x344ee00) (declare () float light_sa@0x344e680) (declare () vec3 light_pos@0x3491320) (declare (temporary ) vec3 normalize_retval@0x3491660) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x3491660) (call normalize ((swiz xyz (var_ref lightinfo@0x337e050) ))) ) (assign (constant bool (1)) (xyz) (var_ref light_pos@0x3491320) (var_ref normalize_retval@0x3491660) ) (declare (temporary ) float assignment_tmp@0x344e950) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x344e950) (swiz w (var_ref lightinfo@0x337e050) )) (assign (constant bool (1)) (x) (var_ref light_sa@0x344e680) (var_ref assignment_tmp@0x344e950) ) (assign (constant bool (1)) (xyz) (var_ref light_col@0x344ee00) (expression vec3 * (var_ref raw_light_col@0x389e780) (var_ref raw_light_col@0x389e780) ) ) (declare (temporary ) float diffuse_soft_dot_retval@0x3335080) (assign (constant bool (1)) (x) (var_ref diffuse_soft_dot_retval@0x3335080) (call diffuse_soft_dot ((var_ref vnormal@0x389e550) (var_ref normalize_retval@0x3491660) (var_ref assignment_tmp@0x344e950) )) ) (declare (temporary ) float saturate_retval@0x3332810) (assign (constant bool (1)) (x) (var_ref saturate_retval@0x3332810) (call saturate ((expression float * (constant float (4.000000)) (var_ref diffuse_soft_dot_retval@0x3335080) ) )) ) (assign (constant bool (1)) (x) (var_ref VNdotLx4@0x3334b30) (var_ref saturate_retval@0x3332810) ) (declare (temporary ) float diffuse_soft_dot_retval@0x33d5d20) (assign (constant bool (1)) (x) (var_ref diffuse_soft_dot_retval@0x33d5d20) (call diffuse_soft_dot ((var_ref normal@0x337e170) (var_ref light_pos@0x3491320) (var_ref light_sa@0x344e680) )) ) (declare (temporary ) float clamp_retval@0x33d6280) (assign (constant bool (1)) (x) (var_ref clamp_retval@0x33d6280) (call clamp ((var_ref diffuse_soft_dot_retval@0x33d5d20) (constant float (0.000000)) (var_ref VNdotLx4@0x3334b30) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x3332ff0) (var_ref clamp_retval@0x33d6280) ) (declare (temporary ) float dot_retval@0x34b9bd0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x34b9bd0) (call dot ((var_ref reflection@0x389e660) (var_ref light_pos@0x3491320) )) ) (declare (temporary ) float clamp_retval@0x340ae50) (assign (constant bool (1)) (x) (var_ref clamp_retval@0x340ae50) (call clamp ((var_ref dot_retval@0x34b9bd0) (constant float (0.000000)) (var_ref VNdotLx4@0x3334b30) )) ) (assign (constant bool (1)) (xyz) (var_ref light_acc@0x389e9c0) (expression vec3 + (var_ref light_acc@0x389e9c0) (var_ref light_col@0x344ee00) ) ) (declare (temporary ) float GLOSS_phong_reflection_retval@0x3561eb0) (assign (constant bool (1)) (x) (var_ref GLOSS_phong_reflection_retval@0x3561eb0) (call GLOSS_phong_reflection ((var_ref mat_gloss_sa@0x389e8a0) (var_ref clamp_retval@0x340ae50) (var_ref light_sa@0x344e680) )) ) (assign (constant bool (1)) (xyz) (var_ref specular_acc@0x389ec00) (expression vec3 + (var_ref specular_acc@0x389ec00) (expression vec3 * (var_ref GLOSS_phong_reflection_retval@0x3561eb0) (var_ref light_col@0x344ee00) ) ) ) (assign (constant bool (1)) (xyz) (var_ref diffuse_acc@0x389eae0) (expression vec3 + (var_ref diffuse_acc@0x389eae0) (expression vec3 * (var_ref NdotL@0x3332ff0) (var_ref light_col@0x344ee00) ) ) ) (return) )) ) (function lighting0 (signature void (parameters (declare (in ) vec3 normal@0x32ce5b0) (declare (in ) vec3 vnormal@0x32ce6c0) (declare (in ) vec3 reflection@0x32ce7d0) (declare (in ) float mat_gloss_sa@0x32ce8f0) (declare (inout ) vec3 light_acc@0x32cea10) (declare (inout ) vec3 diffuse_acc@0x32ceb30) (declare (inout ) vec3 specular_acc@0x32d7520) ) ( (call lightingLight ((array_ref (var_ref gl_TexCoord@0x3758db0) (constant int (5)) ) (var_ref normal@0x32ce5b0) (var_ref vnormal@0x32ce6c0) (var_ref reflection@0x32ce7d0) (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x386adc0) (constant int (0)) ) diffuse) )(var_ref mat_gloss_sa@0x32ce8f0) (var_ref light_acc@0x32cea10) (var_ref diffuse_acc@0x32ceb30) (var_ref specular_acc@0x32d7520) )) (return) )) ) (function lighting1 (signature void (parameters (declare (in ) vec3 normal@0x34d4710) (declare (in ) vec3 vnormal@0x34d4820) (declare (in ) vec3 reflection@0x34d4930) (declare (in ) float mat_gloss_sa@0x34d4a50) (declare (inout ) vec3 light_acc@0x34d4b70) (declare (inout ) vec3 diffuse_acc@0x34d4c90) (declare (inout ) vec3 specular_acc@0x34d4db0) ) ( (call lightingLight ((array_ref (var_ref gl_TexCoord@0x3758db0) (constant int (6)) ) (var_ref normal@0x34d4710) (var_ref vnormal@0x34d4820) (var_ref reflection@0x34d4930) (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x386adc0) (constant int (1)) ) diffuse) )(var_ref mat_gloss_sa@0x34d4a50) (var_ref light_acc@0x34d4b70) (var_ref diffuse_acc@0x34d4c90) (var_ref specular_acc@0x34d4db0) )) (return) )) ) (function main (signature void (parameters ) ( (declare () float mtl_gloss_sa@0x3517c40) (declare () vec3 specular_acc@0x3392290) (declare () vec3 diffuse_acc@0x33918d0) (declare () vec3 light_acc@0x33910b0) (declare () vec3 reflection@0x33903f0) (declare () float UAO@0x357ce60) (declare () float alpha@0x357cca0) (declare () vec3 glow_col@0x357ca70) (declare () vec3 mspec_col@0x357c840) (declare () vec3 diff_col@0x357c640) (declare () vec4 mtl_gloss@0x35ca040) (declare () vec4 glowcolor@0x355e190) (declare () vec4 speccolor@0x36174e0) (declare () vec4 diffcolor@0x338db90) (declare () vec4 damagecolor@0x338ce40) (declare () vec3 eye@0x338c420) (declare () vec3 normal@0x34727f0) (declare () vec3 vnormal@0x389b970) (declare () vec3 iBinormal@0x3569570) (declare () vec3 iTangent@0x3568ce0) (declare () vec3 iNormal@0x31f9a60) (declare () vec2 tex_coord@0x34c65a0) (assign (constant bool (1)) (xy) (var_ref tex_coord@0x34c65a0) (swiz xy (array_ref (var_ref gl_TexCoord@0x3758db0) (constant int (0)) ) )) (declare (temporary ) vec3 assignment_tmp@0x31f9e90) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x31f9e90) (swiz xyz (array_ref (var_ref gl_TexCoord@0x3758db0) (constant int (1)) ) )) (assign (constant bool (1)) (xyz) (var_ref iNormal@0x31f9a60) (var_ref assignment_tmp@0x31f9e90) ) (assign (constant bool (1)) (xyz) (var_ref iTangent@0x3568ce0) (swiz xyz (array_ref (var_ref gl_TexCoord@0x3758db0) (constant int (2)) ) )) (assign (constant bool (1)) (xyz) (var_ref iBinormal@0x3569570) (swiz xyz (array_ref (var_ref gl_TexCoord@0x3758db0) (constant int (3)) ) )) (declare (temporary ) vec3 normalize_retval@0x389bcb0) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x389bcb0) (call normalize ((var_ref assignment_tmp@0x31f9e90) )) ) (assign (constant bool (1)) (xyz) (var_ref vnormal@0x389b970) (var_ref normalize_retval@0x389bcb0) ) (declare (temporary ) vec4 texture2D_retval@0x3472d70) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x3472d70) (call texture2D ((var_ref normalMap@0x38b0ec0) (var_ref tex_coord@0x34c65a0) )) ) (declare (temporary ) vec3 normalmap_decode_retval@0x338b8d0) (assign (constant bool (1)) (xyz) (var_ref normalmap_decode_retval@0x338b8d0) (call normalmap_decode ((var_ref texture2D_retval@0x3472d70) )) ) (declare (temporary ) vec3 imatmul_retval@0x338bcc0) (assign (constant bool (1)) (xyz) (var_ref imatmul_retval@0x338bcc0) (call imatmul ((var_ref iTangent@0x3568ce0) (var_ref iBinormal@0x3569570) (var_ref iNormal@0x31f9a60) (var_ref normalmap_decode_retval@0x338b8d0) )) ) (assign (constant bool (1)) (xyz) (var_ref normal@0x34727f0) (var_ref imatmul_retval@0x338bcc0) ) (assign (constant bool (1)) (xyz) (var_ref eye@0x338c420) (swiz xyz (array_ref (var_ref gl_TexCoord@0x3758db0) (constant int (4)) ) )) (declare (temporary ) vec4 texture2D_retval@0x338d220) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x338d220) (call texture2D ((var_ref damageMap@0x38b10f0) (var_ref tex_coord@0x34c65a0) )) ) (assign (constant bool (1)) (xyzw) (var_ref damagecolor@0x338ce40) (var_ref texture2D_retval@0x338d220) ) (declare (temporary ) vec4 texture2D_retval@0x338df70) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x338df70) (call texture2D ((var_ref diffuseMap@0x3316720) (var_ref tex_coord@0x34c65a0) )) ) (assign (constant bool (1)) (xyzw) (var_ref diffcolor@0x338db90) (var_ref texture2D_retval@0x338df70) ) (declare (temporary ) vec4 texture2D_retval@0x36178c0) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x36178c0) (call texture2D ((var_ref specMap@0x38b0aa0) (var_ref tex_coord@0x34c65a0) )) ) (assign (constant bool (1)) (xyzw) (var_ref speccolor@0x36174e0) (var_ref texture2D_retval@0x36178c0) ) (declare (temporary ) vec4 texture2D_retval@0x355e570) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x355e570) (call texture2D ((var_ref glowMap@0x38b0ca0) (var_ref tex_coord@0x34c65a0) )) ) (assign (constant bool (1)) (xyzw) (var_ref glowcolor@0x355e190) (var_ref texture2D_retval@0x355e570) ) (declare (temporary ) vec4 lerp_retval@0x3624730) (assign (constant bool (1)) (xyzw) (var_ref lerp_retval@0x3624730) (call lerp ((swiz x (var_ref damage@0x3897d40) )(var_ref diffcolor@0x338db90) (var_ref damagecolor@0x338ce40) )) ) (assign (constant bool (1)) (xyz) (var_ref diffcolor@0x338db90) (swiz xyz (var_ref lerp_retval@0x3624730) )) (declare (temporary ) vec4 assignment_tmp@0x356b410) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x356b410) (expression vec4 * (var_ref speccolor@0x36174e0) (expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref damage@0x3897d40) )) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref speccolor@0x36174e0) (var_ref assignment_tmp@0x356b410) ) (assign (constant bool (1)) (xyz) (var_ref glowcolor@0x355e190) (swiz xyz (expression vec3 * (swiz xyz (var_ref glowcolor@0x355e190) )(expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref damage@0x3897d40) )) ) ) )) (assign (constant bool (1)) (x) (var_ref alpha@0x357cca0) (swiz w (var_ref diffcolor@0x338db90) )) (assign (constant bool (1)) (x) (var_ref UAO@0x357ce60) (swiz w (var_ref glowcolor@0x355e190) )) (call GLOSS_init ((var_ref mtl_gloss@0x35ca040) (swiz w (var_ref assignment_tmp@0x356b410) ))) (assign (constant bool (1)) (xyz) (var_ref diff_col@0x357c640) (swiz xyz (expression vec4 * (var_ref diffcolor@0x338db90) (var_ref diffcolor@0x338db90) ) )) (assign (constant bool (1)) (xyz) (var_ref mspec_col@0x357c840) (swiz xyz (expression vec4 * (var_ref speccolor@0x36174e0) (var_ref speccolor@0x36174e0) ) )) (assign (constant bool (1)) (xyz) (var_ref glow_col@0x357ca70) (swiz xyz (expression vec4 * (var_ref glowcolor@0x355e190) (var_ref glowcolor@0x355e190) ) )) (declare (temporary ) vec3 reflect_retval@0x33907d0) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x33907d0) (call reflect ((var_ref eye@0x338c420) (var_ref normal@0x34727f0) )) ) (declare (temporary ) vec3 assignment_tmp@0x3390b50) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x3390b50) (expression vec3 neg (var_ref reflect_retval@0x33907d0) ) ) (assign (constant bool (1)) (xyz) (var_ref reflection@0x33903f0) (var_ref assignment_tmp@0x3390b50) ) (assign (constant bool (1)) (xyz) (var_ref light_acc@0x33910b0) (constant vec3 (0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (xyz) (var_ref diffuse_acc@0x33918d0) (constant vec3 (0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (xyz) (var_ref specular_acc@0x3392290) (constant vec3 (0.000000 0.000000 0.000000)) ) (declare (temporary ) float assignment_tmp@0x3517f10) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x3517f10) (swiz w (var_ref mtl_gloss@0x35ca040) )) (assign (constant bool (1)) (x) (var_ref mtl_gloss_sa@0x3517c40) (var_ref assignment_tmp@0x3517f10) ) (if (expression bool != (array_ref (var_ref light_enabled@0x33162c0) (constant int (0)) ) (constant int (0)) ) ( (call lighting0 ((var_ref normal@0x34727f0) (var_ref vnormal@0x389b970) (var_ref assignment_tmp@0x3390b50) (var_ref assignment_tmp@0x3517f10) (var_ref light_acc@0x33910b0) (var_ref diffuse_acc@0x33918d0) (var_ref specular_acc@0x3392290) )) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x33162c0) (constant int (1)) ) (constant int (0)) ) ( (call lighting1 ((var_ref normal@0x34727f0) (var_ref vnormal@0x389b970) (var_ref reflection@0x33903f0) (var_ref mtl_gloss_sa@0x3517c40) (var_ref light_acc@0x33910b0) (var_ref diffuse_acc@0x33918d0) (var_ref specular_acc@0x3392290) )) ) ()) (declare (temporary ) vec3 normalize_retval@0x36f64b0) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x36f64b0) (call normalize ((var_ref light_acc@0x33910b0) )) ) (declare (temporary ) vec3 assignment_tmp@0x36f6960) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x36f6960) (expression vec3 / (expression vec3 * (constant float (3.000000)) (var_ref normalize_retval@0x36f64b0) ) (var_ref light_acc@0x33910b0) ) ) (assign (constant bool (1)) (xyz) (var_ref diffuse_acc@0x33918d0) (expression vec3 * (var_ref diffuse_acc@0x33918d0) (var_ref assignment_tmp@0x36f6960) ) ) (assign (constant bool (1)) (xyz) (var_ref specular_acc@0x3392290) (expression vec3 * (var_ref specular_acc@0x3392290) (var_ref assignment_tmp@0x36f6960) ) ) (declare (temporary ) vec3 GLOSS_env_reflection_retval@0x3837120) (assign (constant bool (1)) (xyz) (var_ref GLOSS_env_reflection_retval@0x3837120) (call GLOSS_env_reflection ((var_ref reflection@0x33903f0) )) ) (declare (temporary ) vec3 sqrt_retval@0x3396d20) (assign (constant bool (1)) (xyz) (var_ref sqrt_retval@0x3396d20) (call sqrt ((expression vec3 + (expression vec3 * (expression vec3 + (expression vec3 * (expression vec3 * (expression vec3 + (var_ref GLOSS_env_reflection_retval@0x3837120) (var_ref specular_acc@0x3392290) ) (var_ref mspec_col@0x357c840) ) (var_ref UAO@0x357ce60) ) (expression vec3 * (expression vec3 + (var_ref glow_col@0x357ca70) (var_ref diffuse_acc@0x33918d0) ) (var_ref diff_col@0x357c640) ) ) (var_ref UAO@0x357ce60) ) (var_ref glow_col@0x357ca70) ) )) ) (declare (temporary ) vec4 vec_ctor@0x3397090) (assign (constant bool (1)) (xyz) (var_ref vec_ctor@0x3397090) (swiz xyzx (var_ref sqrt_retval@0x3396d20) )) (assign (constant bool (1)) (w) (var_ref vec_ctor@0x3397090) (swiz xxxx (var_ref alpha@0x357cca0) )) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x321ffa0) (expression vec4 * (var_ref vec_ctor@0x3397090) (swiz xxxy (var_ref cloaking@0x3897b10) )) ) )) ) ) GLSL IR for linked vertex program 4: ( (declare (uniform ) int max_light_enabled@0x36159e0) (declare (uniform ) (array vec4 2) light_size@0x3615380) (declare (uniform ) (array int 6) light_enabled@0x36f6080) (declare (out ) vec4 gl_Position@0x3392600) (declare (in ) vec4 gl_Vertex@0x3391420) (declare (in ) vec3 gl_Normal@0x338ffe0) (declare (in ) vec4 gl_MultiTexCoord0@0x357d1d0) (declare (in ) vec4 gl_MultiTexCoord2@0x338c950) (declare (out ) vec4 gl_FrontColor@0x344f170) (declare (out ) vec4 gl_BackColor@0x3164a60) (declare (out ) vec4 gl_FrontSecondaryColor@0x3175f80) (declare (out ) vec4 gl_BackSecondaryColor@0x3398dd0) (declare (uniform ) mat4 gl_ModelViewMatrix@0x35f69b0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x338f520) (declare (uniform ) mat3 gl_NormalMatrix@0x383c4c0) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x31b7e80) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x33612e0) (declare (out ) (array vec4 0) gl_TexCoord@0x385e180) (function main (signature void (parameters ) ( (declare () vec4 sc@0x3308a10) (declare () vec4 pc@0x3308b20) (declare (temporary ) vec4 flattening_tmp@0x34f0cd0) (assign (constant bool (1)) (xyzw) (var_ref flattening_tmp@0x34f0cd0) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x35f69b0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x3391420) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x35f69b0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x3391420) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x35f69b0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x3391420) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x35f69b0) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x3391420) )) ) ) (declare () vec3 _ret_val@0x33012c0) (declare () vec3 arg0@0x3301370) (assign (constant bool (1)) (xyz) (var_ref arg0@0x3301370) (swiz xyz (var_ref flattening_tmp@0x34f0cd0) )) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x33012c0) (expression vec3 * (var_ref arg0@0x3301370) (expression float rsq (expression float dot (var_ref arg0@0x3301370) (var_ref arg0@0x3301370) ) ) ) ) (declare () vec3 _ret_val@0x3304d00) (declare (temporary ) vec3 flattening_tmp@0x34f1150) (assign (constant bool (1)) (xyz) (var_ref flattening_tmp@0x34f1150) (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x383c4c0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x338ffe0) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x383c4c0) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x338ffe0) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x383c4c0) (constant int (2)) ) (swiz z (var_ref gl_Normal@0x338ffe0) )) ) ) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x3304d00) (expression vec3 * (var_ref flattening_tmp@0x34f1150) (expression float rsq (expression float dot (var_ref flattening_tmp@0x34f1150) (var_ref flattening_tmp@0x34f1150) ) ) ) ) (declare () vec3 _ret_val@0x33055d0) (declare (temporary ) vec3 flattening_tmp@0x34f13c0) (declare (temporary ) vec3 mat_op_to_vec@0x34f41c0) (assign (constant bool (1)) (xyz) (var_ref mat_op_to_vec@0x34f41c0) (swiz xyz (var_ref gl_MultiTexCoord2@0x338c950) )) (assign (constant bool (1)) (xyz) (var_ref flattening_tmp@0x34f13c0) (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x383c4c0) (constant int (0)) ) (swiz x (var_ref mat_op_to_vec@0x34f41c0) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x383c4c0) (constant int (1)) ) (swiz y (var_ref mat_op_to_vec@0x34f41c0) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x383c4c0) (constant int (2)) ) (swiz z (var_ref mat_op_to_vec@0x34f41c0) )) ) ) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x33055d0) (expression vec3 * (var_ref flattening_tmp@0x34f13c0) (expression float rsq (expression float dot (var_ref flattening_tmp@0x34f13c0) (var_ref flattening_tmp@0x34f13c0) ) ) ) ) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x385e180) (constant int (0)) ) (var_ref gl_MultiTexCoord0@0x357d1d0) ) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x385e180) (constant int (1)) ) (swiz xyz (var_ref _ret_val@0x3304d00) )) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x385e180) (constant int (2)) ) (swiz xyz (var_ref _ret_val@0x33055d0) )) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x385e180) (constant int (3)) ) (swiz xyz (expression vec3 * (expression vec3 cross (var_ref _ret_val@0x33055d0) (var_ref _ret_val@0x3304d00) ) (expression float sign (swiz w (var_ref gl_MultiTexCoord2@0x338c950) )) ) )) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x385e180) (constant int (4)) ) (swiz xyz (expression vec3 neg (var_ref _ret_val@0x33012c0) ) )) (declare () vec4 rv@0x32073d0) (declare (temporary ) vec4 assignment_tmp@0x32074e0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x32074e0) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (0)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x32073d0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x32074e0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x34f0cd0) )(swiz w (var_ref assignment_tmp@0x32074e0) )) ) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x32073d0) (swiz zzzz (array_ref (var_ref light_size@0x3615380) (constant int (0)) ) )) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x385e180) (constant int (5)) ) (var_ref rv@0x32073d0) ) (declare () vec4 rv@0x34afd20) (declare (temporary ) vec4 assignment_tmp@0x34afe30) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x34afe30) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (1)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x34afd20) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x34afe30) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x34f0cd0) )(swiz w (var_ref assignment_tmp@0x34afe30) )) ) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x34afd20) (swiz zzzz (array_ref (var_ref light_size@0x3615380) (constant int (1)) ) )) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x385e180) (constant int (6)) ) (var_ref rv@0x34afd20) ) (assign (constant bool (1)) (w) (array_ref (var_ref gl_TexCoord@0x385e180) (constant int (4)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (w) (array_ref (var_ref gl_TexCoord@0x385e180) (constant int (3)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (w) (array_ref (var_ref gl_TexCoord@0x385e180) (constant int (2)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (w) (array_ref (var_ref gl_TexCoord@0x385e180) (constant int (1)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x385e180) (constant int (7)) ) (var_ref flattening_tmp@0x34f0cd0) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x3308b20) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) emission) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x3308a10) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (declare () vec3 _ret_val@0x34b10d0) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x34b10d0) (expression vec3 + (var_ref _ret_val@0x33012c0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x3304d00) (var_ref _ret_val@0x33012c0) ) (var_ref _ret_val@0x3304d00) ) ) ) ) ) (if (expression bool >= (var_ref max_light_enabled@0x36159e0) (constant int (2)) ) ( (if (expression bool != (array_ref (var_ref light_enabled@0x36f6080) (constant int (2)) ) (constant int (0)) ) ( (declare () vec4 rv@0x32417a0) (declare (temporary ) vec4 assignment_tmp@0x32418b0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x32418b0) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (2)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x32417a0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x32418b0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x34f0cd0) )(swiz w (var_ref assignment_tmp@0x32418b0) )) ) ) )) (declare () float _ret_val@0x3242580) (declare () vec3 arg0@0x3242630) (assign (constant bool (1)) (xyz) (var_ref arg0@0x3242630) (swiz xyz (var_ref rv@0x32417a0) )) (assign (constant bool (1)) (x) (var_ref _ret_val@0x3242580) (expression float sqrt (expression float dot (var_ref arg0@0x3242630) (var_ref arg0@0x3242630) ) ) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x32417a0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x32417a0) )(expression float rcp (var_ref _ret_val@0x3242580) ) ) )) (declare (temporary ) vec3 vec_ctor@0x32edf90) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x32edf90) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x32edf90) (swiz xxx (var_ref _ret_val@0x3242580) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x32edf90) (swiz xxx (expression float * (var_ref _ret_val@0x3242580) (var_ref _ret_val@0x3242580) ) )) (declare (temporary ) vec3 vec_ctor@0x32ee820) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x32ee820) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (2)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x32ee820) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (2)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x32ee820) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (2)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x32417a0) (swiz xxxx (expression float rcp (expression float dot (var_ref vec_ctor@0x32edf90) (var_ref vec_ctor@0x32ee820) ) ) )) (declare () float _ret_val@0x357e720) (assign (constant bool (1)) (x) (var_ref _ret_val@0x357e720) (expression float dot (swiz xyz (var_ref rv@0x32417a0) )(var_ref _ret_val@0x3304d00) ) ) (declare () float t@0x33f5a10) (assign (constant bool (1)) (x) (var_ref t@0x33f5a10) (expression float max (expression float min (expression float * (var_ref _ret_val@0x357e720) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x3308b20) (expression vec4 + (var_ref pc@0x3308b20) (expression vec4 * (swiz w (var_ref rv@0x32417a0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x31b7e80) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x357e720) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x3308a10) (expression vec4 * (swiz w (var_ref rv@0x32417a0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x32417a0) )(var_ref _ret_val@0x34b10d0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) ) (expression float * (var_ref t@0x33f5a10) (expression float * (var_ref t@0x33f5a10) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x33f5a10) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) specular) ) ) ) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x36f6080) (constant int (3)) ) (constant int (0)) ) ( (declare () vec4 rv@0x333f260) (declare (temporary ) vec4 assignment_tmp@0x333f370) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x333f370) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (3)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x333f260) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x333f370) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x34f0cd0) )(swiz w (var_ref assignment_tmp@0x333f370) )) ) ) )) (declare () float _ret_val@0x32fb160) (declare () vec3 arg0@0x32fb210) (assign (constant bool (1)) (xyz) (var_ref arg0@0x32fb210) (swiz xyz (var_ref rv@0x333f260) )) (assign (constant bool (1)) (x) (var_ref _ret_val@0x32fb160) (expression float sqrt (expression float dot (var_ref arg0@0x32fb210) (var_ref arg0@0x32fb210) ) ) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x333f260) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x333f260) )(expression float rcp (var_ref _ret_val@0x32fb160) ) ) )) (declare (temporary ) vec3 vec_ctor@0x32fc130) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x32fc130) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x32fc130) (swiz xxx (var_ref _ret_val@0x32fb160) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x32fc130) (swiz xxx (expression float * (var_ref _ret_val@0x32fb160) (var_ref _ret_val@0x32fb160) ) )) (declare (temporary ) vec3 vec_ctor@0x333b890) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x333b890) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (3)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x333b890) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (3)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x333b890) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (3)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x333f260) (swiz xxxx (expression float rcp (expression float dot (var_ref vec_ctor@0x32fc130) (var_ref vec_ctor@0x333b890) ) ) )) (declare () float _ret_val@0x375b6e0) (assign (constant bool (1)) (x) (var_ref _ret_val@0x375b6e0) (expression float dot (swiz xyz (var_ref rv@0x333f260) )(var_ref _ret_val@0x3304d00) ) ) (declare () float t@0x3584ab0) (assign (constant bool (1)) (x) (var_ref t@0x3584ab0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x375b6e0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x3308b20) (expression vec4 + (var_ref pc@0x3308b20) (expression vec4 * (swiz w (var_ref rv@0x333f260) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x31b7e80) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x375b6e0) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x3308a10) (expression vec4 + (var_ref sc@0x3308a10) (expression vec4 * (swiz w (var_ref rv@0x333f260) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x333f260) )(var_ref _ret_val@0x34b10d0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) ) (expression float * (var_ref t@0x3584ab0) (expression float * (var_ref t@0x3584ab0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x3584ab0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) specular) ) ) ) ) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x36f6080) (constant int (4)) ) (constant int (0)) ) ( (declare () vec4 rv@0x32fe420) (declare (temporary ) vec4 assignment_tmp@0x32fe530) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x32fe530) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (4)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x32fe420) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x32fe530) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x34f0cd0) )(swiz w (var_ref assignment_tmp@0x32fe530) )) ) ) )) (declare () float _ret_val@0x34ba530) (declare () vec3 arg0@0x34ba5e0) (assign (constant bool (1)) (xyz) (var_ref arg0@0x34ba5e0) (swiz xyz (var_ref rv@0x32fe420) )) (assign (constant bool (1)) (x) (var_ref _ret_val@0x34ba530) (expression float sqrt (expression float dot (var_ref arg0@0x34ba5e0) (var_ref arg0@0x34ba5e0) ) ) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x32fe420) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x32fe420) )(expression float rcp (var_ref _ret_val@0x34ba530) ) ) )) (declare (temporary ) vec3 vec_ctor@0x34bb500) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x34bb500) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x34bb500) (swiz xxx (var_ref _ret_val@0x34ba530) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x34bb500) (swiz xxx (expression float * (var_ref _ret_val@0x34ba530) (var_ref _ret_val@0x34ba530) ) )) (declare (temporary ) vec3 vec_ctor@0x34bbd90) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x34bbd90) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (4)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x34bbd90) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (4)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x34bbd90) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (4)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x32fe420) (swiz xxxx (expression float rcp (expression float dot (var_ref vec_ctor@0x34bb500) (var_ref vec_ctor@0x34bbd90) ) ) )) (declare () float _ret_val@0x350bf90) (assign (constant bool (1)) (x) (var_ref _ret_val@0x350bf90) (expression float dot (swiz xyz (var_ref rv@0x32fe420) )(var_ref _ret_val@0x3304d00) ) ) (declare () float t@0x34eacc0) (assign (constant bool (1)) (x) (var_ref t@0x34eacc0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x350bf90) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x3308b20) (expression vec4 + (var_ref pc@0x3308b20) (expression vec4 * (swiz w (var_ref rv@0x32fe420) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x31b7e80) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x350bf90) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x3308a10) (expression vec4 + (var_ref sc@0x3308a10) (expression vec4 * (swiz w (var_ref rv@0x32fe420) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x32fe420) )(var_ref _ret_val@0x34b10d0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) ) (expression float * (var_ref t@0x34eacc0) (expression float * (var_ref t@0x34eacc0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x34eacc0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) specular) ) ) ) ) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x36f6080) (constant int (5)) ) (constant int (0)) ) ( (declare () vec4 rv@0x334aea0) (declare (temporary ) vec4 assignment_tmp@0x334afb0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x334afb0) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (5)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x334aea0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x334afb0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x34f0cd0) )(swiz w (var_ref assignment_tmp@0x334afb0) )) ) ) )) (declare () float _ret_val@0x334be40) (declare () vec3 arg0@0x34e82a0) (assign (constant bool (1)) (xyz) (var_ref arg0@0x34e82a0) (swiz xyz (var_ref rv@0x334aea0) )) (assign (constant bool (1)) (x) (var_ref _ret_val@0x334be40) (expression float sqrt (expression float dot (var_ref arg0@0x34e82a0) (var_ref arg0@0x34e82a0) ) ) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x334aea0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x334aea0) )(expression float rcp (var_ref _ret_val@0x334be40) ) ) )) (declare (temporary ) vec3 vec_ctor@0x34e91c0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x34e91c0) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x34e91c0) (swiz xxx (var_ref _ret_val@0x334be40) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x34e91c0) (swiz xxx (expression float * (var_ref _ret_val@0x334be40) (var_ref _ret_val@0x334be40) ) )) (declare (temporary ) vec3 vec_ctor@0x34e9ac0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x34e9ac0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (5)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x34e9ac0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (5)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x34e9ac0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (5)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x334aea0) (swiz xxxx (expression float rcp (expression float dot (var_ref vec_ctor@0x34e91c0) (var_ref vec_ctor@0x34e9ac0) ) ) )) (declare () float _ret_val@0x33714d0) (assign (constant bool (1)) (x) (var_ref _ret_val@0x33714d0) (expression float dot (swiz xyz (var_ref rv@0x334aea0) )(var_ref _ret_val@0x3304d00) ) ) (declare () float t@0x3374be0) (assign (constant bool (1)) (x) (var_ref t@0x3374be0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x33714d0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x3308b20) (expression vec4 + (var_ref pc@0x3308b20) (expression vec4 * (swiz w (var_ref rv@0x334aea0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x31b7e80) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (5)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x33714d0) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (5)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x3308a10) (expression vec4 + (var_ref sc@0x3308a10) (expression vec4 * (swiz w (var_ref rv@0x334aea0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x334aea0) )(var_ref _ret_val@0x34b10d0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) ) (expression float * (var_ref t@0x3374be0) (expression float * (var_ref t@0x3374be0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x3374be0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (5)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) specular) ) ) ) ) ) ()) ) ()) (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x3392600) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x338f520) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x3391420) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x338f520) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x3391420) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x338f520) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x3391420) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x338f520) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x3391420) )) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_BackColor@0x3164a60) (var_ref pc@0x3308b20) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0x344f170) (var_ref pc@0x3308b20) ) (assign (constant bool (1)) (xyzw) (var_ref gl_BackSecondaryColor@0x3398dd0) (var_ref sc@0x3308a10) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontSecondaryColor@0x3175f80) (var_ref sc@0x3308a10) ) )) ) ) Mesa IR for linked vertex program 4: 0: (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x35f69b0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x3391420) )) MUL TEMP[1], STATE[9], INPUT[0].xxxx; 1: (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x35f69b0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x3391420) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x35f69b0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x3391420) )) ) MAD TEMP[2], STATE[10], INPUT[0].yyyy, TEMP[1]; 2: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x35f69b0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x3391420) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x35f69b0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x3391420) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x35f69b0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x3391420) )) ) MAD TEMP[3], STATE[11], INPUT[0].zzzz, TEMP[2]; 3: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x35f69b0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x3391420) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x35f69b0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x3391420) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x35f69b0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x3391420) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x35f69b0) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x3391420) )) ) MAD TEMP[4], STATE[12], INPUT[0].wwww, TEMP[3]; 4: (assign (constant bool (1)) (xyzw) (var_ref flattening_tmp@0x34f0cd0) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x35f69b0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x3391420) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x35f69b0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x3391420) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x35f69b0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x3391420) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x35f69b0) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x3391420) )) ) ) MOV TEMP[5], TEMP[4]; 5: (assign (constant bool (1)) (xyz) (var_ref arg0@0x3301370) (swiz xyz (var_ref flattening_tmp@0x34f0cd0) )) MOV TEMP[6].xyz, TEMP[5].xyzz; 6: (expression float dot (var_ref arg0@0x3301370) (var_ref arg0@0x3301370) ) DP3 TEMP[7].x, TEMP[6].xyzz, TEMP[6].xyzz; 7: (expression float rsq (expression float dot (var_ref arg0@0x3301370) (var_ref arg0@0x3301370) ) ) RSQ TEMP[8].x, TEMP[7].xxxx; 8: (expression vec3 * (var_ref arg0@0x3301370) (expression float rsq (expression float dot (var_ref arg0@0x3301370) (var_ref arg0@0x3301370) ) ) ) MUL TEMP[9].xyz, TEMP[6].xyzz, TEMP[8].xxxx; 9: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x33012c0) (expression vec3 * (var_ref arg0@0x3301370) (expression float rsq (expression float dot (var_ref arg0@0x3301370) (var_ref arg0@0x3301370) ) ) ) ) MOV TEMP[10].xyz, TEMP[9].xyzz; 10: (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x383c4c0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x338ffe0) )) MUL TEMP[11].xyz, STATE[13].xyzz, INPUT[2].xxxx; 11: (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x383c4c0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x338ffe0) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x383c4c0) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x338ffe0) )) ) MAD TEMP[12], STATE[14].xyzz, INPUT[2].yyyy, TEMP[11].xyzz; 12: (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x383c4c0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x338ffe0) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x383c4c0) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x338ffe0) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x383c4c0) (constant int (2)) ) (swiz z (var_ref gl_Normal@0x338ffe0) )) ) MAD TEMP[13], STATE[15].xyzz, INPUT[2].zzzz, TEMP[12].xyzz; 13: (assign (constant bool (1)) (xyz) (var_ref flattening_tmp@0x34f1150) (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x383c4c0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x338ffe0) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x383c4c0) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x338ffe0) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x383c4c0) (constant int (2)) ) (swiz z (var_ref gl_Normal@0x338ffe0) )) ) ) MOV TEMP[14].xyz, TEMP[13].xyzz; 14: (expression float dot (var_ref flattening_tmp@0x34f1150) (var_ref flattening_tmp@0x34f1150) ) DP3 TEMP[15].x, TEMP[14].xyzz, TEMP[14].xyzz; 15: (expression float rsq (expression float dot (var_ref flattening_tmp@0x34f1150) (var_ref flattening_tmp@0x34f1150) ) ) RSQ TEMP[16].x, TEMP[15].xxxx; 16: (expression vec3 * (var_ref flattening_tmp@0x34f1150) (expression float rsq (expression float dot (var_ref flattening_tmp@0x34f1150) (var_ref flattening_tmp@0x34f1150) ) ) ) MUL TEMP[17].xyz, TEMP[14].xyzz, TEMP[16].xxxx; 17: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x3304d00) (expression vec3 * (var_ref flattening_tmp@0x34f1150) (expression float rsq (expression float dot (var_ref flattening_tmp@0x34f1150) (var_ref flattening_tmp@0x34f1150) ) ) ) ) MOV TEMP[18].xyz, TEMP[17].xyzz; 18: (assign (constant bool (1)) (xyz) (var_ref mat_op_to_vec@0x34f41c0) (swiz xyz (var_ref gl_MultiTexCoord2@0x338c950) )) MOV TEMP[19].xyz, INPUT[10].xyzz; 19: (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x383c4c0) (constant int (0)) ) (swiz x (var_ref mat_op_to_vec@0x34f41c0) )) MUL TEMP[20].xyz, STATE[13].xyzz, TEMP[19].xxxx; 20: (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x383c4c0) (constant int (0)) ) (swiz x (var_ref mat_op_to_vec@0x34f41c0) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x383c4c0) (constant int (1)) ) (swiz y (var_ref mat_op_to_vec@0x34f41c0) )) ) MAD TEMP[21], STATE[14].xyzz, TEMP[19].yyyy, TEMP[20].xyzz; 21: (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x383c4c0) (constant int (0)) ) (swiz x (var_ref mat_op_to_vec@0x34f41c0) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x383c4c0) (constant int (1)) ) (swiz y (var_ref mat_op_to_vec@0x34f41c0) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x383c4c0) (constant int (2)) ) (swiz z (var_ref mat_op_to_vec@0x34f41c0) )) ) MAD TEMP[22], STATE[15].xyzz, TEMP[19].zzzz, TEMP[21].xyzz; 22: (assign (constant bool (1)) (xyz) (var_ref flattening_tmp@0x34f13c0) (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x383c4c0) (constant int (0)) ) (swiz x (var_ref mat_op_to_vec@0x34f41c0) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x383c4c0) (constant int (1)) ) (swiz y (var_ref mat_op_to_vec@0x34f41c0) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x383c4c0) (constant int (2)) ) (swiz z (var_ref mat_op_to_vec@0x34f41c0) )) ) ) MOV TEMP[23].xyz, TEMP[22].xyzz; 23: (expression float dot (var_ref flattening_tmp@0x34f13c0) (var_ref flattening_tmp@0x34f13c0) ) DP3 TEMP[24].x, TEMP[23].xyzz, TEMP[23].xyzz; 24: (expression float rsq (expression float dot (var_ref flattening_tmp@0x34f13c0) (var_ref flattening_tmp@0x34f13c0) ) ) RSQ TEMP[25].x, TEMP[24].xxxx; 25: (expression vec3 * (var_ref flattening_tmp@0x34f13c0) (expression float rsq (expression float dot (var_ref flattening_tmp@0x34f13c0) (var_ref flattening_tmp@0x34f13c0) ) ) ) MUL TEMP[26].xyz, TEMP[23].xyzz, TEMP[25].xxxx; 26: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x33055d0) (expression vec3 * (var_ref flattening_tmp@0x34f13c0) (expression float rsq (expression float dot (var_ref flattening_tmp@0x34f13c0) (var_ref flattening_tmp@0x34f13c0) ) ) ) ) MOV TEMP[27].xyz, TEMP[26].xyzz; 27: (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x385e180) (constant int (0)) ) (var_ref gl_MultiTexCoord0@0x357d1d0) ) MOV OUTPUT[4], INPUT[8]; 28: (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x385e180) (constant int (1)) ) (swiz xyz (var_ref _ret_val@0x3304d00) )) MOV OUTPUT[5].xyz, TEMP[18].xyzz; 29: (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x385e180) (constant int (2)) ) (swiz xyz (var_ref _ret_val@0x33055d0) )) MOV OUTPUT[6].xyz, TEMP[27].xyzz; 30: (expression vec3 cross (var_ref _ret_val@0x33055d0) (var_ref _ret_val@0x3304d00) ) XPD TEMP[28].xyz, TEMP[27].xyzz, TEMP[18].xyzz; 31: (expression float sign (swiz w (var_ref gl_MultiTexCoord2@0x338c950) )) SSG TEMP[29].x, INPUT[10].wwww; 32: (expression vec3 * (expression vec3 cross (var_ref _ret_val@0x33055d0) (var_ref _ret_val@0x3304d00) ) (expression float sign (swiz w (var_ref gl_MultiTexCoord2@0x338c950) )) ) MUL TEMP[30].xyz, TEMP[28].xyzz, TEMP[29].xxxx; 33: (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x385e180) (constant int (3)) ) (swiz xyz (expression vec3 * (expression vec3 cross (var_ref _ret_val@0x33055d0) (var_ref _ret_val@0x3304d00) ) (expression float sign (swiz w (var_ref gl_MultiTexCoord2@0x338c950) )) ) )) MOV OUTPUT[7].xyz, TEMP[30].xyzz; 34: (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x385e180) (constant int (4)) ) (swiz xyz (expression vec3 neg (var_ref _ret_val@0x33012c0) ) )) MOV OUTPUT[8].xyz, TEMP[10].-x-y-z-z; 35: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x32074e0) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (0)) ) position) ) MOV TEMP[32], STATE[17]; 36: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x34f0cd0) )(swiz w (var_ref assignment_tmp@0x32074e0) )) MUL TEMP[33].xyz, TEMP[5].xyzz, TEMP[32].wwww; 37: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x32074e0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x34f0cd0) )(swiz w (var_ref assignment_tmp@0x32074e0) )) ) ) ADD TEMP[35].xyz, TEMP[32].xyzz, TEMP[33].-x-y-z-z; 38: (assign (constant bool (1)) (xyz) (var_ref rv@0x32073d0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x32074e0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x34f0cd0) )(swiz w (var_ref assignment_tmp@0x32074e0) )) ) ) )) MOV TEMP[36].xyz, TEMP[35].xyzz; 39: (assign (constant bool (1)) (w) (var_ref rv@0x32073d0) (swiz zzzz (array_ref (var_ref light_size@0x3615380) (constant int (0)) ) )) MOV TEMP[36].w, UNIFORM[1].zzzz; 40: (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x385e180) (constant int (5)) ) (var_ref rv@0x32073d0) ) MOV OUTPUT[9], TEMP[36]; 41: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x34afe30) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (1)) ) position) ) MOV TEMP[37], STATE[17]; 42: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x34f0cd0) )(swiz w (var_ref assignment_tmp@0x34afe30) )) MUL TEMP[38].xyz, TEMP[5].xyzz, TEMP[37].wwww; 43: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x34afe30) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x34f0cd0) )(swiz w (var_ref assignment_tmp@0x34afe30) )) ) ) ADD TEMP[40].xyz, TEMP[37].xyzz, TEMP[38].-x-y-z-z; 44: (assign (constant bool (1)) (xyz) (var_ref rv@0x34afd20) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x34afe30) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x34f0cd0) )(swiz w (var_ref assignment_tmp@0x34afe30) )) ) ) )) MOV TEMP[41].xyz, TEMP[40].xyzz; 45: (assign (constant bool (1)) (w) (var_ref rv@0x34afd20) (swiz zzzz (array_ref (var_ref light_size@0x3615380) (constant int (1)) ) )) MOV TEMP[41].w, UNIFORM[2].zzzz; 46: (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x385e180) (constant int (6)) ) (var_ref rv@0x34afd20) ) MOV OUTPUT[10], TEMP[41]; 47: (assign (constant bool (1)) (w) (array_ref (var_ref gl_TexCoord@0x385e180) (constant int (4)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) MOV OUTPUT[8].w, CONST[18]; 48: (assign (constant bool (1)) (w) (array_ref (var_ref gl_TexCoord@0x385e180) (constant int (3)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) MOV OUTPUT[7].w, CONST[18]; 49: (assign (constant bool (1)) (w) (array_ref (var_ref gl_TexCoord@0x385e180) (constant int (2)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) MOV OUTPUT[6].w, CONST[18]; 50: (assign (constant bool (1)) (w) (array_ref (var_ref gl_TexCoord@0x385e180) (constant int (1)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) MOV OUTPUT[5].w, CONST[18]; 51: (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x385e180) (constant int (7)) ) (var_ref flattening_tmp@0x34f0cd0) ) MOV OUTPUT[11], TEMP[5]; 52: (assign (constant bool (1)) (xyzw) (var_ref pc@0x3308b20) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) emission) ) MOV TEMP[42], STATE[19]; 53: (assign (constant bool (1)) (xyzw) (var_ref sc@0x3308a10) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) MOV TEMP[43], CONST[18]; 54: (expression float dot (var_ref _ret_val@0x3304d00) (var_ref _ret_val@0x33012c0) ) DP3 TEMP[44].x, TEMP[18].xyzz, TEMP[10].xyzz; 55: (expression vec3 * (expression float dot (var_ref _ret_val@0x3304d00) (var_ref _ret_val@0x33012c0) ) (var_ref _ret_val@0x3304d00) ) MUL TEMP[45].xyz, TEMP[44].xxxx, TEMP[18].xyzz; 56: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x3304d00) (var_ref _ret_val@0x33012c0) ) (var_ref _ret_val@0x3304d00) ) ) MUL TEMP[46].xyz, CONST[20].xxxx, TEMP[45].xyzz; 57: (expression vec3 + (var_ref _ret_val@0x33012c0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x3304d00) (var_ref _ret_val@0x33012c0) ) (var_ref _ret_val@0x3304d00) ) ) ) ) ADD TEMP[48].xyz, TEMP[10].xyzz, TEMP[46].-x-y-z-z; 58: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x34b10d0) (expression vec3 + (var_ref _ret_val@0x33012c0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x3304d00) (var_ref _ret_val@0x33012c0) ) (var_ref _ret_val@0x3304d00) ) ) ) ) ) MOV TEMP[49].xyz, TEMP[48].xyzz; 59: (expression bool >= (var_ref max_light_enabled@0x36159e0) (constant int (2)) ) SGE.C TEMP[50].x, UNIFORM[0].xxxx, CONST[20].xxxx; 60: IF (NE.xxxx); # (if false, goto 265); 61: (expression bool != (array_ref (var_ref light_enabled@0x36f6080) (constant int (2)) ) (constant int (0)) ) SNE.C TEMP[51].x, UNIFORM[5].xxxx, CONST[18].xxxx; 62: IF (NE.xxxx); # (if false, goto 111); 63: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x32418b0) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (2)) ) position) ) MOV TEMP[52], STATE[17]; 64: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x34f0cd0) )(swiz w (var_ref assignment_tmp@0x32418b0) )) MUL TEMP[53].xyz, TEMP[5].xyzz, TEMP[52].wwww; 65: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x32418b0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x34f0cd0) )(swiz w (var_ref assignment_tmp@0x32418b0) )) ) ) ADD TEMP[55].xyz, TEMP[52].xyzz, TEMP[53].-x-y-z-z; 66: (assign (constant bool (1)) (xyz) (var_ref rv@0x32417a0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x32418b0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x34f0cd0) )(swiz w (var_ref assignment_tmp@0x32418b0) )) ) ) )) MOV TEMP[56].xyz, TEMP[55].xyzz; 67: (assign (constant bool (1)) (xyz) (var_ref arg0@0x3242630) (swiz xyz (var_ref rv@0x32417a0) )) MOV TEMP[57].xyz, TEMP[56].xyzz; 68: (expression float dot (var_ref arg0@0x3242630) (var_ref arg0@0x3242630) ) DP3 TEMP[58].x, TEMP[57].xyzz, TEMP[57].xyzz; 69: (expression float sqrt (expression float dot (var_ref arg0@0x3242630) (var_ref arg0@0x3242630) ) ) RSQ TEMP[59].x, TEMP[58].xxxx; 70: MUL TEMP[59].x, TEMP[59].xxxx, TEMP[58].xxxx; 71: CMP TEMP[59].x, TEMP[58].-x-x-x-x, TEMP[59].xxxx, CONST[18].xxxx; 72: (assign (constant bool (1)) (x) (var_ref _ret_val@0x3242580) (expression float sqrt (expression float dot (var_ref arg0@0x3242630) (var_ref arg0@0x3242630) ) ) ) MOV TEMP[60], TEMP[59].xxxx; 73: (expression float rcp (var_ref _ret_val@0x3242580) ) RCP TEMP[61].x, TEMP[60].xxxx; 74: (expression vec3 * (swiz xyz (var_ref rv@0x32417a0) )(expression float rcp (var_ref _ret_val@0x3242580) ) ) MUL TEMP[62].xyz, TEMP[56].xyzz, TEMP[61].xxxx; 75: (assign (constant bool (1)) (xyz) (var_ref rv@0x32417a0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x32417a0) )(expression float rcp (var_ref _ret_val@0x3242580) ) ) )) MOV TEMP[56].xyz, TEMP[62].xyzz; 76: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x32edf90) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[63].x, CONST[21]; 77: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x32edf90) (swiz xxx (var_ref _ret_val@0x3242580) )) MOV TEMP[63].y, TEMP[60].xxxx; 78: (expression float * (var_ref _ret_val@0x3242580) (var_ref _ret_val@0x3242580) ) MUL TEMP[64].x, TEMP[60].xxxx, TEMP[60].xxxx; 79: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x32edf90) (swiz xxx (expression float * (var_ref _ret_val@0x3242580) (var_ref _ret_val@0x3242580) ) )) MOV TEMP[63].z, TEMP[64].xxxx; 80: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x32ee820) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (2)) ) constantAttenuation) )) MOV TEMP[65].x, STATE[22].xxxx; 81: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x32ee820) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (2)) ) linearAttenuation) )) MOV TEMP[65].y, STATE[22].yyyy; 82: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x32ee820) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (2)) ) quadraticAttenuation) )) MOV TEMP[65].z, STATE[22].zzzz; 83: (expression float dot (var_ref vec_ctor@0x32edf90) (var_ref vec_ctor@0x32ee820) ) DP3 TEMP[66].x, TEMP[63].xyzz, TEMP[65].xyzz; 84: (expression float rcp (expression float dot (var_ref vec_ctor@0x32edf90) (var_ref vec_ctor@0x32ee820) ) ) RCP TEMP[67].x, TEMP[66].xxxx; 85: (assign (constant bool (1)) (w) (var_ref rv@0x32417a0) (swiz xxxx (expression float rcp (expression float dot (var_ref vec_ctor@0x32edf90) (var_ref vec_ctor@0x32ee820) ) ) )) MOV TEMP[56].w, TEMP[67].xxxx; 86: (expression float dot (swiz xyz (var_ref rv@0x32417a0) )(var_ref _ret_val@0x3304d00) ) DP3 TEMP[68].x, TEMP[56].xyzz, TEMP[18].xyzz; 87: (assign (constant bool (1)) (x) (var_ref _ret_val@0x357e720) (expression float dot (swiz xyz (var_ref rv@0x32417a0) )(var_ref _ret_val@0x3304d00) ) ) MOV TEMP[69], TEMP[68].xxxx; 88: (expression float * (var_ref _ret_val@0x357e720) (constant float (4.000000)) ) MUL TEMP[70].x, TEMP[69].xxxx, CONST[20].yyyy; 89: (expression float min (expression float * (var_ref _ret_val@0x357e720) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[71].x, TEMP[70].xxxx, CONST[21].xxxx; 90: (expression float max (expression float min (expression float * (var_ref _ret_val@0x357e720) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[72].x, TEMP[71].xxxx, CONST[18].xxxx; 91: (assign (constant bool (1)) (x) (var_ref t@0x33f5a10) (expression float max (expression float min (expression float * (var_ref _ret_val@0x357e720) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[73], TEMP[72].xxxx; 92: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x357e720) ) MAX TEMP[74].x, CONST[18].xxxx, TEMP[69].xxxx; 93: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x357e720) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (2)) ) diffuse) ) MUL TEMP[75], TEMP[74].xxxx, STATE[23]; 94: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x31b7e80) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (2)) ) ambient) ) MUL TEMP[76], STATE[25], STATE[26]; 95: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x31b7e80) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x357e720) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) diffuse) ) ) MAD TEMP[77], TEMP[75], STATE[24], TEMP[76]; 96: (expression vec4 + (var_ref pc@0x3308b20) (expression vec4 * (swiz w (var_ref rv@0x32417a0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x31b7e80) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x357e720) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) diffuse) ) ) ) ) MAD TEMP[78], TEMP[56].wwww, TEMP[77], TEMP[42]; 97: (assign (constant bool (1)) (xyzw) (var_ref pc@0x3308b20) (expression vec4 + (var_ref pc@0x3308b20) (expression vec4 * (swiz w (var_ref rv@0x32417a0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x31b7e80) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x357e720) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) diffuse) ) ) ) ) ) MOV TEMP[42], TEMP[78]; 98: (expression float dot (swiz xyz (var_ref rv@0x32417a0) )(var_ref _ret_val@0x34b10d0) ) DP3 TEMP[79].x, TEMP[56].xyzz, TEMP[49].xyzz; 99: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x32417a0) )(var_ref _ret_val@0x34b10d0) ) ) MAX TEMP[80].x, CONST[18].xxxx, TEMP[79].xxxx; 100: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) MAX TEMP[81].x, CONST[21].xxxx, STATE[27].xxxx; 101: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x32417a0) )(var_ref _ret_val@0x34b10d0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) ) POW TEMP[82].x, TEMP[80].xxxx, TEMP[81].xxxx; 102: (expression float * (constant float (2.000000)) (var_ref t@0x33f5a10) ) MUL TEMP[83].x, CONST[20].xxxx, TEMP[73].xxxx; 103: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x33f5a10) ) ) ) ADD TEMP[85].x, CONST[20].zzzz, TEMP[83].-x-x-x-x; 104: (expression float * (var_ref t@0x33f5a10) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x33f5a10) ) ) ) ) MUL TEMP[86].x, TEMP[73].xxxx, TEMP[85].xxxx; 105: (expression float * (var_ref t@0x33f5a10) (expression float * (var_ref t@0x33f5a10) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x33f5a10) ) ) ) ) ) MUL TEMP[87].x, TEMP[73].xxxx, TEMP[86].xxxx; 106: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x32417a0) )(var_ref _ret_val@0x34b10d0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) ) (expression float * (var_ref t@0x33f5a10) (expression float * (var_ref t@0x33f5a10) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x33f5a10) ) ) ) ) ) ) MUL TEMP[88].x, TEMP[82].xxxx, TEMP[87].xxxx; 107: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x32417a0) )(var_ref _ret_val@0x34b10d0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) ) (expression float * (var_ref t@0x33f5a10) (expression float * (var_ref t@0x33f5a10) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x33f5a10) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (2)) ) specular) ) MUL TEMP[89], TEMP[88].xxxx, STATE[28]; 108: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x32417a0) )(var_ref _ret_val@0x34b10d0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) ) (expression float * (var_ref t@0x33f5a10) (expression float * (var_ref t@0x33f5a10) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x33f5a10) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) specular) ) MUL TEMP[90], TEMP[89], STATE[29]; 109: (expression vec4 * (swiz w (var_ref rv@0x32417a0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x32417a0) )(var_ref _ret_val@0x34b10d0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) ) (expression float * (var_ref t@0x33f5a10) (expression float * (var_ref t@0x33f5a10) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x33f5a10) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) specular) ) ) MUL TEMP[91], TEMP[56].wwww, TEMP[90]; 110: (assign (constant bool (1)) (xyzw) (var_ref sc@0x3308a10) (expression vec4 * (swiz w (var_ref rv@0x32417a0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x32417a0) )(var_ref _ret_val@0x34b10d0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) ) (expression float * (var_ref t@0x33f5a10) (expression float * (var_ref t@0x33f5a10) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x33f5a10) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) specular) ) ) ) MOV TEMP[43], TEMP[91]; 111: (expression bool != (array_ref (var_ref light_enabled@0x36f6080) (constant int (2)) ) (constant int (0)) ) ENDIF; 112: (expression bool != (array_ref (var_ref light_enabled@0x36f6080) (constant int (3)) ) (constant int (0)) ) SNE.C TEMP[92].x, UNIFORM[6].xxxx, CONST[18].xxxx; 113: IF (NE.xxxx); # (if false, goto 162); 114: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x333f370) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (3)) ) position) ) MOV TEMP[93], STATE[17]; 115: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x34f0cd0) )(swiz w (var_ref assignment_tmp@0x333f370) )) MUL TEMP[94].xyz, TEMP[5].xyzz, TEMP[93].wwww; 116: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x333f370) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x34f0cd0) )(swiz w (var_ref assignment_tmp@0x333f370) )) ) ) ADD TEMP[96].xyz, TEMP[93].xyzz, TEMP[94].-x-y-z-z; 117: (assign (constant bool (1)) (xyz) (var_ref rv@0x333f260) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x333f370) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x34f0cd0) )(swiz w (var_ref assignment_tmp@0x333f370) )) ) ) )) MOV TEMP[97].xyz, TEMP[96].xyzz; 118: (assign (constant bool (1)) (xyz) (var_ref arg0@0x32fb210) (swiz xyz (var_ref rv@0x333f260) )) MOV TEMP[98].xyz, TEMP[97].xyzz; 119: (expression float dot (var_ref arg0@0x32fb210) (var_ref arg0@0x32fb210) ) DP3 TEMP[99].x, TEMP[98].xyzz, TEMP[98].xyzz; 120: (expression float sqrt (expression float dot (var_ref arg0@0x32fb210) (var_ref arg0@0x32fb210) ) ) RSQ TEMP[100].x, TEMP[99].xxxx; 121: MUL TEMP[100].x, TEMP[100].xxxx, TEMP[99].xxxx; 122: CMP TEMP[100].x, TEMP[99].-x-x-x-x, TEMP[100].xxxx, CONST[18].xxxx; 123: (assign (constant bool (1)) (x) (var_ref _ret_val@0x32fb160) (expression float sqrt (expression float dot (var_ref arg0@0x32fb210) (var_ref arg0@0x32fb210) ) ) ) MOV TEMP[101], TEMP[100].xxxx; 124: (expression float rcp (var_ref _ret_val@0x32fb160) ) RCP TEMP[102].x, TEMP[101].xxxx; 125: (expression vec3 * (swiz xyz (var_ref rv@0x333f260) )(expression float rcp (var_ref _ret_val@0x32fb160) ) ) MUL TEMP[103].xyz, TEMP[97].xyzz, TEMP[102].xxxx; 126: (assign (constant bool (1)) (xyz) (var_ref rv@0x333f260) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x333f260) )(expression float rcp (var_ref _ret_val@0x32fb160) ) ) )) MOV TEMP[97].xyz, TEMP[103].xyzz; 127: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x32fc130) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[104].x, CONST[21].xyzz; 128: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x32fc130) (swiz xxx (var_ref _ret_val@0x32fb160) )) MOV TEMP[104].y, TEMP[101].xxxx; 129: (expression float * (var_ref _ret_val@0x32fb160) (var_ref _ret_val@0x32fb160) ) MUL TEMP[105].x, TEMP[101].xxxx, TEMP[101].xxxx; 130: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x32fc130) (swiz xxx (expression float * (var_ref _ret_val@0x32fb160) (var_ref _ret_val@0x32fb160) ) )) MOV TEMP[104].z, TEMP[105].xxxx; 131: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x333b890) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (3)) ) constantAttenuation) )) MOV TEMP[106].x, STATE[22].xxxx; 132: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x333b890) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (3)) ) linearAttenuation) )) MOV TEMP[106].y, STATE[22].yyyy; 133: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x333b890) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (3)) ) quadraticAttenuation) )) MOV TEMP[106].z, STATE[22].zzzz; 134: (expression float dot (var_ref vec_ctor@0x32fc130) (var_ref vec_ctor@0x333b890) ) DP3 TEMP[107].x, TEMP[104].xyzz, TEMP[106].xyzz; 135: (expression float rcp (expression float dot (var_ref vec_ctor@0x32fc130) (var_ref vec_ctor@0x333b890) ) ) RCP TEMP[108].x, TEMP[107].xxxx; 136: (assign (constant bool (1)) (w) (var_ref rv@0x333f260) (swiz xxxx (expression float rcp (expression float dot (var_ref vec_ctor@0x32fc130) (var_ref vec_ctor@0x333b890) ) ) )) MOV TEMP[97].w, TEMP[108].xxxx; 137: (expression float dot (swiz xyz (var_ref rv@0x333f260) )(var_ref _ret_val@0x3304d00) ) DP3 TEMP[109].x, TEMP[97].xyzz, TEMP[18].xyzz; 138: (assign (constant bool (1)) (x) (var_ref _ret_val@0x375b6e0) (expression float dot (swiz xyz (var_ref rv@0x333f260) )(var_ref _ret_val@0x3304d00) ) ) MOV TEMP[110], TEMP[109].xxxx; 139: (expression float * (var_ref _ret_val@0x375b6e0) (constant float (4.000000)) ) MUL TEMP[111].x, TEMP[110].xxxx, CONST[20].yyyy; 140: (expression float min (expression float * (var_ref _ret_val@0x375b6e0) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[112].x, TEMP[111].xxxx, CONST[21].xxxx; 141: (expression float max (expression float min (expression float * (var_ref _ret_val@0x375b6e0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[113].x, TEMP[112].xxxx, CONST[18].xxxx; 142: (assign (constant bool (1)) (x) (var_ref t@0x3584ab0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x375b6e0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[114], TEMP[113].xxxx; 143: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x375b6e0) ) MAX TEMP[115].x, CONST[18].xxxx, TEMP[110].xxxx; 144: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x375b6e0) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (3)) ) diffuse) ) MUL TEMP[116], TEMP[115].xxxx, STATE[23]; 145: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x31b7e80) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (3)) ) ambient) ) MUL TEMP[117], STATE[25], STATE[26]; 146: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x31b7e80) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x375b6e0) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) diffuse) ) ) MAD TEMP[118], TEMP[116], STATE[24], TEMP[117]; 147: (expression vec4 + (var_ref pc@0x3308b20) (expression vec4 * (swiz w (var_ref rv@0x333f260) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x31b7e80) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x375b6e0) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) diffuse) ) ) ) ) MAD TEMP[119], TEMP[97].wwww, TEMP[118], TEMP[42]; 148: (assign (constant bool (1)) (xyzw) (var_ref pc@0x3308b20) (expression vec4 + (var_ref pc@0x3308b20) (expression vec4 * (swiz w (var_ref rv@0x333f260) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x31b7e80) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x375b6e0) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) diffuse) ) ) ) ) ) MOV TEMP[42], TEMP[119]; 149: (expression float dot (swiz xyz (var_ref rv@0x333f260) )(var_ref _ret_val@0x34b10d0) ) DP3 TEMP[120].x, TEMP[97].xyzz, TEMP[49].xyzz; 150: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x333f260) )(var_ref _ret_val@0x34b10d0) ) ) MAX TEMP[121].x, CONST[18].xxxx, TEMP[120].xxxx; 151: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) MAX TEMP[122].x, CONST[21].xxxx, STATE[27].xxxx; 152: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x333f260) )(var_ref _ret_val@0x34b10d0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) ) POW TEMP[123].x, TEMP[121].xxxx, TEMP[122].xxxx; 153: (expression float * (constant float (2.000000)) (var_ref t@0x3584ab0) ) MUL TEMP[124].x, CONST[20].xxxx, TEMP[114].xxxx; 154: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x3584ab0) ) ) ) ADD TEMP[126].x, CONST[20].zzzz, TEMP[124].-x-x-x-x; 155: (expression float * (var_ref t@0x3584ab0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x3584ab0) ) ) ) ) MUL TEMP[127].x, TEMP[114].xxxx, TEMP[126].xxxx; 156: (expression float * (var_ref t@0x3584ab0) (expression float * (var_ref t@0x3584ab0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x3584ab0) ) ) ) ) ) MUL TEMP[128].x, TEMP[114].xxxx, TEMP[127].xxxx; 157: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x333f260) )(var_ref _ret_val@0x34b10d0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) ) (expression float * (var_ref t@0x3584ab0) (expression float * (var_ref t@0x3584ab0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x3584ab0) ) ) ) ) ) ) MUL TEMP[129].x, TEMP[123].xxxx, TEMP[128].xxxx; 158: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x333f260) )(var_ref _ret_val@0x34b10d0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) ) (expression float * (var_ref t@0x3584ab0) (expression float * (var_ref t@0x3584ab0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x3584ab0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (3)) ) specular) ) MUL TEMP[130], TEMP[129].xxxx, STATE[28]; 159: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x333f260) )(var_ref _ret_val@0x34b10d0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) ) (expression float * (var_ref t@0x3584ab0) (expression float * (var_ref t@0x3584ab0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x3584ab0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) specular) ) MUL TEMP[131], TEMP[130], STATE[29]; 160: (expression vec4 + (var_ref sc@0x3308a10) (expression vec4 * (swiz w (var_ref rv@0x333f260) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x333f260) )(var_ref _ret_val@0x34b10d0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) ) (expression float * (var_ref t@0x3584ab0) (expression float * (var_ref t@0x3584ab0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x3584ab0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) specular) ) ) ) MAD TEMP[132], TEMP[97].wwww, TEMP[131], TEMP[43]; 161: (assign (constant bool (1)) (xyzw) (var_ref sc@0x3308a10) (expression vec4 + (var_ref sc@0x3308a10) (expression vec4 * (swiz w (var_ref rv@0x333f260) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x333f260) )(var_ref _ret_val@0x34b10d0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) ) (expression float * (var_ref t@0x3584ab0) (expression float * (var_ref t@0x3584ab0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x3584ab0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) specular) ) ) ) ) MOV TEMP[43], TEMP[132]; 162: (expression bool != (array_ref (var_ref light_enabled@0x36f6080) (constant int (3)) ) (constant int (0)) ) ENDIF; 163: (expression bool != (array_ref (var_ref light_enabled@0x36f6080) (constant int (4)) ) (constant int (0)) ) SNE.C TEMP[133].x, UNIFORM[7].xxxx, CONST[18].xxxx; 164: IF (NE.xxxx); # (if false, goto 213); 165: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x32fe530) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (4)) ) position) ) MOV TEMP[134], STATE[17]; 166: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x34f0cd0) )(swiz w (var_ref assignment_tmp@0x32fe530) )) MUL TEMP[135].xyz, TEMP[5].xyzz, TEMP[134].wwww; 167: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x32fe530) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x34f0cd0) )(swiz w (var_ref assignment_tmp@0x32fe530) )) ) ) ADD TEMP[137].xyz, TEMP[134].xyzz, TEMP[135].-x-y-z-z; 168: (assign (constant bool (1)) (xyz) (var_ref rv@0x32fe420) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x32fe530) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x34f0cd0) )(swiz w (var_ref assignment_tmp@0x32fe530) )) ) ) )) MOV TEMP[138].xyz, TEMP[137].xyzz; 169: (assign (constant bool (1)) (xyz) (var_ref arg0@0x34ba5e0) (swiz xyz (var_ref rv@0x32fe420) )) MOV TEMP[139].xyz, TEMP[138].xyzz; 170: (expression float dot (var_ref arg0@0x34ba5e0) (var_ref arg0@0x34ba5e0) ) DP3 TEMP[140].x, TEMP[139].xyzz, TEMP[139].xyzz; 171: (expression float sqrt (expression float dot (var_ref arg0@0x34ba5e0) (var_ref arg0@0x34ba5e0) ) ) RSQ TEMP[141].x, TEMP[140].xxxx; 172: MUL TEMP[141].x, TEMP[141].xxxx, TEMP[140].xxxx; 173: CMP TEMP[141].x, TEMP[140].-x-x-x-x, TEMP[141].xxxx, CONST[18].xxxx; 174: (assign (constant bool (1)) (x) (var_ref _ret_val@0x34ba530) (expression float sqrt (expression float dot (var_ref arg0@0x34ba5e0) (var_ref arg0@0x34ba5e0) ) ) ) MOV TEMP[142], TEMP[141].xxxx; 175: (expression float rcp (var_ref _ret_val@0x34ba530) ) RCP TEMP[143].x, TEMP[142].xxxx; 176: (expression vec3 * (swiz xyz (var_ref rv@0x32fe420) )(expression float rcp (var_ref _ret_val@0x34ba530) ) ) MUL TEMP[144].xyz, TEMP[138].xyzz, TEMP[143].xxxx; 177: (assign (constant bool (1)) (xyz) (var_ref rv@0x32fe420) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x32fe420) )(expression float rcp (var_ref _ret_val@0x34ba530) ) ) )) MOV TEMP[138].xyz, TEMP[144].xyzz; 178: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x34bb500) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[145].x, CONST[21].xyzz; 179: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x34bb500) (swiz xxx (var_ref _ret_val@0x34ba530) )) MOV TEMP[145].y, TEMP[142].xxxx; 180: (expression float * (var_ref _ret_val@0x34ba530) (var_ref _ret_val@0x34ba530) ) MUL TEMP[146].x, TEMP[142].xxxx, TEMP[142].xxxx; 181: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x34bb500) (swiz xxx (expression float * (var_ref _ret_val@0x34ba530) (var_ref _ret_val@0x34ba530) ) )) MOV TEMP[145].z, TEMP[146].xxxx; 182: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x34bbd90) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (4)) ) constantAttenuation) )) MOV TEMP[147].x, STATE[22].xxxx; 183: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x34bbd90) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (4)) ) linearAttenuation) )) MOV TEMP[147].y, STATE[22].yyyy; 184: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x34bbd90) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (4)) ) quadraticAttenuation) )) MOV TEMP[147].z, STATE[22].zzzz; 185: (expression float dot (var_ref vec_ctor@0x34bb500) (var_ref vec_ctor@0x34bbd90) ) DP3 TEMP[148].x, TEMP[145].xyzz, TEMP[147].xyzz; 186: (expression float rcp (expression float dot (var_ref vec_ctor@0x34bb500) (var_ref vec_ctor@0x34bbd90) ) ) RCP TEMP[149].x, TEMP[148].xxxx; 187: (assign (constant bool (1)) (w) (var_ref rv@0x32fe420) (swiz xxxx (expression float rcp (expression float dot (var_ref vec_ctor@0x34bb500) (var_ref vec_ctor@0x34bbd90) ) ) )) MOV TEMP[138].w, TEMP[149].xxxx; 188: (expression float dot (swiz xyz (var_ref rv@0x32fe420) )(var_ref _ret_val@0x3304d00) ) DP3 TEMP[150].x, TEMP[138].xyzz, TEMP[18].xyzz; 189: (assign (constant bool (1)) (x) (var_ref _ret_val@0x350bf90) (expression float dot (swiz xyz (var_ref rv@0x32fe420) )(var_ref _ret_val@0x3304d00) ) ) MOV TEMP[151], TEMP[150].xxxx; 190: (expression float * (var_ref _ret_val@0x350bf90) (constant float (4.000000)) ) MUL TEMP[152].x, TEMP[151].xxxx, CONST[20].yyyy; 191: (expression float min (expression float * (var_ref _ret_val@0x350bf90) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[153].x, TEMP[152].xxxx, CONST[21].xxxx; 192: (expression float max (expression float min (expression float * (var_ref _ret_val@0x350bf90) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[154].x, TEMP[153].xxxx, CONST[18].xxxx; 193: (assign (constant bool (1)) (x) (var_ref t@0x34eacc0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x350bf90) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[155], TEMP[154].xxxx; 194: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x350bf90) ) MAX TEMP[156].x, CONST[18].xxxx, TEMP[151].xxxx; 195: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x350bf90) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (4)) ) diffuse) ) MUL TEMP[157], TEMP[156].xxxx, STATE[23]; 196: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x31b7e80) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (4)) ) ambient) ) MUL TEMP[158], STATE[25], STATE[26]; 197: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x31b7e80) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x350bf90) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) diffuse) ) ) MAD TEMP[159], TEMP[157], STATE[24], TEMP[158]; 198: (expression vec4 + (var_ref pc@0x3308b20) (expression vec4 * (swiz w (var_ref rv@0x32fe420) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x31b7e80) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x350bf90) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) diffuse) ) ) ) ) MAD TEMP[160], TEMP[138].wwww, TEMP[159], TEMP[42]; 199: (assign (constant bool (1)) (xyzw) (var_ref pc@0x3308b20) (expression vec4 + (var_ref pc@0x3308b20) (expression vec4 * (swiz w (var_ref rv@0x32fe420) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x31b7e80) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x350bf90) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) diffuse) ) ) ) ) ) MOV TEMP[42], TEMP[160]; 200: (expression float dot (swiz xyz (var_ref rv@0x32fe420) )(var_ref _ret_val@0x34b10d0) ) DP3 TEMP[161].x, TEMP[138].xyzz, TEMP[49].xyzz; 201: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x32fe420) )(var_ref _ret_val@0x34b10d0) ) ) MAX TEMP[162].x, CONST[18].xxxx, TEMP[161].xxxx; 202: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) MAX TEMP[163].x, CONST[21].xxxx, STATE[27].xxxx; 203: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x32fe420) )(var_ref _ret_val@0x34b10d0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) ) POW TEMP[164].x, TEMP[162].xxxx, TEMP[163].xxxx; 204: (expression float * (constant float (2.000000)) (var_ref t@0x34eacc0) ) MUL TEMP[165].x, CONST[20].xxxx, TEMP[155].xxxx; 205: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x34eacc0) ) ) ) ADD TEMP[167].x, CONST[20].zzzz, TEMP[165].-x-x-x-x; 206: (expression float * (var_ref t@0x34eacc0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x34eacc0) ) ) ) ) MUL TEMP[168].x, TEMP[155].xxxx, TEMP[167].xxxx; 207: (expression float * (var_ref t@0x34eacc0) (expression float * (var_ref t@0x34eacc0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x34eacc0) ) ) ) ) ) MUL TEMP[169].x, TEMP[155].xxxx, TEMP[168].xxxx; 208: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x32fe420) )(var_ref _ret_val@0x34b10d0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) ) (expression float * (var_ref t@0x34eacc0) (expression float * (var_ref t@0x34eacc0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x34eacc0) ) ) ) ) ) ) MUL TEMP[170].x, TEMP[164].xxxx, TEMP[169].xxxx; 209: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x32fe420) )(var_ref _ret_val@0x34b10d0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) ) (expression float * (var_ref t@0x34eacc0) (expression float * (var_ref t@0x34eacc0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x34eacc0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (4)) ) specular) ) MUL TEMP[171], TEMP[170].xxxx, STATE[28]; 210: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x32fe420) )(var_ref _ret_val@0x34b10d0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) ) (expression float * (var_ref t@0x34eacc0) (expression float * (var_ref t@0x34eacc0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x34eacc0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) specular) ) MUL TEMP[172], TEMP[171], STATE[29]; 211: (expression vec4 + (var_ref sc@0x3308a10) (expression vec4 * (swiz w (var_ref rv@0x32fe420) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x32fe420) )(var_ref _ret_val@0x34b10d0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) ) (expression float * (var_ref t@0x34eacc0) (expression float * (var_ref t@0x34eacc0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x34eacc0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) specular) ) ) ) MAD TEMP[173], TEMP[138].wwww, TEMP[172], TEMP[43]; 212: (assign (constant bool (1)) (xyzw) (var_ref sc@0x3308a10) (expression vec4 + (var_ref sc@0x3308a10) (expression vec4 * (swiz w (var_ref rv@0x32fe420) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x32fe420) )(var_ref _ret_val@0x34b10d0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) ) (expression float * (var_ref t@0x34eacc0) (expression float * (var_ref t@0x34eacc0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x34eacc0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) specular) ) ) ) ) MOV TEMP[43], TEMP[173]; 213: (expression bool != (array_ref (var_ref light_enabled@0x36f6080) (constant int (4)) ) (constant int (0)) ) ENDIF; 214: (expression bool != (array_ref (var_ref light_enabled@0x36f6080) (constant int (5)) ) (constant int (0)) ) SNE.C TEMP[174].x, UNIFORM[8].xxxx, CONST[18].xxxx; 215: IF (NE.xxxx); # (if false, goto 264); 216: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x334afb0) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (5)) ) position) ) MOV TEMP[175], STATE[17]; 217: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x34f0cd0) )(swiz w (var_ref assignment_tmp@0x334afb0) )) MUL TEMP[176].xyz, TEMP[5].xyzz, TEMP[175].wwww; 218: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x334afb0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x34f0cd0) )(swiz w (var_ref assignment_tmp@0x334afb0) )) ) ) ADD TEMP[178].xyz, TEMP[175].xyzz, TEMP[176].-x-y-z-z; 219: (assign (constant bool (1)) (xyz) (var_ref rv@0x334aea0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x334afb0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x34f0cd0) )(swiz w (var_ref assignment_tmp@0x334afb0) )) ) ) )) MOV TEMP[179].xyz, TEMP[178].xyzz; 220: (assign (constant bool (1)) (xyz) (var_ref arg0@0x34e82a0) (swiz xyz (var_ref rv@0x334aea0) )) MOV TEMP[180].xyz, TEMP[179].xyzz; 221: (expression float dot (var_ref arg0@0x34e82a0) (var_ref arg0@0x34e82a0) ) DP3 TEMP[181].x, TEMP[180].xyzz, TEMP[180].xyzz; 222: (expression float sqrt (expression float dot (var_ref arg0@0x34e82a0) (var_ref arg0@0x34e82a0) ) ) RSQ TEMP[182].x, TEMP[181].xxxx; 223: MUL TEMP[182].x, TEMP[182].xxxx, TEMP[181].xxxx; 224: CMP TEMP[182].x, TEMP[181].-x-x-x-x, TEMP[182].xxxx, CONST[18].xxxx; 225: (assign (constant bool (1)) (x) (var_ref _ret_val@0x334be40) (expression float sqrt (expression float dot (var_ref arg0@0x34e82a0) (var_ref arg0@0x34e82a0) ) ) ) MOV TEMP[183], TEMP[182].xxxx; 226: (expression float rcp (var_ref _ret_val@0x334be40) ) RCP TEMP[184].x, TEMP[183].xxxx; 227: (expression vec3 * (swiz xyz (var_ref rv@0x334aea0) )(expression float rcp (var_ref _ret_val@0x334be40) ) ) MUL TEMP[185].xyz, TEMP[179].xyzz, TEMP[184].xxxx; 228: (assign (constant bool (1)) (xyz) (var_ref rv@0x334aea0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x334aea0) )(expression float rcp (var_ref _ret_val@0x334be40) ) ) )) MOV TEMP[179].xyz, TEMP[185].xyzz; 229: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x34e91c0) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[186].x, CONST[21].xyzz; 230: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x34e91c0) (swiz xxx (var_ref _ret_val@0x334be40) )) MOV TEMP[186].y, TEMP[183].xxxx; 231: (expression float * (var_ref _ret_val@0x334be40) (var_ref _ret_val@0x334be40) ) MUL TEMP[187].x, TEMP[183].xxxx, TEMP[183].xxxx; 232: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x34e91c0) (swiz xxx (expression float * (var_ref _ret_val@0x334be40) (var_ref _ret_val@0x334be40) ) )) MOV TEMP[186].z, TEMP[187].xxxx; 233: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x34e9ac0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (5)) ) constantAttenuation) )) MOV TEMP[188].x, STATE[22].xxxx; 234: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x34e9ac0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (5)) ) linearAttenuation) )) MOV TEMP[188].y, STATE[22].yyyy; 235: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x34e9ac0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (5)) ) quadraticAttenuation) )) MOV TEMP[188].z, STATE[22].zzzz; 236: (expression float dot (var_ref vec_ctor@0x34e91c0) (var_ref vec_ctor@0x34e9ac0) ) DP3 TEMP[189].x, TEMP[186].xyzz, TEMP[188].xyzz; 237: (expression float rcp (expression float dot (var_ref vec_ctor@0x34e91c0) (var_ref vec_ctor@0x34e9ac0) ) ) RCP TEMP[190].x, TEMP[189].xxxx; 238: (assign (constant bool (1)) (w) (var_ref rv@0x334aea0) (swiz xxxx (expression float rcp (expression float dot (var_ref vec_ctor@0x34e91c0) (var_ref vec_ctor@0x34e9ac0) ) ) )) MOV TEMP[179].w, TEMP[190].xxxx; 239: (expression float dot (swiz xyz (var_ref rv@0x334aea0) )(var_ref _ret_val@0x3304d00) ) DP3 TEMP[191].x, TEMP[179].xyzz, TEMP[18].xyzz; 240: (assign (constant bool (1)) (x) (var_ref _ret_val@0x33714d0) (expression float dot (swiz xyz (var_ref rv@0x334aea0) )(var_ref _ret_val@0x3304d00) ) ) MOV TEMP[192], TEMP[191].xxxx; 241: (expression float * (var_ref _ret_val@0x33714d0) (constant float (4.000000)) ) MUL TEMP[193].x, TEMP[192].xxxx, CONST[20].yyyy; 242: (expression float min (expression float * (var_ref _ret_val@0x33714d0) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[194].x, TEMP[193].xxxx, CONST[21].xxxx; 243: (expression float max (expression float min (expression float * (var_ref _ret_val@0x33714d0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[195].x, TEMP[194].xxxx, CONST[18].xxxx; 244: (assign (constant bool (1)) (x) (var_ref t@0x3374be0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x33714d0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[196], TEMP[195].xxxx; 245: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x33714d0) ) MAX TEMP[197].x, CONST[18].xxxx, TEMP[192].xxxx; 246: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x33714d0) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (5)) ) diffuse) ) MUL TEMP[198], TEMP[197].xxxx, STATE[23]; 247: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x31b7e80) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (5)) ) ambient) ) MUL TEMP[199], STATE[25], STATE[26]; 248: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x31b7e80) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (5)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x33714d0) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (5)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) diffuse) ) ) MAD TEMP[200], TEMP[198], STATE[24], TEMP[199]; 249: (expression vec4 + (var_ref pc@0x3308b20) (expression vec4 * (swiz w (var_ref rv@0x334aea0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x31b7e80) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (5)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x33714d0) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (5)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) diffuse) ) ) ) ) MAD TEMP[201], TEMP[179].wwww, TEMP[200], TEMP[42]; 250: (assign (constant bool (1)) (xyzw) (var_ref pc@0x3308b20) (expression vec4 + (var_ref pc@0x3308b20) (expression vec4 * (swiz w (var_ref rv@0x334aea0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x31b7e80) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (5)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x33714d0) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (5)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) diffuse) ) ) ) ) ) MOV TEMP[42], TEMP[201]; 251: (expression float dot (swiz xyz (var_ref rv@0x334aea0) )(var_ref _ret_val@0x34b10d0) ) DP3 TEMP[202].x, TEMP[179].xyzz, TEMP[49].xyzz; 252: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x334aea0) )(var_ref _ret_val@0x34b10d0) ) ) MAX TEMP[203].x, CONST[18].xxxx, TEMP[202].xxxx; 253: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) MAX TEMP[204].x, CONST[21].xxxx, STATE[27].xxxx; 254: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x334aea0) )(var_ref _ret_val@0x34b10d0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) ) POW TEMP[205].x, TEMP[203].xxxx, TEMP[204].xxxx; 255: (expression float * (constant float (2.000000)) (var_ref t@0x3374be0) ) MUL TEMP[206].x, CONST[20].xxxx, TEMP[196].xxxx; 256: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x3374be0) ) ) ) ADD TEMP[208].x, CONST[20].zzzz, TEMP[206].-x-x-x-x; 257: (expression float * (var_ref t@0x3374be0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x3374be0) ) ) ) ) MUL TEMP[209].x, TEMP[196].xxxx, TEMP[208].xxxx; 258: (expression float * (var_ref t@0x3374be0) (expression float * (var_ref t@0x3374be0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x3374be0) ) ) ) ) ) MUL TEMP[210].x, TEMP[196].xxxx, TEMP[209].xxxx; 259: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x334aea0) )(var_ref _ret_val@0x34b10d0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) ) (expression float * (var_ref t@0x3374be0) (expression float * (var_ref t@0x3374be0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x3374be0) ) ) ) ) ) ) MUL TEMP[211].x, TEMP[205].xxxx, TEMP[210].xxxx; 260: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x334aea0) )(var_ref _ret_val@0x34b10d0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) ) (expression float * (var_ref t@0x3374be0) (expression float * (var_ref t@0x3374be0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x3374be0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (5)) ) specular) ) MUL TEMP[212], TEMP[211].xxxx, STATE[28]; 261: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x334aea0) )(var_ref _ret_val@0x34b10d0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) ) (expression float * (var_ref t@0x3374be0) (expression float * (var_ref t@0x3374be0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x3374be0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (5)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) specular) ) MUL TEMP[213], TEMP[212], STATE[29]; 262: (expression vec4 + (var_ref sc@0x3308a10) (expression vec4 * (swiz w (var_ref rv@0x334aea0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x334aea0) )(var_ref _ret_val@0x34b10d0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) ) (expression float * (var_ref t@0x3374be0) (expression float * (var_ref t@0x3374be0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x3374be0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (5)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) specular) ) ) ) MAD TEMP[214], TEMP[179].wwww, TEMP[213], TEMP[43]; 263: (assign (constant bool (1)) (xyzw) (var_ref sc@0x3308a10) (expression vec4 + (var_ref sc@0x3308a10) (expression vec4 * (swiz w (var_ref rv@0x334aea0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x334aea0) )(var_ref _ret_val@0x34b10d0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) shininess) ) ) (expression float * (var_ref t@0x3374be0) (expression float * (var_ref t@0x3374be0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x3374be0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x33612e0) (constant int (5)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x31b7e80) specular) ) ) ) ) MOV TEMP[43], TEMP[214]; 264: (expression bool != (array_ref (var_ref light_enabled@0x36f6080) (constant int (5)) ) (constant int (0)) ) ENDIF; 265: (expression bool >= (var_ref max_light_enabled@0x36159e0) (constant int (2)) ) ENDIF; 266: (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x338f520) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x3391420) )) MUL TEMP[215], STATE[30], INPUT[0].xxxx; 267: (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x338f520) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x3391420) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x338f520) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x3391420) )) ) MAD TEMP[216], STATE[31], INPUT[0].yyyy, TEMP[215]; 268: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x338f520) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x3391420) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x338f520) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x3391420) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x338f520) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x3391420) )) ) MAD TEMP[217], STATE[32], INPUT[0].zzzz, TEMP[216]; 269: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x338f520) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x3391420) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x338f520) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x3391420) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x338f520) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x3391420) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x338f520) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x3391420) )) ) MAD TEMP[218], STATE[33], INPUT[0].wwww, TEMP[217]; 270: (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x3392600) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x338f520) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x3391420) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x338f520) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x3391420) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x338f520) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x3391420) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x338f520) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x3391420) )) ) ) MOV OUTPUT[0], TEMP[218]; 271: (assign (constant bool (1)) (xyzw) (var_ref gl_BackColor@0x3164a60) (var_ref pc@0x3308b20) ) MOV OUTPUT[13], TEMP[42]; 272: (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0x344f170) (var_ref pc@0x3308b20) ) MOV OUTPUT[1], TEMP[42]; 273: (assign (constant bool (1)) (xyzw) (var_ref gl_BackSecondaryColor@0x3398dd0) (var_ref sc@0x3308a10) ) MOV OUTPUT[14], TEMP[43]; 274: (assign (constant bool (1)) (xyzw) (var_ref gl_FrontSecondaryColor@0x3175f80) (var_ref sc@0x3308a10) ) MOV OUTPUT[2], TEMP[43]; 275: END GLSL IR for linked fragment program 4: ( (declare (uniform ) vec4 damage@0x3396470) (declare (uniform ) vec4 cloaking@0x32d6a30) (declare (uniform ) sampler2D damageMap@0x32d6c40) (declare (uniform ) sampler2D normalMap@0x32d6cf0) (declare (uniform ) sampler2D glowMap@0x32d6da0) (declare (uniform ) sampler2D specMap@0x32d6eb0) (declare (uniform ) samplerCube envMap@0x32d6fc0) (declare (uniform ) sampler2D diffuseMap@0x32d70d0) (declare (uniform ) (array int 6) light_enabled@0x32d7230) (declare (out ) vec4 gl_FragColor@0x34aa3b0) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x33d3190) (declare (in ) (array vec4 0) gl_TexCoord@0x33d3c40) (function main (signature void (parameters ) ( (declare () vec3 specular_acc@0x3174860) (declare () vec3 diffuse_acc@0x3174910) (declare () vec3 light_acc@0x31749c0) (declare () float UAO@0x3174b20) (declare () float alpha@0x3174c30) (declare () vec3 glow_col@0x3174d40) (declare () vec3 mspec_col@0x3174df0) (declare () vec3 diff_col@0x3174ea0) (declare () vec4 mtl_gloss@0x3174f50) (declare () vec4 glowcolor@0x3175000) (declare () vec4 diffcolor@0x3175160) (declare () vec3 eye@0x31752c0) (declare () vec2 tex_coord@0x3175860) (assign (constant bool (1)) (xy) (var_ref tex_coord@0x3175860) (swiz xy (array_ref (var_ref gl_TexCoord@0x33d3c40) (constant int (0)) ) )) (declare (temporary ) vec3 assignment_tmp@0x36ae5a0) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x36ae5a0) (swiz xyz (array_ref (var_ref gl_TexCoord@0x33d3c40) (constant int (1)) ) )) (declare () vec3 _ret_val@0x3411d10) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x3411d10) (expression vec3 * (var_ref assignment_tmp@0x36ae5a0) (expression float rsq (expression float dot (var_ref assignment_tmp@0x36ae5a0) (var_ref assignment_tmp@0x36ae5a0) ) ) ) ) (declare () vec4 _ret_val@0x35d2990) (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x35d2990) (tex (var_ref normalMap@0x32d6cf0) (var_ref tex_coord@0x3175860) (0 0 0) 1 () )) (declare (temporary ) vec2 vec_ctor@0x35d3910) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x35d3910) (swiz xx (expression float + (expression float * (constant float (0.333300)) (expression float + (expression float + (swiz x (var_ref _ret_val@0x35d2990) )(swiz y (var_ref _ret_val@0x35d2990) )) (swiz z (var_ref _ret_val@0x35d2990) )) ) (constant float (-0.500000)) ) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x35d3910) (swiz xx (expression float + (swiz w (var_ref _ret_val@0x35d2990) )(constant float (-0.500000)) ) )) (declare (temporary ) vec3 vec_ctor@0x35d5140) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x35d5140) (constant vec3 (0.000000 0.000000 0.250000)) ) (assign (constant bool (1)) (xy) (var_ref vec_ctor@0x35d5140) (swiz xyx (var_ref vec_ctor@0x35d3910) )) (declare () vec3 _ret_val@0x35d57b0) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x35d57b0) (expression vec3 * (var_ref vec_ctor@0x35d5140) (expression float rsq (expression float dot (var_ref vec_ctor@0x35d5140) (var_ref vec_ctor@0x35d5140) ) ) ) ) (declare () vec3 _ret_val@0x324b9f0) (declare () vec3 arg0@0x324baa0) (assign (constant bool (1)) (xyz) (var_ref arg0@0x324baa0) (expression vec3 + (expression vec3 + (expression vec3 * (swiz xxx (var_ref _ret_val@0x35d57b0) )(swiz xyz (array_ref (var_ref gl_TexCoord@0x33d3c40) (constant int (2)) ) )) (expression vec3 * (swiz yyy (var_ref _ret_val@0x35d57b0) )(swiz xyz (array_ref (var_ref gl_TexCoord@0x33d3c40) (constant int (3)) ) )) ) (expression vec3 * (swiz zzz (var_ref _ret_val@0x35d57b0) )(var_ref assignment_tmp@0x36ae5a0) ) ) ) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x324b9f0) (expression vec3 * (var_ref arg0@0x324baa0) (expression float rsq (expression float dot (var_ref arg0@0x324baa0) (var_ref arg0@0x324baa0) ) ) ) ) (assign (constant bool (1)) (xyz) (var_ref eye@0x31752c0) (swiz xyz (array_ref (var_ref gl_TexCoord@0x33d3c40) (constant int (4)) ) )) (declare () vec4 _ret_val@0x324d870) (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x324d870) (tex (var_ref diffuseMap@0x32d70d0) (var_ref tex_coord@0x3175860) (0 0 0) 1 () )) (assign (constant bool (1)) (xyzw) (var_ref diffcolor@0x3175160) (var_ref _ret_val@0x324d870) ) (declare () vec4 _ret_val@0x35cea60) (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x35cea60) (tex (var_ref glowMap@0x32d6da0) (var_ref tex_coord@0x3175860) (0 0 0) 1 () )) (assign (constant bool (1)) (xyzw) (var_ref glowcolor@0x3175000) (var_ref _ret_val@0x35cea60) ) (declare () float f@0x35cf350) (assign (constant bool (1)) (x) (var_ref f@0x35cf350) (swiz x (var_ref damage@0x3396470) )) (assign (constant bool (1)) (xyz) (var_ref diffcolor@0x3175160) (swiz xyz (expression vec4 + (expression vec4 * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x35cf350) ) ) (var_ref _ret_val@0x324d870) ) (expression vec4 * (var_ref f@0x35cf350) (tex (var_ref damageMap@0x32d6c40) (var_ref tex_coord@0x3175860) (0 0 0) 1 () )) ) )) (declare (temporary ) vec4 assignment_tmp@0x36b40d0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x36b40d0) (expression vec4 * (tex (var_ref specMap@0x32d6eb0) (var_ref tex_coord@0x3175860) (0 0 0) 1 () )(expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref damage@0x3396470) )) ) ) ) (assign (constant bool (1)) (xyz) (var_ref glowcolor@0x3175000) (swiz xyz (expression vec3 * (swiz xyz (var_ref _ret_val@0x35cea60) )(expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref damage@0x3396470) )) ) ) )) (assign (constant bool (1)) (x) (var_ref alpha@0x3174c30) (swiz w (var_ref diffcolor@0x3175160) )) (assign (constant bool (1)) (x) (var_ref UAO@0x3174b20) (swiz w (var_ref glowcolor@0x3175000) )) (declare () vec4 mat_gloss@0x35d0350) (assign (constant bool (1)) (xyzw) (var_ref mat_gloss@0x35d0350) (var_ref mtl_gloss@0x3174f50) ) (declare () float gloss_in@0x35d04a0) (assign (constant bool (1)) (x) (var_ref gloss_in@0x35d04a0) (swiz w (var_ref assignment_tmp@0x36b40d0) )) (assign (constant bool (1)) (x) (var_ref mat_gloss@0x35d0350) (expression float * (constant float (0.500000)) (expression float + (var_ref gloss_in@0x35d04a0) (expression float * (var_ref gloss_in@0x35d04a0) (var_ref gloss_in@0x35d04a0) ) ) ) ) (assign (constant bool (1)) (y) (var_ref mat_gloss@0x35d0350) (swiz xx (expression float * (constant float (7.288829)) (expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref mat_gloss@0x35d0350) )) ) ) )) (assign (constant bool (1)) (z) (var_ref mat_gloss@0x35d0350) (swiz xxx (expression float * (constant float (1.047198)) (expression float pow (constant float (2.500000)) (expression float + (swiz y (var_ref mat_gloss@0x35d0350) )(constant float (-8.000000)) ) ) ) )) (assign (constant bool (1)) (w) (var_ref mat_gloss@0x35d0350) (swiz xxxx (expression float * (constant float (6.283185)) (expression float + (constant float (1.000000)) (expression float neg (expression float cos (swiz z (var_ref mat_gloss@0x35d0350) )) ) ) ) )) (assign (constant bool (1)) (xyzw) (var_ref mtl_gloss@0x3174f50) (var_ref mat_gloss@0x35d0350) ) (assign (constant bool (1)) (xyz) (var_ref diff_col@0x3174ea0) (swiz xyz (expression vec4 * (var_ref diffcolor@0x3175160) (var_ref diffcolor@0x3175160) ) )) (assign (constant bool (1)) (xyz) (var_ref mspec_col@0x3174df0) (swiz xyz (expression vec4 * (var_ref assignment_tmp@0x36b40d0) (var_ref assignment_tmp@0x36b40d0) ) )) (assign (constant bool (1)) (xyz) (var_ref glow_col@0x3174d40) (swiz xyz (expression vec4 * (var_ref glowcolor@0x3175000) (var_ref glowcolor@0x3175000) ) )) (declare (temporary ) vec3 assignment_tmp@0x36b65f0) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x36b65f0) (expression vec3 neg (expression vec3 + (var_ref eye@0x31752c0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x324b9f0) (var_ref eye@0x31752c0) ) (var_ref _ret_val@0x324b9f0) ) ) ) ) ) ) (assign (constant bool (1)) (xyz) (var_ref light_acc@0x31749c0) (constant vec3 (0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (xyz) (var_ref diffuse_acc@0x3174910) (constant vec3 (0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (xyz) (var_ref specular_acc@0x3174860) (constant vec3 (0.000000 0.000000 0.000000)) ) (declare (temporary ) float assignment_tmp@0x36b7210) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x36b7210) (swiz w (var_ref mat_gloss@0x35d0350) )) (if (expression bool != (array_ref (var_ref light_enabled@0x32d7230) (constant int (0)) ) (constant int (0)) ) ( (declare () vec4 lightinfo@0x3405a40) (assign (constant bool (1)) (xyzw) (var_ref lightinfo@0x3405a40) (array_ref (var_ref gl_TexCoord@0x33d3c40) (constant int (5)) ) ) (declare () vec3 raw_light_col@0x3406630) (assign (constant bool (1)) (xyz) (var_ref raw_light_col@0x3406630) (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x33d3190) (constant int (0)) ) diffuse) )) (declare () vec3 light_col@0x34b2600) (declare () vec3 _ret_val@0x34b2970) (declare () vec3 arg0@0x34b2a20) (assign (constant bool (1)) (xyz) (var_ref arg0@0x34b2a20) (swiz xyz (var_ref lightinfo@0x3405a40) )) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x34b2970) (expression vec3 * (var_ref arg0@0x34b2a20) (expression float rsq (expression float dot (var_ref arg0@0x34b2a20) (var_ref arg0@0x34b2a20) ) ) ) ) (declare (temporary ) float assignment_tmp@0x34b3780) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x34b3780) (swiz w (var_ref lightinfo@0x3405a40) )) (assign (constant bool (1)) (xyz) (var_ref light_col@0x34b2600) (expression vec3 * (var_ref raw_light_col@0x3406630) (var_ref raw_light_col@0x3406630) ) ) (declare (temporary ) float assignment_tmp@0x33aa5f0) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x33aa5f0) (expression float * (var_ref assignment_tmp@0x34b3780) (constant float (0.159155)) ) ) (declare () float _ret_val@0x33abac0) (assign (constant bool (1)) (x) (var_ref _ret_val@0x33abac0) (expression float max (expression float min (expression float * (constant float (4.000000)) (expression float * (expression float + (expression float dot (var_ref _ret_val@0x3411d10) (var_ref _ret_val@0x34b2970) ) (var_ref assignment_tmp@0x33aa5f0) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x33aa5f0) ) ) ) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (declare (temporary ) float assignment_tmp@0x33baac0) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x33baac0) (expression float * (var_ref assignment_tmp@0x34b3780) (constant float (0.159155)) ) ) (declare () float _ret_val@0x37656c0) (assign (constant bool (1)) (x) (var_ref _ret_val@0x37656c0) (expression float + (expression float * (constant float (1.570796)) (expression float rcp (expression float + (var_ref assignment_tmp@0x36b7210) (var_ref assignment_tmp@0x34b3780) ) ) ) (constant float (-0.810660)) ) ) (assign (constant bool (1)) (xyz) (var_ref light_acc@0x31749c0) (var_ref light_col@0x34b2600) ) (assign (constant bool (1)) (xyz) (var_ref diffuse_acc@0x3174910) (expression vec3 * (expression float max (expression float min (expression float * (expression float + (expression float dot (var_ref _ret_val@0x324b9f0) (var_ref _ret_val@0x34b2970) ) (var_ref assignment_tmp@0x33baac0) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x33baac0) ) ) ) (var_ref _ret_val@0x33abac0) ) (constant float (0.000000)) ) (var_ref light_col@0x34b2600) ) ) (assign (constant bool (1)) (xyz) (var_ref specular_acc@0x3174860) (expression vec3 * (expression float max (constant float (0.000000)) (expression float * (expression float pow (expression float max (expression float min (expression float dot (var_ref assignment_tmp@0x36b65f0) (var_ref _ret_val@0x34b2970) ) (var_ref _ret_val@0x33abac0) ) (constant float (0.000000)) ) (var_ref _ret_val@0x37656c0) ) (var_ref _ret_val@0x37656c0) ) ) (var_ref light_col@0x34b2600) ) ) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x32d7230) (constant int (1)) ) (constant int (0)) ) ( (declare () vec4 lightinfo@0x349bf80) (assign (constant bool (1)) (xyzw) (var_ref lightinfo@0x349bf80) (array_ref (var_ref gl_TexCoord@0x33d3c40) (constant int (6)) ) ) (declare () vec3 raw_light_col@0x34cb5b0) (assign (constant bool (1)) (xyz) (var_ref raw_light_col@0x34cb5b0) (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x33d3190) (constant int (1)) ) diffuse) )) (declare () vec3 light_col@0x34cc690) (declare () vec3 _ret_val@0x34cca00) (declare () vec3 arg0@0x34ccab0) (assign (constant bool (1)) (xyz) (var_ref arg0@0x34ccab0) (swiz xyz (var_ref lightinfo@0x349bf80) )) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x34cca00) (expression vec3 * (var_ref arg0@0x34ccab0) (expression float rsq (expression float dot (var_ref arg0@0x34ccab0) (var_ref arg0@0x34ccab0) ) ) ) ) (declare (temporary ) float assignment_tmp@0x34cd810) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x34cd810) (swiz w (var_ref lightinfo@0x349bf80) )) (assign (constant bool (1)) (xyz) (var_ref light_col@0x34cc690) (expression vec3 * (var_ref raw_light_col@0x34cb5b0) (var_ref raw_light_col@0x34cb5b0) ) ) (declare (temporary ) float assignment_tmp@0x3246ee0) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x3246ee0) (expression float * (var_ref assignment_tmp@0x34cd810) (constant float (0.159155)) ) ) (declare () float _ret_val@0x32483b0) (assign (constant bool (1)) (x) (var_ref _ret_val@0x32483b0) (expression float max (expression float min (expression float * (constant float (4.000000)) (expression float * (expression float + (expression float dot (var_ref _ret_val@0x3411d10) (var_ref _ret_val@0x34cca00) ) (var_ref assignment_tmp@0x3246ee0) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x3246ee0) ) ) ) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (declare (temporary ) float assignment_tmp@0x34ac020) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x34ac020) (expression float * (var_ref assignment_tmp@0x34cd810) (constant float (0.159155)) ) ) (declare () float _ret_val@0x3630e90) (assign (constant bool (1)) (x) (var_ref _ret_val@0x3630e90) (expression float + (expression float * (constant float (1.570796)) (expression float rcp (expression float + (var_ref assignment_tmp@0x36b7210) (var_ref assignment_tmp@0x34cd810) ) ) ) (constant float (-0.810660)) ) ) (assign (constant bool (1)) (xyz) (var_ref light_acc@0x31749c0) (expression vec3 + (var_ref light_acc@0x31749c0) (var_ref light_col@0x34cc690) ) ) (assign (constant bool (1)) (xyz) (var_ref diffuse_acc@0x3174910) (expression vec3 + (var_ref diffuse_acc@0x3174910) (expression vec3 * (expression float max (expression float min (expression float * (expression float + (expression float dot (var_ref _ret_val@0x324b9f0) (var_ref _ret_val@0x34cca00) ) (var_ref assignment_tmp@0x34ac020) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x34ac020) ) ) ) (var_ref _ret_val@0x32483b0) ) (constant float (0.000000)) ) (var_ref light_col@0x34cc690) ) ) ) (assign (constant bool (1)) (xyz) (var_ref specular_acc@0x3174860) (expression vec3 + (var_ref specular_acc@0x3174860) (expression vec3 * (expression float max (constant float (0.000000)) (expression float * (expression float pow (expression float max (expression float min (expression float dot (var_ref assignment_tmp@0x36b65f0) (var_ref _ret_val@0x34cca00) ) (var_ref _ret_val@0x32483b0) ) (constant float (0.000000)) ) (var_ref _ret_val@0x3630e90) ) (var_ref _ret_val@0x3630e90) ) ) (var_ref light_col@0x34cc690) ) ) ) ) ()) (declare (temporary ) vec3 assignment_tmp@0x36b8cc0) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x36b8cc0) (expression vec3 * (expression vec3 * (constant float (3.000000)) (expression vec3 * (var_ref light_acc@0x31749c0) (expression float rsq (expression float dot (var_ref light_acc@0x31749c0) (var_ref light_acc@0x31749c0) ) ) ) ) (expression vec3 rcp (var_ref light_acc@0x31749c0) ) ) ) (assign (constant bool (1)) (xyz) (var_ref diffuse_acc@0x3174910) (expression vec3 * (var_ref diffuse_acc@0x3174910) (var_ref assignment_tmp@0x36b8cc0) ) ) (assign (constant bool (1)) (xyz) (var_ref specular_acc@0x3174860) (expression vec3 * (var_ref specular_acc@0x3174860) (var_ref assignment_tmp@0x36b8cc0) ) ) (declare (temporary ) vec3 assignment_tmp@0x3476940) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x3476940) (swiz xyz (tex (var_ref envMap@0x32d6fc0) (var_ref assignment_tmp@0x36b65f0) (0 0 0) 1 () ))) (declare (temporary ) vec4 vec_ctor@0x36ba8d0) (assign (constant bool (1)) (xyz) (var_ref vec_ctor@0x36ba8d0) (swiz xyzx (expression vec3 sqrt (expression vec3 + (expression vec3 * (expression vec3 + (expression vec3 * (expression vec3 * (expression vec3 + (expression vec3 * (var_ref assignment_tmp@0x3476940) (var_ref assignment_tmp@0x3476940) ) (var_ref specular_acc@0x3174860) ) (var_ref mspec_col@0x3174df0) ) (var_ref UAO@0x3174b20) ) (expression vec3 * (expression vec3 + (var_ref glow_col@0x3174d40) (var_ref diffuse_acc@0x3174910) ) (var_ref diff_col@0x3174ea0) ) ) (var_ref UAO@0x3174b20) ) (var_ref glow_col@0x3174d40) ) ) )) (assign (constant bool (1)) (w) (var_ref vec_ctor@0x36ba8d0) (swiz xxxx (var_ref alpha@0x3174c30) )) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x34aa3b0) (expression vec4 * (var_ref vec_ctor@0x36ba8d0) (swiz xxxy (var_ref cloaking@0x32d6a30) )) ) )) ) ) Mesa IR for linked fragment program 4: 0: (assign (constant bool (1)) (xy) (var_ref tex_coord@0x3175860) (swiz xy (array_ref (var_ref gl_TexCoord@0x33d3c40) (constant int (0)) ) )) MOV TEMP[1].xy, INPUT[4].xyyy; 1: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x36ae5a0) (swiz xyz (array_ref (var_ref gl_TexCoord@0x33d3c40) (constant int (1)) ) )) MOV TEMP[2].xyz, INPUT[5].xyzz; 2: (expression float dot (var_ref assignment_tmp@0x36ae5a0) (var_ref assignment_tmp@0x36ae5a0) ) DP3 TEMP[3].x, TEMP[2].xyzz, TEMP[2].xyzz; 3: (expression float rsq (expression float dot (var_ref assignment_tmp@0x36ae5a0) (var_ref assignment_tmp@0x36ae5a0) ) ) RSQ TEMP[4].x, TEMP[3].xxxx; 4: (expression vec3 * (var_ref assignment_tmp@0x36ae5a0) (expression float rsq (expression float dot (var_ref assignment_tmp@0x36ae5a0) (var_ref assignment_tmp@0x36ae5a0) ) ) ) MUL TEMP[5].xyz, TEMP[2].xyzz, TEMP[4].xxxx; 5: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x3411d10) (expression vec3 * (var_ref assignment_tmp@0x36ae5a0) (expression float rsq (expression float dot (var_ref assignment_tmp@0x36ae5a0) (var_ref assignment_tmp@0x36ae5a0) ) ) ) ) MOV TEMP[6].xyz, TEMP[5].xyzz; 6: (tex (var_ref normalMap@0x32d6cf0) (var_ref tex_coord@0x3175860) (0 0 0) 1 () ) MOV TEMP[7], TEMP[1].xyyy; 7: TEX TEMP[8], TEMP[7], texture[1], 2D; 8: (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x35d2990) (tex (var_ref normalMap@0x32d6cf0) (var_ref tex_coord@0x3175860) (0 0 0) 1 () )) MOV TEMP[9], TEMP[8]; 9: (expression float + (swiz x (var_ref _ret_val@0x35d2990) )(swiz y (var_ref _ret_val@0x35d2990) )) ADD TEMP[10].x, TEMP[9].xxxx, TEMP[9].yyyy; 10: (expression float + (expression float + (swiz x (var_ref _ret_val@0x35d2990) )(swiz y (var_ref _ret_val@0x35d2990) )) (swiz z (var_ref _ret_val@0x35d2990) )) ADD TEMP[11].x, TEMP[10].xxxx, TEMP[9].zzzz; 11: (expression float + (expression float * (constant float (0.333300)) (expression float + (expression float + (swiz x (var_ref _ret_val@0x35d2990) )(swiz y (var_ref _ret_val@0x35d2990) )) (swiz z (var_ref _ret_val@0x35d2990) )) ) (constant float (-0.500000)) ) MAD TEMP[12], CONST[14].xxxx, TEMP[11].xxxx, CONST[14].yyyy; 12: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x35d3910) (swiz xx (expression float + (expression float * (constant float (0.333300)) (expression float + (expression float + (swiz x (var_ref _ret_val@0x35d2990) )(swiz y (var_ref _ret_val@0x35d2990) )) (swiz z (var_ref _ret_val@0x35d2990) )) ) (constant float (-0.500000)) ) )) MOV TEMP[13].x, TEMP[12].xxxx; 13: (expression float + (swiz w (var_ref _ret_val@0x35d2990) )(constant float (-0.500000)) ) ADD TEMP[14].x, TEMP[9].wwww, CONST[14].yyyy; 14: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x35d3910) (swiz xx (expression float + (swiz w (var_ref _ret_val@0x35d2990) )(constant float (-0.500000)) ) )) MOV TEMP[13].y, TEMP[14].xxxx; 15: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x35d5140) (constant vec3 (0.000000 0.000000 0.250000)) ) MOV TEMP[15].z, CONST[15]; 16: (assign (constant bool (1)) (xy) (var_ref vec_ctor@0x35d5140) (swiz xyx (var_ref vec_ctor@0x35d3910) )) MOV TEMP[15].xy, TEMP[13].xyxx; 17: (expression float dot (var_ref vec_ctor@0x35d5140) (var_ref vec_ctor@0x35d5140) ) DP3 TEMP[16].x, TEMP[15].xyzz, TEMP[15].xyzz; 18: (expression float rsq (expression float dot (var_ref vec_ctor@0x35d5140) (var_ref vec_ctor@0x35d5140) ) ) RSQ TEMP[17].x, TEMP[16].xxxx; 19: (expression vec3 * (var_ref vec_ctor@0x35d5140) (expression float rsq (expression float dot (var_ref vec_ctor@0x35d5140) (var_ref vec_ctor@0x35d5140) ) ) ) MUL TEMP[18].xyz, TEMP[15].xyzz, TEMP[17].xxxx; 20: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x35d57b0) (expression vec3 * (var_ref vec_ctor@0x35d5140) (expression float rsq (expression float dot (var_ref vec_ctor@0x35d5140) (var_ref vec_ctor@0x35d5140) ) ) ) ) MOV TEMP[19].xyz, TEMP[18].xyzz; 21: (expression vec3 * (swiz xxx (var_ref _ret_val@0x35d57b0) )(swiz xyz (array_ref (var_ref gl_TexCoord@0x33d3c40) (constant int (2)) ) )) MUL TEMP[20].xyz, TEMP[19].xxxx, INPUT[6].xyzz; 22: (expression vec3 + (expression vec3 * (swiz xxx (var_ref _ret_val@0x35d57b0) )(swiz xyz (array_ref (var_ref gl_TexCoord@0x33d3c40) (constant int (2)) ) )) (expression vec3 * (swiz yyy (var_ref _ret_val@0x35d57b0) )(swiz xyz (array_ref (var_ref gl_TexCoord@0x33d3c40) (constant int (3)) ) )) ) MAD TEMP[21], TEMP[19].yyyy, INPUT[7].xyzz, TEMP[20].xyzz; 23: (expression vec3 + (expression vec3 + (expression vec3 * (swiz xxx (var_ref _ret_val@0x35d57b0) )(swiz xyz (array_ref (var_ref gl_TexCoord@0x33d3c40) (constant int (2)) ) )) (expression vec3 * (swiz yyy (var_ref _ret_val@0x35d57b0) )(swiz xyz (array_ref (var_ref gl_TexCoord@0x33d3c40) (constant int (3)) ) )) ) (expression vec3 * (swiz zzz (var_ref _ret_val@0x35d57b0) )(var_ref assignment_tmp@0x36ae5a0) ) ) MAD TEMP[22], TEMP[19].zzzz, TEMP[2].xyzz, TEMP[21].xyzz; 24: (assign (constant bool (1)) (xyz) (var_ref arg0@0x324baa0) (expression vec3 + (expression vec3 + (expression vec3 * (swiz xxx (var_ref _ret_val@0x35d57b0) )(swiz xyz (array_ref (var_ref gl_TexCoord@0x33d3c40) (constant int (2)) ) )) (expression vec3 * (swiz yyy (var_ref _ret_val@0x35d57b0) )(swiz xyz (array_ref (var_ref gl_TexCoord@0x33d3c40) (constant int (3)) ) )) ) (expression vec3 * (swiz zzz (var_ref _ret_val@0x35d57b0) )(var_ref assignment_tmp@0x36ae5a0) ) ) ) MOV TEMP[23].xyz, TEMP[22].xyzz; 25: (expression float dot (var_ref arg0@0x324baa0) (var_ref arg0@0x324baa0) ) DP3 TEMP[24].x, TEMP[23].xyzz, TEMP[23].xyzz; 26: (expression float rsq (expression float dot (var_ref arg0@0x324baa0) (var_ref arg0@0x324baa0) ) ) RSQ TEMP[25].x, TEMP[24].xxxx; 27: (expression vec3 * (var_ref arg0@0x324baa0) (expression float rsq (expression float dot (var_ref arg0@0x324baa0) (var_ref arg0@0x324baa0) ) ) ) MUL TEMP[26].xyz, TEMP[23].xyzz, TEMP[25].xxxx; 28: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x324b9f0) (expression vec3 * (var_ref arg0@0x324baa0) (expression float rsq (expression float dot (var_ref arg0@0x324baa0) (var_ref arg0@0x324baa0) ) ) ) ) MOV TEMP[27].xyz, TEMP[26].xyzz; 29: (assign (constant bool (1)) (xyz) (var_ref eye@0x31752c0) (swiz xyz (array_ref (var_ref gl_TexCoord@0x33d3c40) (constant int (4)) ) )) MOV TEMP[28].xyz, INPUT[8].xyzz; 30: (tex (var_ref diffuseMap@0x32d70d0) (var_ref tex_coord@0x3175860) (0 0 0) 1 () ) MOV TEMP[29], TEMP[1].xyyy; 31: TEX TEMP[30], TEMP[29], texture[5], 2D; 32: (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x324d870) (tex (var_ref diffuseMap@0x32d70d0) (var_ref tex_coord@0x3175860) (0 0 0) 1 () )) MOV TEMP[31], TEMP[30]; 33: (assign (constant bool (1)) (xyzw) (var_ref diffcolor@0x3175160) (var_ref _ret_val@0x324d870) ) MOV TEMP[32], TEMP[31]; 34: (tex (var_ref glowMap@0x32d6da0) (var_ref tex_coord@0x3175860) (0 0 0) 1 () ) MOV TEMP[33], TEMP[1].xyyy; 35: TEX TEMP[34], TEMP[33], texture[2], 2D; 36: (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x35cea60) (tex (var_ref glowMap@0x32d6da0) (var_ref tex_coord@0x3175860) (0 0 0) 1 () )) MOV TEMP[35], TEMP[34]; 37: (assign (constant bool (1)) (xyzw) (var_ref glowcolor@0x3175000) (var_ref _ret_val@0x35cea60) ) MOV TEMP[36], TEMP[35]; 38: (assign (constant bool (1)) (x) (var_ref f@0x35cf350) (swiz x (var_ref damage@0x3396470) )) MOV TEMP[37], UNIFORM[0].xxxx; 39: (tex (var_ref damageMap@0x32d6c40) (var_ref tex_coord@0x3175860) (0 0 0) 1 () ) MOV TEMP[38], TEMP[1].xyyy; 40: TEX TEMP[39], TEMP[38], texture[0], 2D; 41: (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x35cf350) ) ) ADD TEMP[41].x, CONST[14].zzzz, TEMP[37].-x-x-x-x; 42: (expression vec4 * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x35cf350) ) ) (var_ref _ret_val@0x324d870) ) MUL TEMP[42], TEMP[41].xxxx, TEMP[31]; 43: (expression vec4 + (expression vec4 * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x35cf350) ) ) (var_ref _ret_val@0x324d870) ) (expression vec4 * (var_ref f@0x35cf350) (tex (var_ref damageMap@0x32d6c40) (var_ref tex_coord@0x3175860) (0 0 0) 1 () )) ) MAD TEMP[43], TEMP[37].xxxx, TEMP[39], TEMP[42]; 44: (assign (constant bool (1)) (xyz) (var_ref diffcolor@0x3175160) (swiz xyz (expression vec4 + (expression vec4 * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x35cf350) ) ) (var_ref _ret_val@0x324d870) ) (expression vec4 * (var_ref f@0x35cf350) (tex (var_ref damageMap@0x32d6c40) (var_ref tex_coord@0x3175860) (0 0 0) 1 () )) ) )) MOV TEMP[32].xyz, TEMP[43].xyzz; 45: (tex (var_ref specMap@0x32d6eb0) (var_ref tex_coord@0x3175860) (0 0 0) 1 () ) MOV TEMP[44], TEMP[1].xyyy; 46: TEX TEMP[45], TEMP[44], texture[3], 2D; 47: (expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref damage@0x3396470) )) ) ADD TEMP[47].x, CONST[14].zzzz, UNIFORM[0].-x-x-x-x; 48: (expression vec4 * (tex (var_ref specMap@0x32d6eb0) (var_ref tex_coord@0x3175860) (0 0 0) 1 () )(expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref damage@0x3396470) )) ) ) MUL TEMP[48], TEMP[45], TEMP[47].xxxx; 49: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x36b40d0) (expression vec4 * (tex (var_ref specMap@0x32d6eb0) (var_ref tex_coord@0x3175860) (0 0 0) 1 () )(expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref damage@0x3396470) )) ) ) ) MOV TEMP[49], TEMP[48]; 50: (expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref damage@0x3396470) )) ) ADD TEMP[51].x, CONST[14].zzzz, UNIFORM[0].-x-x-x-x; 51: (expression vec3 * (swiz xyz (var_ref _ret_val@0x35cea60) )(expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref damage@0x3396470) )) ) ) MUL TEMP[52].xyz, TEMP[35].xyzz, TEMP[51].xxxx; 52: (assign (constant bool (1)) (xyz) (var_ref glowcolor@0x3175000) (swiz xyz (expression vec3 * (swiz xyz (var_ref _ret_val@0x35cea60) )(expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref damage@0x3396470) )) ) ) )) MOV TEMP[36].xyz, TEMP[52].xyzz; 53: (assign (constant bool (1)) (x) (var_ref alpha@0x3174c30) (swiz w (var_ref diffcolor@0x3175160) )) MOV TEMP[53], TEMP[32].wwww; 54: (assign (constant bool (1)) (x) (var_ref UAO@0x3174b20) (swiz w (var_ref glowcolor@0x3175000) )) MOV TEMP[54], TEMP[36].wwww; 55: (assign (constant bool (1)) (xyzw) (var_ref mat_gloss@0x35d0350) (var_ref mtl_gloss@0x3174f50) ) MOV TEMP[56], TEMP[55]; 56: (assign (constant bool (1)) (x) (var_ref gloss_in@0x35d04a0) (swiz w (var_ref assignment_tmp@0x36b40d0) )) MOV TEMP[57], TEMP[49].wwww; 57: (expression float + (var_ref gloss_in@0x35d04a0) (expression float * (var_ref gloss_in@0x35d04a0) (var_ref gloss_in@0x35d04a0) ) ) MAD TEMP[58], TEMP[57].xxxx, TEMP[57].xxxx, TEMP[57].xxxx; 58: (expression float * (constant float (0.500000)) (expression float + (var_ref gloss_in@0x35d04a0) (expression float * (var_ref gloss_in@0x35d04a0) (var_ref gloss_in@0x35d04a0) ) ) ) MUL TEMP[59].x, CONST[14].wwww, TEMP[58].xxxx; 59: (assign (constant bool (1)) (x) (var_ref mat_gloss@0x35d0350) (expression float * (constant float (0.500000)) (expression float + (var_ref gloss_in@0x35d04a0) (expression float * (var_ref gloss_in@0x35d04a0) (var_ref gloss_in@0x35d04a0) ) ) ) ) MOV TEMP[56].x, TEMP[59].xxxx; 60: (expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref mat_gloss@0x35d0350) )) ) ADD TEMP[61].x, CONST[14].zzzz, TEMP[56].-x-x-x-x; 61: (expression float * (constant float (7.288829)) (expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref mat_gloss@0x35d0350) )) ) ) MUL TEMP[62].x, CONST[15].wwww, TEMP[61].xxxx; 62: (assign (constant bool (1)) (y) (var_ref mat_gloss@0x35d0350) (swiz xx (expression float * (constant float (7.288829)) (expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref mat_gloss@0x35d0350) )) ) ) )) MOV TEMP[56].y, TEMP[62].xxxx; 63: (expression float + (swiz y (var_ref mat_gloss@0x35d0350) )(constant float (-8.000000)) ) ADD TEMP[63].x, TEMP[56].yyyy, CONST[16].zzzz; 64: (expression float pow (constant float (2.500000)) (expression float + (swiz y (var_ref mat_gloss@0x35d0350) )(constant float (-8.000000)) ) ) POW TEMP[64].x, CONST[16].yyyy, TEMP[63].xxxx; 65: (expression float * (constant float (1.047198)) (expression float pow (constant float (2.500000)) (expression float + (swiz y (var_ref mat_gloss@0x35d0350) )(constant float (-8.000000)) ) ) ) MUL TEMP[65].x, CONST[16].xxxx, TEMP[64].xxxx; 66: (assign (constant bool (1)) (z) (var_ref mat_gloss@0x35d0350) (swiz xxx (expression float * (constant float (1.047198)) (expression float pow (constant float (2.500000)) (expression float + (swiz y (var_ref mat_gloss@0x35d0350) )(constant float (-8.000000)) ) ) ) )) MOV TEMP[56].z, TEMP[65].xxxx; 67: (expression float cos (swiz z (var_ref mat_gloss@0x35d0350) )) COS TEMP[66].x, TEMP[56].zzzz; 68: (expression float + (constant float (1.000000)) (expression float neg (expression float cos (swiz z (var_ref mat_gloss@0x35d0350) )) ) ) ADD TEMP[68].x, CONST[14].zzzz, TEMP[66].-x-x-x-x; 69: (expression float * (constant float (6.283185)) (expression float + (constant float (1.000000)) (expression float neg (expression float cos (swiz z (var_ref mat_gloss@0x35d0350) )) ) ) ) MUL TEMP[69].x, CONST[16].wwww, TEMP[68].xxxx; 70: (assign (constant bool (1)) (w) (var_ref mat_gloss@0x35d0350) (swiz xxxx (expression float * (constant float (6.283185)) (expression float + (constant float (1.000000)) (expression float neg (expression float cos (swiz z (var_ref mat_gloss@0x35d0350) )) ) ) ) )) MOV TEMP[56].w, TEMP[69].xxxx; 71: (assign (constant bool (1)) (xyzw) (var_ref mtl_gloss@0x3174f50) (var_ref mat_gloss@0x35d0350) ) MOV TEMP[55], TEMP[56]; 72: (expression vec4 * (var_ref diffcolor@0x3175160) (var_ref diffcolor@0x3175160) ) MUL TEMP[70], TEMP[32], TEMP[32]; 73: (assign (constant bool (1)) (xyz) (var_ref diff_col@0x3174ea0) (swiz xyz (expression vec4 * (var_ref diffcolor@0x3175160) (var_ref diffcolor@0x3175160) ) )) MOV TEMP[71].xyz, TEMP[70].xyzz; 74: (expression vec4 * (var_ref assignment_tmp@0x36b40d0) (var_ref assignment_tmp@0x36b40d0) ) MUL TEMP[72], TEMP[49], TEMP[49]; 75: (assign (constant bool (1)) (xyz) (var_ref mspec_col@0x3174df0) (swiz xyz (expression vec4 * (var_ref assignment_tmp@0x36b40d0) (var_ref assignment_tmp@0x36b40d0) ) )) MOV TEMP[73].xyz, TEMP[72].xyzz; 76: (expression vec4 * (var_ref glowcolor@0x3175000) (var_ref glowcolor@0x3175000) ) MUL TEMP[74], TEMP[36], TEMP[36]; 77: (assign (constant bool (1)) (xyz) (var_ref glow_col@0x3174d40) (swiz xyz (expression vec4 * (var_ref glowcolor@0x3175000) (var_ref glowcolor@0x3175000) ) )) MOV TEMP[75].xyz, TEMP[74].xyzz; 78: (expression float dot (var_ref _ret_val@0x324b9f0) (var_ref eye@0x31752c0) ) DP3 TEMP[76].x, TEMP[27].xyzz, TEMP[28].xyzz; 79: (expression vec3 * (expression float dot (var_ref _ret_val@0x324b9f0) (var_ref eye@0x31752c0) ) (var_ref _ret_val@0x324b9f0) ) MUL TEMP[77].xyz, TEMP[76].xxxx, TEMP[27].xyzz; 80: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x324b9f0) (var_ref eye@0x31752c0) ) (var_ref _ret_val@0x324b9f0) ) ) MUL TEMP[78].xyz, CONST[17].xxxx, TEMP[77].xyzz; 81: (expression vec3 + (var_ref eye@0x31752c0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x324b9f0) (var_ref eye@0x31752c0) ) (var_ref _ret_val@0x324b9f0) ) ) ) ) ADD TEMP[80].xyz, TEMP[28].xyzz, TEMP[78].-x-y-z-z; 82: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x36b65f0) (expression vec3 neg (expression vec3 + (var_ref eye@0x31752c0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x324b9f0) (var_ref eye@0x31752c0) ) (var_ref _ret_val@0x324b9f0) ) ) ) ) ) ) MOV TEMP[82].xyz, TEMP[80].-x-y-z-z; 83: (assign (constant bool (1)) (xyz) (var_ref light_acc@0x31749c0) (constant vec3 (0.000000 0.000000 0.000000)) ) MOV TEMP[83].xyz, CONST[15].xyxx; 84: (assign (constant bool (1)) (xyz) (var_ref diffuse_acc@0x3174910) (constant vec3 (0.000000 0.000000 0.000000)) ) MOV TEMP[84].xyz, CONST[15].xyxx; 85: (assign (constant bool (1)) (xyz) (var_ref specular_acc@0x3174860) (constant vec3 (0.000000 0.000000 0.000000)) ) MOV TEMP[85].xyz, CONST[15].xyxx; 86: (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x36b7210) (swiz w (var_ref mat_gloss@0x35d0350) )) MOV TEMP[86], TEMP[56].wwww; 87: (expression bool != (array_ref (var_ref light_enabled@0x32d7230) (constant int (0)) ) (constant int (0)) ) SNE.C TEMP[87].x, UNIFORM[8].xxxx, CONST[15].xxxx; 88: IF (NE.xxxx); # (if false, goto 134); 89: (assign (constant bool (1)) (xyzw) (var_ref lightinfo@0x3405a40) (array_ref (var_ref gl_TexCoord@0x33d3c40) (constant int (5)) ) ) MOV TEMP[88], INPUT[9]; 90: (assign (constant bool (1)) (xyz) (var_ref raw_light_col@0x3406630) (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x33d3190) (constant int (0)) ) diffuse) )) MOV TEMP[89].xyz, STATE[18].xyzz; 91: (assign (constant bool (1)) (xyz) (var_ref arg0@0x34b2a20) (swiz xyz (var_ref lightinfo@0x3405a40) )) MOV TEMP[90].xyz, TEMP[88].xyzz; 92: (expression float dot (var_ref arg0@0x34b2a20) (var_ref arg0@0x34b2a20) ) DP3 TEMP[91].x, TEMP[90].xyzz, TEMP[90].xyzz; 93: (expression float rsq (expression float dot (var_ref arg0@0x34b2a20) (var_ref arg0@0x34b2a20) ) ) RSQ TEMP[92].x, TEMP[91].xxxx; 94: (expression vec3 * (var_ref arg0@0x34b2a20) (expression float rsq (expression float dot (var_ref arg0@0x34b2a20) (var_ref arg0@0x34b2a20) ) ) ) MUL TEMP[93].xyz, TEMP[90].xyzz, TEMP[92].xxxx; 95: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x34b2970) (expression vec3 * (var_ref arg0@0x34b2a20) (expression float rsq (expression float dot (var_ref arg0@0x34b2a20) (var_ref arg0@0x34b2a20) ) ) ) ) MOV TEMP[94].xyz, TEMP[93].xyzz; 96: (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x34b3780) (swiz w (var_ref lightinfo@0x3405a40) )) MOV TEMP[95], TEMP[88].wwww; 97: (expression vec3 * (var_ref raw_light_col@0x3406630) (var_ref raw_light_col@0x3406630) ) MUL TEMP[96].xyz, TEMP[89].xyzz, TEMP[89].xyzz; 98: (assign (constant bool (1)) (xyz) (var_ref light_col@0x34b2600) (expression vec3 * (var_ref raw_light_col@0x3406630) (var_ref raw_light_col@0x3406630) ) ) MOV TEMP[97].xyz, TEMP[96].xyzz; 99: (expression float * (var_ref assignment_tmp@0x34b3780) (constant float (0.159155)) ) MUL TEMP[98].x, TEMP[95].xxxx, CONST[17].yyyy; 100: (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x33aa5f0) (expression float * (var_ref assignment_tmp@0x34b3780) (constant float (0.159155)) ) ) MOV TEMP[99], TEMP[98].xxxx; 101: (expression float dot (var_ref _ret_val@0x3411d10) (var_ref _ret_val@0x34b2970) ) DP3 TEMP[100].x, TEMP[6].xyzz, TEMP[94].xyzz; 102: (expression float + (expression float dot (var_ref _ret_val@0x3411d10) (var_ref _ret_val@0x34b2970) ) (var_ref assignment_tmp@0x33aa5f0) ) ADD TEMP[101].x, TEMP[100].xxxx, TEMP[99].xxxx; 103: (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x33aa5f0) ) ADD TEMP[102].x, CONST[14].zzzz, TEMP[99].xxxx; 104: (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x33aa5f0) ) ) RCP TEMP[103].x, TEMP[102].xxxx; 105: (expression float * (expression float + (expression float dot (var_ref _ret_val@0x3411d10) (var_ref _ret_val@0x34b2970) ) (var_ref assignment_tmp@0x33aa5f0) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x33aa5f0) ) ) ) MUL TEMP[104].x, TEMP[101].xxxx, TEMP[103].xxxx; 106: (expression float * (constant float (4.000000)) (expression float * (expression float + (expression float dot (var_ref _ret_val@0x3411d10) (var_ref _ret_val@0x34b2970) ) (var_ref assignment_tmp@0x33aa5f0) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x33aa5f0) ) ) ) ) MUL TEMP[105].x, CONST[17].zzzz, TEMP[104].xxxx; 107: (expression float min (expression float * (constant float (4.000000)) (expression float * (expression float + (expression float dot (var_ref _ret_val@0x3411d10) (var_ref _ret_val@0x34b2970) ) (var_ref assignment_tmp@0x33aa5f0) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x33aa5f0) ) ) ) ) (constant float (1.000000)) ) MIN TEMP[106].x, TEMP[105].xxxx, CONST[14].zzzz; 108: (expression float max (expression float min (expression float * (constant float (4.000000)) (expression float * (expression float + (expression float dot (var_ref _ret_val@0x3411d10) (var_ref _ret_val@0x34b2970) ) (var_ref assignment_tmp@0x33aa5f0) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x33aa5f0) ) ) ) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[107].x, TEMP[106].xxxx, CONST[15].xxxx; 109: (assign (constant bool (1)) (x) (var_ref _ret_val@0x33abac0) (expression float max (expression float min (expression float * (constant float (4.000000)) (expression float * (expression float + (expression float dot (var_ref _ret_val@0x3411d10) (var_ref _ret_val@0x34b2970) ) (var_ref assignment_tmp@0x33aa5f0) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x33aa5f0) ) ) ) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[108], TEMP[107].xxxx; 110: (expression float * (var_ref assignment_tmp@0x34b3780) (constant float (0.159155)) ) MUL TEMP[109].x, TEMP[95].xxxx, CONST[17].yyyy; 111: (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x33baac0) (expression float * (var_ref assignment_tmp@0x34b3780) (constant float (0.159155)) ) ) MOV TEMP[110], TEMP[109].xxxx; 112: (expression float + (var_ref assignment_tmp@0x36b7210) (var_ref assignment_tmp@0x34b3780) ) ADD TEMP[111].x, TEMP[86].xxxx, TEMP[95].xxxx; 113: (expression float rcp (expression float + (var_ref assignment_tmp@0x36b7210) (var_ref assignment_tmp@0x34b3780) ) ) RCP TEMP[112].x, TEMP[111].xxxx; 114: (expression float + (expression float * (constant float (1.570796)) (expression float rcp (expression float + (var_ref assignment_tmp@0x36b7210) (var_ref assignment_tmp@0x34b3780) ) ) ) (constant float (-0.810660)) ) MAD TEMP[113], CONST[17].wwww, TEMP[112].xxxx, CONST[19].xxxx; 115: (assign (constant bool (1)) (x) (var_ref _ret_val@0x37656c0) (expression float + (expression float * (constant float (1.570796)) (expression float rcp (expression float + (var_ref assignment_tmp@0x36b7210) (var_ref assignment_tmp@0x34b3780) ) ) ) (constant float (-0.810660)) ) ) MOV TEMP[114], TEMP[113].xxxx; 116: (assign (constant bool (1)) (xyz) (var_ref light_acc@0x31749c0) (var_ref light_col@0x34b2600) ) MOV TEMP[83].xyz, TEMP[97].xyzz; 117: (expression float dot (var_ref _ret_val@0x324b9f0) (var_ref _ret_val@0x34b2970) ) DP3 TEMP[115].x, TEMP[27].xyzz, TEMP[94].xyzz; 118: (expression float + (expression float dot (var_ref _ret_val@0x324b9f0) (var_ref _ret_val@0x34b2970) ) (var_ref assignment_tmp@0x33baac0) ) ADD TEMP[116].x, TEMP[115].xxxx, TEMP[110].xxxx; 119: (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x33baac0) ) ADD TEMP[117].x, CONST[14].zzzz, TEMP[110].xxxx; 120: (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x33baac0) ) ) RCP TEMP[118].x, TEMP[117].xxxx; 121: (expression float * (expression float + (expression float dot (var_ref _ret_val@0x324b9f0) (var_ref _ret_val@0x34b2970) ) (var_ref assignment_tmp@0x33baac0) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x33baac0) ) ) ) MUL TEMP[119].x, TEMP[116].xxxx, TEMP[118].xxxx; 122: (expression float min (expression float * (expression float + (expression float dot (var_ref _ret_val@0x324b9f0) (var_ref _ret_val@0x34b2970) ) (var_ref assignment_tmp@0x33baac0) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x33baac0) ) ) ) (var_ref _ret_val@0x33abac0) ) MIN TEMP[120].x, TEMP[119].xxxx, TEMP[108].xxxx; 123: (expression float max (expression float min (expression float * (expression float + (expression float dot (var_ref _ret_val@0x324b9f0) (var_ref _ret_val@0x34b2970) ) (var_ref assignment_tmp@0x33baac0) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x33baac0) ) ) ) (var_ref _ret_val@0x33abac0) ) (constant float (0.000000)) ) MAX TEMP[121].x, TEMP[120].xxxx, CONST[15].xxxx; 124: (expression vec3 * (expression float max (expression float min (expression float * (expression float + (expression float dot (var_ref _ret_val@0x324b9f0) (var_ref _ret_val@0x34b2970) ) (var_ref assignment_tmp@0x33baac0) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x33baac0) ) ) ) (var_ref _ret_val@0x33abac0) ) (constant float (0.000000)) ) (var_ref light_col@0x34b2600) ) MUL TEMP[122].xyz, TEMP[121].xxxx, TEMP[97].xyzz; 125: (assign (constant bool (1)) (xyz) (var_ref diffuse_acc@0x3174910) (expression vec3 * (expression float max (expression float min (expression float * (expression float + (expression float dot (var_ref _ret_val@0x324b9f0) (var_ref _ret_val@0x34b2970) ) (var_ref assignment_tmp@0x33baac0) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x33baac0) ) ) ) (var_ref _ret_val@0x33abac0) ) (constant float (0.000000)) ) (var_ref light_col@0x34b2600) ) ) MOV TEMP[84].xyz, TEMP[122].xyzz; 126: (expression float dot (var_ref assignment_tmp@0x36b65f0) (var_ref _ret_val@0x34b2970) ) DP3 TEMP[123].x, TEMP[82].xyzz, TEMP[94].xyzz; 127: (expression float min (expression float dot (var_ref assignment_tmp@0x36b65f0) (var_ref _ret_val@0x34b2970) ) (var_ref _ret_val@0x33abac0) ) MIN TEMP[124].x, TEMP[123].xxxx, TEMP[108].xxxx; 128: (expression float max (expression float min (expression float dot (var_ref assignment_tmp@0x36b65f0) (var_ref _ret_val@0x34b2970) ) (var_ref _ret_val@0x33abac0) ) (constant float (0.000000)) ) MAX TEMP[125].x, TEMP[124].xxxx, CONST[15].xxxx; 129: (expression float pow (expression float max (expression float min (expression float dot (var_ref assignment_tmp@0x36b65f0) (var_ref _ret_val@0x34b2970) ) (var_ref _ret_val@0x33abac0) ) (constant float (0.000000)) ) (var_ref _ret_val@0x37656c0) ) POW TEMP[126].x, TEMP[125].xxxx, TEMP[114].xxxx; 130: (expression float * (expression float pow (expression float max (expression float min (expression float dot (var_ref assignment_tmp@0x36b65f0) (var_ref _ret_val@0x34b2970) ) (var_ref _ret_val@0x33abac0) ) (constant float (0.000000)) ) (var_ref _ret_val@0x37656c0) ) (var_ref _ret_val@0x37656c0) ) MUL TEMP[127].x, TEMP[126].xxxx, TEMP[114].xxxx; 131: (expression float max (constant float (0.000000)) (expression float * (expression float pow (expression float max (expression float min (expression float dot (var_ref assignment_tmp@0x36b65f0) (var_ref _ret_val@0x34b2970) ) (var_ref _ret_val@0x33abac0) ) (constant float (0.000000)) ) (var_ref _ret_val@0x37656c0) ) (var_ref _ret_val@0x37656c0) ) ) MAX TEMP[128].x, CONST[15].xxxx, TEMP[127].xxxx; 132: (expression vec3 * (expression float max (constant float (0.000000)) (expression float * (expression float pow (expression float max (expression float min (expression float dot (var_ref assignment_tmp@0x36b65f0) (var_ref _ret_val@0x34b2970) ) (var_ref _ret_val@0x33abac0) ) (constant float (0.000000)) ) (var_ref _ret_val@0x37656c0) ) (var_ref _ret_val@0x37656c0) ) ) (var_ref light_col@0x34b2600) ) MUL TEMP[129].xyz, TEMP[128].xxxx, TEMP[97].xyzz; 133: (assign (constant bool (1)) (xyz) (var_ref specular_acc@0x3174860) (expression vec3 * (expression float max (constant float (0.000000)) (expression float * (expression float pow (expression float max (expression float min (expression float dot (var_ref assignment_tmp@0x36b65f0) (var_ref _ret_val@0x34b2970) ) (var_ref _ret_val@0x33abac0) ) (constant float (0.000000)) ) (var_ref _ret_val@0x37656c0) ) (var_ref _ret_val@0x37656c0) ) ) (var_ref light_col@0x34b2600) ) ) MOV TEMP[85].xyz, TEMP[129].xyzz; 134: (expression bool != (array_ref (var_ref light_enabled@0x32d7230) (constant int (0)) ) (constant int (0)) ) ENDIF; 135: (expression bool != (array_ref (var_ref light_enabled@0x32d7230) (constant int (1)) ) (constant int (0)) ) SNE.C TEMP[130].x, UNIFORM[9].xxxx, CONST[15].xxxx; 136: IF (NE.xxxx); # (if false, goto 183); 137: (assign (constant bool (1)) (xyzw) (var_ref lightinfo@0x349bf80) (array_ref (var_ref gl_TexCoord@0x33d3c40) (constant int (6)) ) ) MOV TEMP[131], INPUT[10]; 138: (assign (constant bool (1)) (xyz) (var_ref raw_light_col@0x34cb5b0) (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x33d3190) (constant int (1)) ) diffuse) )) MOV TEMP[132].xyz, STATE[18].xyzz; 139: (assign (constant bool (1)) (xyz) (var_ref arg0@0x34ccab0) (swiz xyz (var_ref lightinfo@0x349bf80) )) MOV TEMP[133].xyz, TEMP[131].xyzz; 140: (expression float dot (var_ref arg0@0x34ccab0) (var_ref arg0@0x34ccab0) ) DP3 TEMP[134].x, TEMP[133].xyzz, TEMP[133].xyzz; 141: (expression float rsq (expression float dot (var_ref arg0@0x34ccab0) (var_ref arg0@0x34ccab0) ) ) RSQ TEMP[135].x, TEMP[134].xxxx; 142: (expression vec3 * (var_ref arg0@0x34ccab0) (expression float rsq (expression float dot (var_ref arg0@0x34ccab0) (var_ref arg0@0x34ccab0) ) ) ) MUL TEMP[136].xyz, TEMP[133].xyzz, TEMP[135].xxxx; 143: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x34cca00) (expression vec3 * (var_ref arg0@0x34ccab0) (expression float rsq (expression float dot (var_ref arg0@0x34ccab0) (var_ref arg0@0x34ccab0) ) ) ) ) MOV TEMP[137].xyz, TEMP[136].xyzz; 144: (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x34cd810) (swiz w (var_ref lightinfo@0x349bf80) )) MOV TEMP[138], TEMP[131].wwww; 145: (expression vec3 * (var_ref raw_light_col@0x34cb5b0) (var_ref raw_light_col@0x34cb5b0) ) MUL TEMP[139].xyz, TEMP[132].xyzz, TEMP[132].xyzz; 146: (assign (constant bool (1)) (xyz) (var_ref light_col@0x34cc690) (expression vec3 * (var_ref raw_light_col@0x34cb5b0) (var_ref raw_light_col@0x34cb5b0) ) ) MOV TEMP[140].xyz, TEMP[139].xyzz; 147: (expression float * (var_ref assignment_tmp@0x34cd810) (constant float (0.159155)) ) MUL TEMP[141].x, TEMP[138].xxxx, CONST[17].yyyy; 148: (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x3246ee0) (expression float * (var_ref assignment_tmp@0x34cd810) (constant float (0.159155)) ) ) MOV TEMP[142], TEMP[141].xxxx; 149: (expression float dot (var_ref _ret_val@0x3411d10) (var_ref _ret_val@0x34cca00) ) DP3 TEMP[143].x, TEMP[6].xyzz, TEMP[137].xyzz; 150: (expression float + (expression float dot (var_ref _ret_val@0x3411d10) (var_ref _ret_val@0x34cca00) ) (var_ref assignment_tmp@0x3246ee0) ) ADD TEMP[144].x, TEMP[143].xxxx, TEMP[142].xxxx; 151: (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x3246ee0) ) ADD TEMP[145].x, CONST[14].zzzz, TEMP[142].xxxx; 152: (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x3246ee0) ) ) RCP TEMP[146].x, TEMP[145].xxxx; 153: (expression float * (expression float + (expression float dot (var_ref _ret_val@0x3411d10) (var_ref _ret_val@0x34cca00) ) (var_ref assignment_tmp@0x3246ee0) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x3246ee0) ) ) ) MUL TEMP[147].x, TEMP[144].xxxx, TEMP[146].xxxx; 154: (expression float * (constant float (4.000000)) (expression float * (expression float + (expression float dot (var_ref _ret_val@0x3411d10) (var_ref _ret_val@0x34cca00) ) (var_ref assignment_tmp@0x3246ee0) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x3246ee0) ) ) ) ) MUL TEMP[148].x, CONST[17].zzzz, TEMP[147].xxxx; 155: (expression float min (expression float * (constant float (4.000000)) (expression float * (expression float + (expression float dot (var_ref _ret_val@0x3411d10) (var_ref _ret_val@0x34cca00) ) (var_ref assignment_tmp@0x3246ee0) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x3246ee0) ) ) ) ) (constant float (1.000000)) ) MIN TEMP[149].x, TEMP[148].xxxx, CONST[14].zzzz; 156: (expression float max (expression float min (expression float * (constant float (4.000000)) (expression float * (expression float + (expression float dot (var_ref _ret_val@0x3411d10) (var_ref _ret_val@0x34cca00) ) (var_ref assignment_tmp@0x3246ee0) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x3246ee0) ) ) ) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[150].x, TEMP[149].xxxx, CONST[15].xxxx; 157: (assign (constant bool (1)) (x) (var_ref _ret_val@0x32483b0) (expression float max (expression float min (expression float * (constant float (4.000000)) (expression float * (expression float + (expression float dot (var_ref _ret_val@0x3411d10) (var_ref _ret_val@0x34cca00) ) (var_ref assignment_tmp@0x3246ee0) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x3246ee0) ) ) ) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[151], TEMP[150].xxxx; 158: (expression float * (var_ref assignment_tmp@0x34cd810) (constant float (0.159155)) ) MUL TEMP[152].x, TEMP[138].xxxx, CONST[17].yyyy; 159: (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x34ac020) (expression float * (var_ref assignment_tmp@0x34cd810) (constant float (0.159155)) ) ) MOV TEMP[153], TEMP[152].xxxx; 160: (expression float + (var_ref assignment_tmp@0x36b7210) (var_ref assignment_tmp@0x34cd810) ) ADD TEMP[154].x, TEMP[86].xxxx, TEMP[138].xxxx; 161: (expression float rcp (expression float + (var_ref assignment_tmp@0x36b7210) (var_ref assignment_tmp@0x34cd810) ) ) RCP TEMP[155].x, TEMP[154].xxxx; 162: (expression float + (expression float * (constant float (1.570796)) (expression float rcp (expression float + (var_ref assignment_tmp@0x36b7210) (var_ref assignment_tmp@0x34cd810) ) ) ) (constant float (-0.810660)) ) MAD TEMP[156], CONST[17].wwww, TEMP[155].xxxx, CONST[19].xxxx; 163: (assign (constant bool (1)) (x) (var_ref _ret_val@0x3630e90) (expression float + (expression float * (constant float (1.570796)) (expression float rcp (expression float + (var_ref assignment_tmp@0x36b7210) (var_ref assignment_tmp@0x34cd810) ) ) ) (constant float (-0.810660)) ) ) MOV TEMP[157], TEMP[156].xxxx; 164: (expression vec3 + (var_ref light_acc@0x31749c0) (var_ref light_col@0x34cc690) ) ADD TEMP[158].xyz, TEMP[83].xyzz, TEMP[140].xyzz; 165: (assign (constant bool (1)) (xyz) (var_ref light_acc@0x31749c0) (expression vec3 + (var_ref light_acc@0x31749c0) (var_ref light_col@0x34cc690) ) ) MOV TEMP[83].xyz, TEMP[158].xyzz; 166: (expression float dot (var_ref _ret_val@0x324b9f0) (var_ref _ret_val@0x34cca00) ) DP3 TEMP[159].x, TEMP[27].xyzz, TEMP[137].xyzz; 167: (expression float + (expression float dot (var_ref _ret_val@0x324b9f0) (var_ref _ret_val@0x34cca00) ) (var_ref assignment_tmp@0x34ac020) ) ADD TEMP[160].x, TEMP[159].xxxx, TEMP[153].xxxx; 168: (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x34ac020) ) ADD TEMP[161].x, CONST[14].zzzz, TEMP[153].xxxx; 169: (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x34ac020) ) ) RCP TEMP[162].x, TEMP[161].xxxx; 170: (expression float * (expression float + (expression float dot (var_ref _ret_val@0x324b9f0) (var_ref _ret_val@0x34cca00) ) (var_ref assignment_tmp@0x34ac020) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x34ac020) ) ) ) MUL TEMP[163].x, TEMP[160].xxxx, TEMP[162].xxxx; 171: (expression float min (expression float * (expression float + (expression float dot (var_ref _ret_val@0x324b9f0) (var_ref _ret_val@0x34cca00) ) (var_ref assignment_tmp@0x34ac020) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x34ac020) ) ) ) (var_ref _ret_val@0x32483b0) ) MIN TEMP[164].x, TEMP[163].xxxx, TEMP[151].xxxx; 172: (expression float max (expression float min (expression float * (expression float + (expression float dot (var_ref _ret_val@0x324b9f0) (var_ref _ret_val@0x34cca00) ) (var_ref assignment_tmp@0x34ac020) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x34ac020) ) ) ) (var_ref _ret_val@0x32483b0) ) (constant float (0.000000)) ) MAX TEMP[165].x, TEMP[164].xxxx, CONST[15].xxxx; 173: (expression vec3 + (var_ref diffuse_acc@0x3174910) (expression vec3 * (expression float max (expression float min (expression float * (expression float + (expression float dot (var_ref _ret_val@0x324b9f0) (var_ref _ret_val@0x34cca00) ) (var_ref assignment_tmp@0x34ac020) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x34ac020) ) ) ) (var_ref _ret_val@0x32483b0) ) (constant float (0.000000)) ) (var_ref light_col@0x34cc690) ) ) MAD TEMP[166], TEMP[165].xxxx, TEMP[140].xyzz, TEMP[84].xyzz; 174: (assign (constant bool (1)) (xyz) (var_ref diffuse_acc@0x3174910) (expression vec3 + (var_ref diffuse_acc@0x3174910) (expression vec3 * (expression float max (expression float min (expression float * (expression float + (expression float dot (var_ref _ret_val@0x324b9f0) (var_ref _ret_val@0x34cca00) ) (var_ref assignment_tmp@0x34ac020) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x34ac020) ) ) ) (var_ref _ret_val@0x32483b0) ) (constant float (0.000000)) ) (var_ref light_col@0x34cc690) ) ) ) MOV TEMP[84].xyz, TEMP[166].xyzz; 175: (expression float dot (var_ref assignment_tmp@0x36b65f0) (var_ref _ret_val@0x34cca00) ) DP3 TEMP[167].x, TEMP[82].xyzz, TEMP[137].xyzz; 176: (expression float min (expression float dot (var_ref assignment_tmp@0x36b65f0) (var_ref _ret_val@0x34cca00) ) (var_ref _ret_val@0x32483b0) ) MIN TEMP[168].x, TEMP[167].xxxx, TEMP[151].xxxx; 177: (expression float max (expression float min (expression float dot (var_ref assignment_tmp@0x36b65f0) (var_ref _ret_val@0x34cca00) ) (var_ref _ret_val@0x32483b0) ) (constant float (0.000000)) ) MAX TEMP[169].x, TEMP[168].xxxx, CONST[15].xxxx; 178: (expression float pow (expression float max (expression float min (expression float dot (var_ref assignment_tmp@0x36b65f0) (var_ref _ret_val@0x34cca00) ) (var_ref _ret_val@0x32483b0) ) (constant float (0.000000)) ) (var_ref _ret_val@0x3630e90) ) POW TEMP[170].x, TEMP[169].xxxx, TEMP[157].xxxx; 179: (expression float * (expression float pow (expression float max (expression float min (expression float dot (var_ref assignment_tmp@0x36b65f0) (var_ref _ret_val@0x34cca00) ) (var_ref _ret_val@0x32483b0) ) (constant float (0.000000)) ) (var_ref _ret_val@0x3630e90) ) (var_ref _ret_val@0x3630e90) ) MUL TEMP[171].x, TEMP[170].xxxx, TEMP[157].xxxx; 180: (expression float max (constant float (0.000000)) (expression float * (expression float pow (expression float max (expression float min (expression float dot (var_ref assignment_tmp@0x36b65f0) (var_ref _ret_val@0x34cca00) ) (var_ref _ret_val@0x32483b0) ) (constant float (0.000000)) ) (var_ref _ret_val@0x3630e90) ) (var_ref _ret_val@0x3630e90) ) ) MAX TEMP[172].x, CONST[15].xxxx, TEMP[171].xxxx; 181: (expression vec3 + (var_ref specular_acc@0x3174860) (expression vec3 * (expression float max (constant float (0.000000)) (expression float * (expression float pow (expression float max (expression float min (expression float dot (var_ref assignment_tmp@0x36b65f0) (var_ref _ret_val@0x34cca00) ) (var_ref _ret_val@0x32483b0) ) (constant float (0.000000)) ) (var_ref _ret_val@0x3630e90) ) (var_ref _ret_val@0x3630e90) ) ) (var_ref light_col@0x34cc690) ) ) MAD TEMP[173], TEMP[172].xxxx, TEMP[140].xyzz, TEMP[85].xyzz; 182: (assign (constant bool (1)) (xyz) (var_ref specular_acc@0x3174860) (expression vec3 + (var_ref specular_acc@0x3174860) (expression vec3 * (expression float max (constant float (0.000000)) (expression float * (expression float pow (expression float max (expression float min (expression float dot (var_ref assignment_tmp@0x36b65f0) (var_ref _ret_val@0x34cca00) ) (var_ref _ret_val@0x32483b0) ) (constant float (0.000000)) ) (var_ref _ret_val@0x3630e90) ) (var_ref _ret_val@0x3630e90) ) ) (var_ref light_col@0x34cc690) ) ) ) MOV TEMP[85].xyz, TEMP[173].xyzz; 183: (expression bool != (array_ref (var_ref light_enabled@0x32d7230) (constant int (1)) ) (constant int (0)) ) ENDIF; 184: (expression float dot (var_ref light_acc@0x31749c0) (var_ref light_acc@0x31749c0) ) DP3 TEMP[174].x, TEMP[83].xyzz, TEMP[83].xyzz; 185: (expression float rsq (expression float dot (var_ref light_acc@0x31749c0) (var_ref light_acc@0x31749c0) ) ) RSQ TEMP[175].x, TEMP[174].xxxx; 186: (expression vec3 * (var_ref light_acc@0x31749c0) (expression float rsq (expression float dot (var_ref light_acc@0x31749c0) (var_ref light_acc@0x31749c0) ) ) ) MUL TEMP[176].xyz, TEMP[83].xyzz, TEMP[175].xxxx; 187: (expression vec3 * (constant float (3.000000)) (expression vec3 * (var_ref light_acc@0x31749c0) (expression float rsq (expression float dot (var_ref light_acc@0x31749c0) (var_ref light_acc@0x31749c0) ) ) ) ) MUL TEMP[177].xyz, CONST[19].yyyy, TEMP[176].xyzz; 188: (expression vec3 rcp (var_ref light_acc@0x31749c0) ) RCP TEMP[178].x, TEMP[83].xxxx; 189: RCP TEMP[178].y, TEMP[83].yyyy; 190: RCP TEMP[178].z, TEMP[83].zzzz; 191: (expression vec3 * (expression vec3 * (constant float (3.000000)) (expression vec3 * (var_ref light_acc@0x31749c0) (expression float rsq (expression float dot (var_ref light_acc@0x31749c0) (var_ref light_acc@0x31749c0) ) ) ) ) (expression vec3 rcp (var_ref light_acc@0x31749c0) ) ) MUL TEMP[179].xyz, TEMP[177].xyzz, TEMP[178].xyzz; 192: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x36b8cc0) (expression vec3 * (expression vec3 * (constant float (3.000000)) (expression vec3 * (var_ref light_acc@0x31749c0) (expression float rsq (expression float dot (var_ref light_acc@0x31749c0) (var_ref light_acc@0x31749c0) ) ) ) ) (expression vec3 rcp (var_ref light_acc@0x31749c0) ) ) ) MOV TEMP[180].xyz, TEMP[179].xyzz; 193: (expression vec3 * (var_ref diffuse_acc@0x3174910) (var_ref assignment_tmp@0x36b8cc0) ) MUL TEMP[181].xyz, TEMP[84].xyzz, TEMP[180].xyzz; 194: (assign (constant bool (1)) (xyz) (var_ref diffuse_acc@0x3174910) (expression vec3 * (var_ref diffuse_acc@0x3174910) (var_ref assignment_tmp@0x36b8cc0) ) ) MOV TEMP[84].xyz, TEMP[181].xyzz; 195: (expression vec3 * (var_ref specular_acc@0x3174860) (var_ref assignment_tmp@0x36b8cc0) ) MUL TEMP[182].xyz, TEMP[85].xyzz, TEMP[180].xyzz; 196: (assign (constant bool (1)) (xyz) (var_ref specular_acc@0x3174860) (expression vec3 * (var_ref specular_acc@0x3174860) (var_ref assignment_tmp@0x36b8cc0) ) ) MOV TEMP[85].xyz, TEMP[182].xyzz; 197: (tex (var_ref envMap@0x32d6fc0) (var_ref assignment_tmp@0x36b65f0) (0 0 0) 1 () ) MOV TEMP[183], TEMP[82].xyzz; 198: TEX TEMP[184], TEMP[183], texture[4], CUBE; 199: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x3476940) (swiz xyz (tex (var_ref envMap@0x32d6fc0) (var_ref assignment_tmp@0x36b65f0) (0 0 0) 1 () ))) MOV TEMP[185].xyz, TEMP[184].xyzz; 200: (expression vec3 + (var_ref glow_col@0x3174d40) (var_ref diffuse_acc@0x3174910) ) ADD TEMP[186].xyz, TEMP[75].xyzz, TEMP[84].xyzz; 201: (expression vec3 + (expression vec3 * (var_ref assignment_tmp@0x3476940) (var_ref assignment_tmp@0x3476940) ) (var_ref specular_acc@0x3174860) ) MAD TEMP[187], TEMP[185].xyzz, TEMP[185].xyzz, TEMP[85].xyzz; 202: (expression vec3 * (expression vec3 + (expression vec3 * (var_ref assignment_tmp@0x3476940) (var_ref assignment_tmp@0x3476940) ) (var_ref specular_acc@0x3174860) ) (var_ref mspec_col@0x3174df0) ) MUL TEMP[188].xyz, TEMP[187].xyzz, TEMP[73].xyzz; 203: (expression vec3 * (expression vec3 * (expression vec3 + (expression vec3 * (var_ref assignment_tmp@0x3476940) (var_ref assignment_tmp@0x3476940) ) (var_ref specular_acc@0x3174860) ) (var_ref mspec_col@0x3174df0) ) (var_ref UAO@0x3174b20) ) MUL TEMP[189].xyz, TEMP[188].xyzz, TEMP[54].xxxx; 204: (expression vec3 + (expression vec3 * (expression vec3 * (expression vec3 + (expression vec3 * (var_ref assignment_tmp@0x3476940) (var_ref assignment_tmp@0x3476940) ) (var_ref specular_acc@0x3174860) ) (var_ref mspec_col@0x3174df0) ) (var_ref UAO@0x3174b20) ) (expression vec3 * (expression vec3 + (var_ref glow_col@0x3174d40) (var_ref diffuse_acc@0x3174910) ) (var_ref diff_col@0x3174ea0) ) ) MAD TEMP[190], TEMP[186].xyzz, TEMP[71].xyzz, TEMP[189].xyzz; 205: (expression vec3 + (expression vec3 * (expression vec3 + (expression vec3 * (expression vec3 * (expression vec3 + (expression vec3 * (var_ref assignment_tmp@0x3476940) (var_ref assignment_tmp@0x3476940) ) (var_ref specular_acc@0x3174860) ) (var_ref mspec_col@0x3174df0) ) (var_ref UAO@0x3174b20) ) (expression vec3 * (expression vec3 + (var_ref glow_col@0x3174d40) (var_ref diffuse_acc@0x3174910) ) (var_ref diff_col@0x3174ea0) ) ) (var_ref UAO@0x3174b20) ) (var_ref glow_col@0x3174d40) ) MAD TEMP[191], TEMP[190].xyzz, TEMP[54].xxxx, TEMP[75].xyzz; 206: (expression vec3 sqrt (expression vec3 + (expression vec3 * (expression vec3 + (expression vec3 * (expression vec3 * (expression vec3 + (expression vec3 * (var_ref assignment_tmp@0x3476940) (var_ref assignment_tmp@0x3476940) ) (var_ref specular_acc@0x3174860) ) (var_ref mspec_col@0x3174df0) ) (var_ref UAO@0x3174b20) ) (expression vec3 * (expression vec3 + (var_ref glow_col@0x3174d40) (var_ref diffuse_acc@0x3174910) ) (var_ref diff_col@0x3174ea0) ) ) (var_ref UAO@0x3174b20) ) (var_ref glow_col@0x3174d40) ) ) RSQ TEMP[192].x, TEMP[191].xxxx; 207: RSQ TEMP[192].y, TEMP[191].yyyy; 208: RSQ TEMP[192].z, TEMP[191].zzzz; 209: MUL TEMP[192].xyz, TEMP[192].xyzz, TEMP[191].xyzz; 210: CMP TEMP[192].xyz, TEMP[191].-x-y-z-z, TEMP[192].xyzz, CONST[15].xxxx; 211: (assign (constant bool (1)) (xyz) (var_ref vec_ctor@0x36ba8d0) (swiz xyzx (expression vec3 sqrt (expression vec3 + (expression vec3 * (expression vec3 + (expression vec3 * (expression vec3 * (expression vec3 + (expression vec3 * (var_ref assignment_tmp@0x3476940) (var_ref assignment_tmp@0x3476940) ) (var_ref specular_acc@0x3174860) ) (var_ref mspec_col@0x3174df0) ) (var_ref UAO@0x3174b20) ) (expression vec3 * (expression vec3 + (var_ref glow_col@0x3174d40) (var_ref diffuse_acc@0x3174910) ) (var_ref diff_col@0x3174ea0) ) ) (var_ref UAO@0x3174b20) ) (var_ref glow_col@0x3174d40) ) ) )) MOV TEMP[193].xyz, TEMP[192].xyzx; 212: (assign (constant bool (1)) (w) (var_ref vec_ctor@0x36ba8d0) (swiz xxxx (var_ref alpha@0x3174c30) )) MOV TEMP[193].w, TEMP[53].xxxx; 213: (expression vec4 * (var_ref vec_ctor@0x36ba8d0) (swiz xxxy (var_ref cloaking@0x32d6a30) )) MUL TEMP[194], TEMP[193], UNIFORM[1].xxxy; 214: (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x34aa3b0) (expression vec4 * (var_ref vec_ctor@0x36ba8d0) (swiz xxxy (var_ref cloaking@0x32d6a30) )) ) MOV OUTPUT[1], TEMP[194]; 215: END 1 joysticks were found. The names of the joysticks are: Logitech Logitech RumblePad 2 USB axes: 6 buttons: 12 hats: 0 FactionXML:LoadXML factions.xml Contents of star system: GLSL source for shader 8: uniform int light_enabled[gl_MaxLights]; uniform int max_light_enabled; /* varyings: * gl_TexCoord[ * 0 - tex coord * 1.xy - env coord * 1.zw - env diffuse coord * 2 - normal **/ #define lightPosAndAttenuation(name, lightno) \ vec4 name(in vec4 vertex) \ { \ vec4 lpos = gl_LightSource[lightno].position; \ vec4 rv; \ rv.xyz = lpos.xyz - vertex.xyz*lpos.w; \ rv.w = length(rv.xyz); \ rv.xyz /= rv.w; \ rv.w = dot( vec3(1,rv.w,rv.w*rv.w), vec3(gl_LightSource[lightno].constantAttenuation, \ gl_LightSource[lightno].linearAttenuation, \ gl_LightSource[lightno].quadraticAttenuation) ); \ rv.w = 1.0 / rv.w; \ return rv; \ } lightPosAndAttenuation(lightPosAndAttenuation0, 0) lightPosAndAttenuation(lightPosAndAttenuation1, 1) lightPosAndAttenuation(lightPosAndAttenuation2, 2) lightPosAndAttenuation(lightPosAndAttenuation3, 3) lightPosAndAttenuation(lightPosAndAttenuation4, 4) lightPosAndAttenuation(lightPosAndAttenuation5, 5) lightPosAndAttenuation(lightPosAndAttenuation6, 6) lightPosAndAttenuation(lightPosAndAttenuation7, 7) //float selfshadowStep(float VNdotL) { return step(0.0,VNdotL); } // fast but hard selfshadow function float selfshadowStep(float VNdotL) { return smoothstep(0.0,0.25,VNdotL); } // costly but soft and nice selfshadow function #define lighting(name, lpattname, lightno) \ void name(in vec4 vertex, in vec3 eye, in vec3 normal, inout vec4 pc, inout vec4 sc) \ { \ vec4 lpatt = lpattname(vertex); \ vec3 refl = reflect( eye, normal ); \ float NdotL = dot( lpatt.xyz, normal ); \ float RdotL = dot( lpatt.xyz, refl ); \ \ pc += lpatt.w*( gl_FrontMaterial.ambient * gl_LightSource[lightno].ambient \ + max(0.0, NdotL) * gl_LightSource[lightno].diffuse * gl_FrontMaterial.diffuse ); \ sc += lpatt.w*( pow( max(0.0, RdotL) , max(1.0,gl_FrontMaterial.shininess) ) * selfshadowStep(NdotL) \ * gl_LightSource[lightno].specular * gl_FrontMaterial.specular ); \ } lighting(lighting0, lightPosAndAttenuation0, 0) lighting(lighting1, lightPosAndAttenuation1, 1) lighting(lighting2, lightPosAndAttenuation2, 2) lighting(lighting3, lightPosAndAttenuation3, 3) lighting(lighting4, lightPosAndAttenuation4, 4) lighting(lighting5, lightPosAndAttenuation5, 5) lighting(lighting6, lightPosAndAttenuation6, 6) lighting(lighting7, lightPosAndAttenuation7, 7) void main() { // Compute position, eye-to-object direction and normalized world-space normal vec4 position = gl_ModelViewMatrix * gl_Vertex; vec3 eyetopos = normalize(position.xyz); vec3 normal = normalize(gl_NormalMatrix * gl_Normal); vec3 tangent = normalize(gl_NormalMatrix * gl_MultiTexCoord2.xyz); vec3 binormal = cross(tangent, normal) * sign(gl_MultiTexCoord2.w); // Load varyings gl_TexCoord[0] = gl_MultiTexCoord0; gl_TexCoord[1].xyz = reflect(eyetopos, normal); gl_TexCoord[2].xyz = normal; //gl_TexCoord[3].xyz = tangent; //gl_TexCoord[4].xyz = binormal; // init accumulators vec4 pc = gl_FrontLightProduct[0].ambient + gl_FrontMaterial.emission + gl_FrontLightModelProduct.sceneColor + float(light_enabled[1]) * gl_FrontLightProduct[1].ambient; vec4 sc = vec4(0.0); if (light_enabled[0] != 0) lighting0(position, eyetopos, normal, pc, sc); if (light_enabled[1] != 0) lighting1(position, eyetopos, normal, pc, sc); if (max_light_enabled >= 2) { if (light_enabled[2] != 0) lighting2(position, eyetopos, normal, pc, sc); if (light_enabled[3] != 0) lighting3(position, eyetopos, normal, pc, sc); if (light_enabled[4] != 0) lighting4(position, eyetopos, normal, pc, sc); if (light_enabled[5] != 0) lighting5(position, eyetopos, normal, pc, sc); if (light_enabled[6] != 0) lighting6(position, eyetopos, normal, pc, sc); if (light_enabled[7] != 0) lighting7(position, eyetopos, normal, pc, sc); } // Need this instead of ftransform() for invariance gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; gl_FrontColor = gl_BackColor = pc; gl_FrontSecondaryColor = gl_BackSecondaryColor = sc; } GLSL IR for shader 8: ( (declare (uniform ) int max_light_enabled@0x422c1b0) (declare (uniform ) (array int 8) light_enabled@0x422bf80) (declare (out ) vec4 gl_Position@0x4186d40) (declare (out ) float gl_PointSize@0x4186f30) (declare (in ) vec4 gl_Vertex@0x4187120) (declare (in ) vec3 gl_Normal@0x4187310) (declare (in ) vec4 gl_Color@0x4187500) (declare (in ) vec4 gl_SecondaryColor@0x41876f0) (declare (in ) vec4 gl_MultiTexCoord0@0x41878e0) (declare (in ) vec4 gl_MultiTexCoord1@0x4187ad0) (declare (in ) vec4 gl_MultiTexCoord2@0x4187cc0) (declare (in ) vec4 gl_MultiTexCoord3@0x4187eb0) (declare (in ) vec4 gl_MultiTexCoord4@0x41880a0) (declare (in ) vec4 gl_MultiTexCoord5@0x4188290) (declare (in ) vec4 gl_MultiTexCoord6@0x4188480) (declare (in ) vec4 gl_MultiTexCoord7@0x4188670) (declare (in ) float gl_FogCoord@0x4188860) (declare (out ) vec4 gl_ClipVertex@0x4188a50) (declare (out ) vec4 gl_FrontColor@0x4188c40) (declare (out ) vec4 gl_BackColor@0x4188e30) (declare (out ) vec4 gl_FrontSecondaryColor@0x41ef0a0) (declare (out ) vec4 gl_BackSecondaryColor@0x41ef290) (declare (out ) float gl_FogFragCoord@0x41ef480) (declare (uniform ) mat4 gl_ModelViewMatrix@0x41ef670) (declare (uniform ) mat4 gl_ProjectionMatrix@0x41ef860) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x41efa50) (declare (uniform ) mat3 gl_NormalMatrix@0x41efc80) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0x41efe70) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0x41f00a0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0x41f02d0) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0x41f0500) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0x41f0730) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0x41f0960) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0x41f0b90) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0x41f0dc0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0x41f0ff0) (declare (uniform ) float gl_NormalScale@0x41f1240) (declare (uniform ) gl_LightModelParameters gl_LightModel@0x41f1430) (declare () int gl_MaxLights@0x41f1620) (declare () int gl_MaxClipPlanes@0x41f18f0) (declare () int gl_MaxTextureUnits@0x41f1bc0) (declare () int gl_MaxTextureCoords@0x41f1e90) (declare () int gl_MaxVertexAttribs@0x41f2160) (declare () int gl_MaxVertexUniformComponents@0x41f2430) (declare () int gl_MaxVaryingFloats@0x41f2740) (declare () int gl_MaxVertexTextureImageUnits@0x41f2a10) (declare () int gl_MaxCombinedTextureImageUnits@0x41f2d20) (declare () int gl_MaxTextureImageUnits@0x41f3030) (declare () int gl_MaxFragmentUniformComponents@0x41f3300) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0x41f3610) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0x41f3800) (declare (uniform ) (array vec4 6) gl_ClipPlane@0x41f39f0) (declare (uniform ) gl_PointParameters gl_Point@0x41f3be0) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x41f3dd0) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0x41f3fc0) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x41f41b0) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x41f43a0) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0x41f45d0) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0x41f4800) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0x41f49f0) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0x41f4be0) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0x41f4dd0) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0x41f4fc0) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0x41f51b0) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0x41f53a0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0x41f5590) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0x41f5780) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0x41f5970) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0x41f5b60) (declare (uniform ) gl_FogParameters gl_Fog@0x41f5d50) (declare (out ) (array vec4 0) gl_TexCoord@0x41f5ed0) (declare () int gl_MaxDrawBuffers@0x41f60c0) (function lightPosAndAttenuation0 (signature vec4 (parameters (declare (in ) vec4 vertex@0x422c3e0) ) ( (declare () vec4 rv@0x422d2e0) (declare (temporary ) vec4 assignment_tmp@0x422cdc0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x422cdc0) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (0)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x422d2e0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x422cdc0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x422c3e0) )(swiz w (var_ref assignment_tmp@0x422cdc0) )) ) ) )) (declare (temporary ) float length_retval@0x422e2b0) (assign (constant bool (1)) (x) (var_ref length_retval@0x422e2b0) (call length ((swiz xyz (var_ref rv@0x422d2e0) ))) ) (assign (constant bool (1)) (w) (var_ref rv@0x422d2e0) (swiz xxxx (var_ref length_retval@0x422e2b0) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x422d2e0) (swiz xyz (expression vec3 / (swiz xyz (var_ref rv@0x422d2e0) )(swiz w (var_ref rv@0x422d2e0) )) )) (declare (temporary ) vec3 vec_ctor@0x422fa50) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x422fa50) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x422fa50) (swiz www (var_ref rv@0x422d2e0) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x422fa50) (swiz xxx (expression float * (swiz w (var_ref rv@0x422d2e0) )(swiz w (var_ref rv@0x422d2e0) )) )) (declare (temporary ) vec3 vec_ctor@0x4230a90) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4230a90) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (0)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4230a90) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (0)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4230a90) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (0)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x4231290) (assign (constant bool (1)) (x) (var_ref dot_retval@0x4231290) (call dot ((var_ref vec_ctor@0x422fa50) (var_ref vec_ctor@0x4230a90) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x422d2e0) (swiz xxxx (var_ref dot_retval@0x4231290) )) (assign (constant bool (1)) (w) (var_ref rv@0x422d2e0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x422d2e0) )) )) (return (var_ref rv@0x422d2e0) ) )) ) (function lightPosAndAttenuation1 (signature vec4 (parameters (declare (in ) vec4 vertex@0x4232390) ) ( (declare () vec4 rv@0x4233100) (declare (temporary ) vec4 assignment_tmp@0x4232c50) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4232c50) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (1)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x4233100) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4232c50) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x4232390) )(swiz w (var_ref assignment_tmp@0x4232c50) )) ) ) )) (declare (temporary ) float length_retval@0x4234060) (assign (constant bool (1)) (x) (var_ref length_retval@0x4234060) (call length ((swiz xyz (var_ref rv@0x4233100) ))) ) (assign (constant bool (1)) (w) (var_ref rv@0x4233100) (swiz xxxx (var_ref length_retval@0x4234060) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x4233100) (swiz xyz (expression vec3 / (swiz xyz (var_ref rv@0x4233100) )(swiz w (var_ref rv@0x4233100) )) )) (declare (temporary ) vec3 vec_ctor@0x4235800) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4235800) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4235800) (swiz www (var_ref rv@0x4233100) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4235800) (swiz xxx (expression float * (swiz w (var_ref rv@0x4233100) )(swiz w (var_ref rv@0x4233100) )) )) (declare (temporary ) vec3 vec_ctor@0x4236840) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4236840) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (1)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4236840) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (1)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4236840) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (1)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x4237040) (assign (constant bool (1)) (x) (var_ref dot_retval@0x4237040) (call dot ((var_ref vec_ctor@0x4235800) (var_ref vec_ctor@0x4236840) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x4233100) (swiz xxxx (var_ref dot_retval@0x4237040) )) (assign (constant bool (1)) (w) (var_ref rv@0x4233100) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4233100) )) )) (return (var_ref rv@0x4233100) ) )) ) (function lightPosAndAttenuation2 (signature vec4 (parameters (declare (in ) vec4 vertex@0x4238140) ) ( (declare () vec4 rv@0x4238eb0) (declare (temporary ) vec4 assignment_tmp@0x4238a00) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4238a00) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (2)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x4238eb0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4238a00) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x4238140) )(swiz w (var_ref assignment_tmp@0x4238a00) )) ) ) )) (declare (temporary ) float length_retval@0x4239e10) (assign (constant bool (1)) (x) (var_ref length_retval@0x4239e10) (call length ((swiz xyz (var_ref rv@0x4238eb0) ))) ) (assign (constant bool (1)) (w) (var_ref rv@0x4238eb0) (swiz xxxx (var_ref length_retval@0x4239e10) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x4238eb0) (swiz xyz (expression vec3 / (swiz xyz (var_ref rv@0x4238eb0) )(swiz w (var_ref rv@0x4238eb0) )) )) (declare (temporary ) vec3 vec_ctor@0x423b5b0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x423b5b0) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x423b5b0) (swiz www (var_ref rv@0x4238eb0) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x423b5b0) (swiz xxx (expression float * (swiz w (var_ref rv@0x4238eb0) )(swiz w (var_ref rv@0x4238eb0) )) )) (declare (temporary ) vec3 vec_ctor@0x423c5f0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x423c5f0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (2)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x423c5f0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (2)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x423c5f0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (2)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x423cdf0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x423cdf0) (call dot ((var_ref vec_ctor@0x423b5b0) (var_ref vec_ctor@0x423c5f0) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x4238eb0) (swiz xxxx (var_ref dot_retval@0x423cdf0) )) (assign (constant bool (1)) (w) (var_ref rv@0x4238eb0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4238eb0) )) )) (return (var_ref rv@0x4238eb0) ) )) ) (function lightPosAndAttenuation3 (signature vec4 (parameters (declare (in ) vec4 vertex@0x423def0) ) ( (declare () vec4 rv@0x423ec60) (declare (temporary ) vec4 assignment_tmp@0x423e7b0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x423e7b0) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (3)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x423ec60) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x423e7b0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x423def0) )(swiz w (var_ref assignment_tmp@0x423e7b0) )) ) ) )) (declare (temporary ) float length_retval@0x423fbc0) (assign (constant bool (1)) (x) (var_ref length_retval@0x423fbc0) (call length ((swiz xyz (var_ref rv@0x423ec60) ))) ) (assign (constant bool (1)) (w) (var_ref rv@0x423ec60) (swiz xxxx (var_ref length_retval@0x423fbc0) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x423ec60) (swiz xyz (expression vec3 / (swiz xyz (var_ref rv@0x423ec60) )(swiz w (var_ref rv@0x423ec60) )) )) (declare (temporary ) vec3 vec_ctor@0x4241360) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4241360) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4241360) (swiz www (var_ref rv@0x423ec60) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4241360) (swiz xxx (expression float * (swiz w (var_ref rv@0x423ec60) )(swiz w (var_ref rv@0x423ec60) )) )) (declare (temporary ) vec3 vec_ctor@0x42423a0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x42423a0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (3)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x42423a0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (3)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x42423a0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (3)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x4242ba0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x4242ba0) (call dot ((var_ref vec_ctor@0x4241360) (var_ref vec_ctor@0x42423a0) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x423ec60) (swiz xxxx (var_ref dot_retval@0x4242ba0) )) (assign (constant bool (1)) (w) (var_ref rv@0x423ec60) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x423ec60) )) )) (return (var_ref rv@0x423ec60) ) )) ) (function lightPosAndAttenuation4 (signature vec4 (parameters (declare (in ) vec4 vertex@0x4243ca0) ) ( (declare () vec4 rv@0x4244a10) (declare (temporary ) vec4 assignment_tmp@0x4244560) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4244560) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (4)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x4244a10) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4244560) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x4243ca0) )(swiz w (var_ref assignment_tmp@0x4244560) )) ) ) )) (declare (temporary ) float length_retval@0x4245970) (assign (constant bool (1)) (x) (var_ref length_retval@0x4245970) (call length ((swiz xyz (var_ref rv@0x4244a10) ))) ) (assign (constant bool (1)) (w) (var_ref rv@0x4244a10) (swiz xxxx (var_ref length_retval@0x4245970) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x4244a10) (swiz xyz (expression vec3 / (swiz xyz (var_ref rv@0x4244a10) )(swiz w (var_ref rv@0x4244a10) )) )) (declare (temporary ) vec3 vec_ctor@0x4247110) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4247110) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4247110) (swiz www (var_ref rv@0x4244a10) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4247110) (swiz xxx (expression float * (swiz w (var_ref rv@0x4244a10) )(swiz w (var_ref rv@0x4244a10) )) )) (declare (temporary ) vec3 vec_ctor@0x4248150) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4248150) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (4)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4248150) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (4)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4248150) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (4)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x4248950) (assign (constant bool (1)) (x) (var_ref dot_retval@0x4248950) (call dot ((var_ref vec_ctor@0x4247110) (var_ref vec_ctor@0x4248150) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x4244a10) (swiz xxxx (var_ref dot_retval@0x4248950) )) (assign (constant bool (1)) (w) (var_ref rv@0x4244a10) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4244a10) )) )) (return (var_ref rv@0x4244a10) ) )) ) (function lightPosAndAttenuation5 (signature vec4 (parameters (declare (in ) vec4 vertex@0x4249a50) ) ( (declare () vec4 rv@0x424a7c0) (declare (temporary ) vec4 assignment_tmp@0x424a310) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x424a310) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (5)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x424a7c0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x424a310) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x4249a50) )(swiz w (var_ref assignment_tmp@0x424a310) )) ) ) )) (declare (temporary ) float length_retval@0x424b720) (assign (constant bool (1)) (x) (var_ref length_retval@0x424b720) (call length ((swiz xyz (var_ref rv@0x424a7c0) ))) ) (assign (constant bool (1)) (w) (var_ref rv@0x424a7c0) (swiz xxxx (var_ref length_retval@0x424b720) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x424a7c0) (swiz xyz (expression vec3 / (swiz xyz (var_ref rv@0x424a7c0) )(swiz w (var_ref rv@0x424a7c0) )) )) (declare (temporary ) vec3 vec_ctor@0x424cec0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x424cec0) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x424cec0) (swiz www (var_ref rv@0x424a7c0) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x424cec0) (swiz xxx (expression float * (swiz w (var_ref rv@0x424a7c0) )(swiz w (var_ref rv@0x424a7c0) )) )) (declare (temporary ) vec3 vec_ctor@0x424df00) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x424df00) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (5)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x424df00) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (5)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x424df00) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (5)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x424e700) (assign (constant bool (1)) (x) (var_ref dot_retval@0x424e700) (call dot ((var_ref vec_ctor@0x424cec0) (var_ref vec_ctor@0x424df00) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x424a7c0) (swiz xxxx (var_ref dot_retval@0x424e700) )) (assign (constant bool (1)) (w) (var_ref rv@0x424a7c0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x424a7c0) )) )) (return (var_ref rv@0x424a7c0) ) )) ) (function lightPosAndAttenuation6 (signature vec4 (parameters (declare (in ) vec4 vertex@0x424f800) ) ( (declare () vec4 rv@0x4250570) (declare (temporary ) vec4 assignment_tmp@0x42500c0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x42500c0) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (6)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x4250570) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x42500c0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x424f800) )(swiz w (var_ref assignment_tmp@0x42500c0) )) ) ) )) (declare (temporary ) float length_retval@0x42514d0) (assign (constant bool (1)) (x) (var_ref length_retval@0x42514d0) (call length ((swiz xyz (var_ref rv@0x4250570) ))) ) (assign (constant bool (1)) (w) (var_ref rv@0x4250570) (swiz xxxx (var_ref length_retval@0x42514d0) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x4250570) (swiz xyz (expression vec3 / (swiz xyz (var_ref rv@0x4250570) )(swiz w (var_ref rv@0x4250570) )) )) (declare (temporary ) vec3 vec_ctor@0x4252c70) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4252c70) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4252c70) (swiz www (var_ref rv@0x4250570) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4252c70) (swiz xxx (expression float * (swiz w (var_ref rv@0x4250570) )(swiz w (var_ref rv@0x4250570) )) )) (declare (temporary ) vec3 vec_ctor@0x4253cb0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4253cb0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (6)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4253cb0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (6)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4253cb0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (6)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x42544b0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x42544b0) (call dot ((var_ref vec_ctor@0x4252c70) (var_ref vec_ctor@0x4253cb0) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x4250570) (swiz xxxx (var_ref dot_retval@0x42544b0) )) (assign (constant bool (1)) (w) (var_ref rv@0x4250570) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4250570) )) )) (return (var_ref rv@0x4250570) ) )) ) (function lightPosAndAttenuation7 (signature vec4 (parameters (declare (in ) vec4 vertex@0x42555b0) ) ( (declare () vec4 rv@0x4256320) (declare (temporary ) vec4 assignment_tmp@0x4255e70) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4255e70) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (7)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x4256320) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4255e70) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x42555b0) )(swiz w (var_ref assignment_tmp@0x4255e70) )) ) ) )) (declare (temporary ) float length_retval@0x4257280) (assign (constant bool (1)) (x) (var_ref length_retval@0x4257280) (call length ((swiz xyz (var_ref rv@0x4256320) ))) ) (assign (constant bool (1)) (w) (var_ref rv@0x4256320) (swiz xxxx (var_ref length_retval@0x4257280) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x4256320) (swiz xyz (expression vec3 / (swiz xyz (var_ref rv@0x4256320) )(swiz w (var_ref rv@0x4256320) )) )) (declare (temporary ) vec3 vec_ctor@0x4258a20) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4258a20) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4258a20) (swiz www (var_ref rv@0x4256320) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4258a20) (swiz xxx (expression float * (swiz w (var_ref rv@0x4256320) )(swiz w (var_ref rv@0x4256320) )) )) (declare (temporary ) vec3 vec_ctor@0x4259a60) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4259a60) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (7)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4259a60) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (7)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4259a60) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (7)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x425a260) (assign (constant bool (1)) (x) (var_ref dot_retval@0x425a260) (call dot ((var_ref vec_ctor@0x4258a20) (var_ref vec_ctor@0x4259a60) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x4256320) (swiz xxxx (var_ref dot_retval@0x425a260) )) (assign (constant bool (1)) (w) (var_ref rv@0x4256320) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4256320) )) )) (return (var_ref rv@0x4256320) ) )) ) (function selfshadowStep (signature float (parameters (declare (in ) float VNdotL@0x425b360) ) ( (declare (temporary ) float smoothstep_retval@0x425bb50) (assign (constant bool (1)) (x) (var_ref smoothstep_retval@0x425bb50) (call smoothstep ((constant float (0.000000)) (constant float (0.250000)) (var_ref VNdotL@0x425b360) )) ) (return (var_ref smoothstep_retval@0x425bb50) ) )) ) (function lighting0 (signature void (parameters (declare (in ) vec4 vertex@0x425bec0) (declare (in ) vec3 eye@0x425bfd0) (declare (in ) vec3 normal@0x425c0e0) (declare (inout ) vec4 pc@0x425c1f0) (declare (inout ) vec4 sc@0x425c300) ) ( (declare () float RdotL@0x425ef50) (declare () float NdotL@0x425e2f0) (declare () vec3 refl@0x425d720) (declare () vec4 lpatt@0x425cbc0) (declare (temporary ) vec4 lightPosAndAttenuation0_retval@0x425cf10) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation0_retval@0x425cf10) (call lightPosAndAttenuation0 ((var_ref vertex@0x425bec0) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x425cbc0) (var_ref lightPosAndAttenuation0_retval@0x425cf10) ) (declare (temporary ) vec3 reflect_retval@0x425daf0) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x425daf0) (call reflect ((var_ref eye@0x425bfd0) (var_ref normal@0x425c0e0) )) ) (assign (constant bool (1)) (xyz) (var_ref refl@0x425d720) (var_ref reflect_retval@0x425daf0) ) (declare (temporary ) float dot_retval@0x425e750) (assign (constant bool (1)) (x) (var_ref dot_retval@0x425e750) (call dot ((swiz xyz (var_ref lpatt@0x425cbc0) )(var_ref normal@0x425c0e0) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x425e2f0) (var_ref dot_retval@0x425e750) ) (declare (temporary ) float dot_retval@0x425f3b0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x425f3b0) (call dot ((swiz xyz (var_ref lpatt@0x425cbc0) )(var_ref refl@0x425d720) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x425ef50) (var_ref dot_retval@0x425f3b0) ) (declare (temporary ) float max_retval@0x42604f0) (assign (constant bool (1)) (x) (var_ref max_retval@0x42604f0) (call max ((constant float (0.000000)) (var_ref NdotL@0x425e2f0) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x425c1f0) (expression vec4 + (var_ref pc@0x425c1f0) (expression vec4 * (swiz w (var_ref lpatt@0x425cbc0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (0)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x42604f0) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (0)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x4261830) (assign (constant bool (1)) (x) (var_ref max_retval@0x4261830) (call max ((constant float (0.000000)) (var_ref RdotL@0x425ef50) )) ) (declare (temporary ) float max_retval@0x4261e90) (assign (constant bool (1)) (x) (var_ref max_retval@0x4261e90) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) shininess) )) ) (declare (temporary ) float pow_retval@0x4262280) (assign (constant bool (1)) (x) (var_ref pow_retval@0x4262280) (call pow ((var_ref max_retval@0x4261830) (var_ref max_retval@0x4261e90) )) ) (declare (temporary ) float selfshadowStep_retval@0x4262700) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x4262700) (call selfshadowStep ((var_ref NdotL@0x425e2f0) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x425c300) (expression vec4 + (var_ref sc@0x425c300) (expression vec4 * (swiz w (var_ref lpatt@0x425cbc0) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x4262280) (var_ref selfshadowStep_retval@0x4262700) ) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (0)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) specular) ) ) ) ) (return) )) ) (function lighting1 (signature void (parameters (declare (in ) vec4 vertex@0x4263630) (declare (in ) vec3 eye@0x4263740) (declare (in ) vec3 normal@0x4263850) (declare (inout ) vec4 pc@0x4263960) (declare (inout ) vec4 sc@0x4263a70) ) ( (declare () float RdotL@0x4266230) (declare () float NdotL@0x4265640) (declare () vec3 refl@0x4264b10) (declare () vec4 lpatt@0x4264050) (declare (temporary ) vec4 lightPosAndAttenuation1_retval@0x42643a0) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation1_retval@0x42643a0) (call lightPosAndAttenuation1 ((var_ref vertex@0x4263630) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x4264050) (var_ref lightPosAndAttenuation1_retval@0x42643a0) ) (declare (temporary ) vec3 reflect_retval@0x4264ee0) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x4264ee0) (call reflect ((var_ref eye@0x4263740) (var_ref normal@0x4263850) )) ) (assign (constant bool (1)) (xyz) (var_ref refl@0x4264b10) (var_ref reflect_retval@0x4264ee0) ) (declare (temporary ) float dot_retval@0x4265aa0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x4265aa0) (call dot ((swiz xyz (var_ref lpatt@0x4264050) )(var_ref normal@0x4263850) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x4265640) (var_ref dot_retval@0x4265aa0) ) (declare (temporary ) float dot_retval@0x4266690) (assign (constant bool (1)) (x) (var_ref dot_retval@0x4266690) (call dot ((swiz xyz (var_ref lpatt@0x4264050) )(var_ref refl@0x4264b10) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x4266230) (var_ref dot_retval@0x4266690) ) (declare (temporary ) float max_retval@0x4267760) (assign (constant bool (1)) (x) (var_ref max_retval@0x4267760) (call max ((constant float (0.000000)) (var_ref NdotL@0x4265640) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x4263960) (expression vec4 + (var_ref pc@0x4263960) (expression vec4 * (swiz w (var_ref lpatt@0x4264050) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (1)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x4267760) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (1)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x4268aa0) (assign (constant bool (1)) (x) (var_ref max_retval@0x4268aa0) (call max ((constant float (0.000000)) (var_ref RdotL@0x4266230) )) ) (declare (temporary ) float max_retval@0x4269100) (assign (constant bool (1)) (x) (var_ref max_retval@0x4269100) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) shininess) )) ) (declare (temporary ) float pow_retval@0x42694f0) (assign (constant bool (1)) (x) (var_ref pow_retval@0x42694f0) (call pow ((var_ref max_retval@0x4268aa0) (var_ref max_retval@0x4269100) )) ) (declare (temporary ) float selfshadowStep_retval@0x4269970) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x4269970) (call selfshadowStep ((var_ref NdotL@0x4265640) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x4263a70) (expression vec4 + (var_ref sc@0x4263a70) (expression vec4 * (swiz w (var_ref lpatt@0x4264050) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x42694f0) (var_ref selfshadowStep_retval@0x4269970) ) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (1)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) specular) ) ) ) ) (return) )) ) (function lighting2 (signature void (parameters (declare (in ) vec4 vertex@0x426a8a0) (declare (in ) vec3 eye@0x426a9b0) (declare (in ) vec3 normal@0x426aac0) (declare (inout ) vec4 pc@0x426abd0) (declare (inout ) vec4 sc@0x426ace0) ) ( (declare () float RdotL@0x426d4a0) (declare () float NdotL@0x426c8b0) (declare () vec3 refl@0x426bd80) (declare () vec4 lpatt@0x426b2c0) (declare (temporary ) vec4 lightPosAndAttenuation2_retval@0x426b610) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation2_retval@0x426b610) (call lightPosAndAttenuation2 ((var_ref vertex@0x426a8a0) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x426b2c0) (var_ref lightPosAndAttenuation2_retval@0x426b610) ) (declare (temporary ) vec3 reflect_retval@0x426c150) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x426c150) (call reflect ((var_ref eye@0x426a9b0) (var_ref normal@0x426aac0) )) ) (assign (constant bool (1)) (xyz) (var_ref refl@0x426bd80) (var_ref reflect_retval@0x426c150) ) (declare (temporary ) float dot_retval@0x426cd10) (assign (constant bool (1)) (x) (var_ref dot_retval@0x426cd10) (call dot ((swiz xyz (var_ref lpatt@0x426b2c0) )(var_ref normal@0x426aac0) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x426c8b0) (var_ref dot_retval@0x426cd10) ) (declare (temporary ) float dot_retval@0x426d900) (assign (constant bool (1)) (x) (var_ref dot_retval@0x426d900) (call dot ((swiz xyz (var_ref lpatt@0x426b2c0) )(var_ref refl@0x426bd80) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x426d4a0) (var_ref dot_retval@0x426d900) ) (declare (temporary ) float max_retval@0x426e9d0) (assign (constant bool (1)) (x) (var_ref max_retval@0x426e9d0) (call max ((constant float (0.000000)) (var_ref NdotL@0x426c8b0) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x426abd0) (expression vec4 + (var_ref pc@0x426abd0) (expression vec4 * (swiz w (var_ref lpatt@0x426b2c0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x426e9d0) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x426fd10) (assign (constant bool (1)) (x) (var_ref max_retval@0x426fd10) (call max ((constant float (0.000000)) (var_ref RdotL@0x426d4a0) )) ) (declare (temporary ) float max_retval@0x4270370) (assign (constant bool (1)) (x) (var_ref max_retval@0x4270370) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) shininess) )) ) (declare (temporary ) float pow_retval@0x4270760) (assign (constant bool (1)) (x) (var_ref pow_retval@0x4270760) (call pow ((var_ref max_retval@0x426fd10) (var_ref max_retval@0x4270370) )) ) (declare (temporary ) float selfshadowStep_retval@0x4270be0) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x4270be0) (call selfshadowStep ((var_ref NdotL@0x426c8b0) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x426ace0) (expression vec4 + (var_ref sc@0x426ace0) (expression vec4 * (swiz w (var_ref lpatt@0x426b2c0) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x4270760) (var_ref selfshadowStep_retval@0x4270be0) ) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) specular) ) ) ) ) (return) )) ) (function lighting3 (signature void (parameters (declare (in ) vec4 vertex@0x4273ed0) (declare (in ) vec3 eye@0x4273fe0) (declare (in ) vec3 normal@0x42740f0) (declare (inout ) vec4 pc@0x4274200) (declare (inout ) vec4 sc@0x4274310) ) ( (declare () float RdotL@0x4276aa0) (declare () float NdotL@0x4275ee0) (declare () vec3 refl@0x42753b0) (declare () vec4 lpatt@0x42748f0) (declare (temporary ) vec4 lightPosAndAttenuation3_retval@0x4274c40) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation3_retval@0x4274c40) (call lightPosAndAttenuation3 ((var_ref vertex@0x4273ed0) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x42748f0) (var_ref lightPosAndAttenuation3_retval@0x4274c40) ) (declare (temporary ) vec3 reflect_retval@0x4275780) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x4275780) (call reflect ((var_ref eye@0x4273fe0) (var_ref normal@0x42740f0) )) ) (assign (constant bool (1)) (xyz) (var_ref refl@0x42753b0) (var_ref reflect_retval@0x4275780) ) (declare (temporary ) float dot_retval@0x4276340) (assign (constant bool (1)) (x) (var_ref dot_retval@0x4276340) (call dot ((swiz xyz (var_ref lpatt@0x42748f0) )(var_ref normal@0x42740f0) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x4275ee0) (var_ref dot_retval@0x4276340) ) (declare (temporary ) float dot_retval@0x4276f00) (assign (constant bool (1)) (x) (var_ref dot_retval@0x4276f00) (call dot ((swiz xyz (var_ref lpatt@0x42748f0) )(var_ref refl@0x42753b0) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x4276aa0) (var_ref dot_retval@0x4276f00) ) (declare (temporary ) float max_retval@0x4277fd0) (assign (constant bool (1)) (x) (var_ref max_retval@0x4277fd0) (call max ((constant float (0.000000)) (var_ref NdotL@0x4275ee0) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x4274200) (expression vec4 + (var_ref pc@0x4274200) (expression vec4 * (swiz w (var_ref lpatt@0x42748f0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x4277fd0) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x4279310) (assign (constant bool (1)) (x) (var_ref max_retval@0x4279310) (call max ((constant float (0.000000)) (var_ref RdotL@0x4276aa0) )) ) (declare (temporary ) float max_retval@0x4279970) (assign (constant bool (1)) (x) (var_ref max_retval@0x4279970) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) shininess) )) ) (declare (temporary ) float pow_retval@0x4279d60) (assign (constant bool (1)) (x) (var_ref pow_retval@0x4279d60) (call pow ((var_ref max_retval@0x4279310) (var_ref max_retval@0x4279970) )) ) (declare (temporary ) float selfshadowStep_retval@0x427a1e0) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x427a1e0) (call selfshadowStep ((var_ref NdotL@0x4275ee0) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x4274310) (expression vec4 + (var_ref sc@0x4274310) (expression vec4 * (swiz w (var_ref lpatt@0x42748f0) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x4279d60) (var_ref selfshadowStep_retval@0x427a1e0) ) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) specular) ) ) ) ) (return) )) ) (function lighting4 (signature void (parameters (declare (in ) vec4 vertex@0x427b110) (declare (in ) vec3 eye@0x427b220) (declare (in ) vec3 normal@0x427b330) (declare (inout ) vec4 pc@0x427b440) (declare (inout ) vec4 sc@0x427b550) ) ( (declare () float RdotL@0x427dd10) (declare () float NdotL@0x427d120) (declare () vec3 refl@0x427c5f0) (declare () vec4 lpatt@0x427bb30) (declare (temporary ) vec4 lightPosAndAttenuation4_retval@0x427be80) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation4_retval@0x427be80) (call lightPosAndAttenuation4 ((var_ref vertex@0x427b110) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x427bb30) (var_ref lightPosAndAttenuation4_retval@0x427be80) ) (declare (temporary ) vec3 reflect_retval@0x427c9c0) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x427c9c0) (call reflect ((var_ref eye@0x427b220) (var_ref normal@0x427b330) )) ) (assign (constant bool (1)) (xyz) (var_ref refl@0x427c5f0) (var_ref reflect_retval@0x427c9c0) ) (declare (temporary ) float dot_retval@0x427d580) (assign (constant bool (1)) (x) (var_ref dot_retval@0x427d580) (call dot ((swiz xyz (var_ref lpatt@0x427bb30) )(var_ref normal@0x427b330) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x427d120) (var_ref dot_retval@0x427d580) ) (declare (temporary ) float dot_retval@0x427e170) (assign (constant bool (1)) (x) (var_ref dot_retval@0x427e170) (call dot ((swiz xyz (var_ref lpatt@0x427bb30) )(var_ref refl@0x427c5f0) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x427dd10) (var_ref dot_retval@0x427e170) ) (declare (temporary ) float max_retval@0x427f240) (assign (constant bool (1)) (x) (var_ref max_retval@0x427f240) (call max ((constant float (0.000000)) (var_ref NdotL@0x427d120) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x427b440) (expression vec4 + (var_ref pc@0x427b440) (expression vec4 * (swiz w (var_ref lpatt@0x427bb30) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x427f240) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x4280580) (assign (constant bool (1)) (x) (var_ref max_retval@0x4280580) (call max ((constant float (0.000000)) (var_ref RdotL@0x427dd10) )) ) (declare (temporary ) float max_retval@0x4280be0) (assign (constant bool (1)) (x) (var_ref max_retval@0x4280be0) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) shininess) )) ) (declare (temporary ) float pow_retval@0x4280fd0) (assign (constant bool (1)) (x) (var_ref pow_retval@0x4280fd0) (call pow ((var_ref max_retval@0x4280580) (var_ref max_retval@0x4280be0) )) ) (declare (temporary ) float selfshadowStep_retval@0x4281450) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x4281450) (call selfshadowStep ((var_ref NdotL@0x427d120) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x427b550) (expression vec4 + (var_ref sc@0x427b550) (expression vec4 * (swiz w (var_ref lpatt@0x427bb30) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x4280fd0) (var_ref selfshadowStep_retval@0x4281450) ) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) specular) ) ) ) ) (return) )) ) (function lighting5 (signature void (parameters (declare (in ) vec4 vertex@0x4282380) (declare (in ) vec3 eye@0x4282490) (declare (in ) vec3 normal@0x42825a0) (declare (inout ) vec4 pc@0x42826b0) (declare (inout ) vec4 sc@0x42827c0) ) ( (declare () float RdotL@0x4284f80) (declare () float NdotL@0x4284390) (declare () vec3 refl@0x4283860) (declare () vec4 lpatt@0x4282da0) (declare (temporary ) vec4 lightPosAndAttenuation5_retval@0x42830f0) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation5_retval@0x42830f0) (call lightPosAndAttenuation5 ((var_ref vertex@0x4282380) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x4282da0) (var_ref lightPosAndAttenuation5_retval@0x42830f0) ) (declare (temporary ) vec3 reflect_retval@0x4283c30) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x4283c30) (call reflect ((var_ref eye@0x4282490) (var_ref normal@0x42825a0) )) ) (assign (constant bool (1)) (xyz) (var_ref refl@0x4283860) (var_ref reflect_retval@0x4283c30) ) (declare (temporary ) float dot_retval@0x42847f0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x42847f0) (call dot ((swiz xyz (var_ref lpatt@0x4282da0) )(var_ref normal@0x42825a0) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x4284390) (var_ref dot_retval@0x42847f0) ) (declare (temporary ) float dot_retval@0x42853e0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x42853e0) (call dot ((swiz xyz (var_ref lpatt@0x4282da0) )(var_ref refl@0x4283860) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x4284f80) (var_ref dot_retval@0x42853e0) ) (declare (temporary ) float max_retval@0x42864b0) (assign (constant bool (1)) (x) (var_ref max_retval@0x42864b0) (call max ((constant float (0.000000)) (var_ref NdotL@0x4284390) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x42826b0) (expression vec4 + (var_ref pc@0x42826b0) (expression vec4 * (swiz w (var_ref lpatt@0x4282da0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (5)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x42864b0) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (5)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x42877f0) (assign (constant bool (1)) (x) (var_ref max_retval@0x42877f0) (call max ((constant float (0.000000)) (var_ref RdotL@0x4284f80) )) ) (declare (temporary ) float max_retval@0x4287e50) (assign (constant bool (1)) (x) (var_ref max_retval@0x4287e50) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) shininess) )) ) (declare (temporary ) float pow_retval@0x4288240) (assign (constant bool (1)) (x) (var_ref pow_retval@0x4288240) (call pow ((var_ref max_retval@0x42877f0) (var_ref max_retval@0x4287e50) )) ) (declare (temporary ) float selfshadowStep_retval@0x42886c0) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x42886c0) (call selfshadowStep ((var_ref NdotL@0x4284390) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x42827c0) (expression vec4 + (var_ref sc@0x42827c0) (expression vec4 * (swiz w (var_ref lpatt@0x4282da0) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x4288240) (var_ref selfshadowStep_retval@0x42886c0) ) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (5)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) specular) ) ) ) ) (return) )) ) (function lighting6 (signature void (parameters (declare (in ) vec4 vertex@0x42895f0) (declare (in ) vec3 eye@0x4289700) (declare (in ) vec3 normal@0x4289810) (declare (inout ) vec4 pc@0x4289920) (declare (inout ) vec4 sc@0x4289a30) ) ( (declare () float RdotL@0x428c1f0) (declare () float NdotL@0x428b600) (declare () vec3 refl@0x428aad0) (declare () vec4 lpatt@0x428a010) (declare (temporary ) vec4 lightPosAndAttenuation6_retval@0x428a360) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation6_retval@0x428a360) (call lightPosAndAttenuation6 ((var_ref vertex@0x42895f0) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x428a010) (var_ref lightPosAndAttenuation6_retval@0x428a360) ) (declare (temporary ) vec3 reflect_retval@0x428aea0) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x428aea0) (call reflect ((var_ref eye@0x4289700) (var_ref normal@0x4289810) )) ) (assign (constant bool (1)) (xyz) (var_ref refl@0x428aad0) (var_ref reflect_retval@0x428aea0) ) (declare (temporary ) float dot_retval@0x428ba60) (assign (constant bool (1)) (x) (var_ref dot_retval@0x428ba60) (call dot ((swiz xyz (var_ref lpatt@0x428a010) )(var_ref normal@0x4289810) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x428b600) (var_ref dot_retval@0x428ba60) ) (declare (temporary ) float dot_retval@0x428c650) (assign (constant bool (1)) (x) (var_ref dot_retval@0x428c650) (call dot ((swiz xyz (var_ref lpatt@0x428a010) )(var_ref refl@0x428aad0) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x428c1f0) (var_ref dot_retval@0x428c650) ) (declare (temporary ) float max_retval@0x428d720) (assign (constant bool (1)) (x) (var_ref max_retval@0x428d720) (call max ((constant float (0.000000)) (var_ref NdotL@0x428b600) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x4289920) (expression vec4 + (var_ref pc@0x4289920) (expression vec4 * (swiz w (var_ref lpatt@0x428a010) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (6)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x428d720) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (6)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x428ea60) (assign (constant bool (1)) (x) (var_ref max_retval@0x428ea60) (call max ((constant float (0.000000)) (var_ref RdotL@0x428c1f0) )) ) (declare (temporary ) float max_retval@0x428f0c0) (assign (constant bool (1)) (x) (var_ref max_retval@0x428f0c0) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) shininess) )) ) (declare (temporary ) float pow_retval@0x428f4b0) (assign (constant bool (1)) (x) (var_ref pow_retval@0x428f4b0) (call pow ((var_ref max_retval@0x428ea60) (var_ref max_retval@0x428f0c0) )) ) (declare (temporary ) float selfshadowStep_retval@0x428f930) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x428f930) (call selfshadowStep ((var_ref NdotL@0x428b600) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x4289a30) (expression vec4 + (var_ref sc@0x4289a30) (expression vec4 * (swiz w (var_ref lpatt@0x428a010) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x428f4b0) (var_ref selfshadowStep_retval@0x428f930) ) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (6)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) specular) ) ) ) ) (return) )) ) (function lighting7 (signature void (parameters (declare (in ) vec4 vertex@0x4290860) (declare (in ) vec3 eye@0x4290970) (declare (in ) vec3 normal@0x4290a80) (declare (inout ) vec4 pc@0x4290b90) (declare (inout ) vec4 sc@0x4290ca0) ) ( (declare () float RdotL@0x4293460) (declare () float NdotL@0x4292870) (declare () vec3 refl@0x4291d40) (declare () vec4 lpatt@0x4291280) (declare (temporary ) vec4 lightPosAndAttenuation7_retval@0x42915d0) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation7_retval@0x42915d0) (call lightPosAndAttenuation7 ((var_ref vertex@0x4290860) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x4291280) (var_ref lightPosAndAttenuation7_retval@0x42915d0) ) (declare (temporary ) vec3 reflect_retval@0x4292110) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x4292110) (call reflect ((var_ref eye@0x4290970) (var_ref normal@0x4290a80) )) ) (assign (constant bool (1)) (xyz) (var_ref refl@0x4291d40) (var_ref reflect_retval@0x4292110) ) (declare (temporary ) float dot_retval@0x4292cd0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x4292cd0) (call dot ((swiz xyz (var_ref lpatt@0x4291280) )(var_ref normal@0x4290a80) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x4292870) (var_ref dot_retval@0x4292cd0) ) (declare (temporary ) float dot_retval@0x42938c0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x42938c0) (call dot ((swiz xyz (var_ref lpatt@0x4291280) )(var_ref refl@0x4291d40) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x4293460) (var_ref dot_retval@0x42938c0) ) (declare (temporary ) float max_retval@0x4294990) (assign (constant bool (1)) (x) (var_ref max_retval@0x4294990) (call max ((constant float (0.000000)) (var_ref NdotL@0x4292870) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x4290b90) (expression vec4 + (var_ref pc@0x4290b90) (expression vec4 * (swiz w (var_ref lpatt@0x4291280) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (7)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x4294990) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (7)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x4295cd0) (assign (constant bool (1)) (x) (var_ref max_retval@0x4295cd0) (call max ((constant float (0.000000)) (var_ref RdotL@0x4293460) )) ) (declare (temporary ) float max_retval@0x4296330) (assign (constant bool (1)) (x) (var_ref max_retval@0x4296330) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) shininess) )) ) (declare (temporary ) float pow_retval@0x4296720) (assign (constant bool (1)) (x) (var_ref pow_retval@0x4296720) (call pow ((var_ref max_retval@0x4295cd0) (var_ref max_retval@0x4296330) )) ) (declare (temporary ) float selfshadowStep_retval@0x4296ba0) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x4296ba0) (call selfshadowStep ((var_ref NdotL@0x4292870) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x4290ca0) (expression vec4 + (var_ref sc@0x4290ca0) (expression vec4 * (swiz w (var_ref lpatt@0x4291280) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x4296720) (var_ref selfshadowStep_retval@0x4296ba0) ) (record_ref (array_ref (var_ref gl_LightSource@0x41f41b0) (constant int (7)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) specular) ) ) ) ) (return) )) ) (function main (signature void (parameters ) ( (declare () vec4 sc@0x429ea20) (declare () vec4 pc@0x429d5b0) (declare () vec3 normal@0x4299110) (declare () vec3 eyetopos@0x4298590) (declare () vec4 position@0x4297d60) (declare (temporary ) vec4 assignment_tmp@0x42980d0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x42980d0) (expression vec4 * (var_ref gl_ModelViewMatrix@0x41ef670) (var_ref gl_Vertex@0x4187120) ) ) (assign (constant bool (1)) (xyzw) (var_ref position@0x4297d60) (var_ref assignment_tmp@0x42980d0) ) (declare (temporary ) vec3 normalize_retval@0x4298970) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x4298970) (call normalize ((swiz xyz (var_ref assignment_tmp@0x42980d0) ))) ) (assign (constant bool (1)) (xyz) (var_ref eyetopos@0x4298590) (var_ref normalize_retval@0x4298970) ) (declare (temporary ) vec3 normalize_retval@0x4299580) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x4299580) (call normalize ((expression vec3 * (var_ref gl_NormalMatrix@0x41efc80) (var_ref gl_Normal@0x4187310) ) )) ) (assign (constant bool (1)) (xyz) (var_ref normal@0x4299110) (var_ref normalize_retval@0x4299580) ) (declare (temporary ) vec3 normalize_retval@0x429a1e0) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x429a1e0) (call normalize ((expression vec3 * (var_ref gl_NormalMatrix@0x41efc80) (swiz xyz (var_ref gl_MultiTexCoord2@0x4187cc0) )) )) ) (declare (temporary ) vec3 cross_retval@0x429ad60) (assign (constant bool (1)) (xyz) (var_ref cross_retval@0x429ad60) (call cross ((var_ref normalize_retval@0x429a1e0) (var_ref normal@0x4299110) )) ) (declare (temporary ) float sign_retval@0x429b270) (assign (constant bool (1)) (x) (var_ref sign_retval@0x429b270) (call sign ((swiz w (var_ref gl_MultiTexCoord2@0x4187cc0) ))) ) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x41f5ed0) (constant int (0)) ) (var_ref gl_MultiTexCoord0@0x41878e0) ) (declare (temporary ) vec3 reflect_retval@0x429c670) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x429c670) (call reflect ((var_ref eyetopos@0x4298590) (var_ref normal@0x4299110) )) ) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x41f5ed0) (constant int (1)) ) (swiz xyz (var_ref reflect_retval@0x429c670) )) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x41f5ed0) (constant int (2)) ) (swiz xyz (var_ref normal@0x4299110) )) (assign (constant bool (1)) (xyzw) (var_ref pc@0x429d5b0) (expression vec4 + (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x41f4800) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontMaterial@0x41f3dd0) emission) ) (record_ref (var_ref gl_FrontLightModelProduct@0x41f43a0) sceneColor) ) (expression vec4 * (expression float i2f (array_ref (var_ref light_enabled@0x422bf80) (constant int (1)) ) ) (record_ref (array_ref (var_ref gl_FrontLightProduct@0x41f4800) (constant int (1)) ) ambient) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x429ea20) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (if (expression bool != (array_ref (var_ref light_enabled@0x422bf80) (constant int (0)) ) (constant int (0)) ) ( (call lighting0 ((var_ref position@0x4297d60) (var_ref eyetopos@0x4298590) (var_ref normal@0x4299110) (var_ref pc@0x429d5b0) (var_ref sc@0x429ea20) )) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x422bf80) (constant int (1)) ) (constant int (0)) ) ( (call lighting1 ((var_ref position@0x4297d60) (var_ref eyetopos@0x4298590) (var_ref normal@0x4299110) (var_ref pc@0x429d5b0) (var_ref sc@0x429ea20) )) ) ()) (if (expression bool >= (var_ref max_light_enabled@0x422c1b0) (constant int (2)) ) ( (if (expression bool != (array_ref (var_ref light_enabled@0x422bf80) (constant int (2)) ) (constant int (0)) ) ( (call lighting2 ((var_ref position@0x4297d60) (var_ref eyetopos@0x4298590) (var_ref normal@0x4299110) (var_ref pc@0x429d5b0) (var_ref sc@0x429ea20) )) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x422bf80) (constant int (3)) ) (constant int (0)) ) ( (call lighting3 ((var_ref position@0x4297d60) (var_ref eyetopos@0x4298590) (var_ref normal@0x4299110) (var_ref pc@0x429d5b0) (var_ref sc@0x429ea20) )) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x422bf80) (constant int (4)) ) (constant int (0)) ) ( (call lighting4 ((var_ref position@0x4297d60) (var_ref eyetopos@0x4298590) (var_ref normal@0x4299110) (var_ref pc@0x429d5b0) (var_ref sc@0x429ea20) )) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x422bf80) (constant int (5)) ) (constant int (0)) ) ( (call lighting5 ((var_ref position@0x4297d60) (var_ref eyetopos@0x4298590) (var_ref normal@0x4299110) (var_ref pc@0x429d5b0) (var_ref sc@0x429ea20) )) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x422bf80) (constant int (6)) ) (constant int (0)) ) ( (call lighting6 ((var_ref position@0x4297d60) (var_ref eyetopos@0x4298590) (var_ref normal@0x4299110) (var_ref pc@0x429d5b0) (var_ref sc@0x429ea20) )) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x422bf80) (constant int (7)) ) (constant int (0)) ) ( (call lighting7 ((var_ref position@0x4297d60) (var_ref eyetopos@0x4298590) (var_ref normal@0x4299110) (var_ref pc@0x429d5b0) (var_ref sc@0x429ea20) )) ) ()) ) ()) (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x4186d40) (expression vec4 * (var_ref gl_ModelViewProjectionMatrix@0x41efa50) (var_ref gl_Vertex@0x4187120) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_BackColor@0x4188e30) (var_ref pc@0x429d5b0) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0x4188c40) (var_ref pc@0x429d5b0) ) (assign (constant bool (1)) (xyzw) (var_ref gl_BackSecondaryColor@0x41ef290) (var_ref sc@0x429ea20) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontSecondaryColor@0x41ef0a0) (var_ref sc@0x429ea20) ) )) ) ) GLSL source for shader 9: uniform sampler2D diffuseMap; uniform samplerCube envMap; uniform sampler2D specMap; uniform sampler2D glowMap; uniform sampler2D damageMap; uniform vec4 cloaking; uniform vec4 damage; uniform vec4 envColor; float lerp(float f, float a, float b){return (1.0-f)*a+f*b; } vec2 lerp(float f, vec2 a, vec2 b) { return (1.0-f)*a+f*b; } vec3 lerp(float f, vec3 a, vec3 b) { return (1.0-f)*a+f*b; } vec4 lerp(float f, vec4 a, vec4 b) { return (1.0-f)*a+f*b; } void main() { // Sample textures vec4 damagecolor = texture2D(damageMap , gl_TexCoord[0].xy); vec4 diffusecolor= texture2D(diffuseMap, gl_TexCoord[0].xy); vec4 speccolor = texture2D(specMap , gl_TexCoord[0].xy); vec4 glowcolor = texture2D(glowMap , gl_TexCoord[0].xy); vec4 env = textureCube(envMap , gl_TexCoord[1].xyz); vec4 diffusemap = lerp(damage.x, diffusecolor, damagecolor); vec4 specmap = speccolor; gl_FragColor = diffusemap * gl_Color; gl_FragColor.rgb += specmap.rgb * (env * envColor + gl_SecondaryColor).rgb; gl_FragColor.rgb += glowcolor.rgb; gl_FragColor *= cloaking.rrrg; } GLSL IR for shader 9: ( (declare (uniform ) vec4 envColor@0x418f860) (declare (uniform ) vec4 damage@0x418f640) (declare (uniform ) vec4 cloaking@0x418f410) (declare (uniform ) sampler2D damageMap@0x418f1e0) (declare (uniform ) sampler2D glowMap@0x418efc0) (declare (uniform ) sampler2D specMap@0x418eda0) (declare (uniform ) samplerCube envMap@0x418eb80) (declare (uniform ) sampler2D diffuseMap@0x418e950) (declare (in ) vec4 gl_FragCoord@0x429b950) (declare (in ) bool gl_FrontFacing@0x4274f40) (declare (out ) vec4 gl_FragColor@0x42750d0) (declare (out ) float gl_FragDepth@0x42759d0) (declare (in ) vec4 gl_Color@0x4275b60) (declare (in ) vec4 gl_SecondaryColor@0x4276590) (declare (in ) float gl_FogFragCoord@0x4276720) (declare (uniform ) mat4 gl_ModelViewMatrix@0x4277150) (declare (uniform ) mat4 gl_ProjectionMatrix@0x42772e0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x4278ad0) (declare (uniform ) mat3 gl_NormalMatrix@0x4278c70) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0x427ad00) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0x427af30) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0x427c0e0) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0x427c310) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0x427cc10) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0x427ce40) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0x427d7d0) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0x427da00) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0x427e3c0) (declare (uniform ) float gl_NormalScale@0x427e540) (declare (uniform ) gl_LightModelParameters gl_LightModel@0x427fd40) (declare () int gl_MaxLights@0x427ff30) (declare () int gl_MaxClipPlanes@0x4282050) (declare () int gl_MaxTextureUnits@0x4283430) (declare () int gl_MaxTextureCoords@0x4283f60) (declare () int gl_MaxVertexAttribs@0x4284b20) (declare () int gl_MaxVertexUniformComponents@0x4285710) (declare () int gl_MaxVaryingFloats@0x4287090) (declare () int gl_MaxVertexTextureImageUnits@0x42892c0) (declare () int gl_MaxCombinedTextureImageUnits@0x428a6a0) (declare () int gl_MaxTextureImageUnits@0x428b1d0) (declare () int gl_MaxFragmentUniformComponents@0x428bd90) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0x428c980) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0x428e220) (declare (uniform ) (array vec4 6) gl_ClipPlane@0x428e410) (declare (uniform ) gl_PointParameters gl_Point@0x4290450) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x4290640) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0x4291830) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x4291a20) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x4292360) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0x4292560) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0x4292f20) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0x42930e0) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0x4293b10) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0x4293cd0) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0x4295490) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0x4295670) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0x42976c0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0x42978d0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0x4298bc0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0x4298dd0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0x42997d0) (declare (uniform ) gl_FogParameters gl_Fog@0x42999b0) (declare (in ) (array vec4 0) gl_TexCoord@0x429bd10) (declare () int gl_MaxDrawBuffers@0x429bf20) (declare (out ) (array vec4 1) gl_FragData@0x429c9a0) (function lerp (signature float (parameters (declare (in ) float f@0x418fa90) (declare (in ) float a@0x418fba0) (declare (in ) float b@0x418fcb0) ) ( (return (expression float + (expression float * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x418fa90) ) ) (var_ref a@0x418fba0) ) (expression float * (var_ref f@0x418fa90) (var_ref b@0x418fcb0) ) ) ) )) (signature vec2 (parameters (declare (in ) float f@0x4190870) (declare (in ) vec2 a@0x4190980) (declare (in ) vec2 b@0x4190a90) ) ( (return (expression vec2 + (expression vec2 * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x4190870) ) ) (var_ref a@0x4190980) ) (expression vec2 * (var_ref f@0x4190870) (var_ref b@0x4190a90) ) ) ) )) (signature vec3 (parameters (declare (in ) float f@0x41913f0) (declare (in ) vec3 a@0x4191500) (declare (in ) vec3 b@0x4191610) ) ( (return (expression vec3 + (expression vec3 * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x41913f0) ) ) (var_ref a@0x4191500) ) (expression vec3 * (var_ref f@0x41913f0) (var_ref b@0x4191610) ) ) ) )) (signature vec4 (parameters (declare (in ) float f@0x4191f70) (declare (in ) vec4 a@0x4192080) (declare (in ) vec4 b@0x4192190) ) ( (return (expression vec4 + (expression vec4 * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x4191f70) ) ) (var_ref a@0x4192080) ) (expression vec4 * (var_ref f@0x4191f70) (var_ref b@0x4192190) ) ) ) )) ) (function main (signature void (parameters ) ( (declare () vec4 env@0x41964d0) (declare () vec4 glowcolor@0x41956f0) (declare () vec4 speccolor@0x4194910) (declare () vec4 diffusecolor@0x4193b30) (declare () vec4 damagecolor@0x4192d80) (declare (temporary ) vec4 texture2D_retval@0x4193360) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x4193360) (call texture2D ((var_ref damageMap@0x418f1e0) (swiz xy (array_ref (var_ref gl_TexCoord@0x429bd10) (constant int (0)) ) ))) ) (assign (constant bool (1)) (xyzw) (var_ref damagecolor@0x4192d80) (var_ref texture2D_retval@0x4193360) ) (declare (temporary ) vec4 texture2D_retval@0x4194110) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x4194110) (call texture2D ((var_ref diffuseMap@0x418e950) (swiz xy (array_ref (var_ref gl_TexCoord@0x429bd10) (constant int (0)) ) ))) ) (assign (constant bool (1)) (xyzw) (var_ref diffusecolor@0x4193b30) (var_ref texture2D_retval@0x4194110) ) (declare (temporary ) vec4 texture2D_retval@0x4194ef0) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x4194ef0) (call texture2D ((var_ref specMap@0x418eda0) (swiz xy (array_ref (var_ref gl_TexCoord@0x429bd10) (constant int (0)) ) ))) ) (assign (constant bool (1)) (xyzw) (var_ref speccolor@0x4194910) (var_ref texture2D_retval@0x4194ef0) ) (declare (temporary ) vec4 texture2D_retval@0x4195cd0) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x4195cd0) (call texture2D ((var_ref glowMap@0x418efc0) (swiz xy (array_ref (var_ref gl_TexCoord@0x429bd10) (constant int (0)) ) ))) ) (assign (constant bool (1)) (xyzw) (var_ref glowcolor@0x41956f0) (var_ref texture2D_retval@0x4195cd0) ) (declare (temporary ) vec4 textureCube_retval@0x4196aa0) (assign (constant bool (1)) (xyzw) (var_ref textureCube_retval@0x4196aa0) (call textureCube ((var_ref envMap@0x418eb80) (swiz xyz (array_ref (var_ref gl_TexCoord@0x429bd10) (constant int (1)) ) ))) ) (assign (constant bool (1)) (xyzw) (var_ref env@0x41964d0) (var_ref textureCube_retval@0x4196aa0) ) (declare (temporary ) vec4 lerp_retval@0x41977a0) (assign (constant bool (1)) (xyzw) (var_ref lerp_retval@0x41977a0) (call lerp ((swiz x (var_ref damage@0x418f640) )(var_ref diffusecolor@0x4193b30) (var_ref damagecolor@0x4192d80) )) ) (declare (temporary ) vec4 assignment_tmp@0x4198940) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4198940) (expression vec4 * (var_ref lerp_retval@0x41977a0) (var_ref gl_Color@0x4275b60) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x42750d0) (var_ref assignment_tmp@0x4198940) ) (assign (constant bool (1)) (xyz) (var_ref gl_FragColor@0x42750d0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4198940) )(expression vec3 * (swiz xyz (var_ref speccolor@0x4194910) )(swiz xyz (expression vec4 + (expression vec4 * (var_ref env@0x41964d0) (var_ref envColor@0x418f860) ) (var_ref gl_SecondaryColor@0x4276590) ) )) ) )) (assign (constant bool (1)) (xyz) (var_ref gl_FragColor@0x42750d0) (swiz xyz (expression vec3 + (swiz xyz (var_ref gl_FragColor@0x42750d0) )(swiz xyz (var_ref glowcolor@0x41956f0) )) )) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x42750d0) (expression vec4 * (var_ref gl_FragColor@0x42750d0) (swiz xxxy (var_ref cloaking@0x418f410) )) ) )) ) ) GLSL IR for linked vertex program 7: ( (declare (uniform ) int max_light_enabled@0x419a590) (declare (uniform ) (array int 8) light_enabled@0x4197fa0) (declare (out ) vec4 gl_Position@0x41972a0) (declare (in ) vec4 gl_Vertex@0x423d040) (declare (in ) vec3 gl_Normal@0x423a220) (declare (in ) vec4 gl_MultiTexCoord0@0x422f360) (declare (out ) vec4 gl_FrontColor@0x426ba60) (declare (out ) vec4 gl_BackColor@0x426a5b0) (declare (out ) vec4 gl_FrontSecondaryColor@0x426a490) (declare (out ) vec4 gl_BackSecondaryColor@0x4268440) (declare (uniform ) mat4 gl_ModelViewMatrix@0x4265cf0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x4263220) (declare (uniform ) mat3 gl_NormalMatrix@0x42611e0) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x4238560) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x42327b0) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x4232860) (declare (uniform ) (array gl_LightProducts 2) gl_FrontLightProduct@0x4245290) (declare (out ) (array vec4 0) gl_TexCoord@0x423e310) (function main (signature void (parameters ) ( (declare () vec4 sc@0x42f7e10) (declare () vec4 pc@0x42f7f20) (declare (temporary ) vec4 flattening_tmp@0x4abe6a0) (assign (constant bool (1)) (xyzw) (var_ref flattening_tmp@0x4abe6a0) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4265cf0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x423d040) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4265cf0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x423d040) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4265cf0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x423d040) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4265cf0) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x423d040) )) ) ) (declare () vec3 _ret_val@0x43d2340) (declare () vec3 arg0@0x43d2460) (assign (constant bool (1)) (xyz) (var_ref arg0@0x43d2460) (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x43d2340) (expression vec3 * (var_ref arg0@0x43d2460) (expression float rsq (expression float dot (var_ref arg0@0x43d2460) (var_ref arg0@0x43d2460) ) ) ) ) (declare () vec3 _ret_val@0x43d2c80) (declare (temporary ) vec3 flattening_tmp@0x4abeaa0) (assign (constant bool (1)) (xyz) (var_ref flattening_tmp@0x4abeaa0) (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x42611e0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x423a220) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x42611e0) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x423a220) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x42611e0) (constant int (2)) ) (swiz z (var_ref gl_Normal@0x423a220) )) ) ) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x43d2c80) (expression vec3 * (var_ref flattening_tmp@0x4abeaa0) (expression float rsq (expression float dot (var_ref flattening_tmp@0x4abeaa0) (var_ref flattening_tmp@0x4abeaa0) ) ) ) ) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x423e310) (constant int (0)) ) (var_ref gl_MultiTexCoord0@0x422f360) ) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x423e310) (constant int (1)) ) (swiz xyz (expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) )) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x423e310) (constant int (2)) ) (swiz xyz (var_ref _ret_val@0x43d2c80) )) (assign (constant bool (1)) (xyzw) (var_ref pc@0x42f7f20) (expression vec4 + (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x4245290) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontMaterial@0x4238560) emission) ) (record_ref (var_ref gl_FrontLightModelProduct@0x4232860) sceneColor) ) (expression vec4 * (expression float i2f (array_ref (var_ref light_enabled@0x4197fa0) (constant int (1)) ) ) (record_ref (array_ref (var_ref gl_FrontLightProduct@0x4245290) (constant int (1)) ) ambient) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x42f7e10) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (if (expression bool != (array_ref (var_ref light_enabled@0x4197fa0) (constant int (0)) ) (constant int (0)) ) ( (declare () vec4 rv@0x43d7390) (declare (temporary ) vec4 assignment_tmp@0x43d74a0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x43d74a0) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (0)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x43d7390) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x43d74a0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x43d74a0) )) ) ) )) (declare () vec3 arg0@0x43d8450) (assign (constant bool (1)) (xyz) (var_ref arg0@0x43d8450) (swiz xyz (var_ref rv@0x43d7390) )) (assign (constant bool (1)) (w) (var_ref rv@0x43d7390) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x43d8450) (var_ref arg0@0x43d8450) ) ) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x43d7390) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x43d7390) )(expression float rcp (swiz w (var_ref rv@0x43d7390) )) ) )) (declare (temporary ) vec3 vec_ctor@0x43d95b0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x43d95b0) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x43d95b0) (swiz www (var_ref rv@0x43d7390) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x43d95b0) (swiz xxx (expression float * (swiz w (var_ref rv@0x43d7390) )(swiz w (var_ref rv@0x43d7390) )) )) (declare (temporary ) vec3 vec_ctor@0x43d9fd0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x43d9fd0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (0)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x43d9fd0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (0)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x43d9fd0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (0)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x43d7390) (swiz xxxx (expression float dot (var_ref vec_ctor@0x43d95b0) (var_ref vec_ctor@0x43d9fd0) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x43d7390) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x43d7390) )) )) (declare () float _ret_val@0x43de360) (assign (constant bool (1)) (x) (var_ref _ret_val@0x43de360) (expression float dot (swiz xyz (var_ref rv@0x43d7390) )(var_ref _ret_val@0x43d2c80) ) ) (declare () float t@0x43e6700) (assign (constant bool (1)) (x) (var_ref t@0x43e6700) (expression float max (expression float min (expression float * (var_ref _ret_val@0x43de360) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x42f7f20) (expression vec4 + (var_ref pc@0x42f7f20) (expression vec4 * (swiz w (var_ref rv@0x43d7390) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (0)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x43de360) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (0)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x42f7e10) (expression vec4 * (swiz w (var_ref rv@0x43d7390) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x43d7390) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x43e6700) (expression float * (var_ref t@0x43e6700) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x43e6700) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (0)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) ) ) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x4197fa0) (constant int (1)) ) (constant int (0)) ) ( (declare () vec4 rv@0x43eaa30) (declare (temporary ) vec4 assignment_tmp@0x43eab40) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x43eab40) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (1)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x43eaa30) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x43eab40) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x43eab40) )) ) ) )) (declare () vec3 arg0@0x43ebaf0) (assign (constant bool (1)) (xyz) (var_ref arg0@0x43ebaf0) (swiz xyz (var_ref rv@0x43eaa30) )) (assign (constant bool (1)) (w) (var_ref rv@0x43eaa30) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x43ebaf0) (var_ref arg0@0x43ebaf0) ) ) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x43eaa30) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x43eaa30) )(expression float rcp (swiz w (var_ref rv@0x43eaa30) )) ) )) (declare (temporary ) vec3 vec_ctor@0x43ecc50) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x43ecc50) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x43ecc50) (swiz www (var_ref rv@0x43eaa30) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x43ecc50) (swiz xxx (expression float * (swiz w (var_ref rv@0x43eaa30) )(swiz w (var_ref rv@0x43eaa30) )) )) (declare (temporary ) vec3 vec_ctor@0x43ed670) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x43ed670) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (1)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x43ed670) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (1)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x43ed670) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (1)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x43eaa30) (swiz xxxx (expression float dot (var_ref vec_ctor@0x43ecc50) (var_ref vec_ctor@0x43ed670) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x43eaa30) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x43eaa30) )) )) (declare () float _ret_val@0x43f1a00) (assign (constant bool (1)) (x) (var_ref _ret_val@0x43f1a00) (expression float dot (swiz xyz (var_ref rv@0x43eaa30) )(var_ref _ret_val@0x43d2c80) ) ) (declare () float t@0x43f9da0) (assign (constant bool (1)) (x) (var_ref t@0x43f9da0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x43f1a00) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x42f7f20) (expression vec4 + (var_ref pc@0x42f7f20) (expression vec4 * (swiz w (var_ref rv@0x43eaa30) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (1)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x43f1a00) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (1)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x42f7e10) (expression vec4 + (var_ref sc@0x42f7e10) (expression vec4 * (swiz w (var_ref rv@0x43eaa30) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x43eaa30) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x43f9da0) (expression float * (var_ref t@0x43f9da0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x43f9da0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (1)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) ) ) ) ) ()) (if (expression bool >= (var_ref max_light_enabled@0x419a590) (constant int (2)) ) ( (if (expression bool != (array_ref (var_ref light_enabled@0x4197fa0) (constant int (2)) ) (constant int (0)) ) ( (declare () vec4 rv@0x43fe0d0) (declare (temporary ) vec4 assignment_tmp@0x43fe1e0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x43fe1e0) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (2)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x43fe0d0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x43fe1e0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x43fe1e0) )) ) ) )) (declare () vec3 arg0@0x43ff190) (assign (constant bool (1)) (xyz) (var_ref arg0@0x43ff190) (swiz xyz (var_ref rv@0x43fe0d0) )) (assign (constant bool (1)) (w) (var_ref rv@0x43fe0d0) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x43ff190) (var_ref arg0@0x43ff190) ) ) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x43fe0d0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x43fe0d0) )(expression float rcp (swiz w (var_ref rv@0x43fe0d0) )) ) )) (declare (temporary ) vec3 vec_ctor@0x44002f0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x44002f0) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x44002f0) (swiz www (var_ref rv@0x43fe0d0) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x44002f0) (swiz xxx (expression float * (swiz w (var_ref rv@0x43fe0d0) )(swiz w (var_ref rv@0x43fe0d0) )) )) (declare (temporary ) vec3 vec_ctor@0x4400d10) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4400d10) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (2)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4400d10) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (2)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4400d10) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (2)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x43fe0d0) (swiz xxxx (expression float dot (var_ref vec_ctor@0x44002f0) (var_ref vec_ctor@0x4400d10) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x43fe0d0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x43fe0d0) )) )) (declare () float _ret_val@0x44050a0) (assign (constant bool (1)) (x) (var_ref _ret_val@0x44050a0) (expression float dot (swiz xyz (var_ref rv@0x43fe0d0) )(var_ref _ret_val@0x43d2c80) ) ) (declare () float t@0x440d440) (assign (constant bool (1)) (x) (var_ref t@0x440d440) (expression float max (expression float min (expression float * (var_ref _ret_val@0x44050a0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x42f7f20) (expression vec4 + (var_ref pc@0x42f7f20) (expression vec4 * (swiz w (var_ref rv@0x43fe0d0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x44050a0) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x42f7e10) (expression vec4 + (var_ref sc@0x42f7e10) (expression vec4 * (swiz w (var_ref rv@0x43fe0d0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x43fe0d0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x440d440) (expression float * (var_ref t@0x440d440) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x440d440) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) ) ) ) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x4197fa0) (constant int (3)) ) (constant int (0)) ) ( (declare () vec4 rv@0x4411770) (declare (temporary ) vec4 assignment_tmp@0x4411880) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4411880) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (3)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x4411770) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4411880) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x4411880) )) ) ) )) (declare () vec3 arg0@0x4412830) (assign (constant bool (1)) (xyz) (var_ref arg0@0x4412830) (swiz xyz (var_ref rv@0x4411770) )) (assign (constant bool (1)) (w) (var_ref rv@0x4411770) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x4412830) (var_ref arg0@0x4412830) ) ) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x4411770) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x4411770) )(expression float rcp (swiz w (var_ref rv@0x4411770) )) ) )) (declare (temporary ) vec3 vec_ctor@0x4413990) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4413990) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4413990) (swiz www (var_ref rv@0x4411770) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4413990) (swiz xxx (expression float * (swiz w (var_ref rv@0x4411770) )(swiz w (var_ref rv@0x4411770) )) )) (declare (temporary ) vec3 vec_ctor@0x44143b0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x44143b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (3)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x44143b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (3)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x44143b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (3)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x4411770) (swiz xxxx (expression float dot (var_ref vec_ctor@0x4413990) (var_ref vec_ctor@0x44143b0) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x4411770) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4411770) )) )) (declare () float _ret_val@0x4418740) (assign (constant bool (1)) (x) (var_ref _ret_val@0x4418740) (expression float dot (swiz xyz (var_ref rv@0x4411770) )(var_ref _ret_val@0x43d2c80) ) ) (declare () float t@0x4420ae0) (assign (constant bool (1)) (x) (var_ref t@0x4420ae0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x4418740) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x42f7f20) (expression vec4 + (var_ref pc@0x42f7f20) (expression vec4 * (swiz w (var_ref rv@0x4411770) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4418740) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x42f7e10) (expression vec4 + (var_ref sc@0x42f7e10) (expression vec4 * (swiz w (var_ref rv@0x4411770) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4411770) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4420ae0) (expression float * (var_ref t@0x4420ae0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4420ae0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) ) ) ) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x4197fa0) (constant int (4)) ) (constant int (0)) ) ( (declare () vec4 rv@0x4424e10) (declare (temporary ) vec4 assignment_tmp@0x4424f20) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4424f20) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (4)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x4424e10) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4424f20) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x4424f20) )) ) ) )) (declare () vec3 arg0@0x4425ed0) (assign (constant bool (1)) (xyz) (var_ref arg0@0x4425ed0) (swiz xyz (var_ref rv@0x4424e10) )) (assign (constant bool (1)) (w) (var_ref rv@0x4424e10) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x4425ed0) (var_ref arg0@0x4425ed0) ) ) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x4424e10) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x4424e10) )(expression float rcp (swiz w (var_ref rv@0x4424e10) )) ) )) (declare (temporary ) vec3 vec_ctor@0x4427030) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4427030) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4427030) (swiz www (var_ref rv@0x4424e10) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4427030) (swiz xxx (expression float * (swiz w (var_ref rv@0x4424e10) )(swiz w (var_ref rv@0x4424e10) )) )) (declare (temporary ) vec3 vec_ctor@0x4427a50) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4427a50) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (4)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4427a50) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (4)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4427a50) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (4)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x4424e10) (swiz xxxx (expression float dot (var_ref vec_ctor@0x4427030) (var_ref vec_ctor@0x4427a50) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x4424e10) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4424e10) )) )) (declare () float _ret_val@0x4a77f40) (assign (constant bool (1)) (x) (var_ref _ret_val@0x4a77f40) (expression float dot (swiz xyz (var_ref rv@0x4424e10) )(var_ref _ret_val@0x43d2c80) ) ) (declare () float t@0x4a7e290) (assign (constant bool (1)) (x) (var_ref t@0x4a7e290) (expression float max (expression float min (expression float * (var_ref _ret_val@0x4a77f40) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x42f7f20) (expression vec4 + (var_ref pc@0x42f7f20) (expression vec4 * (swiz w (var_ref rv@0x4424e10) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4a77f40) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x42f7e10) (expression vec4 + (var_ref sc@0x42f7e10) (expression vec4 * (swiz w (var_ref rv@0x4424e10) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4424e10) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4a7e290) (expression float * (var_ref t@0x4a7e290) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4a7e290) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) ) ) ) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x4197fa0) (constant int (5)) ) (constant int (0)) ) ( (declare () vec4 rv@0x4a821c0) (declare (temporary ) vec4 assignment_tmp@0x4a82270) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4a82270) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (5)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x4a821c0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4a82270) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x4a82270) )) ) ) )) (declare () vec3 arg0@0x4a83220) (assign (constant bool (1)) (xyz) (var_ref arg0@0x4a83220) (swiz xyz (var_ref rv@0x4a821c0) )) (assign (constant bool (1)) (w) (var_ref rv@0x4a821c0) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x4a83220) (var_ref arg0@0x4a83220) ) ) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x4a821c0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x4a821c0) )(expression float rcp (swiz w (var_ref rv@0x4a821c0) )) ) )) (declare (temporary ) vec3 vec_ctor@0x4a84320) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4a84320) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4a84320) (swiz www (var_ref rv@0x4a821c0) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4a84320) (swiz xxx (expression float * (swiz w (var_ref rv@0x4a821c0) )(swiz w (var_ref rv@0x4a821c0) )) )) (declare (temporary ) vec3 vec_ctor@0x4a84d40) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4a84d40) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (5)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4a84d40) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (5)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4a84d40) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (5)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x4a821c0) (swiz xxxx (expression float dot (var_ref vec_ctor@0x4a84320) (var_ref vec_ctor@0x4a84d40) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x4a821c0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4a821c0) )) )) (declare () float _ret_val@0x4a88f50) (assign (constant bool (1)) (x) (var_ref _ret_val@0x4a88f50) (expression float dot (swiz xyz (var_ref rv@0x4a821c0) )(var_ref _ret_val@0x43d2c80) ) ) (declare () float t@0x4a90b70) (assign (constant bool (1)) (x) (var_ref t@0x4a90b70) (expression float max (expression float min (expression float * (var_ref _ret_val@0x4a88f50) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x42f7f20) (expression vec4 + (var_ref pc@0x42f7f20) (expression vec4 * (swiz w (var_ref rv@0x4a821c0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (5)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4a88f50) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (5)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x42f7e10) (expression vec4 + (var_ref sc@0x42f7e10) (expression vec4 * (swiz w (var_ref rv@0x4a821c0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4a821c0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4a90b70) (expression float * (var_ref t@0x4a90b70) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4a90b70) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (5)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) ) ) ) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x4197fa0) (constant int (6)) ) (constant int (0)) ) ( (declare () vec4 rv@0x4a94aa0) (declare (temporary ) vec4 assignment_tmp@0x4a94b50) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4a94b50) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (6)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x4a94aa0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4a94b50) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x4a94b50) )) ) ) )) (declare () vec3 arg0@0x4a95b00) (assign (constant bool (1)) (xyz) (var_ref arg0@0x4a95b00) (swiz xyz (var_ref rv@0x4a94aa0) )) (assign (constant bool (1)) (w) (var_ref rv@0x4a94aa0) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x4a95b00) (var_ref arg0@0x4a95b00) ) ) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x4a94aa0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x4a94aa0) )(expression float rcp (swiz w (var_ref rv@0x4a94aa0) )) ) )) (declare (temporary ) vec3 vec_ctor@0x4a96c00) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4a96c00) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4a96c00) (swiz www (var_ref rv@0x4a94aa0) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4a96c00) (swiz xxx (expression float * (swiz w (var_ref rv@0x4a94aa0) )(swiz w (var_ref rv@0x4a94aa0) )) )) (declare (temporary ) vec3 vec_ctor@0x4a97620) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4a97620) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (6)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4a97620) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (6)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4a97620) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (6)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x4a94aa0) (swiz xxxx (expression float dot (var_ref vec_ctor@0x4a96c00) (var_ref vec_ctor@0x4a97620) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x4a94aa0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4a94aa0) )) )) (declare () float _ret_val@0x4a9b760) (assign (constant bool (1)) (x) (var_ref _ret_val@0x4a9b760) (expression float dot (swiz xyz (var_ref rv@0x4a94aa0) )(var_ref _ret_val@0x43d2c80) ) ) (declare () float t@0x4aa37a0) (assign (constant bool (1)) (x) (var_ref t@0x4aa37a0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x4a9b760) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x42f7f20) (expression vec4 + (var_ref pc@0x42f7f20) (expression vec4 * (swiz w (var_ref rv@0x4a94aa0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (6)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4a9b760) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (6)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x42f7e10) (expression vec4 + (var_ref sc@0x42f7e10) (expression vec4 * (swiz w (var_ref rv@0x4a94aa0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4a94aa0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4aa37a0) (expression float * (var_ref t@0x4aa37a0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4aa37a0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (6)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) ) ) ) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x4197fa0) (constant int (7)) ) (constant int (0)) ) ( (declare () vec4 rv@0x4aa7af0) (declare (temporary ) vec4 assignment_tmp@0x4aa7c00) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4aa7c00) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (7)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x4aa7af0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4aa7c00) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x4aa7c00) )) ) ) )) (declare () vec3 arg0@0x4aa8bb0) (assign (constant bool (1)) (xyz) (var_ref arg0@0x4aa8bb0) (swiz xyz (var_ref rv@0x4aa7af0) )) (assign (constant bool (1)) (w) (var_ref rv@0x4aa7af0) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x4aa8bb0) (var_ref arg0@0x4aa8bb0) ) ) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x4aa7af0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x4aa7af0) )(expression float rcp (swiz w (var_ref rv@0x4aa7af0) )) ) )) (declare (temporary ) vec3 vec_ctor@0x4aa9d10) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4aa9d10) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4aa9d10) (swiz www (var_ref rv@0x4aa7af0) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4aa9d10) (swiz xxx (expression float * (swiz w (var_ref rv@0x4aa7af0) )(swiz w (var_ref rv@0x4aa7af0) )) )) (declare (temporary ) vec3 vec_ctor@0x4aaa730) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4aaa730) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (7)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4aaa730) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (7)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4aaa730) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (7)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x4aa7af0) (swiz xxxx (expression float dot (var_ref vec_ctor@0x4aa9d10) (var_ref vec_ctor@0x4aaa730) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x4aa7af0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4aa7af0) )) )) (declare () float _ret_val@0x4aaeac0) (assign (constant bool (1)) (x) (var_ref _ret_val@0x4aaeac0) (expression float dot (swiz xyz (var_ref rv@0x4aa7af0) )(var_ref _ret_val@0x43d2c80) ) ) (declare () float t@0x4ab6e60) (assign (constant bool (1)) (x) (var_ref t@0x4ab6e60) (expression float max (expression float min (expression float * (var_ref _ret_val@0x4aaeac0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x42f7f20) (expression vec4 + (var_ref pc@0x42f7f20) (expression vec4 * (swiz w (var_ref rv@0x4aa7af0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (7)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4aaeac0) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (7)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x42f7e10) (expression vec4 + (var_ref sc@0x42f7e10) (expression vec4 * (swiz w (var_ref rv@0x4aa7af0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4aa7af0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4ab6e60) (expression float * (var_ref t@0x4ab6e60) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4ab6e60) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (7)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) ) ) ) ) ()) ) ()) (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x41972a0) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4263220) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x423d040) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4263220) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x423d040) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4263220) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x423d040) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4263220) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x423d040) )) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_BackColor@0x426a5b0) (var_ref pc@0x42f7f20) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0x426ba60) (var_ref pc@0x42f7f20) ) (assign (constant bool (1)) (xyzw) (var_ref gl_BackSecondaryColor@0x4268440) (var_ref sc@0x42f7e10) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontSecondaryColor@0x426a490) (var_ref sc@0x42f7e10) ) )) ) ) Mesa IR for linked vertex program 7: 0: (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4265cf0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x423d040) )) MUL TEMP[1], STATE[9], INPUT[0].xxxx; 1: (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4265cf0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x423d040) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4265cf0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x423d040) )) ) MAD TEMP[2], STATE[10], INPUT[0].yyyy, TEMP[1]; 2: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4265cf0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x423d040) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4265cf0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x423d040) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4265cf0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x423d040) )) ) MAD TEMP[3], STATE[11], INPUT[0].zzzz, TEMP[2]; 3: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4265cf0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x423d040) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4265cf0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x423d040) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4265cf0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x423d040) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4265cf0) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x423d040) )) ) MAD TEMP[4], STATE[12], INPUT[0].wwww, TEMP[3]; 4: (assign (constant bool (1)) (xyzw) (var_ref flattening_tmp@0x4abe6a0) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4265cf0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x423d040) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4265cf0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x423d040) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4265cf0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x423d040) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4265cf0) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x423d040) )) ) ) MOV TEMP[5], TEMP[4]; 5: (assign (constant bool (1)) (xyz) (var_ref arg0@0x43d2460) (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )) MOV TEMP[6].xyz, TEMP[5].xyzz; 6: (expression float dot (var_ref arg0@0x43d2460) (var_ref arg0@0x43d2460) ) DP3 TEMP[7].x, TEMP[6].xyzz, TEMP[6].xyzz; 7: (expression float rsq (expression float dot (var_ref arg0@0x43d2460) (var_ref arg0@0x43d2460) ) ) RSQ TEMP[8].x, TEMP[7].xxxx; 8: (expression vec3 * (var_ref arg0@0x43d2460) (expression float rsq (expression float dot (var_ref arg0@0x43d2460) (var_ref arg0@0x43d2460) ) ) ) MUL TEMP[9].xyz, TEMP[6].xyzz, TEMP[8].xxxx; 9: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x43d2340) (expression vec3 * (var_ref arg0@0x43d2460) (expression float rsq (expression float dot (var_ref arg0@0x43d2460) (var_ref arg0@0x43d2460) ) ) ) ) MOV TEMP[10].xyz, TEMP[9].xyzz; 10: (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x42611e0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x423a220) )) MUL TEMP[11].xyz, STATE[13].xyzz, INPUT[2].xxxx; 11: (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x42611e0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x423a220) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x42611e0) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x423a220) )) ) MAD TEMP[12], STATE[14].xyzz, INPUT[2].yyyy, TEMP[11].xyzz; 12: (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x42611e0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x423a220) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x42611e0) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x423a220) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x42611e0) (constant int (2)) ) (swiz z (var_ref gl_Normal@0x423a220) )) ) MAD TEMP[13], STATE[15].xyzz, INPUT[2].zzzz, TEMP[12].xyzz; 13: (assign (constant bool (1)) (xyz) (var_ref flattening_tmp@0x4abeaa0) (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x42611e0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x423a220) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x42611e0) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x423a220) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x42611e0) (constant int (2)) ) (swiz z (var_ref gl_Normal@0x423a220) )) ) ) MOV TEMP[14].xyz, TEMP[13].xyzz; 14: (expression float dot (var_ref flattening_tmp@0x4abeaa0) (var_ref flattening_tmp@0x4abeaa0) ) DP3 TEMP[15].x, TEMP[14].xyzz, TEMP[14].xyzz; 15: (expression float rsq (expression float dot (var_ref flattening_tmp@0x4abeaa0) (var_ref flattening_tmp@0x4abeaa0) ) ) RSQ TEMP[16].x, TEMP[15].xxxx; 16: (expression vec3 * (var_ref flattening_tmp@0x4abeaa0) (expression float rsq (expression float dot (var_ref flattening_tmp@0x4abeaa0) (var_ref flattening_tmp@0x4abeaa0) ) ) ) MUL TEMP[17].xyz, TEMP[14].xyzz, TEMP[16].xxxx; 17: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x43d2c80) (expression vec3 * (var_ref flattening_tmp@0x4abeaa0) (expression float rsq (expression float dot (var_ref flattening_tmp@0x4abeaa0) (var_ref flattening_tmp@0x4abeaa0) ) ) ) ) MOV TEMP[18].xyz, TEMP[17].xyzz; 18: (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x423e310) (constant int (0)) ) (var_ref gl_MultiTexCoord0@0x422f360) ) MOV OUTPUT[4], INPUT[8]; 19: (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) DP3 TEMP[19].x, TEMP[18].xyzz, TEMP[10].xyzz; 20: (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) MUL TEMP[20].xyz, TEMP[19].xxxx, TEMP[18].xyzz; 21: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) MUL TEMP[21].xyz, CONST[17].xxxx, TEMP[20].xyzz; 22: (expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ADD TEMP[23].xyz, TEMP[10].xyzz, TEMP[21].-x-y-z-z; 23: (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x423e310) (constant int (1)) ) (swiz xyz (expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) )) MOV OUTPUT[5].xyz, TEMP[23].xyzz; 24: (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x423e310) (constant int (2)) ) (swiz xyz (var_ref _ret_val@0x43d2c80) )) MOV OUTPUT[6].xyz, TEMP[18].xyzz; 25: (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x4245290) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontMaterial@0x4238560) emission) ) ADD TEMP[25], STATE[18], STATE[19]; 26: (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x4245290) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontMaterial@0x4238560) emission) ) (record_ref (var_ref gl_FrontLightModelProduct@0x4232860) sceneColor) ) ADD TEMP[26], TEMP[25], STATE[20]; 27: (expression vec4 + (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x4245290) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontMaterial@0x4238560) emission) ) (record_ref (var_ref gl_FrontLightModelProduct@0x4232860) sceneColor) ) (expression vec4 * (expression float i2f (array_ref (var_ref light_enabled@0x4197fa0) (constant int (1)) ) ) (record_ref (array_ref (var_ref gl_FrontLightProduct@0x4245290) (constant int (1)) ) ambient) ) ) MAD TEMP[27], UNIFORM[2].xxxx, STATE[18], TEMP[26]; 28: (assign (constant bool (1)) (xyzw) (var_ref pc@0x42f7f20) (expression vec4 + (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x4245290) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontMaterial@0x4238560) emission) ) (record_ref (var_ref gl_FrontLightModelProduct@0x4232860) sceneColor) ) (expression vec4 * (expression float i2f (array_ref (var_ref light_enabled@0x4197fa0) (constant int (1)) ) ) (record_ref (array_ref (var_ref gl_FrontLightProduct@0x4245290) (constant int (1)) ) ambient) ) ) ) MOV TEMP[28], TEMP[27]; 29: (assign (constant bool (1)) (xyzw) (var_ref sc@0x42f7e10) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) MOV TEMP[29], CONST[21]; 30: (expression bool != (array_ref (var_ref light_enabled@0x4197fa0) (constant int (0)) ) (constant int (0)) ) SNE.C TEMP[30].x, UNIFORM[1].xxxx, CONST[21].xxxx; 31: IF (NE.xxxx); # (if false, goto 85); 32: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x43d74a0) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (0)) ) position) ) MOV TEMP[31], STATE[22]; 33: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x43d74a0) )) MUL TEMP[32].xyz, TEMP[5].xyzz, TEMP[31].wwww; 34: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x43d74a0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x43d74a0) )) ) ) ADD TEMP[34].xyz, TEMP[31].xyzz, TEMP[32].-x-y-z-z; 35: (assign (constant bool (1)) (xyz) (var_ref rv@0x43d7390) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x43d74a0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x43d74a0) )) ) ) )) MOV TEMP[35].xyz, TEMP[34].xyzz; 36: (assign (constant bool (1)) (xyz) (var_ref arg0@0x43d8450) (swiz xyz (var_ref rv@0x43d7390) )) MOV TEMP[36].xyz, TEMP[35].xyzz; 37: (expression float dot (var_ref arg0@0x43d8450) (var_ref arg0@0x43d8450) ) DP3 TEMP[37].x, TEMP[36].xyzz, TEMP[36].xyzz; 38: (expression float sqrt (expression float dot (var_ref arg0@0x43d8450) (var_ref arg0@0x43d8450) ) ) RSQ TEMP[38].x, TEMP[37].xxxx; 39: MUL TEMP[38].x, TEMP[38].xxxx, TEMP[37].xxxx; 40: CMP TEMP[38].x, TEMP[37].-x-x-x-x, TEMP[38].xxxx, CONST[21].xxxx; 41: (assign (constant bool (1)) (w) (var_ref rv@0x43d7390) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x43d8450) (var_ref arg0@0x43d8450) ) ) )) MOV TEMP[35].w, TEMP[38].xxxx; 42: (expression float rcp (swiz w (var_ref rv@0x43d7390) )) RCP TEMP[39].x, TEMP[35].wwww; 43: (expression vec3 * (swiz xyz (var_ref rv@0x43d7390) )(expression float rcp (swiz w (var_ref rv@0x43d7390) )) ) MUL TEMP[40].xyz, TEMP[35].xyzz, TEMP[39].xxxx; 44: (assign (constant bool (1)) (xyz) (var_ref rv@0x43d7390) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x43d7390) )(expression float rcp (swiz w (var_ref rv@0x43d7390) )) ) )) MOV TEMP[35].xyz, TEMP[40].xyzz; 45: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x43d95b0) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[41].x, CONST[23]; 46: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x43d95b0) (swiz www (var_ref rv@0x43d7390) )) MOV TEMP[41].y, TEMP[35].wwww; 47: (expression float * (swiz w (var_ref rv@0x43d7390) )(swiz w (var_ref rv@0x43d7390) )) MUL TEMP[42].x, TEMP[35].wwww, TEMP[35].wwww; 48: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x43d95b0) (swiz xxx (expression float * (swiz w (var_ref rv@0x43d7390) )(swiz w (var_ref rv@0x43d7390) )) )) MOV TEMP[41].z, TEMP[42].xxxx; 49: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x43d9fd0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (0)) ) constantAttenuation) )) MOV TEMP[43].x, STATE[24].xxxx; 50: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x43d9fd0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (0)) ) linearAttenuation) )) MOV TEMP[43].y, STATE[24].yyyy; 51: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x43d9fd0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (0)) ) quadraticAttenuation) )) MOV TEMP[43].z, STATE[24].zzzz; 52: (expression float dot (var_ref vec_ctor@0x43d95b0) (var_ref vec_ctor@0x43d9fd0) ) DP3 TEMP[44].x, TEMP[41].xyzz, TEMP[43].xyzz; 53: (assign (constant bool (1)) (w) (var_ref rv@0x43d7390) (swiz xxxx (expression float dot (var_ref vec_ctor@0x43d95b0) (var_ref vec_ctor@0x43d9fd0) ) )) MOV TEMP[35].w, TEMP[44].xxxx; 54: (expression float rcp (swiz w (var_ref rv@0x43d7390) )) RCP TEMP[45].x, TEMP[35].wwww; 55: (assign (constant bool (1)) (w) (var_ref rv@0x43d7390) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x43d7390) )) )) MOV TEMP[35].w, TEMP[45].xxxx; 56: (expression float dot (swiz xyz (var_ref rv@0x43d7390) )(var_ref _ret_val@0x43d2c80) ) DP3 TEMP[46].x, TEMP[35].xyzz, TEMP[18].xyzz; 57: (assign (constant bool (1)) (x) (var_ref _ret_val@0x43de360) (expression float dot (swiz xyz (var_ref rv@0x43d7390) )(var_ref _ret_val@0x43d2c80) ) ) MOV TEMP[47], TEMP[46].xxxx; 58: (expression float * (var_ref _ret_val@0x43de360) (constant float (4.000000)) ) MUL TEMP[48].x, TEMP[47].xxxx, CONST[17].yyyy; 59: (expression float min (expression float * (var_ref _ret_val@0x43de360) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[49].x, TEMP[48].xxxx, CONST[23].xxxx; 60: (expression float max (expression float min (expression float * (var_ref _ret_val@0x43de360) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[50].x, TEMP[49].xxxx, CONST[21].xxxx; 61: (assign (constant bool (1)) (x) (var_ref t@0x43e6700) (expression float max (expression float min (expression float * (var_ref _ret_val@0x43de360) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[51], TEMP[50].xxxx; 62: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x43de360) ) MAX TEMP[52].x, CONST[21].xxxx, TEMP[47].xxxx; 63: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x43de360) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (0)) ) diffuse) ) MUL TEMP[53], TEMP[52].xxxx, STATE[25]; 64: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (0)) ) ambient) ) MUL TEMP[54], STATE[27], STATE[28]; 65: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (0)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x43de360) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (0)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) MAD TEMP[55], TEMP[53], STATE[26], TEMP[54]; 66: (expression vec4 + (var_ref pc@0x42f7f20) (expression vec4 * (swiz w (var_ref rv@0x43d7390) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (0)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x43de360) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (0)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) ) ) MAD TEMP[56], TEMP[35].wwww, TEMP[55], TEMP[28]; 67: (assign (constant bool (1)) (xyzw) (var_ref pc@0x42f7f20) (expression vec4 + (var_ref pc@0x42f7f20) (expression vec4 * (swiz w (var_ref rv@0x43d7390) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (0)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x43de360) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (0)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) ) ) ) MOV TEMP[28], TEMP[56]; 68: (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) DP3 TEMP[57].x, TEMP[18].xyzz, TEMP[10].xyzz; 69: (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) MUL TEMP[58].xyz, TEMP[57].xxxx, TEMP[18].xyzz; 70: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) MUL TEMP[59].xyz, CONST[17].xxxx, TEMP[58].xyzz; 71: (expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ADD TEMP[61].xyz, TEMP[10].xyzz, TEMP[59].-x-y-z-z; 72: (expression float dot (swiz xyz (var_ref rv@0x43d7390) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) DP3 TEMP[62].x, TEMP[35].xyzz, TEMP[61].xyzz; 73: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x43d7390) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) MAX TEMP[63].x, CONST[21].xxxx, TEMP[62].xxxx; 74: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) MAX TEMP[64].x, CONST[23].xxxx, STATE[29].xxxx; 75: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x43d7390) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) POW TEMP[65].x, TEMP[63].xxxx, TEMP[64].xxxx; 76: (expression float * (constant float (2.000000)) (var_ref t@0x43e6700) ) MUL TEMP[66].x, CONST[17].xxxx, TEMP[51].xxxx; 77: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x43e6700) ) ) ) ADD TEMP[68].x, CONST[17].zzzz, TEMP[66].-x-x-x-x; 78: (expression float * (var_ref t@0x43e6700) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x43e6700) ) ) ) ) MUL TEMP[69].x, TEMP[51].xxxx, TEMP[68].xxxx; 79: (expression float * (var_ref t@0x43e6700) (expression float * (var_ref t@0x43e6700) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x43e6700) ) ) ) ) ) MUL TEMP[70].x, TEMP[51].xxxx, TEMP[69].xxxx; 80: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x43d7390) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x43e6700) (expression float * (var_ref t@0x43e6700) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x43e6700) ) ) ) ) ) ) MUL TEMP[71].x, TEMP[65].xxxx, TEMP[70].xxxx; 81: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x43d7390) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x43e6700) (expression float * (var_ref t@0x43e6700) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x43e6700) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (0)) ) specular) ) MUL TEMP[72], TEMP[71].xxxx, STATE[30]; 82: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x43d7390) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x43e6700) (expression float * (var_ref t@0x43e6700) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x43e6700) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (0)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) MUL TEMP[73], TEMP[72], STATE[31]; 83: (expression vec4 * (swiz w (var_ref rv@0x43d7390) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x43d7390) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x43e6700) (expression float * (var_ref t@0x43e6700) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x43e6700) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (0)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) ) MUL TEMP[74], TEMP[35].wwww, TEMP[73]; 84: (assign (constant bool (1)) (xyzw) (var_ref sc@0x42f7e10) (expression vec4 * (swiz w (var_ref rv@0x43d7390) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x43d7390) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x43e6700) (expression float * (var_ref t@0x43e6700) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x43e6700) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (0)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) ) ) MOV TEMP[29], TEMP[74]; 85: (expression bool != (array_ref (var_ref light_enabled@0x4197fa0) (constant int (0)) ) (constant int (0)) ) ENDIF; 86: (expression bool != (array_ref (var_ref light_enabled@0x4197fa0) (constant int (1)) ) (constant int (0)) ) SNE.C TEMP[75].x, UNIFORM[2].xxxx, CONST[21].xxxx; 87: IF (NE.xxxx); # (if false, goto 141); 88: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x43eab40) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (1)) ) position) ) MOV TEMP[76], STATE[22]; 89: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x43eab40) )) MUL TEMP[77].xyz, TEMP[5].xyzz, TEMP[76].wwww; 90: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x43eab40) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x43eab40) )) ) ) ADD TEMP[79].xyz, TEMP[76].xyzz, TEMP[77].-x-y-z-z; 91: (assign (constant bool (1)) (xyz) (var_ref rv@0x43eaa30) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x43eab40) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x43eab40) )) ) ) )) MOV TEMP[80].xyz, TEMP[79].xyzz; 92: (assign (constant bool (1)) (xyz) (var_ref arg0@0x43ebaf0) (swiz xyz (var_ref rv@0x43eaa30) )) MOV TEMP[81].xyz, TEMP[80].xyzz; 93: (expression float dot (var_ref arg0@0x43ebaf0) (var_ref arg0@0x43ebaf0) ) DP3 TEMP[82].x, TEMP[81].xyzz, TEMP[81].xyzz; 94: (expression float sqrt (expression float dot (var_ref arg0@0x43ebaf0) (var_ref arg0@0x43ebaf0) ) ) RSQ TEMP[83].x, TEMP[82].xxxx; 95: MUL TEMP[83].x, TEMP[83].xxxx, TEMP[82].xxxx; 96: CMP TEMP[83].x, TEMP[82].-x-x-x-x, TEMP[83].xxxx, CONST[21].xxxx; 97: (assign (constant bool (1)) (w) (var_ref rv@0x43eaa30) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x43ebaf0) (var_ref arg0@0x43ebaf0) ) ) )) MOV TEMP[80].w, TEMP[83].xxxx; 98: (expression float rcp (swiz w (var_ref rv@0x43eaa30) )) RCP TEMP[84].x, TEMP[80].wwww; 99: (expression vec3 * (swiz xyz (var_ref rv@0x43eaa30) )(expression float rcp (swiz w (var_ref rv@0x43eaa30) )) ) MUL TEMP[85].xyz, TEMP[80].xyzz, TEMP[84].xxxx; 100: (assign (constant bool (1)) (xyz) (var_ref rv@0x43eaa30) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x43eaa30) )(expression float rcp (swiz w (var_ref rv@0x43eaa30) )) ) )) MOV TEMP[80].xyz, TEMP[85].xyzz; 101: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x43ecc50) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[86].x, CONST[23].xyzz; 102: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x43ecc50) (swiz www (var_ref rv@0x43eaa30) )) MOV TEMP[86].y, TEMP[80].wwww; 103: (expression float * (swiz w (var_ref rv@0x43eaa30) )(swiz w (var_ref rv@0x43eaa30) )) MUL TEMP[87].x, TEMP[80].wwww, TEMP[80].wwww; 104: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x43ecc50) (swiz xxx (expression float * (swiz w (var_ref rv@0x43eaa30) )(swiz w (var_ref rv@0x43eaa30) )) )) MOV TEMP[86].z, TEMP[87].xxxx; 105: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x43ed670) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (1)) ) constantAttenuation) )) MOV TEMP[88].x, STATE[24].xxxx; 106: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x43ed670) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (1)) ) linearAttenuation) )) MOV TEMP[88].y, STATE[24].yyyy; 107: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x43ed670) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (1)) ) quadraticAttenuation) )) MOV TEMP[88].z, STATE[24].zzzz; 108: (expression float dot (var_ref vec_ctor@0x43ecc50) (var_ref vec_ctor@0x43ed670) ) DP3 TEMP[89].x, TEMP[86].xyzz, TEMP[88].xyzz; 109: (assign (constant bool (1)) (w) (var_ref rv@0x43eaa30) (swiz xxxx (expression float dot (var_ref vec_ctor@0x43ecc50) (var_ref vec_ctor@0x43ed670) ) )) MOV TEMP[80].w, TEMP[89].xxxx; 110: (expression float rcp (swiz w (var_ref rv@0x43eaa30) )) RCP TEMP[90].x, TEMP[80].wwww; 111: (assign (constant bool (1)) (w) (var_ref rv@0x43eaa30) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x43eaa30) )) )) MOV TEMP[80].w, TEMP[90].xxxx; 112: (expression float dot (swiz xyz (var_ref rv@0x43eaa30) )(var_ref _ret_val@0x43d2c80) ) DP3 TEMP[91].x, TEMP[80].xyzz, TEMP[18].xyzz; 113: (assign (constant bool (1)) (x) (var_ref _ret_val@0x43f1a00) (expression float dot (swiz xyz (var_ref rv@0x43eaa30) )(var_ref _ret_val@0x43d2c80) ) ) MOV TEMP[92], TEMP[91].xxxx; 114: (expression float * (var_ref _ret_val@0x43f1a00) (constant float (4.000000)) ) MUL TEMP[93].x, TEMP[92].xxxx, CONST[17].yyyy; 115: (expression float min (expression float * (var_ref _ret_val@0x43f1a00) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[94].x, TEMP[93].xxxx, CONST[23].xxxx; 116: (expression float max (expression float min (expression float * (var_ref _ret_val@0x43f1a00) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[95].x, TEMP[94].xxxx, CONST[21].xxxx; 117: (assign (constant bool (1)) (x) (var_ref t@0x43f9da0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x43f1a00) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[96], TEMP[95].xxxx; 118: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x43f1a00) ) MAX TEMP[97].x, CONST[21].xxxx, TEMP[92].xxxx; 119: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x43f1a00) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (1)) ) diffuse) ) MUL TEMP[98], TEMP[97].xxxx, STATE[25]; 120: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (1)) ) ambient) ) MUL TEMP[99], STATE[27], STATE[28]; 121: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (1)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x43f1a00) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (1)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) MAD TEMP[100], TEMP[98], STATE[26], TEMP[99]; 122: (expression vec4 + (var_ref pc@0x42f7f20) (expression vec4 * (swiz w (var_ref rv@0x43eaa30) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (1)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x43f1a00) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (1)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) ) ) MAD TEMP[101], TEMP[80].wwww, TEMP[100], TEMP[28]; 123: (assign (constant bool (1)) (xyzw) (var_ref pc@0x42f7f20) (expression vec4 + (var_ref pc@0x42f7f20) (expression vec4 * (swiz w (var_ref rv@0x43eaa30) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (1)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x43f1a00) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (1)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) ) ) ) MOV TEMP[28], TEMP[101]; 124: (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) DP3 TEMP[102].x, TEMP[18].xyzz, TEMP[10].xyzz; 125: (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) MUL TEMP[103].xyz, TEMP[102].xxxx, TEMP[18].xyzz; 126: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) MUL TEMP[104].xyz, CONST[17].xxxx, TEMP[103].xyzz; 127: (expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ADD TEMP[106].xyz, TEMP[10].xyzz, TEMP[104].-x-y-z-z; 128: (expression float dot (swiz xyz (var_ref rv@0x43eaa30) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) DP3 TEMP[107].x, TEMP[80].xyzz, TEMP[106].xyzz; 129: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x43eaa30) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) MAX TEMP[108].x, CONST[21].xxxx, TEMP[107].xxxx; 130: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) MAX TEMP[109].x, CONST[23].xxxx, STATE[29].xxxx; 131: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x43eaa30) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) POW TEMP[110].x, TEMP[108].xxxx, TEMP[109].xxxx; 132: (expression float * (constant float (2.000000)) (var_ref t@0x43f9da0) ) MUL TEMP[111].x, CONST[17].xxxx, TEMP[96].xxxx; 133: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x43f9da0) ) ) ) ADD TEMP[113].x, CONST[17].zzzz, TEMP[111].-x-x-x-x; 134: (expression float * (var_ref t@0x43f9da0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x43f9da0) ) ) ) ) MUL TEMP[114].x, TEMP[96].xxxx, TEMP[113].xxxx; 135: (expression float * (var_ref t@0x43f9da0) (expression float * (var_ref t@0x43f9da0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x43f9da0) ) ) ) ) ) MUL TEMP[115].x, TEMP[96].xxxx, TEMP[114].xxxx; 136: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x43eaa30) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x43f9da0) (expression float * (var_ref t@0x43f9da0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x43f9da0) ) ) ) ) ) ) MUL TEMP[116].x, TEMP[110].xxxx, TEMP[115].xxxx; 137: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x43eaa30) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x43f9da0) (expression float * (var_ref t@0x43f9da0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x43f9da0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (1)) ) specular) ) MUL TEMP[117], TEMP[116].xxxx, STATE[30]; 138: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x43eaa30) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x43f9da0) (expression float * (var_ref t@0x43f9da0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x43f9da0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (1)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) MUL TEMP[118], TEMP[117], STATE[31]; 139: (expression vec4 + (var_ref sc@0x42f7e10) (expression vec4 * (swiz w (var_ref rv@0x43eaa30) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x43eaa30) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x43f9da0) (expression float * (var_ref t@0x43f9da0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x43f9da0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (1)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) ) ) MAD TEMP[119], TEMP[80].wwww, TEMP[118], TEMP[29]; 140: (assign (constant bool (1)) (xyzw) (var_ref sc@0x42f7e10) (expression vec4 + (var_ref sc@0x42f7e10) (expression vec4 * (swiz w (var_ref rv@0x43eaa30) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x43eaa30) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x43f9da0) (expression float * (var_ref t@0x43f9da0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x43f9da0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (1)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) ) ) ) MOV TEMP[29], TEMP[119]; 141: (expression bool != (array_ref (var_ref light_enabled@0x4197fa0) (constant int (1)) ) (constant int (0)) ) ENDIF; 142: (expression bool >= (var_ref max_light_enabled@0x419a590) (constant int (2)) ) SGE.C TEMP[120].x, UNIFORM[0].xxxx, CONST[17].xxxx; 143: IF (NE.xxxx); # (if false, goto 480); 144: (expression bool != (array_ref (var_ref light_enabled@0x4197fa0) (constant int (2)) ) (constant int (0)) ) SNE.C TEMP[121].x, UNIFORM[3].xxxx, CONST[21].xxxx; 145: IF (NE.xxxx); # (if false, goto 199); 146: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x43fe1e0) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (2)) ) position) ) MOV TEMP[122], STATE[22]; 147: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x43fe1e0) )) MUL TEMP[123].xyz, TEMP[5].xyzz, TEMP[122].wwww; 148: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x43fe1e0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x43fe1e0) )) ) ) ADD TEMP[125].xyz, TEMP[122].xyzz, TEMP[123].-x-y-z-z; 149: (assign (constant bool (1)) (xyz) (var_ref rv@0x43fe0d0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x43fe1e0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x43fe1e0) )) ) ) )) MOV TEMP[126].xyz, TEMP[125].xyzz; 150: (assign (constant bool (1)) (xyz) (var_ref arg0@0x43ff190) (swiz xyz (var_ref rv@0x43fe0d0) )) MOV TEMP[127].xyz, TEMP[126].xyzz; 151: (expression float dot (var_ref arg0@0x43ff190) (var_ref arg0@0x43ff190) ) DP3 TEMP[128].x, TEMP[127].xyzz, TEMP[127].xyzz; 152: (expression float sqrt (expression float dot (var_ref arg0@0x43ff190) (var_ref arg0@0x43ff190) ) ) RSQ TEMP[129].x, TEMP[128].xxxx; 153: MUL TEMP[129].x, TEMP[129].xxxx, TEMP[128].xxxx; 154: CMP TEMP[129].x, TEMP[128].-x-x-x-x, TEMP[129].xxxx, CONST[21].xxxx; 155: (assign (constant bool (1)) (w) (var_ref rv@0x43fe0d0) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x43ff190) (var_ref arg0@0x43ff190) ) ) )) MOV TEMP[126].w, TEMP[129].xxxx; 156: (expression float rcp (swiz w (var_ref rv@0x43fe0d0) )) RCP TEMP[130].x, TEMP[126].wwww; 157: (expression vec3 * (swiz xyz (var_ref rv@0x43fe0d0) )(expression float rcp (swiz w (var_ref rv@0x43fe0d0) )) ) MUL TEMP[131].xyz, TEMP[126].xyzz, TEMP[130].xxxx; 158: (assign (constant bool (1)) (xyz) (var_ref rv@0x43fe0d0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x43fe0d0) )(expression float rcp (swiz w (var_ref rv@0x43fe0d0) )) ) )) MOV TEMP[126].xyz, TEMP[131].xyzz; 159: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x44002f0) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[132].x, CONST[23].xyzz; 160: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x44002f0) (swiz www (var_ref rv@0x43fe0d0) )) MOV TEMP[132].y, TEMP[126].wwww; 161: (expression float * (swiz w (var_ref rv@0x43fe0d0) )(swiz w (var_ref rv@0x43fe0d0) )) MUL TEMP[133].x, TEMP[126].wwww, TEMP[126].wwww; 162: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x44002f0) (swiz xxx (expression float * (swiz w (var_ref rv@0x43fe0d0) )(swiz w (var_ref rv@0x43fe0d0) )) )) MOV TEMP[132].z, TEMP[133].xxxx; 163: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4400d10) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (2)) ) constantAttenuation) )) MOV TEMP[134].x, STATE[24].xxxx; 164: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4400d10) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (2)) ) linearAttenuation) )) MOV TEMP[134].y, STATE[24].yyyy; 165: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4400d10) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (2)) ) quadraticAttenuation) )) MOV TEMP[134].z, STATE[24].zzzz; 166: (expression float dot (var_ref vec_ctor@0x44002f0) (var_ref vec_ctor@0x4400d10) ) DP3 TEMP[135].x, TEMP[132].xyzz, TEMP[134].xyzz; 167: (assign (constant bool (1)) (w) (var_ref rv@0x43fe0d0) (swiz xxxx (expression float dot (var_ref vec_ctor@0x44002f0) (var_ref vec_ctor@0x4400d10) ) )) MOV TEMP[126].w, TEMP[135].xxxx; 168: (expression float rcp (swiz w (var_ref rv@0x43fe0d0) )) RCP TEMP[136].x, TEMP[126].wwww; 169: (assign (constant bool (1)) (w) (var_ref rv@0x43fe0d0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x43fe0d0) )) )) MOV TEMP[126].w, TEMP[136].xxxx; 170: (expression float dot (swiz xyz (var_ref rv@0x43fe0d0) )(var_ref _ret_val@0x43d2c80) ) DP3 TEMP[137].x, TEMP[126].xyzz, TEMP[18].xyzz; 171: (assign (constant bool (1)) (x) (var_ref _ret_val@0x44050a0) (expression float dot (swiz xyz (var_ref rv@0x43fe0d0) )(var_ref _ret_val@0x43d2c80) ) ) MOV TEMP[138], TEMP[137].xxxx; 172: (expression float * (var_ref _ret_val@0x44050a0) (constant float (4.000000)) ) MUL TEMP[139].x, TEMP[138].xxxx, CONST[17].yyyy; 173: (expression float min (expression float * (var_ref _ret_val@0x44050a0) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[140].x, TEMP[139].xxxx, CONST[23].xxxx; 174: (expression float max (expression float min (expression float * (var_ref _ret_val@0x44050a0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[141].x, TEMP[140].xxxx, CONST[21].xxxx; 175: (assign (constant bool (1)) (x) (var_ref t@0x440d440) (expression float max (expression float min (expression float * (var_ref _ret_val@0x44050a0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[142], TEMP[141].xxxx; 176: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x44050a0) ) MAX TEMP[143].x, CONST[21].xxxx, TEMP[138].xxxx; 177: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x44050a0) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (2)) ) diffuse) ) MUL TEMP[144], TEMP[143].xxxx, STATE[25]; 178: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (2)) ) ambient) ) MUL TEMP[145], STATE[27], STATE[28]; 179: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x44050a0) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) MAD TEMP[146], TEMP[144], STATE[26], TEMP[145]; 180: (expression vec4 + (var_ref pc@0x42f7f20) (expression vec4 * (swiz w (var_ref rv@0x43fe0d0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x44050a0) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) ) ) MAD TEMP[147], TEMP[126].wwww, TEMP[146], TEMP[28]; 181: (assign (constant bool (1)) (xyzw) (var_ref pc@0x42f7f20) (expression vec4 + (var_ref pc@0x42f7f20) (expression vec4 * (swiz w (var_ref rv@0x43fe0d0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x44050a0) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) ) ) ) MOV TEMP[28], TEMP[147]; 182: (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) DP3 TEMP[148].x, TEMP[18].xyzz, TEMP[10].xyzz; 183: (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) MUL TEMP[149].xyz, TEMP[148].xxxx, TEMP[18].xyzz; 184: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) MUL TEMP[150].xyz, CONST[17].xxxx, TEMP[149].xyzz; 185: (expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ADD TEMP[152].xyz, TEMP[10].xyzz, TEMP[150].-x-y-z-z; 186: (expression float dot (swiz xyz (var_ref rv@0x43fe0d0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) DP3 TEMP[153].x, TEMP[126].xyzz, TEMP[152].xyzz; 187: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x43fe0d0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) MAX TEMP[154].x, CONST[21].xxxx, TEMP[153].xxxx; 188: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) MAX TEMP[155].x, CONST[23].xxxx, STATE[29].xxxx; 189: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x43fe0d0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) POW TEMP[156].x, TEMP[154].xxxx, TEMP[155].xxxx; 190: (expression float * (constant float (2.000000)) (var_ref t@0x440d440) ) MUL TEMP[157].x, CONST[17].xxxx, TEMP[142].xxxx; 191: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x440d440) ) ) ) ADD TEMP[159].x, CONST[17].zzzz, TEMP[157].-x-x-x-x; 192: (expression float * (var_ref t@0x440d440) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x440d440) ) ) ) ) MUL TEMP[160].x, TEMP[142].xxxx, TEMP[159].xxxx; 193: (expression float * (var_ref t@0x440d440) (expression float * (var_ref t@0x440d440) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x440d440) ) ) ) ) ) MUL TEMP[161].x, TEMP[142].xxxx, TEMP[160].xxxx; 194: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x43fe0d0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x440d440) (expression float * (var_ref t@0x440d440) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x440d440) ) ) ) ) ) ) MUL TEMP[162].x, TEMP[156].xxxx, TEMP[161].xxxx; 195: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x43fe0d0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x440d440) (expression float * (var_ref t@0x440d440) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x440d440) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (2)) ) specular) ) MUL TEMP[163], TEMP[162].xxxx, STATE[30]; 196: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x43fe0d0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x440d440) (expression float * (var_ref t@0x440d440) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x440d440) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) MUL TEMP[164], TEMP[163], STATE[31]; 197: (expression vec4 + (var_ref sc@0x42f7e10) (expression vec4 * (swiz w (var_ref rv@0x43fe0d0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x43fe0d0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x440d440) (expression float * (var_ref t@0x440d440) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x440d440) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) ) ) MAD TEMP[165], TEMP[126].wwww, TEMP[164], TEMP[29]; 198: (assign (constant bool (1)) (xyzw) (var_ref sc@0x42f7e10) (expression vec4 + (var_ref sc@0x42f7e10) (expression vec4 * (swiz w (var_ref rv@0x43fe0d0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x43fe0d0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x440d440) (expression float * (var_ref t@0x440d440) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x440d440) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) ) ) ) MOV TEMP[29], TEMP[165]; 199: (expression bool != (array_ref (var_ref light_enabled@0x4197fa0) (constant int (2)) ) (constant int (0)) ) ENDIF; 200: (expression bool != (array_ref (var_ref light_enabled@0x4197fa0) (constant int (3)) ) (constant int (0)) ) SNE.C TEMP[166].x, UNIFORM[4].xxxx, CONST[21].xxxx; 201: IF (NE.xxxx); # (if false, goto 255); 202: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4411880) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (3)) ) position) ) MOV TEMP[167], STATE[22]; 203: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x4411880) )) MUL TEMP[168].xyz, TEMP[5].xyzz, TEMP[167].wwww; 204: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4411880) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x4411880) )) ) ) ADD TEMP[170].xyz, TEMP[167].xyzz, TEMP[168].-x-y-z-z; 205: (assign (constant bool (1)) (xyz) (var_ref rv@0x4411770) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4411880) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x4411880) )) ) ) )) MOV TEMP[171].xyz, TEMP[170].xyzz; 206: (assign (constant bool (1)) (xyz) (var_ref arg0@0x4412830) (swiz xyz (var_ref rv@0x4411770) )) MOV TEMP[172].xyz, TEMP[171].xyzz; 207: (expression float dot (var_ref arg0@0x4412830) (var_ref arg0@0x4412830) ) DP3 TEMP[173].x, TEMP[172].xyzz, TEMP[172].xyzz; 208: (expression float sqrt (expression float dot (var_ref arg0@0x4412830) (var_ref arg0@0x4412830) ) ) RSQ TEMP[174].x, TEMP[173].xxxx; 209: MUL TEMP[174].x, TEMP[174].xxxx, TEMP[173].xxxx; 210: CMP TEMP[174].x, TEMP[173].-x-x-x-x, TEMP[174].xxxx, CONST[21].xxxx; 211: (assign (constant bool (1)) (w) (var_ref rv@0x4411770) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x4412830) (var_ref arg0@0x4412830) ) ) )) MOV TEMP[171].w, TEMP[174].xxxx; 212: (expression float rcp (swiz w (var_ref rv@0x4411770) )) RCP TEMP[175].x, TEMP[171].wwww; 213: (expression vec3 * (swiz xyz (var_ref rv@0x4411770) )(expression float rcp (swiz w (var_ref rv@0x4411770) )) ) MUL TEMP[176].xyz, TEMP[171].xyzz, TEMP[175].xxxx; 214: (assign (constant bool (1)) (xyz) (var_ref rv@0x4411770) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x4411770) )(expression float rcp (swiz w (var_ref rv@0x4411770) )) ) )) MOV TEMP[171].xyz, TEMP[176].xyzz; 215: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4413990) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[177].x, CONST[23].xyzz; 216: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4413990) (swiz www (var_ref rv@0x4411770) )) MOV TEMP[177].y, TEMP[171].wwww; 217: (expression float * (swiz w (var_ref rv@0x4411770) )(swiz w (var_ref rv@0x4411770) )) MUL TEMP[178].x, TEMP[171].wwww, TEMP[171].wwww; 218: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4413990) (swiz xxx (expression float * (swiz w (var_ref rv@0x4411770) )(swiz w (var_ref rv@0x4411770) )) )) MOV TEMP[177].z, TEMP[178].xxxx; 219: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x44143b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (3)) ) constantAttenuation) )) MOV TEMP[179].x, STATE[24].xxxx; 220: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x44143b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (3)) ) linearAttenuation) )) MOV TEMP[179].y, STATE[24].yyyy; 221: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x44143b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (3)) ) quadraticAttenuation) )) MOV TEMP[179].z, STATE[24].zzzz; 222: (expression float dot (var_ref vec_ctor@0x4413990) (var_ref vec_ctor@0x44143b0) ) DP3 TEMP[180].x, TEMP[177].xyzz, TEMP[179].xyzz; 223: (assign (constant bool (1)) (w) (var_ref rv@0x4411770) (swiz xxxx (expression float dot (var_ref vec_ctor@0x4413990) (var_ref vec_ctor@0x44143b0) ) )) MOV TEMP[171].w, TEMP[180].xxxx; 224: (expression float rcp (swiz w (var_ref rv@0x4411770) )) RCP TEMP[181].x, TEMP[171].wwww; 225: (assign (constant bool (1)) (w) (var_ref rv@0x4411770) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4411770) )) )) MOV TEMP[171].w, TEMP[181].xxxx; 226: (expression float dot (swiz xyz (var_ref rv@0x4411770) )(var_ref _ret_val@0x43d2c80) ) DP3 TEMP[182].x, TEMP[171].xyzz, TEMP[18].xyzz; 227: (assign (constant bool (1)) (x) (var_ref _ret_val@0x4418740) (expression float dot (swiz xyz (var_ref rv@0x4411770) )(var_ref _ret_val@0x43d2c80) ) ) MOV TEMP[183], TEMP[182].xxxx; 228: (expression float * (var_ref _ret_val@0x4418740) (constant float (4.000000)) ) MUL TEMP[184].x, TEMP[183].xxxx, CONST[17].yyyy; 229: (expression float min (expression float * (var_ref _ret_val@0x4418740) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[185].x, TEMP[184].xxxx, CONST[23].xxxx; 230: (expression float max (expression float min (expression float * (var_ref _ret_val@0x4418740) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[186].x, TEMP[185].xxxx, CONST[21].xxxx; 231: (assign (constant bool (1)) (x) (var_ref t@0x4420ae0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x4418740) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[187], TEMP[186].xxxx; 232: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4418740) ) MAX TEMP[188].x, CONST[21].xxxx, TEMP[183].xxxx; 233: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4418740) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (3)) ) diffuse) ) MUL TEMP[189], TEMP[188].xxxx, STATE[25]; 234: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (3)) ) ambient) ) MUL TEMP[190], STATE[27], STATE[28]; 235: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4418740) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) MAD TEMP[191], TEMP[189], STATE[26], TEMP[190]; 236: (expression vec4 + (var_ref pc@0x42f7f20) (expression vec4 * (swiz w (var_ref rv@0x4411770) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4418740) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) ) ) MAD TEMP[192], TEMP[171].wwww, TEMP[191], TEMP[28]; 237: (assign (constant bool (1)) (xyzw) (var_ref pc@0x42f7f20) (expression vec4 + (var_ref pc@0x42f7f20) (expression vec4 * (swiz w (var_ref rv@0x4411770) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4418740) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) ) ) ) MOV TEMP[28], TEMP[192]; 238: (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) DP3 TEMP[193].x, TEMP[18].xyzz, TEMP[10].xyzz; 239: (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) MUL TEMP[194].xyz, TEMP[193].xxxx, TEMP[18].xyzz; 240: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) MUL TEMP[195].xyz, CONST[17].xxxx, TEMP[194].xyzz; 241: (expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ADD TEMP[197].xyz, TEMP[10].xyzz, TEMP[195].-x-y-z-z; 242: (expression float dot (swiz xyz (var_ref rv@0x4411770) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) DP3 TEMP[198].x, TEMP[171].xyzz, TEMP[197].xyzz; 243: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4411770) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) MAX TEMP[199].x, CONST[21].xxxx, TEMP[198].xxxx; 244: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) MAX TEMP[200].x, CONST[23].xxxx, STATE[29].xxxx; 245: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4411770) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) POW TEMP[201].x, TEMP[199].xxxx, TEMP[200].xxxx; 246: (expression float * (constant float (2.000000)) (var_ref t@0x4420ae0) ) MUL TEMP[202].x, CONST[17].xxxx, TEMP[187].xxxx; 247: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4420ae0) ) ) ) ADD TEMP[204].x, CONST[17].zzzz, TEMP[202].-x-x-x-x; 248: (expression float * (var_ref t@0x4420ae0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4420ae0) ) ) ) ) MUL TEMP[205].x, TEMP[187].xxxx, TEMP[204].xxxx; 249: (expression float * (var_ref t@0x4420ae0) (expression float * (var_ref t@0x4420ae0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4420ae0) ) ) ) ) ) MUL TEMP[206].x, TEMP[187].xxxx, TEMP[205].xxxx; 250: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4411770) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4420ae0) (expression float * (var_ref t@0x4420ae0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4420ae0) ) ) ) ) ) ) MUL TEMP[207].x, TEMP[201].xxxx, TEMP[206].xxxx; 251: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4411770) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4420ae0) (expression float * (var_ref t@0x4420ae0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4420ae0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (3)) ) specular) ) MUL TEMP[208], TEMP[207].xxxx, STATE[30]; 252: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4411770) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4420ae0) (expression float * (var_ref t@0x4420ae0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4420ae0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) MUL TEMP[209], TEMP[208], STATE[31]; 253: (expression vec4 + (var_ref sc@0x42f7e10) (expression vec4 * (swiz w (var_ref rv@0x4411770) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4411770) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4420ae0) (expression float * (var_ref t@0x4420ae0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4420ae0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) ) ) MAD TEMP[210], TEMP[171].wwww, TEMP[209], TEMP[29]; 254: (assign (constant bool (1)) (xyzw) (var_ref sc@0x42f7e10) (expression vec4 + (var_ref sc@0x42f7e10) (expression vec4 * (swiz w (var_ref rv@0x4411770) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4411770) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4420ae0) (expression float * (var_ref t@0x4420ae0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4420ae0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) ) ) ) MOV TEMP[29], TEMP[210]; 255: (expression bool != (array_ref (var_ref light_enabled@0x4197fa0) (constant int (3)) ) (constant int (0)) ) ENDIF; 256: (expression bool != (array_ref (var_ref light_enabled@0x4197fa0) (constant int (4)) ) (constant int (0)) ) SNE.C TEMP[211].x, UNIFORM[5].xxxx, CONST[21].xxxx; 257: IF (NE.xxxx); # (if false, goto 311); 258: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4424f20) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (4)) ) position) ) MOV TEMP[212], STATE[22]; 259: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x4424f20) )) MUL TEMP[213].xyz, TEMP[5].xyzz, TEMP[212].wwww; 260: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4424f20) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x4424f20) )) ) ) ADD TEMP[215].xyz, TEMP[212].xyzz, TEMP[213].-x-y-z-z; 261: (assign (constant bool (1)) (xyz) (var_ref rv@0x4424e10) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4424f20) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x4424f20) )) ) ) )) MOV TEMP[216].xyz, TEMP[215].xyzz; 262: (assign (constant bool (1)) (xyz) (var_ref arg0@0x4425ed0) (swiz xyz (var_ref rv@0x4424e10) )) MOV TEMP[217].xyz, TEMP[216].xyzz; 263: (expression float dot (var_ref arg0@0x4425ed0) (var_ref arg0@0x4425ed0) ) DP3 TEMP[218].x, TEMP[217].xyzz, TEMP[217].xyzz; 264: (expression float sqrt (expression float dot (var_ref arg0@0x4425ed0) (var_ref arg0@0x4425ed0) ) ) RSQ TEMP[219].x, TEMP[218].xxxx; 265: MUL TEMP[219].x, TEMP[219].xxxx, TEMP[218].xxxx; 266: CMP TEMP[219].x, TEMP[218].-x-x-x-x, TEMP[219].xxxx, CONST[21].xxxx; 267: (assign (constant bool (1)) (w) (var_ref rv@0x4424e10) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x4425ed0) (var_ref arg0@0x4425ed0) ) ) )) MOV TEMP[216].w, TEMP[219].xxxx; 268: (expression float rcp (swiz w (var_ref rv@0x4424e10) )) RCP TEMP[220].x, TEMP[216].wwww; 269: (expression vec3 * (swiz xyz (var_ref rv@0x4424e10) )(expression float rcp (swiz w (var_ref rv@0x4424e10) )) ) MUL TEMP[221].xyz, TEMP[216].xyzz, TEMP[220].xxxx; 270: (assign (constant bool (1)) (xyz) (var_ref rv@0x4424e10) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x4424e10) )(expression float rcp (swiz w (var_ref rv@0x4424e10) )) ) )) MOV TEMP[216].xyz, TEMP[221].xyzz; 271: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4427030) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[222].x, CONST[23].xyzz; 272: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4427030) (swiz www (var_ref rv@0x4424e10) )) MOV TEMP[222].y, TEMP[216].wwww; 273: (expression float * (swiz w (var_ref rv@0x4424e10) )(swiz w (var_ref rv@0x4424e10) )) MUL TEMP[223].x, TEMP[216].wwww, TEMP[216].wwww; 274: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4427030) (swiz xxx (expression float * (swiz w (var_ref rv@0x4424e10) )(swiz w (var_ref rv@0x4424e10) )) )) MOV TEMP[222].z, TEMP[223].xxxx; 275: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4427a50) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (4)) ) constantAttenuation) )) MOV TEMP[224].x, STATE[24].xxxx; 276: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4427a50) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (4)) ) linearAttenuation) )) MOV TEMP[224].y, STATE[24].yyyy; 277: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4427a50) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (4)) ) quadraticAttenuation) )) MOV TEMP[224].z, STATE[24].zzzz; 278: (expression float dot (var_ref vec_ctor@0x4427030) (var_ref vec_ctor@0x4427a50) ) DP3 TEMP[225].x, TEMP[222].xyzz, TEMP[224].xyzz; 279: (assign (constant bool (1)) (w) (var_ref rv@0x4424e10) (swiz xxxx (expression float dot (var_ref vec_ctor@0x4427030) (var_ref vec_ctor@0x4427a50) ) )) MOV TEMP[216].w, TEMP[225].xxxx; 280: (expression float rcp (swiz w (var_ref rv@0x4424e10) )) RCP TEMP[226].x, TEMP[216].wwww; 281: (assign (constant bool (1)) (w) (var_ref rv@0x4424e10) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4424e10) )) )) MOV TEMP[216].w, TEMP[226].xxxx; 282: (expression float dot (swiz xyz (var_ref rv@0x4424e10) )(var_ref _ret_val@0x43d2c80) ) DP3 TEMP[227].x, TEMP[216].xyzz, TEMP[18].xyzz; 283: (assign (constant bool (1)) (x) (var_ref _ret_val@0x4a77f40) (expression float dot (swiz xyz (var_ref rv@0x4424e10) )(var_ref _ret_val@0x43d2c80) ) ) MOV TEMP[228], TEMP[227].xxxx; 284: (expression float * (var_ref _ret_val@0x4a77f40) (constant float (4.000000)) ) MUL TEMP[229].x, TEMP[228].xxxx, CONST[17].yyyy; 285: (expression float min (expression float * (var_ref _ret_val@0x4a77f40) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[230].x, TEMP[229].xxxx, CONST[23].xxxx; 286: (expression float max (expression float min (expression float * (var_ref _ret_val@0x4a77f40) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[231].x, TEMP[230].xxxx, CONST[21].xxxx; 287: (assign (constant bool (1)) (x) (var_ref t@0x4a7e290) (expression float max (expression float min (expression float * (var_ref _ret_val@0x4a77f40) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[232], TEMP[231].xxxx; 288: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4a77f40) ) MAX TEMP[233].x, CONST[21].xxxx, TEMP[228].xxxx; 289: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4a77f40) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (4)) ) diffuse) ) MUL TEMP[234], TEMP[233].xxxx, STATE[25]; 290: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (4)) ) ambient) ) MUL TEMP[235], STATE[27], STATE[28]; 291: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4a77f40) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) MAD TEMP[236], TEMP[234], STATE[26], TEMP[235]; 292: (expression vec4 + (var_ref pc@0x42f7f20) (expression vec4 * (swiz w (var_ref rv@0x4424e10) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4a77f40) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) ) ) MAD TEMP[237], TEMP[216].wwww, TEMP[236], TEMP[28]; 293: (assign (constant bool (1)) (xyzw) (var_ref pc@0x42f7f20) (expression vec4 + (var_ref pc@0x42f7f20) (expression vec4 * (swiz w (var_ref rv@0x4424e10) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4a77f40) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) ) ) ) MOV TEMP[28], TEMP[237]; 294: (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) DP3 TEMP[238].x, TEMP[18].xyzz, TEMP[10].xyzz; 295: (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) MUL TEMP[239].xyz, TEMP[238].xxxx, TEMP[18].xyzz; 296: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) MUL TEMP[240].xyz, CONST[17].xxxx, TEMP[239].xyzz; 297: (expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ADD TEMP[242].xyz, TEMP[10].xyzz, TEMP[240].-x-y-z-z; 298: (expression float dot (swiz xyz (var_ref rv@0x4424e10) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) DP3 TEMP[243].x, TEMP[216].xyzz, TEMP[242].xyzz; 299: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4424e10) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) MAX TEMP[244].x, CONST[21].xxxx, TEMP[243].xxxx; 300: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) MAX TEMP[245].x, CONST[23].xxxx, STATE[29].xxxx; 301: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4424e10) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) POW TEMP[246].x, TEMP[244].xxxx, TEMP[245].xxxx; 302: (expression float * (constant float (2.000000)) (var_ref t@0x4a7e290) ) MUL TEMP[247].x, CONST[17].xxxx, TEMP[232].xxxx; 303: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4a7e290) ) ) ) ADD TEMP[249].x, CONST[17].zzzz, TEMP[247].-x-x-x-x; 304: (expression float * (var_ref t@0x4a7e290) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4a7e290) ) ) ) ) MUL TEMP[250].x, TEMP[232].xxxx, TEMP[249].xxxx; 305: (expression float * (var_ref t@0x4a7e290) (expression float * (var_ref t@0x4a7e290) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4a7e290) ) ) ) ) ) MUL TEMP[251].x, TEMP[232].xxxx, TEMP[250].xxxx; 306: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4424e10) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4a7e290) (expression float * (var_ref t@0x4a7e290) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4a7e290) ) ) ) ) ) ) MUL TEMP[252].x, TEMP[246].xxxx, TEMP[251].xxxx; 307: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4424e10) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4a7e290) (expression float * (var_ref t@0x4a7e290) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4a7e290) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (4)) ) specular) ) MUL TEMP[253], TEMP[252].xxxx, STATE[30]; 308: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4424e10) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4a7e290) (expression float * (var_ref t@0x4a7e290) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4a7e290) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) MUL TEMP[254], TEMP[253], STATE[31]; 309: (expression vec4 + (var_ref sc@0x42f7e10) (expression vec4 * (swiz w (var_ref rv@0x4424e10) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4424e10) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4a7e290) (expression float * (var_ref t@0x4a7e290) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4a7e290) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) ) ) MAD TEMP[255], TEMP[216].wwww, TEMP[254], TEMP[29]; 310: (assign (constant bool (1)) (xyzw) (var_ref sc@0x42f7e10) (expression vec4 + (var_ref sc@0x42f7e10) (expression vec4 * (swiz w (var_ref rv@0x4424e10) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4424e10) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4a7e290) (expression float * (var_ref t@0x4a7e290) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4a7e290) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) ) ) ) MOV TEMP[29], TEMP[255]; 311: (expression bool != (array_ref (var_ref light_enabled@0x4197fa0) (constant int (4)) ) (constant int (0)) ) ENDIF; 312: (expression bool != (array_ref (var_ref light_enabled@0x4197fa0) (constant int (5)) ) (constant int (0)) ) SNE.C TEMP[256].x, UNIFORM[6].xxxx, CONST[21].xxxx; 313: IF (NE.xxxx); # (if false, goto 367); 314: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4a82270) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (5)) ) position) ) MOV TEMP[257], STATE[22]; 315: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x4a82270) )) MUL TEMP[258].xyz, TEMP[5].xyzz, TEMP[257].wwww; 316: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4a82270) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x4a82270) )) ) ) ADD TEMP[260].xyz, TEMP[257].xyzz, TEMP[258].-x-y-z-z; 317: (assign (constant bool (1)) (xyz) (var_ref rv@0x4a821c0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4a82270) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x4a82270) )) ) ) )) MOV TEMP[261].xyz, TEMP[260].xyzz; 318: (assign (constant bool (1)) (xyz) (var_ref arg0@0x4a83220) (swiz xyz (var_ref rv@0x4a821c0) )) MOV TEMP[262].xyz, TEMP[261].xyzz; 319: (expression float dot (var_ref arg0@0x4a83220) (var_ref arg0@0x4a83220) ) DP3 TEMP[263].x, TEMP[262].xyzz, TEMP[262].xyzz; 320: (expression float sqrt (expression float dot (var_ref arg0@0x4a83220) (var_ref arg0@0x4a83220) ) ) RSQ TEMP[264].x, TEMP[263].xxxx; 321: MUL TEMP[264].x, TEMP[264].xxxx, TEMP[263].xxxx; 322: CMP TEMP[264].x, TEMP[263].-x-x-x-x, TEMP[264].xxxx, CONST[21].xxxx; 323: (assign (constant bool (1)) (w) (var_ref rv@0x4a821c0) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x4a83220) (var_ref arg0@0x4a83220) ) ) )) MOV TEMP[261].w, TEMP[264].xxxx; 324: (expression float rcp (swiz w (var_ref rv@0x4a821c0) )) RCP TEMP[265].x, TEMP[261].wwww; 325: (expression vec3 * (swiz xyz (var_ref rv@0x4a821c0) )(expression float rcp (swiz w (var_ref rv@0x4a821c0) )) ) MUL TEMP[266].xyz, TEMP[261].xyzz, TEMP[265].xxxx; 326: (assign (constant bool (1)) (xyz) (var_ref rv@0x4a821c0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x4a821c0) )(expression float rcp (swiz w (var_ref rv@0x4a821c0) )) ) )) MOV TEMP[261].xyz, TEMP[266].xyzz; 327: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4a84320) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[267].x, CONST[23].xyzz; 328: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4a84320) (swiz www (var_ref rv@0x4a821c0) )) MOV TEMP[267].y, TEMP[261].wwww; 329: (expression float * (swiz w (var_ref rv@0x4a821c0) )(swiz w (var_ref rv@0x4a821c0) )) MUL TEMP[268].x, TEMP[261].wwww, TEMP[261].wwww; 330: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4a84320) (swiz xxx (expression float * (swiz w (var_ref rv@0x4a821c0) )(swiz w (var_ref rv@0x4a821c0) )) )) MOV TEMP[267].z, TEMP[268].xxxx; 331: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4a84d40) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (5)) ) constantAttenuation) )) MOV TEMP[269].x, STATE[24].xxxx; 332: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4a84d40) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (5)) ) linearAttenuation) )) MOV TEMP[269].y, STATE[24].yyyy; 333: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4a84d40) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (5)) ) quadraticAttenuation) )) MOV TEMP[269].z, STATE[24].zzzz; 334: (expression float dot (var_ref vec_ctor@0x4a84320) (var_ref vec_ctor@0x4a84d40) ) DP3 TEMP[270].x, TEMP[267].xyzz, TEMP[269].xyzz; 335: (assign (constant bool (1)) (w) (var_ref rv@0x4a821c0) (swiz xxxx (expression float dot (var_ref vec_ctor@0x4a84320) (var_ref vec_ctor@0x4a84d40) ) )) MOV TEMP[261].w, TEMP[270].xxxx; 336: (expression float rcp (swiz w (var_ref rv@0x4a821c0) )) RCP TEMP[271].x, TEMP[261].wwww; 337: (assign (constant bool (1)) (w) (var_ref rv@0x4a821c0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4a821c0) )) )) MOV TEMP[261].w, TEMP[271].xxxx; 338: (expression float dot (swiz xyz (var_ref rv@0x4a821c0) )(var_ref _ret_val@0x43d2c80) ) DP3 TEMP[272].x, TEMP[261].xyzz, TEMP[18].xyzz; 339: (assign (constant bool (1)) (x) (var_ref _ret_val@0x4a88f50) (expression float dot (swiz xyz (var_ref rv@0x4a821c0) )(var_ref _ret_val@0x43d2c80) ) ) MOV TEMP[273], TEMP[272].xxxx; 340: (expression float * (var_ref _ret_val@0x4a88f50) (constant float (4.000000)) ) MUL TEMP[274].x, TEMP[273].xxxx, CONST[17].yyyy; 341: (expression float min (expression float * (var_ref _ret_val@0x4a88f50) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[275].x, TEMP[274].xxxx, CONST[23].xxxx; 342: (expression float max (expression float min (expression float * (var_ref _ret_val@0x4a88f50) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[276].x, TEMP[275].xxxx, CONST[21].xxxx; 343: (assign (constant bool (1)) (x) (var_ref t@0x4a90b70) (expression float max (expression float min (expression float * (var_ref _ret_val@0x4a88f50) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[277], TEMP[276].xxxx; 344: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4a88f50) ) MAX TEMP[278].x, CONST[21].xxxx, TEMP[273].xxxx; 345: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4a88f50) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (5)) ) diffuse) ) MUL TEMP[279], TEMP[278].xxxx, STATE[25]; 346: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (5)) ) ambient) ) MUL TEMP[280], STATE[27], STATE[28]; 347: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (5)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4a88f50) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (5)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) MAD TEMP[281], TEMP[279], STATE[26], TEMP[280]; 348: (expression vec4 + (var_ref pc@0x42f7f20) (expression vec4 * (swiz w (var_ref rv@0x4a821c0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (5)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4a88f50) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (5)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) ) ) MAD TEMP[282], TEMP[261].wwww, TEMP[281], TEMP[28]; 349: (assign (constant bool (1)) (xyzw) (var_ref pc@0x42f7f20) (expression vec4 + (var_ref pc@0x42f7f20) (expression vec4 * (swiz w (var_ref rv@0x4a821c0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (5)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4a88f50) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (5)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) ) ) ) MOV TEMP[28], TEMP[282]; 350: (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) DP3 TEMP[283].x, TEMP[18].xyzz, TEMP[10].xyzz; 351: (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) MUL TEMP[284].xyz, TEMP[283].xxxx, TEMP[18].xyzz; 352: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) MUL TEMP[285].xyz, CONST[17].xxxx, TEMP[284].xyzz; 353: (expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ADD TEMP[287].xyz, TEMP[10].xyzz, TEMP[285].-x-y-z-z; 354: (expression float dot (swiz xyz (var_ref rv@0x4a821c0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) DP3 TEMP[288].x, TEMP[261].xyzz, TEMP[287].xyzz; 355: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4a821c0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) MAX TEMP[289].x, CONST[21].xxxx, TEMP[288].xxxx; 356: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) MAX TEMP[290].x, CONST[23].xxxx, STATE[29].xxxx; 357: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4a821c0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) POW TEMP[291].x, TEMP[289].xxxx, TEMP[290].xxxx; 358: (expression float * (constant float (2.000000)) (var_ref t@0x4a90b70) ) MUL TEMP[292].x, CONST[17].xxxx, TEMP[277].xxxx; 359: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4a90b70) ) ) ) ADD TEMP[294].x, CONST[17].zzzz, TEMP[292].-x-x-x-x; 360: (expression float * (var_ref t@0x4a90b70) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4a90b70) ) ) ) ) MUL TEMP[295].x, TEMP[277].xxxx, TEMP[294].xxxx; 361: (expression float * (var_ref t@0x4a90b70) (expression float * (var_ref t@0x4a90b70) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4a90b70) ) ) ) ) ) MUL TEMP[296].x, TEMP[277].xxxx, TEMP[295].xxxx; 362: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4a821c0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4a90b70) (expression float * (var_ref t@0x4a90b70) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4a90b70) ) ) ) ) ) ) MUL TEMP[297].x, TEMP[291].xxxx, TEMP[296].xxxx; 363: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4a821c0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4a90b70) (expression float * (var_ref t@0x4a90b70) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4a90b70) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (5)) ) specular) ) MUL TEMP[298], TEMP[297].xxxx, STATE[30]; 364: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4a821c0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4a90b70) (expression float * (var_ref t@0x4a90b70) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4a90b70) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (5)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) MUL TEMP[299], TEMP[298], STATE[31]; 365: (expression vec4 + (var_ref sc@0x42f7e10) (expression vec4 * (swiz w (var_ref rv@0x4a821c0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4a821c0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4a90b70) (expression float * (var_ref t@0x4a90b70) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4a90b70) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (5)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) ) ) MAD TEMP[300], TEMP[261].wwww, TEMP[299], TEMP[29]; 366: (assign (constant bool (1)) (xyzw) (var_ref sc@0x42f7e10) (expression vec4 + (var_ref sc@0x42f7e10) (expression vec4 * (swiz w (var_ref rv@0x4a821c0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4a821c0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4a90b70) (expression float * (var_ref t@0x4a90b70) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4a90b70) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (5)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) ) ) ) MOV TEMP[29], TEMP[300]; 367: (expression bool != (array_ref (var_ref light_enabled@0x4197fa0) (constant int (5)) ) (constant int (0)) ) ENDIF; 368: (expression bool != (array_ref (var_ref light_enabled@0x4197fa0) (constant int (6)) ) (constant int (0)) ) SNE.C TEMP[301].x, UNIFORM[7].xxxx, CONST[21].xxxx; 369: IF (NE.xxxx); # (if false, goto 423); 370: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4a94b50) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (6)) ) position) ) MOV TEMP[302], STATE[22]; 371: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x4a94b50) )) MUL TEMP[303].xyz, TEMP[5].xyzz, TEMP[302].wwww; 372: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4a94b50) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x4a94b50) )) ) ) ADD TEMP[305].xyz, TEMP[302].xyzz, TEMP[303].-x-y-z-z; 373: (assign (constant bool (1)) (xyz) (var_ref rv@0x4a94aa0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4a94b50) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x4a94b50) )) ) ) )) MOV TEMP[306].xyz, TEMP[305].xyzz; 374: (assign (constant bool (1)) (xyz) (var_ref arg0@0x4a95b00) (swiz xyz (var_ref rv@0x4a94aa0) )) MOV TEMP[307].xyz, TEMP[306].xyzz; 375: (expression float dot (var_ref arg0@0x4a95b00) (var_ref arg0@0x4a95b00) ) DP3 TEMP[308].x, TEMP[307].xyzz, TEMP[307].xyzz; 376: (expression float sqrt (expression float dot (var_ref arg0@0x4a95b00) (var_ref arg0@0x4a95b00) ) ) RSQ TEMP[309].x, TEMP[308].xxxx; 377: MUL TEMP[309].x, TEMP[309].xxxx, TEMP[308].xxxx; 378: CMP TEMP[309].x, TEMP[308].-x-x-x-x, TEMP[309].xxxx, CONST[21].xxxx; 379: (assign (constant bool (1)) (w) (var_ref rv@0x4a94aa0) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x4a95b00) (var_ref arg0@0x4a95b00) ) ) )) MOV TEMP[306].w, TEMP[309].xxxx; 380: (expression float rcp (swiz w (var_ref rv@0x4a94aa0) )) RCP TEMP[310].x, TEMP[306].wwww; 381: (expression vec3 * (swiz xyz (var_ref rv@0x4a94aa0) )(expression float rcp (swiz w (var_ref rv@0x4a94aa0) )) ) MUL TEMP[311].xyz, TEMP[306].xyzz, TEMP[310].xxxx; 382: (assign (constant bool (1)) (xyz) (var_ref rv@0x4a94aa0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x4a94aa0) )(expression float rcp (swiz w (var_ref rv@0x4a94aa0) )) ) )) MOV TEMP[306].xyz, TEMP[311].xyzz; 383: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4a96c00) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[312].x, CONST[23].xyzz; 384: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4a96c00) (swiz www (var_ref rv@0x4a94aa0) )) MOV TEMP[312].y, TEMP[306].wwww; 385: (expression float * (swiz w (var_ref rv@0x4a94aa0) )(swiz w (var_ref rv@0x4a94aa0) )) MUL TEMP[313].x, TEMP[306].wwww, TEMP[306].wwww; 386: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4a96c00) (swiz xxx (expression float * (swiz w (var_ref rv@0x4a94aa0) )(swiz w (var_ref rv@0x4a94aa0) )) )) MOV TEMP[312].z, TEMP[313].xxxx; 387: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4a97620) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (6)) ) constantAttenuation) )) MOV TEMP[314].x, STATE[24].xxxx; 388: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4a97620) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (6)) ) linearAttenuation) )) MOV TEMP[314].y, STATE[24].yyyy; 389: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4a97620) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (6)) ) quadraticAttenuation) )) MOV TEMP[314].z, STATE[24].zzzz; 390: (expression float dot (var_ref vec_ctor@0x4a96c00) (var_ref vec_ctor@0x4a97620) ) DP3 TEMP[315].x, TEMP[312].xyzz, TEMP[314].xyzz; 391: (assign (constant bool (1)) (w) (var_ref rv@0x4a94aa0) (swiz xxxx (expression float dot (var_ref vec_ctor@0x4a96c00) (var_ref vec_ctor@0x4a97620) ) )) MOV TEMP[306].w, TEMP[315].xxxx; 392: (expression float rcp (swiz w (var_ref rv@0x4a94aa0) )) RCP TEMP[316].x, TEMP[306].wwww; 393: (assign (constant bool (1)) (w) (var_ref rv@0x4a94aa0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4a94aa0) )) )) MOV TEMP[306].w, TEMP[316].xxxx; 394: (expression float dot (swiz xyz (var_ref rv@0x4a94aa0) )(var_ref _ret_val@0x43d2c80) ) DP3 TEMP[317].x, TEMP[306].xyzz, TEMP[18].xyzz; 395: (assign (constant bool (1)) (x) (var_ref _ret_val@0x4a9b760) (expression float dot (swiz xyz (var_ref rv@0x4a94aa0) )(var_ref _ret_val@0x43d2c80) ) ) MOV TEMP[318], TEMP[317].xxxx; 396: (expression float * (var_ref _ret_val@0x4a9b760) (constant float (4.000000)) ) MUL TEMP[319].x, TEMP[318].xxxx, CONST[17].yyyy; 397: (expression float min (expression float * (var_ref _ret_val@0x4a9b760) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[320].x, TEMP[319].xxxx, CONST[23].xxxx; 398: (expression float max (expression float min (expression float * (var_ref _ret_val@0x4a9b760) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[321].x, TEMP[320].xxxx, CONST[21].xxxx; 399: (assign (constant bool (1)) (x) (var_ref t@0x4aa37a0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x4a9b760) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[322], TEMP[321].xxxx; 400: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4a9b760) ) MAX TEMP[323].x, CONST[21].xxxx, TEMP[318].xxxx; 401: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4a9b760) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (6)) ) diffuse) ) MUL TEMP[324], TEMP[323].xxxx, STATE[25]; 402: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (6)) ) ambient) ) MUL TEMP[325], STATE[27], STATE[28]; 403: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (6)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4a9b760) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (6)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) MAD TEMP[326], TEMP[324], STATE[26], TEMP[325]; 404: (expression vec4 + (var_ref pc@0x42f7f20) (expression vec4 * (swiz w (var_ref rv@0x4a94aa0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (6)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4a9b760) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (6)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) ) ) MAD TEMP[327], TEMP[306].wwww, TEMP[326], TEMP[28]; 405: (assign (constant bool (1)) (xyzw) (var_ref pc@0x42f7f20) (expression vec4 + (var_ref pc@0x42f7f20) (expression vec4 * (swiz w (var_ref rv@0x4a94aa0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (6)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4a9b760) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (6)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) ) ) ) MOV TEMP[28], TEMP[327]; 406: (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) DP3 TEMP[328].x, TEMP[18].xyzz, TEMP[10].xyzz; 407: (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) MUL TEMP[329].xyz, TEMP[328].xxxx, TEMP[18].xyzz; 408: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) MUL TEMP[330].xyz, CONST[17].xxxx, TEMP[329].xyzz; 409: (expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ADD TEMP[332].xyz, TEMP[10].xyzz, TEMP[330].-x-y-z-z; 410: (expression float dot (swiz xyz (var_ref rv@0x4a94aa0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) DP3 TEMP[333].x, TEMP[306].xyzz, TEMP[332].xyzz; 411: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4a94aa0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) MAX TEMP[334].x, CONST[21].xxxx, TEMP[333].xxxx; 412: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) MAX TEMP[335].x, CONST[23].xxxx, STATE[29].xxxx; 413: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4a94aa0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) POW TEMP[336].x, TEMP[334].xxxx, TEMP[335].xxxx; 414: (expression float * (constant float (2.000000)) (var_ref t@0x4aa37a0) ) MUL TEMP[337].x, CONST[17].xxxx, TEMP[322].xxxx; 415: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4aa37a0) ) ) ) ADD TEMP[339].x, CONST[17].zzzz, TEMP[337].-x-x-x-x; 416: (expression float * (var_ref t@0x4aa37a0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4aa37a0) ) ) ) ) MUL TEMP[340].x, TEMP[322].xxxx, TEMP[339].xxxx; 417: (expression float * (var_ref t@0x4aa37a0) (expression float * (var_ref t@0x4aa37a0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4aa37a0) ) ) ) ) ) MUL TEMP[341].x, TEMP[322].xxxx, TEMP[340].xxxx; 418: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4a94aa0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4aa37a0) (expression float * (var_ref t@0x4aa37a0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4aa37a0) ) ) ) ) ) ) MUL TEMP[342].x, TEMP[336].xxxx, TEMP[341].xxxx; 419: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4a94aa0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4aa37a0) (expression float * (var_ref t@0x4aa37a0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4aa37a0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (6)) ) specular) ) MUL TEMP[343], TEMP[342].xxxx, STATE[30]; 420: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4a94aa0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4aa37a0) (expression float * (var_ref t@0x4aa37a0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4aa37a0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (6)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) MUL TEMP[344], TEMP[343], STATE[31]; 421: (expression vec4 + (var_ref sc@0x42f7e10) (expression vec4 * (swiz w (var_ref rv@0x4a94aa0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4a94aa0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4aa37a0) (expression float * (var_ref t@0x4aa37a0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4aa37a0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (6)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) ) ) MAD TEMP[345], TEMP[306].wwww, TEMP[344], TEMP[29]; 422: (assign (constant bool (1)) (xyzw) (var_ref sc@0x42f7e10) (expression vec4 + (var_ref sc@0x42f7e10) (expression vec4 * (swiz w (var_ref rv@0x4a94aa0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4a94aa0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4aa37a0) (expression float * (var_ref t@0x4aa37a0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4aa37a0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (6)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) ) ) ) MOV TEMP[29], TEMP[345]; 423: (expression bool != (array_ref (var_ref light_enabled@0x4197fa0) (constant int (6)) ) (constant int (0)) ) ENDIF; 424: (expression bool != (array_ref (var_ref light_enabled@0x4197fa0) (constant int (7)) ) (constant int (0)) ) SNE.C TEMP[346].x, UNIFORM[8].xxxx, CONST[21].xxxx; 425: IF (NE.xxxx); # (if false, goto 479); 426: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4aa7c00) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (7)) ) position) ) MOV TEMP[347], STATE[22]; 427: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x4aa7c00) )) MUL TEMP[348].xyz, TEMP[5].xyzz, TEMP[347].wwww; 428: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4aa7c00) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x4aa7c00) )) ) ) ADD TEMP[350].xyz, TEMP[347].xyzz, TEMP[348].-x-y-z-z; 429: (assign (constant bool (1)) (xyz) (var_ref rv@0x4aa7af0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4aa7c00) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4abe6a0) )(swiz w (var_ref assignment_tmp@0x4aa7c00) )) ) ) )) MOV TEMP[351].xyz, TEMP[350].xyzz; 430: (assign (constant bool (1)) (xyz) (var_ref arg0@0x4aa8bb0) (swiz xyz (var_ref rv@0x4aa7af0) )) MOV TEMP[352].xyz, TEMP[351].xyzz; 431: (expression float dot (var_ref arg0@0x4aa8bb0) (var_ref arg0@0x4aa8bb0) ) DP3 TEMP[353].x, TEMP[352].xyzz, TEMP[352].xyzz; 432: (expression float sqrt (expression float dot (var_ref arg0@0x4aa8bb0) (var_ref arg0@0x4aa8bb0) ) ) RSQ TEMP[354].x, TEMP[353].xxxx; 433: MUL TEMP[354].x, TEMP[354].xxxx, TEMP[353].xxxx; 434: CMP TEMP[354].x, TEMP[353].-x-x-x-x, TEMP[354].xxxx, CONST[21].xxxx; 435: (assign (constant bool (1)) (w) (var_ref rv@0x4aa7af0) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x4aa8bb0) (var_ref arg0@0x4aa8bb0) ) ) )) MOV TEMP[351].w, TEMP[354].xxxx; 436: (expression float rcp (swiz w (var_ref rv@0x4aa7af0) )) RCP TEMP[355].x, TEMP[351].wwww; 437: (expression vec3 * (swiz xyz (var_ref rv@0x4aa7af0) )(expression float rcp (swiz w (var_ref rv@0x4aa7af0) )) ) MUL TEMP[356].xyz, TEMP[351].xyzz, TEMP[355].xxxx; 438: (assign (constant bool (1)) (xyz) (var_ref rv@0x4aa7af0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x4aa7af0) )(expression float rcp (swiz w (var_ref rv@0x4aa7af0) )) ) )) MOV TEMP[351].xyz, TEMP[356].xyzz; 439: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4aa9d10) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[357].x, CONST[23].xyzz; 440: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4aa9d10) (swiz www (var_ref rv@0x4aa7af0) )) MOV TEMP[357].y, TEMP[351].wwww; 441: (expression float * (swiz w (var_ref rv@0x4aa7af0) )(swiz w (var_ref rv@0x4aa7af0) )) MUL TEMP[358].x, TEMP[351].wwww, TEMP[351].wwww; 442: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4aa9d10) (swiz xxx (expression float * (swiz w (var_ref rv@0x4aa7af0) )(swiz w (var_ref rv@0x4aa7af0) )) )) MOV TEMP[357].z, TEMP[358].xxxx; 443: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4aaa730) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (7)) ) constantAttenuation) )) MOV TEMP[359].x, STATE[24].xxxx; 444: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4aaa730) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (7)) ) linearAttenuation) )) MOV TEMP[359].y, STATE[24].yyyy; 445: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4aaa730) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (7)) ) quadraticAttenuation) )) MOV TEMP[359].z, STATE[24].zzzz; 446: (expression float dot (var_ref vec_ctor@0x4aa9d10) (var_ref vec_ctor@0x4aaa730) ) DP3 TEMP[360].x, TEMP[357].xyzz, TEMP[359].xyzz; 447: (assign (constant bool (1)) (w) (var_ref rv@0x4aa7af0) (swiz xxxx (expression float dot (var_ref vec_ctor@0x4aa9d10) (var_ref vec_ctor@0x4aaa730) ) )) MOV TEMP[351].w, TEMP[360].xxxx; 448: (expression float rcp (swiz w (var_ref rv@0x4aa7af0) )) RCP TEMP[361].x, TEMP[351].wwww; 449: (assign (constant bool (1)) (w) (var_ref rv@0x4aa7af0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4aa7af0) )) )) MOV TEMP[351].w, TEMP[361].xxxx; 450: (expression float dot (swiz xyz (var_ref rv@0x4aa7af0) )(var_ref _ret_val@0x43d2c80) ) DP3 TEMP[362].x, TEMP[351].xyzz, TEMP[18].xyzz; 451: (assign (constant bool (1)) (x) (var_ref _ret_val@0x4aaeac0) (expression float dot (swiz xyz (var_ref rv@0x4aa7af0) )(var_ref _ret_val@0x43d2c80) ) ) MOV TEMP[363], TEMP[362].xxxx; 452: (expression float * (var_ref _ret_val@0x4aaeac0) (constant float (4.000000)) ) MUL TEMP[364].x, TEMP[363].xxxx, CONST[17].yyyy; 453: (expression float min (expression float * (var_ref _ret_val@0x4aaeac0) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[365].x, TEMP[364].xxxx, CONST[23].xxxx; 454: (expression float max (expression float min (expression float * (var_ref _ret_val@0x4aaeac0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[366].x, TEMP[365].xxxx, CONST[21].xxxx; 455: (assign (constant bool (1)) (x) (var_ref t@0x4ab6e60) (expression float max (expression float min (expression float * (var_ref _ret_val@0x4aaeac0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[367], TEMP[366].xxxx; 456: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4aaeac0) ) MAX TEMP[368].x, CONST[21].xxxx, TEMP[363].xxxx; 457: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4aaeac0) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (7)) ) diffuse) ) MUL TEMP[369], TEMP[368].xxxx, STATE[25]; 458: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (7)) ) ambient) ) MUL TEMP[370], STATE[27], STATE[28]; 459: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (7)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4aaeac0) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (7)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) MAD TEMP[371], TEMP[369], STATE[26], TEMP[370]; 460: (expression vec4 + (var_ref pc@0x42f7f20) (expression vec4 * (swiz w (var_ref rv@0x4aa7af0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (7)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4aaeac0) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (7)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) ) ) MAD TEMP[372], TEMP[351].wwww, TEMP[371], TEMP[28]; 461: (assign (constant bool (1)) (xyzw) (var_ref pc@0x42f7f20) (expression vec4 + (var_ref pc@0x42f7f20) (expression vec4 * (swiz w (var_ref rv@0x4aa7af0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4238560) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (7)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4aaeac0) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (7)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) diffuse) ) ) ) ) ) MOV TEMP[28], TEMP[372]; 462: (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) DP3 TEMP[373].x, TEMP[18].xyzz, TEMP[10].xyzz; 463: (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) MUL TEMP[374].xyz, TEMP[373].xxxx, TEMP[18].xyzz; 464: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) MUL TEMP[375].xyz, CONST[17].xxxx, TEMP[374].xyzz; 465: (expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ADD TEMP[377].xyz, TEMP[10].xyzz, TEMP[375].-x-y-z-z; 466: (expression float dot (swiz xyz (var_ref rv@0x4aa7af0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) DP3 TEMP[378].x, TEMP[351].xyzz, TEMP[377].xyzz; 467: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4aa7af0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) MAX TEMP[379].x, CONST[21].xxxx, TEMP[378].xxxx; 468: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) MAX TEMP[380].x, CONST[23].xxxx, STATE[29].xxxx; 469: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4aa7af0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) POW TEMP[381].x, TEMP[379].xxxx, TEMP[380].xxxx; 470: (expression float * (constant float (2.000000)) (var_ref t@0x4ab6e60) ) MUL TEMP[382].x, CONST[17].xxxx, TEMP[367].xxxx; 471: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4ab6e60) ) ) ) ADD TEMP[384].x, CONST[17].zzzz, TEMP[382].-x-x-x-x; 472: (expression float * (var_ref t@0x4ab6e60) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4ab6e60) ) ) ) ) MUL TEMP[385].x, TEMP[367].xxxx, TEMP[384].xxxx; 473: (expression float * (var_ref t@0x4ab6e60) (expression float * (var_ref t@0x4ab6e60) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4ab6e60) ) ) ) ) ) MUL TEMP[386].x, TEMP[367].xxxx, TEMP[385].xxxx; 474: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4aa7af0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4ab6e60) (expression float * (var_ref t@0x4ab6e60) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4ab6e60) ) ) ) ) ) ) MUL TEMP[387].x, TEMP[381].xxxx, TEMP[386].xxxx; 475: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4aa7af0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4ab6e60) (expression float * (var_ref t@0x4ab6e60) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4ab6e60) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (7)) ) specular) ) MUL TEMP[388], TEMP[387].xxxx, STATE[30]; 476: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4aa7af0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4ab6e60) (expression float * (var_ref t@0x4ab6e60) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4ab6e60) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (7)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) MUL TEMP[389], TEMP[388], STATE[31]; 477: (expression vec4 + (var_ref sc@0x42f7e10) (expression vec4 * (swiz w (var_ref rv@0x4aa7af0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4aa7af0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4ab6e60) (expression float * (var_ref t@0x4ab6e60) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4ab6e60) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (7)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) ) ) MAD TEMP[390], TEMP[351].wwww, TEMP[389], TEMP[29]; 478: (assign (constant bool (1)) (xyzw) (var_ref sc@0x42f7e10) (expression vec4 + (var_ref sc@0x42f7e10) (expression vec4 * (swiz w (var_ref rv@0x4aa7af0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4aa7af0) )(expression vec3 + (var_ref _ret_val@0x43d2340) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x43d2c80) (var_ref _ret_val@0x43d2340) ) (var_ref _ret_val@0x43d2c80) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4238560) shininess) ) ) (expression float * (var_ref t@0x4ab6e60) (expression float * (var_ref t@0x4ab6e60) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4ab6e60) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x42327b0) (constant int (7)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4238560) specular) ) ) ) ) MOV TEMP[29], TEMP[390]; 479: (expression bool != (array_ref (var_ref light_enabled@0x4197fa0) (constant int (7)) ) (constant int (0)) ) ENDIF; 480: (expression bool >= (var_ref max_light_enabled@0x419a590) (constant int (2)) ) ENDIF; 481: (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4263220) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x423d040) )) MUL TEMP[391], STATE[32], INPUT[0].xxxx; 482: (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4263220) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x423d040) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4263220) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x423d040) )) ) MAD TEMP[392], STATE[33], INPUT[0].yyyy, TEMP[391]; 483: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4263220) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x423d040) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4263220) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x423d040) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4263220) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x423d040) )) ) MAD TEMP[393], STATE[34], INPUT[0].zzzz, TEMP[392]; 484: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4263220) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x423d040) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4263220) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x423d040) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4263220) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x423d040) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4263220) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x423d040) )) ) MAD TEMP[394], STATE[35], INPUT[0].wwww, TEMP[393]; 485: (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x41972a0) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4263220) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x423d040) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4263220) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x423d040) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4263220) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x423d040) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4263220) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x423d040) )) ) ) MOV OUTPUT[0], TEMP[394]; 486: (assign (constant bool (1)) (xyzw) (var_ref gl_BackColor@0x426a5b0) (var_ref pc@0x42f7f20) ) MOV OUTPUT[13], TEMP[28]; 487: (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0x426ba60) (var_ref pc@0x42f7f20) ) MOV OUTPUT[1], TEMP[28]; 488: (assign (constant bool (1)) (xyzw) (var_ref gl_BackSecondaryColor@0x4268440) (var_ref sc@0x42f7e10) ) MOV OUTPUT[14], TEMP[29]; 489: (assign (constant bool (1)) (xyzw) (var_ref gl_FrontSecondaryColor@0x426a490) (var_ref sc@0x42f7e10) ) MOV OUTPUT[2], TEMP[29]; 490: END GLSL IR for linked fragment program 7: ( (declare (uniform ) vec4 envColor@0x430b510) (declare (uniform ) vec4 damage@0x430aac0) (declare (uniform ) vec4 cloaking@0x4307340) (declare (uniform ) sampler2D damageMap@0x430e100) (declare (uniform ) sampler2D glowMap@0x430e1b0) (declare (uniform ) sampler2D specMap@0x430e2c0) (declare (uniform ) samplerCube envMap@0x430e3d0) (declare (uniform ) sampler2D diffuseMap@0x430e4e0) (declare (out ) vec4 gl_FragColor@0x430e6f0) (declare (in ) vec4 gl_Color@0x430e850) (declare (in ) vec4 gl_SecondaryColor@0x430e900) (declare (in ) (array vec4 0) gl_TexCoord@0x4311cc0) (function main (signature void (parameters ) ( (declare () float f@0x4ac5cb0) (assign (constant bool (1)) (x) (var_ref f@0x4ac5cb0) (swiz x (var_ref damage@0x430aac0) )) (declare (temporary ) vec4 assignment_tmp@0x434a220) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x434a220) (expression vec4 * (expression vec4 + (expression vec4 * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x4ac5cb0) ) ) (tex (var_ref diffuseMap@0x430e4e0) (swiz xy (array_ref (var_ref gl_TexCoord@0x4311cc0) (constant int (0)) ) ) (0 0 0) 1 () )) (expression vec4 * (var_ref f@0x4ac5cb0) (tex (var_ref damageMap@0x430e100) (swiz xy (array_ref (var_ref gl_TexCoord@0x4311cc0) (constant int (0)) ) ) (0 0 0) 1 () )) ) (var_ref gl_Color@0x430e850) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x430e6f0) (var_ref assignment_tmp@0x434a220) ) (assign (constant bool (1)) (xyz) (var_ref gl_FragColor@0x430e6f0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x434a220) )(expression vec3 * (swiz xyz (tex (var_ref specMap@0x430e2c0) (swiz xy (array_ref (var_ref gl_TexCoord@0x4311cc0) (constant int (0)) ) ) (0 0 0) 1 () ))(swiz xyz (expression vec4 + (expression vec4 * (tex (var_ref envMap@0x430e3d0) (swiz xyz (array_ref (var_ref gl_TexCoord@0x4311cc0) (constant int (1)) ) ) (0 0 0) 1 () )(var_ref envColor@0x430b510) ) (var_ref gl_SecondaryColor@0x430e900) ) )) ) )) (assign (constant bool (1)) (xyz) (var_ref gl_FragColor@0x430e6f0) (swiz xyz (expression vec3 + (swiz xyz (var_ref gl_FragColor@0x430e6f0) )(swiz xyz (tex (var_ref glowMap@0x430e1b0) (swiz xy (array_ref (var_ref gl_TexCoord@0x4311cc0) (constant int (0)) ) ) (0 0 0) 1 () ))) )) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x430e6f0) (expression vec4 * (var_ref gl_FragColor@0x430e6f0) (swiz xxxy (var_ref cloaking@0x4307340) )) ) )) ) ) Mesa IR for linked fragment program 7: 0: (assign (constant bool (1)) (x) (var_ref f@0x4ac5cb0) (swiz x (var_ref damage@0x430aac0) )) MOV TEMP[1], UNIFORM[1].xxxx; 1: (tex (var_ref damageMap@0x430e100) (swiz xy (array_ref (var_ref gl_TexCoord@0x4311cc0) (constant int (0)) ) ) (0 0 0) 1 () ) MOV TEMP[2], INPUT[4].xyyy; 2: TEX TEMP[3], TEMP[2], texture[0], 2D; 3: (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x4ac5cb0) ) ) ADD TEMP[5].x, CONST[8].xxxx, TEMP[1].-x-x-x-x; 4: (tex (var_ref diffuseMap@0x430e4e0) (swiz xy (array_ref (var_ref gl_TexCoord@0x4311cc0) (constant int (0)) ) ) (0 0 0) 1 () ) MOV TEMP[6], INPUT[4].xyyy; 5: TEX TEMP[7], TEMP[6], texture[4], 2D; 6: (expression vec4 * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x4ac5cb0) ) ) (tex (var_ref diffuseMap@0x430e4e0) (swiz xy (array_ref (var_ref gl_TexCoord@0x4311cc0) (constant int (0)) ) ) (0 0 0) 1 () )) MUL TEMP[8], TEMP[5].xxxx, TEMP[7]; 7: (expression vec4 + (expression vec4 * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x4ac5cb0) ) ) (tex (var_ref diffuseMap@0x430e4e0) (swiz xy (array_ref (var_ref gl_TexCoord@0x4311cc0) (constant int (0)) ) ) (0 0 0) 1 () )) (expression vec4 * (var_ref f@0x4ac5cb0) (tex (var_ref damageMap@0x430e100) (swiz xy (array_ref (var_ref gl_TexCoord@0x4311cc0) (constant int (0)) ) ) (0 0 0) 1 () )) ) MAD TEMP[9], TEMP[1].xxxx, TEMP[3], TEMP[8]; 8: (expression vec4 * (expression vec4 + (expression vec4 * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x4ac5cb0) ) ) (tex (var_ref diffuseMap@0x430e4e0) (swiz xy (array_ref (var_ref gl_TexCoord@0x4311cc0) (constant int (0)) ) ) (0 0 0) 1 () )) (expression vec4 * (var_ref f@0x4ac5cb0) (tex (var_ref damageMap@0x430e100) (swiz xy (array_ref (var_ref gl_TexCoord@0x4311cc0) (constant int (0)) ) ) (0 0 0) 1 () )) ) (var_ref gl_Color@0x430e850) ) MUL TEMP[10], TEMP[9], INPUT[1]; 9: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x434a220) (expression vec4 * (expression vec4 + (expression vec4 * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x4ac5cb0) ) ) (tex (var_ref diffuseMap@0x430e4e0) (swiz xy (array_ref (var_ref gl_TexCoord@0x4311cc0) (constant int (0)) ) ) (0 0 0) 1 () )) (expression vec4 * (var_ref f@0x4ac5cb0) (tex (var_ref damageMap@0x430e100) (swiz xy (array_ref (var_ref gl_TexCoord@0x4311cc0) (constant int (0)) ) ) (0 0 0) 1 () )) ) (var_ref gl_Color@0x430e850) ) ) MOV TEMP[11], TEMP[10]; 10: (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x430e6f0) (var_ref assignment_tmp@0x434a220) ) MOV OUTPUT[1], TEMP[11]; 11: (tex (var_ref specMap@0x430e2c0) (swiz xy (array_ref (var_ref gl_TexCoord@0x4311cc0) (constant int (0)) ) ) (0 0 0) 1 () ) MOV TEMP[12], INPUT[4].xyyy; 12: TEX TEMP[13], TEMP[12], texture[2], 2D; 13: (tex (var_ref envMap@0x430e3d0) (swiz xyz (array_ref (var_ref gl_TexCoord@0x4311cc0) (constant int (1)) ) ) (0 0 0) 1 () ) MOV TEMP[14], INPUT[5].xyzz; 14: TEX TEMP[15], TEMP[14], texture[3], CUBE; 15: (expression vec4 + (expression vec4 * (tex (var_ref envMap@0x430e3d0) (swiz xyz (array_ref (var_ref gl_TexCoord@0x4311cc0) (constant int (1)) ) ) (0 0 0) 1 () )(var_ref envColor@0x430b510) ) (var_ref gl_SecondaryColor@0x430e900) ) MAD TEMP[16], TEMP[15], UNIFORM[0], INPUT[2]; 16: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x434a220) )(expression vec3 * (swiz xyz (tex (var_ref specMap@0x430e2c0) (swiz xy (array_ref (var_ref gl_TexCoord@0x4311cc0) (constant int (0)) ) ) (0 0 0) 1 () ))(swiz xyz (expression vec4 + (expression vec4 * (tex (var_ref envMap@0x430e3d0) (swiz xyz (array_ref (var_ref gl_TexCoord@0x4311cc0) (constant int (1)) ) ) (0 0 0) 1 () )(var_ref envColor@0x430b510) ) (var_ref gl_SecondaryColor@0x430e900) ) )) ) MAD TEMP[17], TEMP[13].xyzz, TEMP[16].xyzz, TEMP[11].xyzz; 17: (assign (constant bool (1)) (xyz) (var_ref gl_FragColor@0x430e6f0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x434a220) )(expression vec3 * (swiz xyz (tex (var_ref specMap@0x430e2c0) (swiz xy (array_ref (var_ref gl_TexCoord@0x4311cc0) (constant int (0)) ) ) (0 0 0) 1 () ))(swiz xyz (expression vec4 + (expression vec4 * (tex (var_ref envMap@0x430e3d0) (swiz xyz (array_ref (var_ref gl_TexCoord@0x4311cc0) (constant int (1)) ) ) (0 0 0) 1 () )(var_ref envColor@0x430b510) ) (var_ref gl_SecondaryColor@0x430e900) ) )) ) )) MOV OUTPUT[1].xyz, TEMP[17].xyzz; 18: (tex (var_ref glowMap@0x430e1b0) (swiz xy (array_ref (var_ref gl_TexCoord@0x4311cc0) (constant int (0)) ) ) (0 0 0) 1 () ) MOV TEMP[18], INPUT[4].xyyy; 19: TEX TEMP[19], TEMP[18], texture[1], 2D; 20: (expression vec3 + (swiz xyz (var_ref gl_FragColor@0x430e6f0) )(swiz xyz (tex (var_ref glowMap@0x430e1b0) (swiz xy (array_ref (var_ref gl_TexCoord@0x4311cc0) (constant int (0)) ) ) (0 0 0) 1 () ))) ADD TEMP[20].xyz, OUTPUT[1].xyzz, TEMP[19].xyzz; 21: (assign (constant bool (1)) (xyz) (var_ref gl_FragColor@0x430e6f0) (swiz xyz (expression vec3 + (swiz xyz (var_ref gl_FragColor@0x430e6f0) )(swiz xyz (tex (var_ref glowMap@0x430e1b0) (swiz xy (array_ref (var_ref gl_TexCoord@0x4311cc0) (constant int (0)) ) ) (0 0 0) 1 () ))) )) MOV OUTPUT[1].xyz, TEMP[20].xyzz; 22: (expression vec4 * (var_ref gl_FragColor@0x430e6f0) (swiz xxxy (var_ref cloaking@0x4307340) )) MUL TEMP[21], OUTPUT[1], UNIFORM[2].xxxy; 23: (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x430e6f0) (expression vec4 * (var_ref gl_FragColor@0x430e6f0) (swiz xxxy (var_ref cloaking@0x4307340) )) ) MOV OUTPUT[1], TEMP[21]; 24: END Compilation of technique fixed successful GLSL source for shader 11: uniform int light_enabled[gl_MaxLights]; uniform int max_light_enabled; /* varyings: * gl_TexCoord[ * 0 - tex coord * 1.xy - env coord * 1.zw - env diffuse coord * 2 - normal **/ #define lightPosAndAttenuation(name, lightno) \ vec4 name(in vec4 vertex) \ { \ vec4 lpos = gl_LightSource[lightno].position; \ vec4 rv; \ rv.xyz = lpos.xyz - vertex.xyz*lpos.w; \ rv.w = length(rv.xyz); \ rv.xyz /= rv.w; \ rv.w = dot( vec3(1,rv.w,rv.w*rv.w), vec3(gl_LightSource[lightno].constantAttenuation, \ gl_LightSource[lightno].linearAttenuation, \ gl_LightSource[lightno].quadraticAttenuation) ); \ rv.w = 1.0 / rv.w; \ return rv; \ } lightPosAndAttenuation(lightPosAndAttenuation0, 0) lightPosAndAttenuation(lightPosAndAttenuation1, 1) lightPosAndAttenuation(lightPosAndAttenuation2, 2) lightPosAndAttenuation(lightPosAndAttenuation3, 3) lightPosAndAttenuation(lightPosAndAttenuation4, 4) //float selfshadowStep(float VNdotL) { return step(0.0,VNdotL); } // fast but hard selfshadow function float selfshadowStep(float VNdotL) { return smoothstep(0.0,0.25,VNdotL); } // costly but soft and nice selfshadow function #define lighting(name, lpattname, lightno) \ void name(in vec4 vertex, in vec3 eye, in vec3 normal, inout vec4 pc, inout vec4 sc) \ { \ vec4 lpatt = lpattname(vertex); \ vec3 refl = reflect( eye, normal ); \ float NdotL = dot( lpatt.xyz, normal ); \ float RdotL = dot( lpatt.xyz, refl ); \ \ pc += lpatt.w*( gl_FrontMaterial.ambient * gl_LightSource[lightno].ambient \ + max(0.0, NdotL) * gl_LightSource[lightno].diffuse * gl_FrontMaterial.diffuse ); \ sc += lpatt.w*( pow( max(0.0, RdotL) , max(1.0,gl_FrontMaterial.shininess) ) * selfshadowStep(NdotL) \ * gl_LightSource[lightno].specular * gl_FrontMaterial.specular ); \ } lighting(lighting0, lightPosAndAttenuation0, 0) lighting(lighting1, lightPosAndAttenuation1, 1) lighting(lighting2, lightPosAndAttenuation2, 2) lighting(lighting3, lightPosAndAttenuation3, 3) lighting(lighting4, lightPosAndAttenuation4, 4) void main() { // Compute position, eye-to-object direction and normalized world-space normal vec4 position = gl_ModelViewMatrix * gl_Vertex; vec3 eyetopos = normalize(position.xyz); vec3 normal = normalize(gl_NormalMatrix * gl_Normal); // Load varyings gl_TexCoord[0] = gl_MultiTexCoord0; gl_TexCoord[1].xyz = reflect(eyetopos, normal); gl_TexCoord[2].xyz = normal; // init accumulators vec4 pc = gl_FrontLightProduct[0].ambient + gl_FrontMaterial.emission + gl_FrontLightModelProduct.sceneColor + float(light_enabled[1]) * gl_FrontLightProduct[1].ambient; vec4 sc = vec4(0.0); if (light_enabled[0] != 0) lighting0(position, eyetopos, normal, pc, sc); if (light_enabled[1] != 0) lighting1(position, eyetopos, normal, pc, sc); if (max_light_enabled >= 2) { if (light_enabled[2] != 0) lighting2(position, eyetopos, normal, pc, sc); if (light_enabled[3] != 0) lighting3(position, eyetopos, normal, pc, sc); if (light_enabled[4] != 0) lighting4(position, eyetopos, normal, pc, sc); } // Need this instead of ftransform() for invariance gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; gl_FrontColor = gl_BackColor = pc; gl_FrontSecondaryColor = gl_BackSecondaryColor = sc; } GLSL IR for shader 11: ( (declare (uniform ) int max_light_enabled@0x4b875f0) (declare (uniform ) (array int 8) light_enabled@0x4b873c0) (declare (out ) vec4 gl_Position@0x4b05c10) (declare (out ) float gl_PointSize@0x4b05de0) (declare (in ) vec4 gl_Vertex@0x4b05fb0) (declare (in ) vec3 gl_Normal@0x4b06180) (declare (in ) vec4 gl_Color@0x4b06350) (declare (in ) vec4 gl_SecondaryColor@0x4b06520) (declare (in ) vec4 gl_MultiTexCoord0@0x4b066f0) (declare (in ) vec4 gl_MultiTexCoord1@0x4b068c0) (declare (in ) vec4 gl_MultiTexCoord2@0x4b06a90) (declare (in ) vec4 gl_MultiTexCoord3@0x4b06c60) (declare (in ) vec4 gl_MultiTexCoord4@0x4b06e30) (declare (in ) vec4 gl_MultiTexCoord5@0x4b07000) (declare (in ) vec4 gl_MultiTexCoord6@0x4b071d0) (declare (in ) vec4 gl_MultiTexCoord7@0x4b495c0) (declare (in ) float gl_FogCoord@0x4b49790) (declare (out ) vec4 gl_ClipVertex@0x4b49960) (declare (out ) vec4 gl_FrontColor@0x4b49b30) (declare (out ) vec4 gl_BackColor@0x4b49d00) (declare (out ) vec4 gl_FrontSecondaryColor@0x4b49ed0) (declare (out ) vec4 gl_BackSecondaryColor@0x4b4a0a0) (declare (out ) float gl_FogFragCoord@0x4b4a270) (declare (uniform ) mat4 gl_ModelViewMatrix@0x4b4a440) (declare (uniform ) mat4 gl_ProjectionMatrix@0x4b4a610) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x4b4a7e0) (declare (uniform ) mat3 gl_NormalMatrix@0x4b4a9a0) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0x4b4ab70) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0x4b4ad30) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0x4b4aef0) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0x4b4b0b0) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0x4b4b270) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0x4b4b430) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0x4b4b5f0) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0x4b4b7b0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0x4b4b970) (declare (uniform ) float gl_NormalScale@0x4b4bb40) (declare (uniform ) gl_LightModelParameters gl_LightModel@0x4b4bd10) (declare () int gl_MaxLights@0x4b4bee0) (declare () int gl_MaxClipPlanes@0x4b4c190) (declare () int gl_MaxTextureUnits@0x4b4c440) (declare () int gl_MaxTextureCoords@0x4b4c6f0) (declare () int gl_MaxVertexAttribs@0x4b4c9a0) (declare () int gl_MaxVertexUniformComponents@0x4b4cc50) (declare () int gl_MaxVaryingFloats@0x4b4cef0) (declare () int gl_MaxVertexTextureImageUnits@0x4b4d1a0) (declare () int gl_MaxCombinedTextureImageUnits@0x4b4d440) (declare () int gl_MaxTextureImageUnits@0x4b4d6e0) (declare () int gl_MaxFragmentUniformComponents@0x4b4d990) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0x4b4dc90) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0x4b4dec0) (declare (uniform ) (array vec4 6) gl_ClipPlane@0x4b4e0f0) (declare (uniform ) gl_PointParameters gl_Point@0x4b4e320) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x4b4e550) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0x4b4e780) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x4b4e9b0) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x4b4ebe0) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0x4b4ee30) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0x4b4f080) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0x4b4f2b0) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0x4b4f4e0) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0x4b4f710) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0x4b4f940) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0x4b4fb70) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0x4b4fda0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0x4b4ffd0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0x4b50200) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0x4b50430) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0x4b50660) (declare (uniform ) gl_FogParameters gl_Fog@0x4b50890) (declare (out ) (array vec4 0) gl_TexCoord@0x4b50ab0) (declare () int gl_MaxDrawBuffers@0x4b50ce0) (function lightPosAndAttenuation0 (signature vec4 (parameters (declare (in ) vec4 vertex@0x4b87820) ) ( (declare () vec4 rv@0x4b88720) (declare (temporary ) vec4 assignment_tmp@0x4b88200) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4b88200) (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (0)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x4b88720) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4b88200) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x4b87820) )(swiz w (var_ref assignment_tmp@0x4b88200) )) ) ) )) (declare (temporary ) float length_retval@0x4b896f0) (assign (constant bool (1)) (x) (var_ref length_retval@0x4b896f0) (call length ((swiz xyz (var_ref rv@0x4b88720) ))) ) (assign (constant bool (1)) (w) (var_ref rv@0x4b88720) (swiz xxxx (var_ref length_retval@0x4b896f0) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x4b88720) (swiz xyz (expression vec3 / (swiz xyz (var_ref rv@0x4b88720) )(swiz w (var_ref rv@0x4b88720) )) )) (declare (temporary ) vec3 vec_ctor@0x4b8ae90) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4b8ae90) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4b8ae90) (swiz www (var_ref rv@0x4b88720) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4b8ae90) (swiz xxx (expression float * (swiz w (var_ref rv@0x4b88720) )(swiz w (var_ref rv@0x4b88720) )) )) (declare (temporary ) vec3 vec_ctor@0x4b8bed0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4b8bed0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (0)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4b8bed0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (0)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4b8bed0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (0)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x4b8c6d0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x4b8c6d0) (call dot ((var_ref vec_ctor@0x4b8ae90) (var_ref vec_ctor@0x4b8bed0) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x4b88720) (swiz xxxx (var_ref dot_retval@0x4b8c6d0) )) (assign (constant bool (1)) (w) (var_ref rv@0x4b88720) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4b88720) )) )) (return (var_ref rv@0x4b88720) ) )) ) (function lightPosAndAttenuation1 (signature vec4 (parameters (declare (in ) vec4 vertex@0x4b8d7d0) ) ( (declare () vec4 rv@0x4b8e540) (declare (temporary ) vec4 assignment_tmp@0x4b8e090) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4b8e090) (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (1)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x4b8e540) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4b8e090) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x4b8d7d0) )(swiz w (var_ref assignment_tmp@0x4b8e090) )) ) ) )) (declare (temporary ) float length_retval@0x4b8f4a0) (assign (constant bool (1)) (x) (var_ref length_retval@0x4b8f4a0) (call length ((swiz xyz (var_ref rv@0x4b8e540) ))) ) (assign (constant bool (1)) (w) (var_ref rv@0x4b8e540) (swiz xxxx (var_ref length_retval@0x4b8f4a0) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x4b8e540) (swiz xyz (expression vec3 / (swiz xyz (var_ref rv@0x4b8e540) )(swiz w (var_ref rv@0x4b8e540) )) )) (declare (temporary ) vec3 vec_ctor@0x4b90c40) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4b90c40) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4b90c40) (swiz www (var_ref rv@0x4b8e540) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4b90c40) (swiz xxx (expression float * (swiz w (var_ref rv@0x4b8e540) )(swiz w (var_ref rv@0x4b8e540) )) )) (declare (temporary ) vec3 vec_ctor@0x4b91c80) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4b91c80) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (1)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4b91c80) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (1)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4b91c80) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (1)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x4b92480) (assign (constant bool (1)) (x) (var_ref dot_retval@0x4b92480) (call dot ((var_ref vec_ctor@0x4b90c40) (var_ref vec_ctor@0x4b91c80) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x4b8e540) (swiz xxxx (var_ref dot_retval@0x4b92480) )) (assign (constant bool (1)) (w) (var_ref rv@0x4b8e540) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4b8e540) )) )) (return (var_ref rv@0x4b8e540) ) )) ) (function lightPosAndAttenuation2 (signature vec4 (parameters (declare (in ) vec4 vertex@0x4b93580) ) ( (declare () vec4 rv@0x4b942f0) (declare (temporary ) vec4 assignment_tmp@0x4b93e40) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4b93e40) (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (2)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x4b942f0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4b93e40) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x4b93580) )(swiz w (var_ref assignment_tmp@0x4b93e40) )) ) ) )) (declare (temporary ) float length_retval@0x4b95250) (assign (constant bool (1)) (x) (var_ref length_retval@0x4b95250) (call length ((swiz xyz (var_ref rv@0x4b942f0) ))) ) (assign (constant bool (1)) (w) (var_ref rv@0x4b942f0) (swiz xxxx (var_ref length_retval@0x4b95250) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x4b942f0) (swiz xyz (expression vec3 / (swiz xyz (var_ref rv@0x4b942f0) )(swiz w (var_ref rv@0x4b942f0) )) )) (declare (temporary ) vec3 vec_ctor@0x4b969f0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4b969f0) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4b969f0) (swiz www (var_ref rv@0x4b942f0) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4b969f0) (swiz xxx (expression float * (swiz w (var_ref rv@0x4b942f0) )(swiz w (var_ref rv@0x4b942f0) )) )) (declare (temporary ) vec3 vec_ctor@0x4b97a30) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4b97a30) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (2)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4b97a30) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (2)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4b97a30) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (2)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x4b98230) (assign (constant bool (1)) (x) (var_ref dot_retval@0x4b98230) (call dot ((var_ref vec_ctor@0x4b969f0) (var_ref vec_ctor@0x4b97a30) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x4b942f0) (swiz xxxx (var_ref dot_retval@0x4b98230) )) (assign (constant bool (1)) (w) (var_ref rv@0x4b942f0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4b942f0) )) )) (return (var_ref rv@0x4b942f0) ) )) ) (function lightPosAndAttenuation3 (signature vec4 (parameters (declare (in ) vec4 vertex@0x4b99330) ) ( (declare () vec4 rv@0x4b9a0a0) (declare (temporary ) vec4 assignment_tmp@0x4b99bf0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4b99bf0) (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (3)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x4b9a0a0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4b99bf0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x4b99330) )(swiz w (var_ref assignment_tmp@0x4b99bf0) )) ) ) )) (declare (temporary ) float length_retval@0x4b9b000) (assign (constant bool (1)) (x) (var_ref length_retval@0x4b9b000) (call length ((swiz xyz (var_ref rv@0x4b9a0a0) ))) ) (assign (constant bool (1)) (w) (var_ref rv@0x4b9a0a0) (swiz xxxx (var_ref length_retval@0x4b9b000) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x4b9a0a0) (swiz xyz (expression vec3 / (swiz xyz (var_ref rv@0x4b9a0a0) )(swiz w (var_ref rv@0x4b9a0a0) )) )) (declare (temporary ) vec3 vec_ctor@0x4b9c7a0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4b9c7a0) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4b9c7a0) (swiz www (var_ref rv@0x4b9a0a0) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4b9c7a0) (swiz xxx (expression float * (swiz w (var_ref rv@0x4b9a0a0) )(swiz w (var_ref rv@0x4b9a0a0) )) )) (declare (temporary ) vec3 vec_ctor@0x4b9d7e0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4b9d7e0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (3)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4b9d7e0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (3)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4b9d7e0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (3)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x4b9dfe0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x4b9dfe0) (call dot ((var_ref vec_ctor@0x4b9c7a0) (var_ref vec_ctor@0x4b9d7e0) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x4b9a0a0) (swiz xxxx (var_ref dot_retval@0x4b9dfe0) )) (assign (constant bool (1)) (w) (var_ref rv@0x4b9a0a0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4b9a0a0) )) )) (return (var_ref rv@0x4b9a0a0) ) )) ) (function lightPosAndAttenuation4 (signature vec4 (parameters (declare (in ) vec4 vertex@0x4b9f0e0) ) ( (declare () vec4 rv@0x4b9fe50) (declare (temporary ) vec4 assignment_tmp@0x4b9f9a0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4b9f9a0) (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (4)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x4b9fe50) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4b9f9a0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x4b9f0e0) )(swiz w (var_ref assignment_tmp@0x4b9f9a0) )) ) ) )) (declare (temporary ) float length_retval@0x4ba0db0) (assign (constant bool (1)) (x) (var_ref length_retval@0x4ba0db0) (call length ((swiz xyz (var_ref rv@0x4b9fe50) ))) ) (assign (constant bool (1)) (w) (var_ref rv@0x4b9fe50) (swiz xxxx (var_ref length_retval@0x4ba0db0) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x4b9fe50) (swiz xyz (expression vec3 / (swiz xyz (var_ref rv@0x4b9fe50) )(swiz w (var_ref rv@0x4b9fe50) )) )) (declare (temporary ) vec3 vec_ctor@0x4ba2550) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4ba2550) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4ba2550) (swiz www (var_ref rv@0x4b9fe50) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4ba2550) (swiz xxx (expression float * (swiz w (var_ref rv@0x4b9fe50) )(swiz w (var_ref rv@0x4b9fe50) )) )) (declare (temporary ) vec3 vec_ctor@0x4ba3590) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4ba3590) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (4)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4ba3590) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (4)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4ba3590) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (4)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x4ba3d90) (assign (constant bool (1)) (x) (var_ref dot_retval@0x4ba3d90) (call dot ((var_ref vec_ctor@0x4ba2550) (var_ref vec_ctor@0x4ba3590) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x4b9fe50) (swiz xxxx (var_ref dot_retval@0x4ba3d90) )) (assign (constant bool (1)) (w) (var_ref rv@0x4b9fe50) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4b9fe50) )) )) (return (var_ref rv@0x4b9fe50) ) )) ) (function selfshadowStep (signature float (parameters (declare (in ) float VNdotL@0x4ba4e90) ) ( (declare (temporary ) float smoothstep_retval@0x4ba5680) (assign (constant bool (1)) (x) (var_ref smoothstep_retval@0x4ba5680) (call smoothstep ((constant float (0.000000)) (constant float (0.250000)) (var_ref VNdotL@0x4ba4e90) )) ) (return (var_ref smoothstep_retval@0x4ba5680) ) )) ) (function lighting0 (signature void (parameters (declare (in ) vec4 vertex@0x4ba59f0) (declare (in ) vec3 eye@0x4ba5b00) (declare (in ) vec3 normal@0x4ba5c10) (declare (inout ) vec4 pc@0x4ba5d20) (declare (inout ) vec4 sc@0x4ba5e30) ) ( (declare () float RdotL@0x4ba8a80) (declare () float NdotL@0x4ba7e20) (declare () vec3 refl@0x4ba7250) (declare () vec4 lpatt@0x4ba66f0) (declare (temporary ) vec4 lightPosAndAttenuation0_retval@0x4ba6a40) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation0_retval@0x4ba6a40) (call lightPosAndAttenuation0 ((var_ref vertex@0x4ba59f0) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x4ba66f0) (var_ref lightPosAndAttenuation0_retval@0x4ba6a40) ) (declare (temporary ) vec3 reflect_retval@0x4ba7620) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x4ba7620) (call reflect ((var_ref eye@0x4ba5b00) (var_ref normal@0x4ba5c10) )) ) (assign (constant bool (1)) (xyz) (var_ref refl@0x4ba7250) (var_ref reflect_retval@0x4ba7620) ) (declare (temporary ) float dot_retval@0x4ba8280) (assign (constant bool (1)) (x) (var_ref dot_retval@0x4ba8280) (call dot ((swiz xyz (var_ref lpatt@0x4ba66f0) )(var_ref normal@0x4ba5c10) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x4ba7e20) (var_ref dot_retval@0x4ba8280) ) (declare (temporary ) float dot_retval@0x4ba8ee0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x4ba8ee0) (call dot ((swiz xyz (var_ref lpatt@0x4ba66f0) )(var_ref refl@0x4ba7250) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x4ba8a80) (var_ref dot_retval@0x4ba8ee0) ) (declare (temporary ) float max_retval@0x4baa020) (assign (constant bool (1)) (x) (var_ref max_retval@0x4baa020) (call max ((constant float (0.000000)) (var_ref NdotL@0x4ba7e20) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x4ba5d20) (expression vec4 + (var_ref pc@0x4ba5d20) (expression vec4 * (swiz w (var_ref lpatt@0x4ba66f0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b4e550) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (0)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x4baa020) (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (0)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4b4e550) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x4bacaf0) (assign (constant bool (1)) (x) (var_ref max_retval@0x4bacaf0) (call max ((constant float (0.000000)) (var_ref RdotL@0x4ba8a80) )) ) (declare (temporary ) float max_retval@0x4bad150) (assign (constant bool (1)) (x) (var_ref max_retval@0x4bad150) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b4e550) shininess) )) ) (declare (temporary ) float pow_retval@0x4bad540) (assign (constant bool (1)) (x) (var_ref pow_retval@0x4bad540) (call pow ((var_ref max_retval@0x4bacaf0) (var_ref max_retval@0x4bad150) )) ) (declare (temporary ) float selfshadowStep_retval@0x4bad9c0) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x4bad9c0) (call selfshadowStep ((var_ref NdotL@0x4ba7e20) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x4ba5e30) (expression vec4 + (var_ref sc@0x4ba5e30) (expression vec4 * (swiz w (var_ref lpatt@0x4ba66f0) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x4bad540) (var_ref selfshadowStep_retval@0x4bad9c0) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (0)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4b4e550) specular) ) ) ) ) (return) )) ) (function lighting1 (signature void (parameters (declare (in ) vec4 vertex@0x4bae8f0) (declare (in ) vec3 eye@0x4baea00) (declare (in ) vec3 normal@0x4baeb10) (declare (inout ) vec4 pc@0x4baec20) (declare (inout ) vec4 sc@0x4baed30) ) ( (declare () float RdotL@0x4bb1480) (declare () float NdotL@0x4bb08c0) (declare () vec3 refl@0x4bafd90) (declare () vec4 lpatt@0x4baf2d0) (declare (temporary ) vec4 lightPosAndAttenuation1_retval@0x4baf620) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation1_retval@0x4baf620) (call lightPosAndAttenuation1 ((var_ref vertex@0x4bae8f0) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x4baf2d0) (var_ref lightPosAndAttenuation1_retval@0x4baf620) ) (declare (temporary ) vec3 reflect_retval@0x4bb0160) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x4bb0160) (call reflect ((var_ref eye@0x4baea00) (var_ref normal@0x4baeb10) )) ) (assign (constant bool (1)) (xyz) (var_ref refl@0x4bafd90) (var_ref reflect_retval@0x4bb0160) ) (declare (temporary ) float dot_retval@0x4bb0d20) (assign (constant bool (1)) (x) (var_ref dot_retval@0x4bb0d20) (call dot ((swiz xyz (var_ref lpatt@0x4baf2d0) )(var_ref normal@0x4baeb10) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x4bb08c0) (var_ref dot_retval@0x4bb0d20) ) (declare (temporary ) float dot_retval@0x4bb18e0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x4bb18e0) (call dot ((swiz xyz (var_ref lpatt@0x4baf2d0) )(var_ref refl@0x4bafd90) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x4bb1480) (var_ref dot_retval@0x4bb18e0) ) (declare (temporary ) float max_retval@0x4bb2980) (assign (constant bool (1)) (x) (var_ref max_retval@0x4bb2980) (call max ((constant float (0.000000)) (var_ref NdotL@0x4bb08c0) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x4baec20) (expression vec4 + (var_ref pc@0x4baec20) (expression vec4 * (swiz w (var_ref lpatt@0x4baf2d0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b4e550) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (1)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x4bb2980) (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (1)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4b4e550) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x4bb3cc0) (assign (constant bool (1)) (x) (var_ref max_retval@0x4bb3cc0) (call max ((constant float (0.000000)) (var_ref RdotL@0x4bb1480) )) ) (declare (temporary ) float max_retval@0x4bb4320) (assign (constant bool (1)) (x) (var_ref max_retval@0x4bb4320) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b4e550) shininess) )) ) (declare (temporary ) float pow_retval@0x4bb4710) (assign (constant bool (1)) (x) (var_ref pow_retval@0x4bb4710) (call pow ((var_ref max_retval@0x4bb3cc0) (var_ref max_retval@0x4bb4320) )) ) (declare (temporary ) float selfshadowStep_retval@0x4bb4b90) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x4bb4b90) (call selfshadowStep ((var_ref NdotL@0x4bb08c0) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x4baed30) (expression vec4 + (var_ref sc@0x4baed30) (expression vec4 * (swiz w (var_ref lpatt@0x4baf2d0) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x4bb4710) (var_ref selfshadowStep_retval@0x4bb4b90) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (1)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4b4e550) specular) ) ) ) ) (return) )) ) (function lighting2 (signature void (parameters (declare (in ) vec4 vertex@0x4bb5ac0) (declare (in ) vec3 eye@0x4bb5bd0) (declare (in ) vec3 normal@0x4bb5ce0) (declare (inout ) vec4 pc@0x4bb5df0) (declare (inout ) vec4 sc@0x4bb5f00) ) ( (declare () float RdotL@0x4bb8650) (declare () float NdotL@0x4bb7a90) (declare () vec3 refl@0x4bb6f60) (declare () vec4 lpatt@0x4bb64a0) (declare (temporary ) vec4 lightPosAndAttenuation2_retval@0x4bb67f0) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation2_retval@0x4bb67f0) (call lightPosAndAttenuation2 ((var_ref vertex@0x4bb5ac0) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x4bb64a0) (var_ref lightPosAndAttenuation2_retval@0x4bb67f0) ) (declare (temporary ) vec3 reflect_retval@0x4bb7330) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x4bb7330) (call reflect ((var_ref eye@0x4bb5bd0) (var_ref normal@0x4bb5ce0) )) ) (assign (constant bool (1)) (xyz) (var_ref refl@0x4bb6f60) (var_ref reflect_retval@0x4bb7330) ) (declare (temporary ) float dot_retval@0x4bb7ef0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x4bb7ef0) (call dot ((swiz xyz (var_ref lpatt@0x4bb64a0) )(var_ref normal@0x4bb5ce0) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x4bb7a90) (var_ref dot_retval@0x4bb7ef0) ) (declare (temporary ) float dot_retval@0x4bb8ab0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x4bb8ab0) (call dot ((swiz xyz (var_ref lpatt@0x4bb64a0) )(var_ref refl@0x4bb6f60) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x4bb8650) (var_ref dot_retval@0x4bb8ab0) ) (declare (temporary ) float max_retval@0x4bb9b50) (assign (constant bool (1)) (x) (var_ref max_retval@0x4bb9b50) (call max ((constant float (0.000000)) (var_ref NdotL@0x4bb7a90) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x4bb5df0) (expression vec4 + (var_ref pc@0x4bb5df0) (expression vec4 * (swiz w (var_ref lpatt@0x4bb64a0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b4e550) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x4bb9b50) (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4b4e550) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x4bbae90) (assign (constant bool (1)) (x) (var_ref max_retval@0x4bbae90) (call max ((constant float (0.000000)) (var_ref RdotL@0x4bb8650) )) ) (declare (temporary ) float max_retval@0x4bbb4f0) (assign (constant bool (1)) (x) (var_ref max_retval@0x4bbb4f0) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b4e550) shininess) )) ) (declare (temporary ) float pow_retval@0x4bbb8e0) (assign (constant bool (1)) (x) (var_ref pow_retval@0x4bbb8e0) (call pow ((var_ref max_retval@0x4bbae90) (var_ref max_retval@0x4bbb4f0) )) ) (declare (temporary ) float selfshadowStep_retval@0x4bbbd60) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x4bbbd60) (call selfshadowStep ((var_ref NdotL@0x4bb7a90) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x4bb5f00) (expression vec4 + (var_ref sc@0x4bb5f00) (expression vec4 * (swiz w (var_ref lpatt@0x4bb64a0) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x4bbb8e0) (var_ref selfshadowStep_retval@0x4bbbd60) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4b4e550) specular) ) ) ) ) (return) )) ) (function lighting3 (signature void (parameters (declare (in ) vec4 vertex@0x4bbcc90) (declare (in ) vec3 eye@0x4bbcda0) (declare (in ) vec3 normal@0x4bbceb0) (declare (inout ) vec4 pc@0x4bbcfc0) (declare (inout ) vec4 sc@0x4bbd0d0) ) ( (declare () float RdotL@0x4bbf820) (declare () float NdotL@0x4bbec60) (declare () vec3 refl@0x4bbe130) (declare () vec4 lpatt@0x4bbd670) (declare (temporary ) vec4 lightPosAndAttenuation3_retval@0x4bbd9c0) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation3_retval@0x4bbd9c0) (call lightPosAndAttenuation3 ((var_ref vertex@0x4bbcc90) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x4bbd670) (var_ref lightPosAndAttenuation3_retval@0x4bbd9c0) ) (declare (temporary ) vec3 reflect_retval@0x4bbe500) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x4bbe500) (call reflect ((var_ref eye@0x4bbcda0) (var_ref normal@0x4bbceb0) )) ) (assign (constant bool (1)) (xyz) (var_ref refl@0x4bbe130) (var_ref reflect_retval@0x4bbe500) ) (declare (temporary ) float dot_retval@0x4bbf0c0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x4bbf0c0) (call dot ((swiz xyz (var_ref lpatt@0x4bbd670) )(var_ref normal@0x4bbceb0) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x4bbec60) (var_ref dot_retval@0x4bbf0c0) ) (declare (temporary ) float dot_retval@0x4bbfc80) (assign (constant bool (1)) (x) (var_ref dot_retval@0x4bbfc80) (call dot ((swiz xyz (var_ref lpatt@0x4bbd670) )(var_ref refl@0x4bbe130) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x4bbf820) (var_ref dot_retval@0x4bbfc80) ) (declare (temporary ) float max_retval@0x4bc0d20) (assign (constant bool (1)) (x) (var_ref max_retval@0x4bc0d20) (call max ((constant float (0.000000)) (var_ref NdotL@0x4bbec60) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x4bbcfc0) (expression vec4 + (var_ref pc@0x4bbcfc0) (expression vec4 * (swiz w (var_ref lpatt@0x4bbd670) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b4e550) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x4bc0d20) (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4b4e550) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x4bc2060) (assign (constant bool (1)) (x) (var_ref max_retval@0x4bc2060) (call max ((constant float (0.000000)) (var_ref RdotL@0x4bbf820) )) ) (declare (temporary ) float max_retval@0x4bc26c0) (assign (constant bool (1)) (x) (var_ref max_retval@0x4bc26c0) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b4e550) shininess) )) ) (declare (temporary ) float pow_retval@0x4bc2ab0) (assign (constant bool (1)) (x) (var_ref pow_retval@0x4bc2ab0) (call pow ((var_ref max_retval@0x4bc2060) (var_ref max_retval@0x4bc26c0) )) ) (declare (temporary ) float selfshadowStep_retval@0x4bc2f30) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x4bc2f30) (call selfshadowStep ((var_ref NdotL@0x4bbec60) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x4bbd0d0) (expression vec4 + (var_ref sc@0x4bbd0d0) (expression vec4 * (swiz w (var_ref lpatt@0x4bbd670) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x4bc2ab0) (var_ref selfshadowStep_retval@0x4bc2f30) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4b4e550) specular) ) ) ) ) (return) )) ) (function lighting4 (signature void (parameters (declare (in ) vec4 vertex@0x4bc3e60) (declare (in ) vec3 eye@0x4bc3f70) (declare (in ) vec3 normal@0x4bc4080) (declare (inout ) vec4 pc@0x4bc4190) (declare (inout ) vec4 sc@0x4bc42a0) ) ( (declare () float RdotL@0x4bc69f0) (declare () float NdotL@0x4bc5e30) (declare () vec3 refl@0x4bc5300) (declare () vec4 lpatt@0x4bc4840) (declare (temporary ) vec4 lightPosAndAttenuation4_retval@0x4bc4b90) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation4_retval@0x4bc4b90) (call lightPosAndAttenuation4 ((var_ref vertex@0x4bc3e60) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x4bc4840) (var_ref lightPosAndAttenuation4_retval@0x4bc4b90) ) (declare (temporary ) vec3 reflect_retval@0x4bc56d0) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x4bc56d0) (call reflect ((var_ref eye@0x4bc3f70) (var_ref normal@0x4bc4080) )) ) (assign (constant bool (1)) (xyz) (var_ref refl@0x4bc5300) (var_ref reflect_retval@0x4bc56d0) ) (declare (temporary ) float dot_retval@0x4bc6290) (assign (constant bool (1)) (x) (var_ref dot_retval@0x4bc6290) (call dot ((swiz xyz (var_ref lpatt@0x4bc4840) )(var_ref normal@0x4bc4080) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x4bc5e30) (var_ref dot_retval@0x4bc6290) ) (declare (temporary ) float dot_retval@0x4bc6e50) (assign (constant bool (1)) (x) (var_ref dot_retval@0x4bc6e50) (call dot ((swiz xyz (var_ref lpatt@0x4bc4840) )(var_ref refl@0x4bc5300) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x4bc69f0) (var_ref dot_retval@0x4bc6e50) ) (declare (temporary ) float max_retval@0x4bc7ef0) (assign (constant bool (1)) (x) (var_ref max_retval@0x4bc7ef0) (call max ((constant float (0.000000)) (var_ref NdotL@0x4bc5e30) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x4bc4190) (expression vec4 + (var_ref pc@0x4bc4190) (expression vec4 * (swiz w (var_ref lpatt@0x4bc4840) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b4e550) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x4bc7ef0) (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4b4e550) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x4bc9230) (assign (constant bool (1)) (x) (var_ref max_retval@0x4bc9230) (call max ((constant float (0.000000)) (var_ref RdotL@0x4bc69f0) )) ) (declare (temporary ) float max_retval@0x4bc9890) (assign (constant bool (1)) (x) (var_ref max_retval@0x4bc9890) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b4e550) shininess) )) ) (declare (temporary ) float pow_retval@0x4bc9c80) (assign (constant bool (1)) (x) (var_ref pow_retval@0x4bc9c80) (call pow ((var_ref max_retval@0x4bc9230) (var_ref max_retval@0x4bc9890) )) ) (declare (temporary ) float selfshadowStep_retval@0x4bca100) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x4bca100) (call selfshadowStep ((var_ref NdotL@0x4bc5e30) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x4bc42a0) (expression vec4 + (var_ref sc@0x4bc42a0) (expression vec4 * (swiz w (var_ref lpatt@0x4bc4840) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x4bc9c80) (var_ref selfshadowStep_retval@0x4bca100) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b4e9b0) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4b4e550) specular) ) ) ) ) (return) )) ) (function main (signature void (parameters ) ( (declare () vec4 sc@0x4bd0060) (declare () vec4 pc@0x4bcec20) (declare () vec3 normal@0x4bcc5b0) (declare () vec3 eyetopos@0x4bcba70) (declare () vec4 position@0x4bcb280) (declare (temporary ) vec4 assignment_tmp@0x4bcb5f0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4bcb5f0) (expression vec4 * (var_ref gl_ModelViewMatrix@0x4b4a440) (var_ref gl_Vertex@0x4b05fb0) ) ) (assign (constant bool (1)) (xyzw) (var_ref position@0x4bcb280) (var_ref assignment_tmp@0x4bcb5f0) ) (declare (temporary ) vec3 normalize_retval@0x4bcbe50) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x4bcbe50) (call normalize ((swiz xyz (var_ref assignment_tmp@0x4bcb5f0) ))) ) (assign (constant bool (1)) (xyz) (var_ref eyetopos@0x4bcba70) (var_ref normalize_retval@0x4bcbe50) ) (declare (temporary ) vec3 normalize_retval@0x4bcca20) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x4bcca20) (call normalize ((expression vec3 * (var_ref gl_NormalMatrix@0x4b4a9a0) (var_ref gl_Normal@0x4b06180) ) )) ) (assign (constant bool (1)) (xyz) (var_ref normal@0x4bcc5b0) (var_ref normalize_retval@0x4bcca20) ) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x4b50ab0) (constant int (0)) ) (var_ref gl_MultiTexCoord0@0x4b066f0) ) (declare (temporary ) vec3 reflect_retval@0x4bcdce0) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x4bcdce0) (call reflect ((var_ref eyetopos@0x4bcba70) (var_ref normalize_retval@0x4bcca20) )) ) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x4b50ab0) (constant int (1)) ) (swiz xyz (var_ref reflect_retval@0x4bcdce0) )) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x4b50ab0) (constant int (2)) ) (swiz xyz (var_ref normal@0x4bcc5b0) )) (assign (constant bool (1)) (xyzw) (var_ref pc@0x4bcec20) (expression vec4 + (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x4b4f080) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontMaterial@0x4b4e550) emission) ) (record_ref (var_ref gl_FrontLightModelProduct@0x4b4ebe0) sceneColor) ) (expression vec4 * (expression float i2f (array_ref (var_ref light_enabled@0x4b873c0) (constant int (1)) ) ) (record_ref (array_ref (var_ref gl_FrontLightProduct@0x4b4f080) (constant int (1)) ) ambient) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x4bd0060) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (if (expression bool != (array_ref (var_ref light_enabled@0x4b873c0) (constant int (0)) ) (constant int (0)) ) ( (call lighting0 ((var_ref position@0x4bcb280) (var_ref eyetopos@0x4bcba70) (var_ref normal@0x4bcc5b0) (var_ref pc@0x4bcec20) (var_ref sc@0x4bd0060) )) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x4b873c0) (constant int (1)) ) (constant int (0)) ) ( (call lighting1 ((var_ref position@0x4bcb280) (var_ref eyetopos@0x4bcba70) (var_ref normal@0x4bcc5b0) (var_ref pc@0x4bcec20) (var_ref sc@0x4bd0060) )) ) ()) (if (expression bool >= (var_ref max_light_enabled@0x4b875f0) (constant int (2)) ) ( (if (expression bool != (array_ref (var_ref light_enabled@0x4b873c0) (constant int (2)) ) (constant int (0)) ) ( (call lighting2 ((var_ref position@0x4bcb280) (var_ref eyetopos@0x4bcba70) (var_ref normal@0x4bcc5b0) (var_ref pc@0x4bcec20) (var_ref sc@0x4bd0060) )) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x4b873c0) (constant int (3)) ) (constant int (0)) ) ( (call lighting3 ((var_ref position@0x4bcb280) (var_ref eyetopos@0x4bcba70) (var_ref normal@0x4bcc5b0) (var_ref pc@0x4bcec20) (var_ref sc@0x4bd0060) )) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x4b873c0) (constant int (4)) ) (constant int (0)) ) ( (call lighting4 ((var_ref position@0x4bcb280) (var_ref eyetopos@0x4bcba70) (var_ref normal@0x4bcc5b0) (var_ref pc@0x4bcec20) (var_ref sc@0x4bd0060) )) ) ()) ) ()) (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x4b05c10) (expression vec4 * (var_ref gl_ModelViewProjectionMatrix@0x4b4a7e0) (var_ref gl_Vertex@0x4b05fb0) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_BackColor@0x4b49d00) (var_ref pc@0x4bcec20) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0x4b49b30) (var_ref pc@0x4bcec20) ) (assign (constant bool (1)) (xyzw) (var_ref gl_BackSecondaryColor@0x4b4a0a0) (var_ref sc@0x4bd0060) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontSecondaryColor@0x4b49ed0) (var_ref sc@0x4bd0060) ) )) ) ) GLSL source for shader 12: uniform sampler2D diffuseMap; uniform vec4 cloaking; uniform vec4 damage; uniform vec4 envColor; void main() { // Sample textures vec4 diffusemap = texture2D(diffuseMap, gl_TexCoord[0].xy); gl_FragColor = diffusemap * gl_Color; gl_FragColor.rgb += gl_SecondaryColor.rgb; gl_FragColor *= cloaking.rrrg; } GLSL IR for shader 12: ( (declare (uniform ) vec4 envColor@0x4b137b0) (declare (uniform ) vec4 damage@0x4b13590) (declare (uniform ) vec4 cloaking@0x4b13360) (declare (uniform ) sampler2D diffuseMap@0x4b13130) (declare (in ) vec4 gl_FragCoord@0x4b07510) (declare (in ) bool gl_FrontFacing@0x4b99ee0) (declare (out ) vec4 gl_FragColor@0x4bd8530) (declare (out ) float gl_FragDepth@0x4b94090) (declare (in ) vec4 gl_Color@0x4b8e2e0) (declare (in ) vec4 gl_SecondaryColor@0x4b88450) (declare (in ) float gl_FogFragCoord@0x4b0b720) (declare (uniform ) mat4 gl_ModelViewMatrix@0x4b0b340) (declare (uniform ) mat4 gl_ProjectionMatrix@0x4b08250) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x4ae9f40) (declare (uniform ) mat3 gl_NormalMatrix@0x4bd86b0) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0x4b07a60) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0x4b07c30) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0x4b08500) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0x4b086b0) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0x4b07730) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0x4b078b0) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0x4b88f00) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0x4b89130) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0x4b89940) (declare (uniform ) float gl_NormalScale@0x4b89b20) (declare (uniform ) gl_LightModelParameters gl_LightModel@0x4b8c920) (declare () int gl_MaxLights@0x4b8cb00) (declare () int gl_MaxClipPlanes@0x4b8ed90) (declare () int gl_MaxTextureUnits@0x4b8f7d0) (declare () int gl_MaxTextureCoords@0x4b927b0) (declare () int gl_MaxVertexAttribs@0x4b94b40) (declare () int gl_MaxVertexUniformComponents@0x4b95580) (declare () int gl_MaxVaryingFloats@0x4b98560) (declare () int gl_MaxVertexTextureImageUnits@0x4b9a8f0) (declare () int gl_MaxCombinedTextureImageUnits@0x4b9b330) (declare () int gl_MaxTextureImageUnits@0x4b9e310) (declare () int gl_MaxFragmentUniformComponents@0x4ba06a0) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0x4ba10e0) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0x4ba3fe0) (declare (uniform ) (array vec4 6) gl_ClipPlane@0x4ba4210) (declare (uniform ) gl_PointParameters gl_Point@0x4ba6ca0) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x4ba6ea0) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0x4ba7870) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x4ba7aa0) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x4ba84d0) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0x4ba9130) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0x4baab20) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0x4baad50) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0x4bae4e0) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0x4bae6e0) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0x4baf880) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0x4bafab0) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0x4bb03b0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0x4bb05e0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0x4bb0f70) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0x4bb1170) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0x4bb1b30) (declare (uniform ) gl_FogParameters gl_Fog@0x4bb1d60) (declare (in ) (array vec4 0) gl_TexCoord@0x4bb3480) (declare () int gl_MaxDrawBuffers@0x4bb36b0) (declare (out ) (array vec4 1) gl_FragData@0x4bb5790) (function main (signature void (parameters ) ( (declare (temporary ) vec4 texture2D_retval@0x4b142d0) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x4b142d0) (call texture2D ((var_ref diffuseMap@0x4b13130) (swiz xy (array_ref (var_ref gl_TexCoord@0x4bb3480) (constant int (0)) ) ))) ) (declare (temporary ) vec4 assignment_tmp@0x4b14d20) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4b14d20) (expression vec4 * (var_ref texture2D_retval@0x4b142d0) (var_ref gl_Color@0x4b8e2e0) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x4bd8530) (var_ref assignment_tmp@0x4b14d20) ) (assign (constant bool (1)) (xyz) (var_ref gl_FragColor@0x4bd8530) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4b14d20) )(swiz xyz (var_ref gl_SecondaryColor@0x4b88450) )) )) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x4bd8530) (expression vec4 * (var_ref gl_FragColor@0x4bd8530) (swiz xxxy (var_ref cloaking@0x4b13360) )) ) )) ) ) GLSL IR for linked vertex program 10: ( (declare (uniform ) int max_light_enabled@0x4ac1900) (declare (uniform ) (array int 5) light_enabled@0x4ac19b0) (declare (out ) vec4 gl_Position@0x4b47950) (declare (in ) vec4 gl_Vertex@0x4b15dd0) (declare (in ) vec3 gl_Normal@0x4b15e80) (declare (in ) vec4 gl_MultiTexCoord0@0x4b087c0) (declare (out ) vec4 gl_FrontColor@0x4b21070) (declare (out ) vec4 gl_BackColor@0x4b21120) (declare (out ) vec4 gl_FrontSecondaryColor@0x4b211d0) (declare (out ) vec4 gl_BackSecondaryColor@0x4b21280) (declare (uniform ) mat4 gl_ModelViewMatrix@0x4b213e0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x4b21540) (declare (uniform ) mat3 gl_NormalMatrix@0x4b215f0) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x4b238b0) (declare (uniform ) (array gl_LightSourceParameters 5) gl_LightSource@0x4b23a10) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x4b23ac0) (declare (uniform ) (array gl_LightProducts 2) gl_FrontLightProduct@0x4b23d20) (declare (out ) (array vec4 0) gl_TexCoord@0x4b24560) (function main (signature void (parameters ) ( (declare () vec4 sc@0x4c32f00) (declare () vec4 pc@0x4c33010) (declare (temporary ) vec4 flattening_tmp@0x4d35af0) (assign (constant bool (1)) (xyzw) (var_ref flattening_tmp@0x4d35af0) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4b213e0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x4b15dd0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4b213e0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x4b15dd0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4b213e0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x4b15dd0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4b213e0) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x4b15dd0) )) ) ) (declare () vec3 _ret_val@0x4cd35d0) (declare () vec3 arg0@0x4cd3680) (assign (constant bool (1)) (xyz) (var_ref arg0@0x4cd3680) (swiz xyz (var_ref flattening_tmp@0x4d35af0) )) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x4cd35d0) (expression vec3 * (var_ref arg0@0x4cd3680) (expression float rsq (expression float dot (var_ref arg0@0x4cd3680) (var_ref arg0@0x4cd3680) ) ) ) ) (declare () vec3 _ret_val@0x4cd3ed0) (declare (temporary ) vec3 flattening_tmp@0x4d34a20) (assign (constant bool (1)) (xyz) (var_ref flattening_tmp@0x4d34a20) (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x4b215f0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x4b15e80) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x4b215f0) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x4b15e80) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x4b215f0) (constant int (2)) ) (swiz z (var_ref gl_Normal@0x4b15e80) )) ) ) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x4cd3ed0) (expression vec3 * (var_ref flattening_tmp@0x4d34a20) (expression float rsq (expression float dot (var_ref flattening_tmp@0x4d34a20) (var_ref flattening_tmp@0x4d34a20) ) ) ) ) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x4b24560) (constant int (0)) ) (var_ref gl_MultiTexCoord0@0x4b087c0) ) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x4b24560) (constant int (1)) ) (swiz xyz (expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) )) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x4b24560) (constant int (2)) ) (swiz xyz (var_ref _ret_val@0x4cd3ed0) )) (assign (constant bool (1)) (xyzw) (var_ref pc@0x4c33010) (expression vec4 + (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x4b23d20) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) emission) ) (record_ref (var_ref gl_FrontLightModelProduct@0x4b23ac0) sceneColor) ) (expression vec4 * (expression float i2f (array_ref (var_ref light_enabled@0x4ac19b0) (constant int (1)) ) ) (record_ref (array_ref (var_ref gl_FrontLightProduct@0x4b23d20) (constant int (1)) ) ambient) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x4c32f00) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (if (expression bool != (array_ref (var_ref light_enabled@0x4ac19b0) (constant int (0)) ) (constant int (0)) ) ( (declare () vec4 rv@0x4cd6810) (declare (temporary ) vec4 assignment_tmp@0x4cd68c0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4cd68c0) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (0)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x4cd6810) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4cd68c0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4d35af0) )(swiz w (var_ref assignment_tmp@0x4cd68c0) )) ) ) )) (declare () vec3 arg0@0x4cd7870) (assign (constant bool (1)) (xyz) (var_ref arg0@0x4cd7870) (swiz xyz (var_ref rv@0x4cd6810) )) (assign (constant bool (1)) (w) (var_ref rv@0x4cd6810) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x4cd7870) (var_ref arg0@0x4cd7870) ) ) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x4cd6810) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x4cd6810) )(expression float rcp (swiz w (var_ref rv@0x4cd6810) )) ) )) (declare (temporary ) vec3 vec_ctor@0x4cd8970) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4cd8970) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4cd8970) (swiz www (var_ref rv@0x4cd6810) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4cd8970) (swiz xxx (expression float * (swiz w (var_ref rv@0x4cd6810) )(swiz w (var_ref rv@0x4cd6810) )) )) (declare (temporary ) vec3 vec_ctor@0x4cd9390) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4cd9390) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (0)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4cd9390) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (0)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4cd9390) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (0)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x4cd6810) (swiz xxxx (expression float dot (var_ref vec_ctor@0x4cd8970) (var_ref vec_ctor@0x4cd9390) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x4cd6810) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4cd6810) )) )) (declare () float _ret_val@0x4cdd5a0) (assign (constant bool (1)) (x) (var_ref _ret_val@0x4cdd5a0) (expression float dot (swiz xyz (var_ref rv@0x4cd6810) )(var_ref _ret_val@0x4cd3ed0) ) ) (declare () float t@0x4ce51c0) (assign (constant bool (1)) (x) (var_ref t@0x4ce51c0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x4cdd5a0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x4c33010) (expression vec4 + (var_ref pc@0x4c33010) (expression vec4 * (swiz w (var_ref rv@0x4cd6810) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b238b0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (0)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4cdd5a0) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (0)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x4c32f00) (expression vec4 * (swiz w (var_ref rv@0x4cd6810) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4cd6810) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4ce51c0) (expression float * (var_ref t@0x4ce51c0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4ce51c0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (0)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) specular) ) ) ) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x4ac19b0) (constant int (1)) ) (constant int (0)) ) ( (declare () vec4 rv@0x4ce90f0) (declare (temporary ) vec4 assignment_tmp@0x4ce91a0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4ce91a0) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (1)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x4ce90f0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4ce91a0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4d35af0) )(swiz w (var_ref assignment_tmp@0x4ce91a0) )) ) ) )) (declare () vec3 arg0@0x4cea150) (assign (constant bool (1)) (xyz) (var_ref arg0@0x4cea150) (swiz xyz (var_ref rv@0x4ce90f0) )) (assign (constant bool (1)) (w) (var_ref rv@0x4ce90f0) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x4cea150) (var_ref arg0@0x4cea150) ) ) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x4ce90f0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x4ce90f0) )(expression float rcp (swiz w (var_ref rv@0x4ce90f0) )) ) )) (declare (temporary ) vec3 vec_ctor@0x4ceb250) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4ceb250) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4ceb250) (swiz www (var_ref rv@0x4ce90f0) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4ceb250) (swiz xxx (expression float * (swiz w (var_ref rv@0x4ce90f0) )(swiz w (var_ref rv@0x4ce90f0) )) )) (declare (temporary ) vec3 vec_ctor@0x4cebc70) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4cebc70) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (1)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4cebc70) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (1)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4cebc70) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (1)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x4ce90f0) (swiz xxxx (expression float dot (var_ref vec_ctor@0x4ceb250) (var_ref vec_ctor@0x4cebc70) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x4ce90f0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4ce90f0) )) )) (declare () float _ret_val@0x4cefe80) (assign (constant bool (1)) (x) (var_ref _ret_val@0x4cefe80) (expression float dot (swiz xyz (var_ref rv@0x4ce90f0) )(var_ref _ret_val@0x4cd3ed0) ) ) (declare () float t@0x4cf7aa0) (assign (constant bool (1)) (x) (var_ref t@0x4cf7aa0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x4cefe80) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x4c33010) (expression vec4 + (var_ref pc@0x4c33010) (expression vec4 * (swiz w (var_ref rv@0x4ce90f0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b238b0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (1)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4cefe80) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (1)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x4c32f00) (expression vec4 + (var_ref sc@0x4c32f00) (expression vec4 * (swiz w (var_ref rv@0x4ce90f0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4ce90f0) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4cf7aa0) (expression float * (var_ref t@0x4cf7aa0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4cf7aa0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (1)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) specular) ) ) ) ) ) ()) (if (expression bool >= (var_ref max_light_enabled@0x4ac1900) (constant int (2)) ) ( (if (expression bool != (array_ref (var_ref light_enabled@0x4ac19b0) (constant int (2)) ) (constant int (0)) ) ( (declare () vec4 rv@0x4cfbc70) (declare (temporary ) vec4 assignment_tmp@0x4cfbd80) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4cfbd80) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (2)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x4cfbc70) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4cfbd80) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4d35af0) )(swiz w (var_ref assignment_tmp@0x4cfbd80) )) ) ) )) (declare () vec3 arg0@0x4cfcd30) (assign (constant bool (1)) (xyz) (var_ref arg0@0x4cfcd30) (swiz xyz (var_ref rv@0x4cfbc70) )) (assign (constant bool (1)) (w) (var_ref rv@0x4cfbc70) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x4cfcd30) (var_ref arg0@0x4cfcd30) ) ) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x4cfbc70) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x4cfbc70) )(expression float rcp (swiz w (var_ref rv@0x4cfbc70) )) ) )) (declare (temporary ) vec3 vec_ctor@0x4cfde90) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4cfde90) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4cfde90) (swiz www (var_ref rv@0x4cfbc70) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4cfde90) (swiz xxx (expression float * (swiz w (var_ref rv@0x4cfbc70) )(swiz w (var_ref rv@0x4cfbc70) )) )) (declare (temporary ) vec3 vec_ctor@0x4cfe8b0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4cfe8b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (2)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4cfe8b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (2)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4cfe8b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (2)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x4cfbc70) (swiz xxxx (expression float dot (var_ref vec_ctor@0x4cfde90) (var_ref vec_ctor@0x4cfe8b0) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x4cfbc70) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4cfbc70) )) )) (declare () float _ret_val@0x4d02c40) (assign (constant bool (1)) (x) (var_ref _ret_val@0x4d02c40) (expression float dot (swiz xyz (var_ref rv@0x4cfbc70) )(var_ref _ret_val@0x4cd3ed0) ) ) (declare () float t@0x4d0afe0) (assign (constant bool (1)) (x) (var_ref t@0x4d0afe0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x4d02c40) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x4c33010) (expression vec4 + (var_ref pc@0x4c33010) (expression vec4 * (swiz w (var_ref rv@0x4cfbc70) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b238b0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4d02c40) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x4c32f00) (expression vec4 + (var_ref sc@0x4c32f00) (expression vec4 * (swiz w (var_ref rv@0x4cfbc70) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4cfbc70) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4d0afe0) (expression float * (var_ref t@0x4d0afe0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4d0afe0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) specular) ) ) ) ) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x4ac19b0) (constant int (3)) ) (constant int (0)) ) ( (declare () vec4 rv@0x4d0f330) (declare (temporary ) vec4 assignment_tmp@0x4d0f440) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4d0f440) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (3)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x4d0f330) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4d0f440) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4d35af0) )(swiz w (var_ref assignment_tmp@0x4d0f440) )) ) ) )) (declare () vec3 arg0@0x4d103f0) (assign (constant bool (1)) (xyz) (var_ref arg0@0x4d103f0) (swiz xyz (var_ref rv@0x4d0f330) )) (assign (constant bool (1)) (w) (var_ref rv@0x4d0f330) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x4d103f0) (var_ref arg0@0x4d103f0) ) ) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x4d0f330) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x4d0f330) )(expression float rcp (swiz w (var_ref rv@0x4d0f330) )) ) )) (declare (temporary ) vec3 vec_ctor@0x4d11550) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4d11550) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4d11550) (swiz www (var_ref rv@0x4d0f330) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4d11550) (swiz xxx (expression float * (swiz w (var_ref rv@0x4d0f330) )(swiz w (var_ref rv@0x4d0f330) )) )) (declare (temporary ) vec3 vec_ctor@0x4d11f70) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4d11f70) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (3)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4d11f70) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (3)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4d11f70) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (3)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x4d0f330) (swiz xxxx (expression float dot (var_ref vec_ctor@0x4d11550) (var_ref vec_ctor@0x4d11f70) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x4d0f330) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4d0f330) )) )) (declare () float _ret_val@0x4d16300) (assign (constant bool (1)) (x) (var_ref _ret_val@0x4d16300) (expression float dot (swiz xyz (var_ref rv@0x4d0f330) )(var_ref _ret_val@0x4cd3ed0) ) ) (declare () float t@0x4d1e6a0) (assign (constant bool (1)) (x) (var_ref t@0x4d1e6a0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x4d16300) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x4c33010) (expression vec4 + (var_ref pc@0x4c33010) (expression vec4 * (swiz w (var_ref rv@0x4d0f330) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b238b0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4d16300) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x4c32f00) (expression vec4 + (var_ref sc@0x4c32f00) (expression vec4 * (swiz w (var_ref rv@0x4d0f330) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4d0f330) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4d1e6a0) (expression float * (var_ref t@0x4d1e6a0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4d1e6a0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) specular) ) ) ) ) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x4ac19b0) (constant int (4)) ) (constant int (0)) ) ( (declare () vec4 rv@0x4d229f0) (declare (temporary ) vec4 assignment_tmp@0x4d22b00) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4d22b00) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (4)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x4d229f0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4d22b00) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4d35af0) )(swiz w (var_ref assignment_tmp@0x4d22b00) )) ) ) )) (declare () vec3 arg0@0x4d23ab0) (assign (constant bool (1)) (xyz) (var_ref arg0@0x4d23ab0) (swiz xyz (var_ref rv@0x4d229f0) )) (assign (constant bool (1)) (w) (var_ref rv@0x4d229f0) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x4d23ab0) (var_ref arg0@0x4d23ab0) ) ) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x4d229f0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x4d229f0) )(expression float rcp (swiz w (var_ref rv@0x4d229f0) )) ) )) (declare (temporary ) vec3 vec_ctor@0x4d24c10) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4d24c10) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4d24c10) (swiz www (var_ref rv@0x4d229f0) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4d24c10) (swiz xxx (expression float * (swiz w (var_ref rv@0x4d229f0) )(swiz w (var_ref rv@0x4d229f0) )) )) (declare (temporary ) vec3 vec_ctor@0x4d25630) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4d25630) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (4)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4d25630) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (4)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4d25630) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (4)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x4d229f0) (swiz xxxx (expression float dot (var_ref vec_ctor@0x4d24c10) (var_ref vec_ctor@0x4d25630) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x4d229f0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4d229f0) )) )) (declare () float _ret_val@0x4d299c0) (assign (constant bool (1)) (x) (var_ref _ret_val@0x4d299c0) (expression float dot (swiz xyz (var_ref rv@0x4d229f0) )(var_ref _ret_val@0x4cd3ed0) ) ) (declare () float t@0x4d31d60) (assign (constant bool (1)) (x) (var_ref t@0x4d31d60) (expression float max (expression float min (expression float * (var_ref _ret_val@0x4d299c0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x4c33010) (expression vec4 + (var_ref pc@0x4c33010) (expression vec4 * (swiz w (var_ref rv@0x4d229f0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b238b0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4d299c0) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x4c32f00) (expression vec4 + (var_ref sc@0x4c32f00) (expression vec4 * (swiz w (var_ref rv@0x4d229f0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4d229f0) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4d31d60) (expression float * (var_ref t@0x4d31d60) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4d31d60) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) specular) ) ) ) ) ) ()) ) ()) (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x4b47950) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4b21540) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x4b15dd0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4b21540) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x4b15dd0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4b21540) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x4b15dd0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4b21540) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x4b15dd0) )) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_BackColor@0x4b21120) (var_ref pc@0x4c33010) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0x4b21070) (var_ref pc@0x4c33010) ) (assign (constant bool (1)) (xyzw) (var_ref gl_BackSecondaryColor@0x4b21280) (var_ref sc@0x4c32f00) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontSecondaryColor@0x4b211d0) (var_ref sc@0x4c32f00) ) )) ) ) Mesa IR for linked vertex program 10: 0: (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4b213e0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x4b15dd0) )) MUL TEMP[1], STATE[6], INPUT[0].xxxx; 1: (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4b213e0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x4b15dd0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4b213e0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x4b15dd0) )) ) MAD TEMP[2], STATE[7], INPUT[0].yyyy, TEMP[1]; 2: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4b213e0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x4b15dd0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4b213e0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x4b15dd0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4b213e0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x4b15dd0) )) ) MAD TEMP[3], STATE[8], INPUT[0].zzzz, TEMP[2]; 3: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4b213e0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x4b15dd0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4b213e0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x4b15dd0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4b213e0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x4b15dd0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4b213e0) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x4b15dd0) )) ) MAD TEMP[4], STATE[9], INPUT[0].wwww, TEMP[3]; 4: (assign (constant bool (1)) (xyzw) (var_ref flattening_tmp@0x4d35af0) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4b213e0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x4b15dd0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4b213e0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x4b15dd0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4b213e0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x4b15dd0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x4b213e0) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x4b15dd0) )) ) ) MOV TEMP[5], TEMP[4]; 5: (assign (constant bool (1)) (xyz) (var_ref arg0@0x4cd3680) (swiz xyz (var_ref flattening_tmp@0x4d35af0) )) MOV TEMP[6].xyz, TEMP[5].xyzz; 6: (expression float dot (var_ref arg0@0x4cd3680) (var_ref arg0@0x4cd3680) ) DP3 TEMP[7].x, TEMP[6].xyzz, TEMP[6].xyzz; 7: (expression float rsq (expression float dot (var_ref arg0@0x4cd3680) (var_ref arg0@0x4cd3680) ) ) RSQ TEMP[8].x, TEMP[7].xxxx; 8: (expression vec3 * (var_ref arg0@0x4cd3680) (expression float rsq (expression float dot (var_ref arg0@0x4cd3680) (var_ref arg0@0x4cd3680) ) ) ) MUL TEMP[9].xyz, TEMP[6].xyzz, TEMP[8].xxxx; 9: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x4cd35d0) (expression vec3 * (var_ref arg0@0x4cd3680) (expression float rsq (expression float dot (var_ref arg0@0x4cd3680) (var_ref arg0@0x4cd3680) ) ) ) ) MOV TEMP[10].xyz, TEMP[9].xyzz; 10: (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x4b215f0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x4b15e80) )) MUL TEMP[11].xyz, STATE[10].xyzz, INPUT[2].xxxx; 11: (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x4b215f0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x4b15e80) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x4b215f0) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x4b15e80) )) ) MAD TEMP[12], STATE[11].xyzz, INPUT[2].yyyy, TEMP[11].xyzz; 12: (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x4b215f0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x4b15e80) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x4b215f0) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x4b15e80) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x4b215f0) (constant int (2)) ) (swiz z (var_ref gl_Normal@0x4b15e80) )) ) MAD TEMP[13], STATE[12].xyzz, INPUT[2].zzzz, TEMP[12].xyzz; 13: (assign (constant bool (1)) (xyz) (var_ref flattening_tmp@0x4d34a20) (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x4b215f0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x4b15e80) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x4b215f0) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x4b15e80) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x4b215f0) (constant int (2)) ) (swiz z (var_ref gl_Normal@0x4b15e80) )) ) ) MOV TEMP[14].xyz, TEMP[13].xyzz; 14: (expression float dot (var_ref flattening_tmp@0x4d34a20) (var_ref flattening_tmp@0x4d34a20) ) DP3 TEMP[15].x, TEMP[14].xyzz, TEMP[14].xyzz; 15: (expression float rsq (expression float dot (var_ref flattening_tmp@0x4d34a20) (var_ref flattening_tmp@0x4d34a20) ) ) RSQ TEMP[16].x, TEMP[15].xxxx; 16: (expression vec3 * (var_ref flattening_tmp@0x4d34a20) (expression float rsq (expression float dot (var_ref flattening_tmp@0x4d34a20) (var_ref flattening_tmp@0x4d34a20) ) ) ) MUL TEMP[17].xyz, TEMP[14].xyzz, TEMP[16].xxxx; 17: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x4cd3ed0) (expression vec3 * (var_ref flattening_tmp@0x4d34a20) (expression float rsq (expression float dot (var_ref flattening_tmp@0x4d34a20) (var_ref flattening_tmp@0x4d34a20) ) ) ) ) MOV TEMP[18].xyz, TEMP[17].xyzz; 18: (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x4b24560) (constant int (0)) ) (var_ref gl_MultiTexCoord0@0x4b087c0) ) MOV OUTPUT[4], INPUT[8]; 19: (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) DP3 TEMP[19].x, TEMP[18].xyzz, TEMP[10].xyzz; 20: (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) MUL TEMP[20].xyz, TEMP[19].xxxx, TEMP[18].xyzz; 21: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) MUL TEMP[21].xyz, CONST[14].xxxx, TEMP[20].xyzz; 22: (expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ADD TEMP[23].xyz, TEMP[10].xyzz, TEMP[21].-x-y-z-z; 23: (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x4b24560) (constant int (1)) ) (swiz xyz (expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) )) MOV OUTPUT[5].xyz, TEMP[23].xyzz; 24: (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x4b24560) (constant int (2)) ) (swiz xyz (var_ref _ret_val@0x4cd3ed0) )) MOV OUTPUT[6].xyz, TEMP[18].xyzz; 25: (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x4b23d20) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) emission) ) ADD TEMP[25], STATE[15], STATE[16]; 26: (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x4b23d20) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) emission) ) (record_ref (var_ref gl_FrontLightModelProduct@0x4b23ac0) sceneColor) ) ADD TEMP[26], TEMP[25], STATE[17]; 27: (expression vec4 + (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x4b23d20) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) emission) ) (record_ref (var_ref gl_FrontLightModelProduct@0x4b23ac0) sceneColor) ) (expression vec4 * (expression float i2f (array_ref (var_ref light_enabled@0x4ac19b0) (constant int (1)) ) ) (record_ref (array_ref (var_ref gl_FrontLightProduct@0x4b23d20) (constant int (1)) ) ambient) ) ) MAD TEMP[27], UNIFORM[2].xxxx, STATE[15], TEMP[26]; 28: (assign (constant bool (1)) (xyzw) (var_ref pc@0x4c33010) (expression vec4 + (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x4b23d20) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) emission) ) (record_ref (var_ref gl_FrontLightModelProduct@0x4b23ac0) sceneColor) ) (expression vec4 * (expression float i2f (array_ref (var_ref light_enabled@0x4ac19b0) (constant int (1)) ) ) (record_ref (array_ref (var_ref gl_FrontLightProduct@0x4b23d20) (constant int (1)) ) ambient) ) ) ) MOV TEMP[28], TEMP[27]; 29: (assign (constant bool (1)) (xyzw) (var_ref sc@0x4c32f00) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) MOV TEMP[29], CONST[18]; 30: (expression bool != (array_ref (var_ref light_enabled@0x4ac19b0) (constant int (0)) ) (constant int (0)) ) SNE.C TEMP[30].x, UNIFORM[1].xxxx, CONST[18].xxxx; 31: IF (NE.xxxx); # (if false, goto 85); 32: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4cd68c0) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (0)) ) position) ) MOV TEMP[31], STATE[19]; 33: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4d35af0) )(swiz w (var_ref assignment_tmp@0x4cd68c0) )) MUL TEMP[32].xyz, TEMP[5].xyzz, TEMP[31].wwww; 34: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4cd68c0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4d35af0) )(swiz w (var_ref assignment_tmp@0x4cd68c0) )) ) ) ADD TEMP[34].xyz, TEMP[31].xyzz, TEMP[32].-x-y-z-z; 35: (assign (constant bool (1)) (xyz) (var_ref rv@0x4cd6810) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4cd68c0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4d35af0) )(swiz w (var_ref assignment_tmp@0x4cd68c0) )) ) ) )) MOV TEMP[35].xyz, TEMP[34].xyzz; 36: (assign (constant bool (1)) (xyz) (var_ref arg0@0x4cd7870) (swiz xyz (var_ref rv@0x4cd6810) )) MOV TEMP[36].xyz, TEMP[35].xyzz; 37: (expression float dot (var_ref arg0@0x4cd7870) (var_ref arg0@0x4cd7870) ) DP3 TEMP[37].x, TEMP[36].xyzz, TEMP[36].xyzz; 38: (expression float sqrt (expression float dot (var_ref arg0@0x4cd7870) (var_ref arg0@0x4cd7870) ) ) RSQ TEMP[38].x, TEMP[37].xxxx; 39: MUL TEMP[38].x, TEMP[38].xxxx, TEMP[37].xxxx; 40: CMP TEMP[38].x, TEMP[37].-x-x-x-x, TEMP[38].xxxx, CONST[18].xxxx; 41: (assign (constant bool (1)) (w) (var_ref rv@0x4cd6810) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x4cd7870) (var_ref arg0@0x4cd7870) ) ) )) MOV TEMP[35].w, TEMP[38].xxxx; 42: (expression float rcp (swiz w (var_ref rv@0x4cd6810) )) RCP TEMP[39].x, TEMP[35].wwww; 43: (expression vec3 * (swiz xyz (var_ref rv@0x4cd6810) )(expression float rcp (swiz w (var_ref rv@0x4cd6810) )) ) MUL TEMP[40].xyz, TEMP[35].xyzz, TEMP[39].xxxx; 44: (assign (constant bool (1)) (xyz) (var_ref rv@0x4cd6810) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x4cd6810) )(expression float rcp (swiz w (var_ref rv@0x4cd6810) )) ) )) MOV TEMP[35].xyz, TEMP[40].xyzz; 45: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4cd8970) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[41].x, CONST[20]; 46: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4cd8970) (swiz www (var_ref rv@0x4cd6810) )) MOV TEMP[41].y, TEMP[35].wwww; 47: (expression float * (swiz w (var_ref rv@0x4cd6810) )(swiz w (var_ref rv@0x4cd6810) )) MUL TEMP[42].x, TEMP[35].wwww, TEMP[35].wwww; 48: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4cd8970) (swiz xxx (expression float * (swiz w (var_ref rv@0x4cd6810) )(swiz w (var_ref rv@0x4cd6810) )) )) MOV TEMP[41].z, TEMP[42].xxxx; 49: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4cd9390) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (0)) ) constantAttenuation) )) MOV TEMP[43].x, STATE[21].xxxx; 50: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4cd9390) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (0)) ) linearAttenuation) )) MOV TEMP[43].y, STATE[21].yyyy; 51: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4cd9390) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (0)) ) quadraticAttenuation) )) MOV TEMP[43].z, STATE[21].zzzz; 52: (expression float dot (var_ref vec_ctor@0x4cd8970) (var_ref vec_ctor@0x4cd9390) ) DP3 TEMP[44].x, TEMP[41].xyzz, TEMP[43].xyzz; 53: (assign (constant bool (1)) (w) (var_ref rv@0x4cd6810) (swiz xxxx (expression float dot (var_ref vec_ctor@0x4cd8970) (var_ref vec_ctor@0x4cd9390) ) )) MOV TEMP[35].w, TEMP[44].xxxx; 54: (expression float rcp (swiz w (var_ref rv@0x4cd6810) )) RCP TEMP[45].x, TEMP[35].wwww; 55: (assign (constant bool (1)) (w) (var_ref rv@0x4cd6810) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4cd6810) )) )) MOV TEMP[35].w, TEMP[45].xxxx; 56: (expression float dot (swiz xyz (var_ref rv@0x4cd6810) )(var_ref _ret_val@0x4cd3ed0) ) DP3 TEMP[46].x, TEMP[35].xyzz, TEMP[18].xyzz; 57: (assign (constant bool (1)) (x) (var_ref _ret_val@0x4cdd5a0) (expression float dot (swiz xyz (var_ref rv@0x4cd6810) )(var_ref _ret_val@0x4cd3ed0) ) ) MOV TEMP[47], TEMP[46].xxxx; 58: (expression float * (var_ref _ret_val@0x4cdd5a0) (constant float (4.000000)) ) MUL TEMP[48].x, TEMP[47].xxxx, CONST[14].yyyy; 59: (expression float min (expression float * (var_ref _ret_val@0x4cdd5a0) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[49].x, TEMP[48].xxxx, CONST[20].xxxx; 60: (expression float max (expression float min (expression float * (var_ref _ret_val@0x4cdd5a0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[50].x, TEMP[49].xxxx, CONST[18].xxxx; 61: (assign (constant bool (1)) (x) (var_ref t@0x4ce51c0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x4cdd5a0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[51], TEMP[50].xxxx; 62: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4cdd5a0) ) MAX TEMP[52].x, CONST[18].xxxx, TEMP[47].xxxx; 63: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4cdd5a0) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (0)) ) diffuse) ) MUL TEMP[53], TEMP[52].xxxx, STATE[22]; 64: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b238b0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (0)) ) ambient) ) MUL TEMP[54], STATE[24], STATE[25]; 65: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b238b0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (0)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4cdd5a0) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (0)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) diffuse) ) ) MAD TEMP[55], TEMP[53], STATE[23], TEMP[54]; 66: (expression vec4 + (var_ref pc@0x4c33010) (expression vec4 * (swiz w (var_ref rv@0x4cd6810) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b238b0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (0)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4cdd5a0) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (0)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) diffuse) ) ) ) ) MAD TEMP[56], TEMP[35].wwww, TEMP[55], TEMP[28]; 67: (assign (constant bool (1)) (xyzw) (var_ref pc@0x4c33010) (expression vec4 + (var_ref pc@0x4c33010) (expression vec4 * (swiz w (var_ref rv@0x4cd6810) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b238b0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (0)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4cdd5a0) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (0)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) diffuse) ) ) ) ) ) MOV TEMP[28], TEMP[56]; 68: (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) DP3 TEMP[57].x, TEMP[18].xyzz, TEMP[10].xyzz; 69: (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) MUL TEMP[58].xyz, TEMP[57].xxxx, TEMP[18].xyzz; 70: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) MUL TEMP[59].xyz, CONST[14].xxxx, TEMP[58].xyzz; 71: (expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ADD TEMP[61].xyz, TEMP[10].xyzz, TEMP[59].-x-y-z-z; 72: (expression float dot (swiz xyz (var_ref rv@0x4cd6810) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) DP3 TEMP[62].x, TEMP[35].xyzz, TEMP[61].xyzz; 73: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4cd6810) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) MAX TEMP[63].x, CONST[18].xxxx, TEMP[62].xxxx; 74: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) MAX TEMP[64].x, CONST[20].xxxx, STATE[26].xxxx; 75: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4cd6810) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) POW TEMP[65].x, TEMP[63].xxxx, TEMP[64].xxxx; 76: (expression float * (constant float (2.000000)) (var_ref t@0x4ce51c0) ) MUL TEMP[66].x, CONST[14].xxxx, TEMP[51].xxxx; 77: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4ce51c0) ) ) ) ADD TEMP[68].x, CONST[14].zzzz, TEMP[66].-x-x-x-x; 78: (expression float * (var_ref t@0x4ce51c0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4ce51c0) ) ) ) ) MUL TEMP[69].x, TEMP[51].xxxx, TEMP[68].xxxx; 79: (expression float * (var_ref t@0x4ce51c0) (expression float * (var_ref t@0x4ce51c0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4ce51c0) ) ) ) ) ) MUL TEMP[70].x, TEMP[51].xxxx, TEMP[69].xxxx; 80: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4cd6810) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4ce51c0) (expression float * (var_ref t@0x4ce51c0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4ce51c0) ) ) ) ) ) ) MUL TEMP[71].x, TEMP[65].xxxx, TEMP[70].xxxx; 81: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4cd6810) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4ce51c0) (expression float * (var_ref t@0x4ce51c0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4ce51c0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (0)) ) specular) ) MUL TEMP[72], TEMP[71].xxxx, STATE[27]; 82: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4cd6810) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4ce51c0) (expression float * (var_ref t@0x4ce51c0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4ce51c0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (0)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) specular) ) MUL TEMP[73], TEMP[72], STATE[28]; 83: (expression vec4 * (swiz w (var_ref rv@0x4cd6810) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4cd6810) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4ce51c0) (expression float * (var_ref t@0x4ce51c0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4ce51c0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (0)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) specular) ) ) MUL TEMP[74], TEMP[35].wwww, TEMP[73]; 84: (assign (constant bool (1)) (xyzw) (var_ref sc@0x4c32f00) (expression vec4 * (swiz w (var_ref rv@0x4cd6810) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4cd6810) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4ce51c0) (expression float * (var_ref t@0x4ce51c0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4ce51c0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (0)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) specular) ) ) ) MOV TEMP[29], TEMP[74]; 85: (expression bool != (array_ref (var_ref light_enabled@0x4ac19b0) (constant int (0)) ) (constant int (0)) ) ENDIF; 86: (expression bool != (array_ref (var_ref light_enabled@0x4ac19b0) (constant int (1)) ) (constant int (0)) ) SNE.C TEMP[75].x, UNIFORM[2].xxxx, CONST[18].xxxx; 87: IF (NE.xxxx); # (if false, goto 141); 88: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4ce91a0) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (1)) ) position) ) MOV TEMP[76], STATE[19]; 89: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4d35af0) )(swiz w (var_ref assignment_tmp@0x4ce91a0) )) MUL TEMP[77].xyz, TEMP[5].xyzz, TEMP[76].wwww; 90: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4ce91a0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4d35af0) )(swiz w (var_ref assignment_tmp@0x4ce91a0) )) ) ) ADD TEMP[79].xyz, TEMP[76].xyzz, TEMP[77].-x-y-z-z; 91: (assign (constant bool (1)) (xyz) (var_ref rv@0x4ce90f0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4ce91a0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4d35af0) )(swiz w (var_ref assignment_tmp@0x4ce91a0) )) ) ) )) MOV TEMP[80].xyz, TEMP[79].xyzz; 92: (assign (constant bool (1)) (xyz) (var_ref arg0@0x4cea150) (swiz xyz (var_ref rv@0x4ce90f0) )) MOV TEMP[81].xyz, TEMP[80].xyzz; 93: (expression float dot (var_ref arg0@0x4cea150) (var_ref arg0@0x4cea150) ) DP3 TEMP[82].x, TEMP[81].xyzz, TEMP[81].xyzz; 94: (expression float sqrt (expression float dot (var_ref arg0@0x4cea150) (var_ref arg0@0x4cea150) ) ) RSQ TEMP[83].x, TEMP[82].xxxx; 95: MUL TEMP[83].x, TEMP[83].xxxx, TEMP[82].xxxx; 96: CMP TEMP[83].x, TEMP[82].-x-x-x-x, TEMP[83].xxxx, CONST[18].xxxx; 97: (assign (constant bool (1)) (w) (var_ref rv@0x4ce90f0) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x4cea150) (var_ref arg0@0x4cea150) ) ) )) MOV TEMP[80].w, TEMP[83].xxxx; 98: (expression float rcp (swiz w (var_ref rv@0x4ce90f0) )) RCP TEMP[84].x, TEMP[80].wwww; 99: (expression vec3 * (swiz xyz (var_ref rv@0x4ce90f0) )(expression float rcp (swiz w (var_ref rv@0x4ce90f0) )) ) MUL TEMP[85].xyz, TEMP[80].xyzz, TEMP[84].xxxx; 100: (assign (constant bool (1)) (xyz) (var_ref rv@0x4ce90f0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x4ce90f0) )(expression float rcp (swiz w (var_ref rv@0x4ce90f0) )) ) )) MOV TEMP[80].xyz, TEMP[85].xyzz; 101: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4ceb250) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[86].x, CONST[20].xyzz; 102: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4ceb250) (swiz www (var_ref rv@0x4ce90f0) )) MOV TEMP[86].y, TEMP[80].wwww; 103: (expression float * (swiz w (var_ref rv@0x4ce90f0) )(swiz w (var_ref rv@0x4ce90f0) )) MUL TEMP[87].x, TEMP[80].wwww, TEMP[80].wwww; 104: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4ceb250) (swiz xxx (expression float * (swiz w (var_ref rv@0x4ce90f0) )(swiz w (var_ref rv@0x4ce90f0) )) )) MOV TEMP[86].z, TEMP[87].xxxx; 105: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4cebc70) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (1)) ) constantAttenuation) )) MOV TEMP[88].x, STATE[21].xxxx; 106: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4cebc70) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (1)) ) linearAttenuation) )) MOV TEMP[88].y, STATE[21].yyyy; 107: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4cebc70) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (1)) ) quadraticAttenuation) )) MOV TEMP[88].z, STATE[21].zzzz; 108: (expression float dot (var_ref vec_ctor@0x4ceb250) (var_ref vec_ctor@0x4cebc70) ) DP3 TEMP[89].x, TEMP[86].xyzz, TEMP[88].xyzz; 109: (assign (constant bool (1)) (w) (var_ref rv@0x4ce90f0) (swiz xxxx (expression float dot (var_ref vec_ctor@0x4ceb250) (var_ref vec_ctor@0x4cebc70) ) )) MOV TEMP[80].w, TEMP[89].xxxx; 110: (expression float rcp (swiz w (var_ref rv@0x4ce90f0) )) RCP TEMP[90].x, TEMP[80].wwww; 111: (assign (constant bool (1)) (w) (var_ref rv@0x4ce90f0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4ce90f0) )) )) MOV TEMP[80].w, TEMP[90].xxxx; 112: (expression float dot (swiz xyz (var_ref rv@0x4ce90f0) )(var_ref _ret_val@0x4cd3ed0) ) DP3 TEMP[91].x, TEMP[80].xyzz, TEMP[18].xyzz; 113: (assign (constant bool (1)) (x) (var_ref _ret_val@0x4cefe80) (expression float dot (swiz xyz (var_ref rv@0x4ce90f0) )(var_ref _ret_val@0x4cd3ed0) ) ) MOV TEMP[92], TEMP[91].xxxx; 114: (expression float * (var_ref _ret_val@0x4cefe80) (constant float (4.000000)) ) MUL TEMP[93].x, TEMP[92].xxxx, CONST[14].yyyy; 115: (expression float min (expression float * (var_ref _ret_val@0x4cefe80) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[94].x, TEMP[93].xxxx, CONST[20].xxxx; 116: (expression float max (expression float min (expression float * (var_ref _ret_val@0x4cefe80) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[95].x, TEMP[94].xxxx, CONST[18].xxxx; 117: (assign (constant bool (1)) (x) (var_ref t@0x4cf7aa0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x4cefe80) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[96], TEMP[95].xxxx; 118: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4cefe80) ) MAX TEMP[97].x, CONST[18].xxxx, TEMP[92].xxxx; 119: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4cefe80) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (1)) ) diffuse) ) MUL TEMP[98], TEMP[97].xxxx, STATE[22]; 120: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b238b0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (1)) ) ambient) ) MUL TEMP[99], STATE[24], STATE[25]; 121: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b238b0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (1)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4cefe80) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (1)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) diffuse) ) ) MAD TEMP[100], TEMP[98], STATE[23], TEMP[99]; 122: (expression vec4 + (var_ref pc@0x4c33010) (expression vec4 * (swiz w (var_ref rv@0x4ce90f0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b238b0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (1)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4cefe80) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (1)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) diffuse) ) ) ) ) MAD TEMP[101], TEMP[80].wwww, TEMP[100], TEMP[28]; 123: (assign (constant bool (1)) (xyzw) (var_ref pc@0x4c33010) (expression vec4 + (var_ref pc@0x4c33010) (expression vec4 * (swiz w (var_ref rv@0x4ce90f0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b238b0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (1)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4cefe80) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (1)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) diffuse) ) ) ) ) ) MOV TEMP[28], TEMP[101]; 124: (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) DP3 TEMP[102].x, TEMP[18].xyzz, TEMP[10].xyzz; 125: (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) MUL TEMP[103].xyz, TEMP[102].xxxx, TEMP[18].xyzz; 126: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) MUL TEMP[104].xyz, CONST[14].xxxx, TEMP[103].xyzz; 127: (expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ADD TEMP[106].xyz, TEMP[10].xyzz, TEMP[104].-x-y-z-z; 128: (expression float dot (swiz xyz (var_ref rv@0x4ce90f0) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) DP3 TEMP[107].x, TEMP[80].xyzz, TEMP[106].xyzz; 129: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4ce90f0) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) MAX TEMP[108].x, CONST[18].xxxx, TEMP[107].xxxx; 130: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) MAX TEMP[109].x, CONST[20].xxxx, STATE[26].xxxx; 131: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4ce90f0) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) POW TEMP[110].x, TEMP[108].xxxx, TEMP[109].xxxx; 132: (expression float * (constant float (2.000000)) (var_ref t@0x4cf7aa0) ) MUL TEMP[111].x, CONST[14].xxxx, TEMP[96].xxxx; 133: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4cf7aa0) ) ) ) ADD TEMP[113].x, CONST[14].zzzz, TEMP[111].-x-x-x-x; 134: (expression float * (var_ref t@0x4cf7aa0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4cf7aa0) ) ) ) ) MUL TEMP[114].x, TEMP[96].xxxx, TEMP[113].xxxx; 135: (expression float * (var_ref t@0x4cf7aa0) (expression float * (var_ref t@0x4cf7aa0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4cf7aa0) ) ) ) ) ) MUL TEMP[115].x, TEMP[96].xxxx, TEMP[114].xxxx; 136: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4ce90f0) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4cf7aa0) (expression float * (var_ref t@0x4cf7aa0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4cf7aa0) ) ) ) ) ) ) MUL TEMP[116].x, TEMP[110].xxxx, TEMP[115].xxxx; 137: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4ce90f0) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4cf7aa0) (expression float * (var_ref t@0x4cf7aa0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4cf7aa0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (1)) ) specular) ) MUL TEMP[117], TEMP[116].xxxx, STATE[27]; 138: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4ce90f0) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4cf7aa0) (expression float * (var_ref t@0x4cf7aa0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4cf7aa0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (1)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) specular) ) MUL TEMP[118], TEMP[117], STATE[28]; 139: (expression vec4 + (var_ref sc@0x4c32f00) (expression vec4 * (swiz w (var_ref rv@0x4ce90f0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4ce90f0) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4cf7aa0) (expression float * (var_ref t@0x4cf7aa0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4cf7aa0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (1)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) specular) ) ) ) MAD TEMP[119], TEMP[80].wwww, TEMP[118], TEMP[29]; 140: (assign (constant bool (1)) (xyzw) (var_ref sc@0x4c32f00) (expression vec4 + (var_ref sc@0x4c32f00) (expression vec4 * (swiz w (var_ref rv@0x4ce90f0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4ce90f0) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4cf7aa0) (expression float * (var_ref t@0x4cf7aa0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4cf7aa0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (1)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) specular) ) ) ) ) MOV TEMP[29], TEMP[119]; 141: (expression bool != (array_ref (var_ref light_enabled@0x4ac19b0) (constant int (1)) ) (constant int (0)) ) ENDIF; 142: (expression bool >= (var_ref max_light_enabled@0x4ac1900) (constant int (2)) ) SGE.C TEMP[120].x, UNIFORM[0].xxxx, CONST[14].xxxx; 143: IF (NE.xxxx); # (if false, goto 312); 144: (expression bool != (array_ref (var_ref light_enabled@0x4ac19b0) (constant int (2)) ) (constant int (0)) ) SNE.C TEMP[121].x, UNIFORM[3].xxxx, CONST[18].xxxx; 145: IF (NE.xxxx); # (if false, goto 199); 146: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4cfbd80) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (2)) ) position) ) MOV TEMP[122], STATE[19]; 147: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4d35af0) )(swiz w (var_ref assignment_tmp@0x4cfbd80) )) MUL TEMP[123].xyz, TEMP[5].xyzz, TEMP[122].wwww; 148: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4cfbd80) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4d35af0) )(swiz w (var_ref assignment_tmp@0x4cfbd80) )) ) ) ADD TEMP[125].xyz, TEMP[122].xyzz, TEMP[123].-x-y-z-z; 149: (assign (constant bool (1)) (xyz) (var_ref rv@0x4cfbc70) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4cfbd80) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4d35af0) )(swiz w (var_ref assignment_tmp@0x4cfbd80) )) ) ) )) MOV TEMP[126].xyz, TEMP[125].xyzz; 150: (assign (constant bool (1)) (xyz) (var_ref arg0@0x4cfcd30) (swiz xyz (var_ref rv@0x4cfbc70) )) MOV TEMP[127].xyz, TEMP[126].xyzz; 151: (expression float dot (var_ref arg0@0x4cfcd30) (var_ref arg0@0x4cfcd30) ) DP3 TEMP[128].x, TEMP[127].xyzz, TEMP[127].xyzz; 152: (expression float sqrt (expression float dot (var_ref arg0@0x4cfcd30) (var_ref arg0@0x4cfcd30) ) ) RSQ TEMP[129].x, TEMP[128].xxxx; 153: MUL TEMP[129].x, TEMP[129].xxxx, TEMP[128].xxxx; 154: CMP TEMP[129].x, TEMP[128].-x-x-x-x, TEMP[129].xxxx, CONST[18].xxxx; 155: (assign (constant bool (1)) (w) (var_ref rv@0x4cfbc70) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x4cfcd30) (var_ref arg0@0x4cfcd30) ) ) )) MOV TEMP[126].w, TEMP[129].xxxx; 156: (expression float rcp (swiz w (var_ref rv@0x4cfbc70) )) RCP TEMP[130].x, TEMP[126].wwww; 157: (expression vec3 * (swiz xyz (var_ref rv@0x4cfbc70) )(expression float rcp (swiz w (var_ref rv@0x4cfbc70) )) ) MUL TEMP[131].xyz, TEMP[126].xyzz, TEMP[130].xxxx; 158: (assign (constant bool (1)) (xyz) (var_ref rv@0x4cfbc70) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x4cfbc70) )(expression float rcp (swiz w (var_ref rv@0x4cfbc70) )) ) )) MOV TEMP[126].xyz, TEMP[131].xyzz; 159: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4cfde90) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[132].x, CONST[20].xyzz; 160: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4cfde90) (swiz www (var_ref rv@0x4cfbc70) )) MOV TEMP[132].y, TEMP[126].wwww; 161: (expression float * (swiz w (var_ref rv@0x4cfbc70) )(swiz w (var_ref rv@0x4cfbc70) )) MUL TEMP[133].x, TEMP[126].wwww, TEMP[126].wwww; 162: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4cfde90) (swiz xxx (expression float * (swiz w (var_ref rv@0x4cfbc70) )(swiz w (var_ref rv@0x4cfbc70) )) )) MOV TEMP[132].z, TEMP[133].xxxx; 163: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4cfe8b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (2)) ) constantAttenuation) )) MOV TEMP[134].x, STATE[21].xxxx; 164: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4cfe8b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (2)) ) linearAttenuation) )) MOV TEMP[134].y, STATE[21].yyyy; 165: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4cfe8b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (2)) ) quadraticAttenuation) )) MOV TEMP[134].z, STATE[21].zzzz; 166: (expression float dot (var_ref vec_ctor@0x4cfde90) (var_ref vec_ctor@0x4cfe8b0) ) DP3 TEMP[135].x, TEMP[132].xyzz, TEMP[134].xyzz; 167: (assign (constant bool (1)) (w) (var_ref rv@0x4cfbc70) (swiz xxxx (expression float dot (var_ref vec_ctor@0x4cfde90) (var_ref vec_ctor@0x4cfe8b0) ) )) MOV TEMP[126].w, TEMP[135].xxxx; 168: (expression float rcp (swiz w (var_ref rv@0x4cfbc70) )) RCP TEMP[136].x, TEMP[126].wwww; 169: (assign (constant bool (1)) (w) (var_ref rv@0x4cfbc70) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4cfbc70) )) )) MOV TEMP[126].w, TEMP[136].xxxx; 170: (expression float dot (swiz xyz (var_ref rv@0x4cfbc70) )(var_ref _ret_val@0x4cd3ed0) ) DP3 TEMP[137].x, TEMP[126].xyzz, TEMP[18].xyzz; 171: (assign (constant bool (1)) (x) (var_ref _ret_val@0x4d02c40) (expression float dot (swiz xyz (var_ref rv@0x4cfbc70) )(var_ref _ret_val@0x4cd3ed0) ) ) MOV TEMP[138], TEMP[137].xxxx; 172: (expression float * (var_ref _ret_val@0x4d02c40) (constant float (4.000000)) ) MUL TEMP[139].x, TEMP[138].xxxx, CONST[14].yyyy; 173: (expression float min (expression float * (var_ref _ret_val@0x4d02c40) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[140].x, TEMP[139].xxxx, CONST[20].xxxx; 174: (expression float max (expression float min (expression float * (var_ref _ret_val@0x4d02c40) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[141].x, TEMP[140].xxxx, CONST[18].xxxx; 175: (assign (constant bool (1)) (x) (var_ref t@0x4d0afe0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x4d02c40) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[142], TEMP[141].xxxx; 176: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4d02c40) ) MAX TEMP[143].x, CONST[18].xxxx, TEMP[138].xxxx; 177: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4d02c40) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (2)) ) diffuse) ) MUL TEMP[144], TEMP[143].xxxx, STATE[22]; 178: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b238b0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (2)) ) ambient) ) MUL TEMP[145], STATE[24], STATE[25]; 179: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b238b0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4d02c40) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) diffuse) ) ) MAD TEMP[146], TEMP[144], STATE[23], TEMP[145]; 180: (expression vec4 + (var_ref pc@0x4c33010) (expression vec4 * (swiz w (var_ref rv@0x4cfbc70) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b238b0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4d02c40) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) diffuse) ) ) ) ) MAD TEMP[147], TEMP[126].wwww, TEMP[146], TEMP[28]; 181: (assign (constant bool (1)) (xyzw) (var_ref pc@0x4c33010) (expression vec4 + (var_ref pc@0x4c33010) (expression vec4 * (swiz w (var_ref rv@0x4cfbc70) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b238b0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4d02c40) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) diffuse) ) ) ) ) ) MOV TEMP[28], TEMP[147]; 182: (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) DP3 TEMP[148].x, TEMP[18].xyzz, TEMP[10].xyzz; 183: (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) MUL TEMP[149].xyz, TEMP[148].xxxx, TEMP[18].xyzz; 184: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) MUL TEMP[150].xyz, CONST[14].xxxx, TEMP[149].xyzz; 185: (expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ADD TEMP[152].xyz, TEMP[10].xyzz, TEMP[150].-x-y-z-z; 186: (expression float dot (swiz xyz (var_ref rv@0x4cfbc70) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) DP3 TEMP[153].x, TEMP[126].xyzz, TEMP[152].xyzz; 187: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4cfbc70) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) MAX TEMP[154].x, CONST[18].xxxx, TEMP[153].xxxx; 188: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) MAX TEMP[155].x, CONST[20].xxxx, STATE[26].xxxx; 189: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4cfbc70) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) POW TEMP[156].x, TEMP[154].xxxx, TEMP[155].xxxx; 190: (expression float * (constant float (2.000000)) (var_ref t@0x4d0afe0) ) MUL TEMP[157].x, CONST[14].xxxx, TEMP[142].xxxx; 191: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4d0afe0) ) ) ) ADD TEMP[159].x, CONST[14].zzzz, TEMP[157].-x-x-x-x; 192: (expression float * (var_ref t@0x4d0afe0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4d0afe0) ) ) ) ) MUL TEMP[160].x, TEMP[142].xxxx, TEMP[159].xxxx; 193: (expression float * (var_ref t@0x4d0afe0) (expression float * (var_ref t@0x4d0afe0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4d0afe0) ) ) ) ) ) MUL TEMP[161].x, TEMP[142].xxxx, TEMP[160].xxxx; 194: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4cfbc70) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4d0afe0) (expression float * (var_ref t@0x4d0afe0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4d0afe0) ) ) ) ) ) ) MUL TEMP[162].x, TEMP[156].xxxx, TEMP[161].xxxx; 195: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4cfbc70) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4d0afe0) (expression float * (var_ref t@0x4d0afe0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4d0afe0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (2)) ) specular) ) MUL TEMP[163], TEMP[162].xxxx, STATE[27]; 196: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4cfbc70) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4d0afe0) (expression float * (var_ref t@0x4d0afe0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4d0afe0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) specular) ) MUL TEMP[164], TEMP[163], STATE[28]; 197: (expression vec4 + (var_ref sc@0x4c32f00) (expression vec4 * (swiz w (var_ref rv@0x4cfbc70) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4cfbc70) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4d0afe0) (expression float * (var_ref t@0x4d0afe0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4d0afe0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) specular) ) ) ) MAD TEMP[165], TEMP[126].wwww, TEMP[164], TEMP[29]; 198: (assign (constant bool (1)) (xyzw) (var_ref sc@0x4c32f00) (expression vec4 + (var_ref sc@0x4c32f00) (expression vec4 * (swiz w (var_ref rv@0x4cfbc70) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4cfbc70) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4d0afe0) (expression float * (var_ref t@0x4d0afe0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4d0afe0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) specular) ) ) ) ) MOV TEMP[29], TEMP[165]; 199: (expression bool != (array_ref (var_ref light_enabled@0x4ac19b0) (constant int (2)) ) (constant int (0)) ) ENDIF; 200: (expression bool != (array_ref (var_ref light_enabled@0x4ac19b0) (constant int (3)) ) (constant int (0)) ) SNE.C TEMP[166].x, UNIFORM[4].xxxx, CONST[18].xxxx; 201: IF (NE.xxxx); # (if false, goto 255); 202: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4d0f440) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (3)) ) position) ) MOV TEMP[167], STATE[19]; 203: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4d35af0) )(swiz w (var_ref assignment_tmp@0x4d0f440) )) MUL TEMP[168].xyz, TEMP[5].xyzz, TEMP[167].wwww; 204: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4d0f440) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4d35af0) )(swiz w (var_ref assignment_tmp@0x4d0f440) )) ) ) ADD TEMP[170].xyz, TEMP[167].xyzz, TEMP[168].-x-y-z-z; 205: (assign (constant bool (1)) (xyz) (var_ref rv@0x4d0f330) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4d0f440) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4d35af0) )(swiz w (var_ref assignment_tmp@0x4d0f440) )) ) ) )) MOV TEMP[171].xyz, TEMP[170].xyzz; 206: (assign (constant bool (1)) (xyz) (var_ref arg0@0x4d103f0) (swiz xyz (var_ref rv@0x4d0f330) )) MOV TEMP[172].xyz, TEMP[171].xyzz; 207: (expression float dot (var_ref arg0@0x4d103f0) (var_ref arg0@0x4d103f0) ) DP3 TEMP[173].x, TEMP[172].xyzz, TEMP[172].xyzz; 208: (expression float sqrt (expression float dot (var_ref arg0@0x4d103f0) (var_ref arg0@0x4d103f0) ) ) RSQ TEMP[174].x, TEMP[173].xxxx; 209: MUL TEMP[174].x, TEMP[174].xxxx, TEMP[173].xxxx; 210: CMP TEMP[174].x, TEMP[173].-x-x-x-x, TEMP[174].xxxx, CONST[18].xxxx; 211: (assign (constant bool (1)) (w) (var_ref rv@0x4d0f330) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x4d103f0) (var_ref arg0@0x4d103f0) ) ) )) MOV TEMP[171].w, TEMP[174].xxxx; 212: (expression float rcp (swiz w (var_ref rv@0x4d0f330) )) RCP TEMP[175].x, TEMP[171].wwww; 213: (expression vec3 * (swiz xyz (var_ref rv@0x4d0f330) )(expression float rcp (swiz w (var_ref rv@0x4d0f330) )) ) MUL TEMP[176].xyz, TEMP[171].xyzz, TEMP[175].xxxx; 214: (assign (constant bool (1)) (xyz) (var_ref rv@0x4d0f330) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x4d0f330) )(expression float rcp (swiz w (var_ref rv@0x4d0f330) )) ) )) MOV TEMP[171].xyz, TEMP[176].xyzz; 215: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4d11550) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[177].x, CONST[20].xyzz; 216: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4d11550) (swiz www (var_ref rv@0x4d0f330) )) MOV TEMP[177].y, TEMP[171].wwww; 217: (expression float * (swiz w (var_ref rv@0x4d0f330) )(swiz w (var_ref rv@0x4d0f330) )) MUL TEMP[178].x, TEMP[171].wwww, TEMP[171].wwww; 218: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4d11550) (swiz xxx (expression float * (swiz w (var_ref rv@0x4d0f330) )(swiz w (var_ref rv@0x4d0f330) )) )) MOV TEMP[177].z, TEMP[178].xxxx; 219: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4d11f70) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (3)) ) constantAttenuation) )) MOV TEMP[179].x, STATE[21].xxxx; 220: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4d11f70) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (3)) ) linearAttenuation) )) MOV TEMP[179].y, STATE[21].yyyy; 221: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4d11f70) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (3)) ) quadraticAttenuation) )) MOV TEMP[179].z, STATE[21].zzzz; 222: (expression float dot (var_ref vec_ctor@0x4d11550) (var_ref vec_ctor@0x4d11f70) ) DP3 TEMP[180].x, TEMP[177].xyzz, TEMP[179].xyzz; 223: (assign (constant bool (1)) (w) (var_ref rv@0x4d0f330) (swiz xxxx (expression float dot (var_ref vec_ctor@0x4d11550) (var_ref vec_ctor@0x4d11f70) ) )) MOV TEMP[171].w, TEMP[180].xxxx; 224: (expression float rcp (swiz w (var_ref rv@0x4d0f330) )) RCP TEMP[181].x, TEMP[171].wwww; 225: (assign (constant bool (1)) (w) (var_ref rv@0x4d0f330) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4d0f330) )) )) MOV TEMP[171].w, TEMP[181].xxxx; 226: (expression float dot (swiz xyz (var_ref rv@0x4d0f330) )(var_ref _ret_val@0x4cd3ed0) ) DP3 TEMP[182].x, TEMP[171].xyzz, TEMP[18].xyzz; 227: (assign (constant bool (1)) (x) (var_ref _ret_val@0x4d16300) (expression float dot (swiz xyz (var_ref rv@0x4d0f330) )(var_ref _ret_val@0x4cd3ed0) ) ) MOV TEMP[183], TEMP[182].xxxx; 228: (expression float * (var_ref _ret_val@0x4d16300) (constant float (4.000000)) ) MUL TEMP[184].x, TEMP[183].xxxx, CONST[14].yyyy; 229: (expression float min (expression float * (var_ref _ret_val@0x4d16300) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[185].x, TEMP[184].xxxx, CONST[20].xxxx; 230: (expression float max (expression float min (expression float * (var_ref _ret_val@0x4d16300) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[186].x, TEMP[185].xxxx, CONST[18].xxxx; 231: (assign (constant bool (1)) (x) (var_ref t@0x4d1e6a0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x4d16300) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[187], TEMP[186].xxxx; 232: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4d16300) ) MAX TEMP[188].x, CONST[18].xxxx, TEMP[183].xxxx; 233: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4d16300) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (3)) ) diffuse) ) MUL TEMP[189], TEMP[188].xxxx, STATE[22]; 234: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b238b0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (3)) ) ambient) ) MUL TEMP[190], STATE[24], STATE[25]; 235: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b238b0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4d16300) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) diffuse) ) ) MAD TEMP[191], TEMP[189], STATE[23], TEMP[190]; 236: (expression vec4 + (var_ref pc@0x4c33010) (expression vec4 * (swiz w (var_ref rv@0x4d0f330) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b238b0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4d16300) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) diffuse) ) ) ) ) MAD TEMP[192], TEMP[171].wwww, TEMP[191], TEMP[28]; 237: (assign (constant bool (1)) (xyzw) (var_ref pc@0x4c33010) (expression vec4 + (var_ref pc@0x4c33010) (expression vec4 * (swiz w (var_ref rv@0x4d0f330) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b238b0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4d16300) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) diffuse) ) ) ) ) ) MOV TEMP[28], TEMP[192]; 238: (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) DP3 TEMP[193].x, TEMP[18].xyzz, TEMP[10].xyzz; 239: (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) MUL TEMP[194].xyz, TEMP[193].xxxx, TEMP[18].xyzz; 240: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) MUL TEMP[195].xyz, CONST[14].xxxx, TEMP[194].xyzz; 241: (expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ADD TEMP[197].xyz, TEMP[10].xyzz, TEMP[195].-x-y-z-z; 242: (expression float dot (swiz xyz (var_ref rv@0x4d0f330) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) DP3 TEMP[198].x, TEMP[171].xyzz, TEMP[197].xyzz; 243: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4d0f330) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) MAX TEMP[199].x, CONST[18].xxxx, TEMP[198].xxxx; 244: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) MAX TEMP[200].x, CONST[20].xxxx, STATE[26].xxxx; 245: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4d0f330) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) POW TEMP[201].x, TEMP[199].xxxx, TEMP[200].xxxx; 246: (expression float * (constant float (2.000000)) (var_ref t@0x4d1e6a0) ) MUL TEMP[202].x, CONST[14].xxxx, TEMP[187].xxxx; 247: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4d1e6a0) ) ) ) ADD TEMP[204].x, CONST[14].zzzz, TEMP[202].-x-x-x-x; 248: (expression float * (var_ref t@0x4d1e6a0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4d1e6a0) ) ) ) ) MUL TEMP[205].x, TEMP[187].xxxx, TEMP[204].xxxx; 249: (expression float * (var_ref t@0x4d1e6a0) (expression float * (var_ref t@0x4d1e6a0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4d1e6a0) ) ) ) ) ) MUL TEMP[206].x, TEMP[187].xxxx, TEMP[205].xxxx; 250: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4d0f330) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4d1e6a0) (expression float * (var_ref t@0x4d1e6a0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4d1e6a0) ) ) ) ) ) ) MUL TEMP[207].x, TEMP[201].xxxx, TEMP[206].xxxx; 251: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4d0f330) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4d1e6a0) (expression float * (var_ref t@0x4d1e6a0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4d1e6a0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (3)) ) specular) ) MUL TEMP[208], TEMP[207].xxxx, STATE[27]; 252: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4d0f330) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4d1e6a0) (expression float * (var_ref t@0x4d1e6a0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4d1e6a0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) specular) ) MUL TEMP[209], TEMP[208], STATE[28]; 253: (expression vec4 + (var_ref sc@0x4c32f00) (expression vec4 * (swiz w (var_ref rv@0x4d0f330) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4d0f330) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4d1e6a0) (expression float * (var_ref t@0x4d1e6a0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4d1e6a0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) specular) ) ) ) MAD TEMP[210], TEMP[171].wwww, TEMP[209], TEMP[29]; 254: (assign (constant bool (1)) (xyzw) (var_ref sc@0x4c32f00) (expression vec4 + (var_ref sc@0x4c32f00) (expression vec4 * (swiz w (var_ref rv@0x4d0f330) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4d0f330) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4d1e6a0) (expression float * (var_ref t@0x4d1e6a0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4d1e6a0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) specular) ) ) ) ) MOV TEMP[29], TEMP[210]; 255: (expression bool != (array_ref (var_ref light_enabled@0x4ac19b0) (constant int (3)) ) (constant int (0)) ) ENDIF; 256: (expression bool != (array_ref (var_ref light_enabled@0x4ac19b0) (constant int (4)) ) (constant int (0)) ) SNE.C TEMP[211].x, UNIFORM[5].xxxx, CONST[18].xxxx; 257: IF (NE.xxxx); # (if false, goto 311); 258: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4d22b00) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (4)) ) position) ) MOV TEMP[212], STATE[19]; 259: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4d35af0) )(swiz w (var_ref assignment_tmp@0x4d22b00) )) MUL TEMP[213].xyz, TEMP[5].xyzz, TEMP[212].wwww; 260: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4d22b00) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4d35af0) )(swiz w (var_ref assignment_tmp@0x4d22b00) )) ) ) ADD TEMP[215].xyz, TEMP[212].xyzz, TEMP[213].-x-y-z-z; 261: (assign (constant bool (1)) (xyz) (var_ref rv@0x4d229f0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4d22b00) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x4d35af0) )(swiz w (var_ref assignment_tmp@0x4d22b00) )) ) ) )) MOV TEMP[216].xyz, TEMP[215].xyzz; 262: (assign (constant bool (1)) (xyz) (var_ref arg0@0x4d23ab0) (swiz xyz (var_ref rv@0x4d229f0) )) MOV TEMP[217].xyz, TEMP[216].xyzz; 263: (expression float dot (var_ref arg0@0x4d23ab0) (var_ref arg0@0x4d23ab0) ) DP3 TEMP[218].x, TEMP[217].xyzz, TEMP[217].xyzz; 264: (expression float sqrt (expression float dot (var_ref arg0@0x4d23ab0) (var_ref arg0@0x4d23ab0) ) ) RSQ TEMP[219].x, TEMP[218].xxxx; 265: MUL TEMP[219].x, TEMP[219].xxxx, TEMP[218].xxxx; 266: CMP TEMP[219].x, TEMP[218].-x-x-x-x, TEMP[219].xxxx, CONST[18].xxxx; 267: (assign (constant bool (1)) (w) (var_ref rv@0x4d229f0) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x4d23ab0) (var_ref arg0@0x4d23ab0) ) ) )) MOV TEMP[216].w, TEMP[219].xxxx; 268: (expression float rcp (swiz w (var_ref rv@0x4d229f0) )) RCP TEMP[220].x, TEMP[216].wwww; 269: (expression vec3 * (swiz xyz (var_ref rv@0x4d229f0) )(expression float rcp (swiz w (var_ref rv@0x4d229f0) )) ) MUL TEMP[221].xyz, TEMP[216].xyzz, TEMP[220].xxxx; 270: (assign (constant bool (1)) (xyz) (var_ref rv@0x4d229f0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x4d229f0) )(expression float rcp (swiz w (var_ref rv@0x4d229f0) )) ) )) MOV TEMP[216].xyz, TEMP[221].xyzz; 271: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4d24c10) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[222].x, CONST[20].xyzz; 272: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4d24c10) (swiz www (var_ref rv@0x4d229f0) )) MOV TEMP[222].y, TEMP[216].wwww; 273: (expression float * (swiz w (var_ref rv@0x4d229f0) )(swiz w (var_ref rv@0x4d229f0) )) MUL TEMP[223].x, TEMP[216].wwww, TEMP[216].wwww; 274: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4d24c10) (swiz xxx (expression float * (swiz w (var_ref rv@0x4d229f0) )(swiz w (var_ref rv@0x4d229f0) )) )) MOV TEMP[222].z, TEMP[223].xxxx; 275: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x4d25630) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (4)) ) constantAttenuation) )) MOV TEMP[224].x, STATE[21].xxxx; 276: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x4d25630) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (4)) ) linearAttenuation) )) MOV TEMP[224].y, STATE[21].yyyy; 277: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x4d25630) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (4)) ) quadraticAttenuation) )) MOV TEMP[224].z, STATE[21].zzzz; 278: (expression float dot (var_ref vec_ctor@0x4d24c10) (var_ref vec_ctor@0x4d25630) ) DP3 TEMP[225].x, TEMP[222].xyzz, TEMP[224].xyzz; 279: (assign (constant bool (1)) (w) (var_ref rv@0x4d229f0) (swiz xxxx (expression float dot (var_ref vec_ctor@0x4d24c10) (var_ref vec_ctor@0x4d25630) ) )) MOV TEMP[216].w, TEMP[225].xxxx; 280: (expression float rcp (swiz w (var_ref rv@0x4d229f0) )) RCP TEMP[226].x, TEMP[216].wwww; 281: (assign (constant bool (1)) (w) (var_ref rv@0x4d229f0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x4d229f0) )) )) MOV TEMP[216].w, TEMP[226].xxxx; 282: (expression float dot (swiz xyz (var_ref rv@0x4d229f0) )(var_ref _ret_val@0x4cd3ed0) ) DP3 TEMP[227].x, TEMP[216].xyzz, TEMP[18].xyzz; 283: (assign (constant bool (1)) (x) (var_ref _ret_val@0x4d299c0) (expression float dot (swiz xyz (var_ref rv@0x4d229f0) )(var_ref _ret_val@0x4cd3ed0) ) ) MOV TEMP[228], TEMP[227].xxxx; 284: (expression float * (var_ref _ret_val@0x4d299c0) (constant float (4.000000)) ) MUL TEMP[229].x, TEMP[228].xxxx, CONST[14].yyyy; 285: (expression float min (expression float * (var_ref _ret_val@0x4d299c0) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[230].x, TEMP[229].xxxx, CONST[20].xxxx; 286: (expression float max (expression float min (expression float * (var_ref _ret_val@0x4d299c0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[231].x, TEMP[230].xxxx, CONST[18].xxxx; 287: (assign (constant bool (1)) (x) (var_ref t@0x4d31d60) (expression float max (expression float min (expression float * (var_ref _ret_val@0x4d299c0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[232], TEMP[231].xxxx; 288: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4d299c0) ) MAX TEMP[233].x, CONST[18].xxxx, TEMP[228].xxxx; 289: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4d299c0) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (4)) ) diffuse) ) MUL TEMP[234], TEMP[233].xxxx, STATE[22]; 290: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b238b0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (4)) ) ambient) ) MUL TEMP[235], STATE[24], STATE[25]; 291: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b238b0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4d299c0) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) diffuse) ) ) MAD TEMP[236], TEMP[234], STATE[23], TEMP[235]; 292: (expression vec4 + (var_ref pc@0x4c33010) (expression vec4 * (swiz w (var_ref rv@0x4d229f0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b238b0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4d299c0) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) diffuse) ) ) ) ) MAD TEMP[237], TEMP[216].wwww, TEMP[236], TEMP[28]; 293: (assign (constant bool (1)) (xyzw) (var_ref pc@0x4c33010) (expression vec4 + (var_ref pc@0x4c33010) (expression vec4 * (swiz w (var_ref rv@0x4d229f0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x4b238b0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x4d299c0) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) diffuse) ) ) ) ) ) MOV TEMP[28], TEMP[237]; 294: (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) DP3 TEMP[238].x, TEMP[18].xyzz, TEMP[10].xyzz; 295: (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) MUL TEMP[239].xyz, TEMP[238].xxxx, TEMP[18].xyzz; 296: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) MUL TEMP[240].xyz, CONST[14].xxxx, TEMP[239].xyzz; 297: (expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ADD TEMP[242].xyz, TEMP[10].xyzz, TEMP[240].-x-y-z-z; 298: (expression float dot (swiz xyz (var_ref rv@0x4d229f0) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) DP3 TEMP[243].x, TEMP[216].xyzz, TEMP[242].xyzz; 299: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4d229f0) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) MAX TEMP[244].x, CONST[18].xxxx, TEMP[243].xxxx; 300: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) MAX TEMP[245].x, CONST[20].xxxx, STATE[26].xxxx; 301: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4d229f0) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) POW TEMP[246].x, TEMP[244].xxxx, TEMP[245].xxxx; 302: (expression float * (constant float (2.000000)) (var_ref t@0x4d31d60) ) MUL TEMP[247].x, CONST[14].xxxx, TEMP[232].xxxx; 303: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4d31d60) ) ) ) ADD TEMP[249].x, CONST[14].zzzz, TEMP[247].-x-x-x-x; 304: (expression float * (var_ref t@0x4d31d60) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4d31d60) ) ) ) ) MUL TEMP[250].x, TEMP[232].xxxx, TEMP[249].xxxx; 305: (expression float * (var_ref t@0x4d31d60) (expression float * (var_ref t@0x4d31d60) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4d31d60) ) ) ) ) ) MUL TEMP[251].x, TEMP[232].xxxx, TEMP[250].xxxx; 306: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4d229f0) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4d31d60) (expression float * (var_ref t@0x4d31d60) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4d31d60) ) ) ) ) ) ) MUL TEMP[252].x, TEMP[246].xxxx, TEMP[251].xxxx; 307: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4d229f0) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4d31d60) (expression float * (var_ref t@0x4d31d60) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4d31d60) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (4)) ) specular) ) MUL TEMP[253], TEMP[252].xxxx, STATE[27]; 308: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4d229f0) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4d31d60) (expression float * (var_ref t@0x4d31d60) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4d31d60) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) specular) ) MUL TEMP[254], TEMP[253], STATE[28]; 309: (expression vec4 + (var_ref sc@0x4c32f00) (expression vec4 * (swiz w (var_ref rv@0x4d229f0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4d229f0) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4d31d60) (expression float * (var_ref t@0x4d31d60) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4d31d60) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) specular) ) ) ) MAD TEMP[255], TEMP[216].wwww, TEMP[254], TEMP[29]; 310: (assign (constant bool (1)) (xyzw) (var_ref sc@0x4c32f00) (expression vec4 + (var_ref sc@0x4c32f00) (expression vec4 * (swiz w (var_ref rv@0x4d229f0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x4d229f0) )(expression vec3 + (var_ref _ret_val@0x4cd35d0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x4cd3ed0) (var_ref _ret_val@0x4cd35d0) ) (var_ref _ret_val@0x4cd3ed0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) shininess) ) ) (expression float * (var_ref t@0x4d31d60) (expression float * (var_ref t@0x4d31d60) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x4d31d60) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x4b23a10) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x4b238b0) specular) ) ) ) ) MOV TEMP[29], TEMP[255]; 311: (expression bool != (array_ref (var_ref light_enabled@0x4ac19b0) (constant int (4)) ) (constant int (0)) ) ENDIF; 312: (expression bool >= (var_ref max_light_enabled@0x4ac1900) (constant int (2)) ) ENDIF; 313: (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4b21540) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x4b15dd0) )) MUL TEMP[256], STATE[29], INPUT[0].xxxx; 314: (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4b21540) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x4b15dd0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4b21540) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x4b15dd0) )) ) MAD TEMP[257], STATE[30], INPUT[0].yyyy, TEMP[256]; 315: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4b21540) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x4b15dd0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4b21540) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x4b15dd0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4b21540) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x4b15dd0) )) ) MAD TEMP[258], STATE[31], INPUT[0].zzzz, TEMP[257]; 316: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4b21540) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x4b15dd0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4b21540) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x4b15dd0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4b21540) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x4b15dd0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4b21540) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x4b15dd0) )) ) MAD TEMP[259], STATE[32], INPUT[0].wwww, TEMP[258]; 317: (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x4b47950) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4b21540) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x4b15dd0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4b21540) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x4b15dd0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4b21540) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x4b15dd0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x4b21540) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x4b15dd0) )) ) ) MOV OUTPUT[0], TEMP[259]; 318: (assign (constant bool (1)) (xyzw) (var_ref gl_BackColor@0x4b21120) (var_ref pc@0x4c33010) ) MOV OUTPUT[13], TEMP[28]; 319: (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0x4b21070) (var_ref pc@0x4c33010) ) MOV OUTPUT[1], TEMP[28]; 320: (assign (constant bool (1)) (xyzw) (var_ref gl_BackSecondaryColor@0x4b21280) (var_ref sc@0x4c32f00) ) MOV OUTPUT[14], TEMP[29]; 321: (assign (constant bool (1)) (xyzw) (var_ref gl_FrontSecondaryColor@0x4b211d0) (var_ref sc@0x4c32f00) ) MOV OUTPUT[2], TEMP[29]; 322: END GLSL IR for linked fragment program 10: ( (declare (uniform ) vec4 cloaking@0x4c46930) (declare (uniform ) sampler2D diffuseMap@0x4c469e0) (declare (out ) vec4 gl_FragColor@0x4c46bf0) (declare (in ) vec4 gl_Color@0x4c46d50) (declare (in ) vec4 gl_SecondaryColor@0x4c46e00) (declare (in ) (array vec4 0) gl_TexCoord@0x4c4a1c0) (function main (signature void (parameters ) ( (declare (temporary ) vec4 assignment_tmp@0x4c7d940) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4c7d940) (expression vec4 * (tex (var_ref diffuseMap@0x4c469e0) (swiz xy (array_ref (var_ref gl_TexCoord@0x4c4a1c0) (constant int (0)) ) ) (0 0 0) 1 () )(var_ref gl_Color@0x4c46d50) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x4c46bf0) (var_ref assignment_tmp@0x4c7d940) ) (assign (constant bool (1)) (xyz) (var_ref gl_FragColor@0x4c46bf0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4c7d940) )(swiz xyz (var_ref gl_SecondaryColor@0x4c46e00) )) )) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x4c46bf0) (expression vec4 * (var_ref gl_FragColor@0x4c46bf0) (swiz xxxy (var_ref cloaking@0x4c46930) )) ) )) ) ) Mesa IR for linked fragment program 10: 0: (tex (var_ref diffuseMap@0x4c469e0) (swiz xy (array_ref (var_ref gl_TexCoord@0x4c4a1c0) (constant int (0)) ) ) (0 0 0) 1 () ) MOV TEMP[1], INPUT[4].xyyy; 1: TEX TEMP[2], TEMP[1], texture[0], 2D; 2: (expression vec4 * (tex (var_ref diffuseMap@0x4c469e0) (swiz xy (array_ref (var_ref gl_TexCoord@0x4c4a1c0) (constant int (0)) ) ) (0 0 0) 1 () )(var_ref gl_Color@0x4c46d50) ) MUL TEMP[3], TEMP[2], INPUT[1]; 3: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x4c7d940) (expression vec4 * (tex (var_ref diffuseMap@0x4c469e0) (swiz xy (array_ref (var_ref gl_TexCoord@0x4c4a1c0) (constant int (0)) ) ) (0 0 0) 1 () )(var_ref gl_Color@0x4c46d50) ) ) MOV TEMP[4], TEMP[3]; 4: (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x4c46bf0) (var_ref assignment_tmp@0x4c7d940) ) MOV OUTPUT[1], TEMP[4]; 5: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4c7d940) )(swiz xyz (var_ref gl_SecondaryColor@0x4c46e00) )) ADD TEMP[5].xyz, TEMP[4].xyzz, INPUT[2].xyzz; 6: (assign (constant bool (1)) (xyz) (var_ref gl_FragColor@0x4c46bf0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x4c7d940) )(swiz xyz (var_ref gl_SecondaryColor@0x4c46e00) )) )) MOV OUTPUT[1].xyz, TEMP[5].xyzz; 7: (expression vec4 * (var_ref gl_FragColor@0x4c46bf0) (swiz xxxy (var_ref cloaking@0x4c46930) )) MUL TEMP[6], OUTPUT[1], UNIFORM[0].xxxy; 8: (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x4c46bf0) (expression vec4 * (var_ref gl_FragColor@0x4c46bf0) (swiz xxxy (var_ref cloaking@0x4c46930) )) ) MOV OUTPUT[1], TEMP[6]; 9: END Compilation of technique default_simple successful Initializing optimizer UNIT HAS DIED: sun sun (file sun) UNIT HAS DIED: Lava Lava (file Lava) UNIT HAS DIED: gas_midget Uninhabitable_Dwarf_Gas_Giant (file gas_midget) UNIT HAS DIED: rock Rocky (file rock) UNIT HAS DIED: sun sun (file sun) UNIT HAS DIED: Lava Lava (file Lava) using NV_CUBE_MAP CREATING A LOCAL SHIP : nova Unit file nova not found pox 400.000000 400.000000 0.000000 Force feedback support disabled when compiled Loading completed, now network init Loading active missions True