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@0x2d9e690) (declare (uniform ) vec4 detail0Plane@0x2d9e810) (declare (uniform ) int max_light_enabled@0x2d9e990) (declare (uniform ) (array int 8) light_enabled@0x2d9eb10) (declare (out ) vec4 gl_Position@0x2c71900) (declare (out ) float gl_PointSize@0x2c71b10) (declare (in ) vec4 gl_Vertex@0x2c71d40) (declare (in ) vec3 gl_Normal@0x2c5d6b0) (declare (in ) vec4 gl_Color@0x2c5d8e0) (declare (in ) vec4 gl_SecondaryColor@0x2c724b0) (declare (in ) vec4 gl_MultiTexCoord0@0x2c72640) (declare (in ) vec4 gl_MultiTexCoord1@0x2c72830) (declare (in ) vec4 gl_MultiTexCoord2@0x2c72a60) (declare (in ) vec4 gl_MultiTexCoord3@0x2c72c90) (declare (in ) vec4 gl_MultiTexCoord4@0x2c72ec0) (declare (in ) vec4 gl_MultiTexCoord5@0x2c730f0) (declare (in ) vec4 gl_MultiTexCoord6@0x2c73320) (declare (in ) vec4 gl_MultiTexCoord7@0x2c73550) (declare (in ) float gl_FogCoord@0x2c73780) (declare (out ) vec4 gl_ClipVertex@0x2c739b0) (declare (out ) vec4 gl_FrontColor@0x2c73be0) (declare (out ) vec4 gl_BackColor@0x2c73e10) (declare (out ) vec4 gl_FrontSecondaryColor@0x2c74040) (declare (out ) vec4 gl_BackSecondaryColor@0x2c74270) (declare (out ) float gl_FogFragCoord@0x2c744a0) (declare (uniform ) mat4 gl_ModelViewMatrix@0x2c746d0) (declare (uniform ) mat4 gl_ProjectionMatrix@0x2c74900) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x2c74b30) (declare (uniform ) mat3 gl_NormalMatrix@0x2c74d80) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0x2c74fb0) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0x2c75200) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0x2c75450) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0x2c756a0) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0x2c758f0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0x2c75b40) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0x2c75d90) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0x2c75fe0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0x2c76230) (declare (uniform ) float gl_NormalScale@0x2c764a0) (declare (uniform ) gl_LightModelParameters gl_LightModel@0x2c766d0) (declare () int gl_MaxLights@0x2c76900) (declare () int gl_MaxClipPlanes@0x2c76c10) (declare () int gl_MaxTextureUnits@0x2c76f20) (declare () int gl_MaxTextureCoords@0x2c77230) (declare () int gl_MaxVertexAttribs@0x2c77540) (declare () int gl_MaxVertexUniformComponents@0x2c77850) (declare () int gl_MaxVaryingFloats@0x2c77b80) (declare () int gl_MaxVertexTextureImageUnits@0x2c77e90) (declare () int gl_MaxCombinedTextureImageUnits@0x2c781c0) (declare () int gl_MaxTextureImageUnits@0x2c784f0) (declare () int gl_MaxFragmentUniformComponents@0x2c78800) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0x2c790b0) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0x2c792c0) (declare (uniform ) (array vec4 6) gl_ClipPlane@0x2c79680) (declare (uniform ) gl_PointParameters gl_Point@0x2c798b0) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x2c79ae0) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0x2c79d10) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x2c7a0e0) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x2c7a310) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0x2c7a560) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0x2c7a950) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0x2c7ab80) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0x2c7af40) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0x2c7b170) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0x2c7b3a0) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0x2c7b5d0) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0x2c7b800) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0x2c7ba30) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0x2c7bc60) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0x2c7be90) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0x2c7c0c0) (declare (uniform ) gl_FogParameters gl_Fog@0x2c7c2f0) (declare (out ) (array vec4 0) gl_TexCoord@0x2c7c6a0) (declare () int gl_MaxDrawBuffers@0x2c7c8d0) (function EnvMapGen (signature vec2 (parameters (declare (in ) vec3 f@0x2d9e510) ) ( (declare (temporary ) float assignment_tmp@0x2d9df10) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x2d9df10) (expression float + (swiz z (var_ref f@0x2d9e510) )(constant float (1.000000)) ) ) (declare (temporary ) float sqrt_retval@0x2d9d010) (assign (constant bool (1)) (x) (var_ref sqrt_retval@0x2d9d010) (call sqrt ((expression float + (expression float + (expression float * (swiz x (var_ref f@0x2d9e510) )(swiz x (var_ref f@0x2d9e510) )) (expression float * (swiz y (var_ref f@0x2d9e510) )(swiz y (var_ref f@0x2d9e510) )) ) (expression float * (var_ref assignment_tmp@0x2d9df10) (var_ref assignment_tmp@0x2d9df10) ) ) )) ) (declare (temporary ) float assignment_tmp@0x2d9cb90) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x2d9cb90) (expression float * (constant float (2.000000)) (var_ref sqrt_retval@0x2d9d010) ) ) (declare (temporary ) vec2 vec_ctor@0x2d9c110) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x2d9c110) (swiz xx (expression float + (expression float / (swiz x (var_ref f@0x2d9e510) )(var_ref assignment_tmp@0x2d9cb90) ) (constant float (0.500000)) ) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x2d9c110) (swiz xx (expression float + (expression float / (swiz y (var_ref f@0x2d9e510) )(var_ref assignment_tmp@0x2d9cb90) ) (constant float (0.500000)) ) )) (return (var_ref vec_ctor@0x2d9c110) ) )) ) (function main (signature void (parameters ) ( (declare () int li@0x2d971d0) (declare () vec4 sc@0x2d97a20) (declare () vec4 pc@0x2d981a0) (declare () vec3 normal@0x2d9a750) (declare () vec3 eyetopos@0x2d9b390) (declare () vec4 position@0x2d9bb10) (declare (temporary ) vec4 assignment_tmp@0x2d9b810) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x2d9b810) (expression vec4 * (var_ref gl_ModelViewMatrix@0x2c746d0) (var_ref gl_Vertex@0x2c71d40) ) ) (assign (constant bool (1)) (xyzw) (var_ref position@0x2d9bb10) (var_ref assignment_tmp@0x2d9b810) ) (declare (temporary ) vec3 normalize_retval@0x2d9af00) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x2d9af00) (call normalize ((expression vec3 / (swiz xyz (var_ref assignment_tmp@0x2d9b810) )(swiz w (var_ref assignment_tmp@0x2d9b810) )) )) ) (assign (constant bool (1)) (xyz) (var_ref eyetopos@0x2d9b390) (var_ref normalize_retval@0x2d9af00) ) (declare (temporary ) vec3 normalize_retval@0x2d9a2d0) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x2d9a2d0) (call normalize ((expression vec3 * (var_ref gl_NormalMatrix@0x2c74d80) (var_ref gl_Normal@0x2c5d6b0) ) )) ) (assign (constant bool (1)) (xyz) (var_ref normal@0x2d9a750) (var_ref normalize_retval@0x2d9a2d0) ) (declare (temporary ) vec3 reflect_retval@0x2d99820) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x2d99820) (call reflect ((expression vec3 neg (var_ref eyetopos@0x2d9b390) ) (var_ref normalize_retval@0x2d9a2d0) )) ) (declare (temporary ) vec2 EnvMapGen_retval@0x2d993a0) (assign (constant bool (1)) (xy) (var_ref EnvMapGen_retval@0x2d993a0) (call EnvMapGen ((var_ref reflect_retval@0x2d99820) )) ) (assign (constant bool (1)) (xy) (array_ref (var_ref gl_TexCoord@0x2c7c6a0) (constant int (1)) ) (var_ref EnvMapGen_retval@0x2d993a0) ) (assign (constant bool (1)) (zw) (array_ref (var_ref gl_TexCoord@0x2c7c6a0) (constant int (1)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x2c7c6a0) (constant int (0)) ) (var_ref gl_MultiTexCoord0@0x2c72640) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x2d981a0) (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x2c7a950) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontLightModelProduct@0x2c7a310) sceneColor) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x2d97a20) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (x) (var_ref li@0x2d971d0) (constant int (0)) ) (declare (temporary ) bool and_tmp@0x2d81b70) (if (expression bool != (array_ref (var_ref light_enabled@0x2d9eb10) (constant int (0)) ) (constant int (0)) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x2d81b70) (expression bool <= (constant int (0)) (var_ref max_light_enabled@0x2d9e990) ) ) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x2d81b70) (constant bool (0)) ) )) (if (var_ref and_tmp@0x2d81b70) ( (declare () vec3 halfangle@0x2d81250) (declare () vec4 att@0x2d81000) (declare () vec3 lightvec@0x2d80c00) (declare (temporary ) vec3 assignment_tmp@0x2d80a50) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x2d80a50) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (constant int (0)) ) position) )(swiz w (var_ref position@0x2d9bb10) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref position@0x2d9bb10) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (constant int (0)) ) position) )) ) ) ) (assign (constant bool (1)) (xyz) (var_ref lightvec@0x2d80c00) (var_ref assignment_tmp@0x2d80a50) ) (declare (temporary ) float length_retval@0x2d7fac0) (assign (constant bool (1)) (x) (var_ref length_retval@0x2d7fac0) (call length ((var_ref assignment_tmp@0x2d80a50) )) ) (assign (constant bool (1)) (xyzw) (var_ref att@0x2d81000) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) linearAttenuation) (swiz xxxx (var_ref length_retval@0x2d7fac0) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref length_retval@0x2d7fac0) (var_ref length_retval@0x2d7fac0) ) )) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x2d7dde0) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x2d7dde0) (expression vec3 / (var_ref lightvec@0x2d80c00) (var_ref length_retval@0x2d7fac0) ) ) (assign (constant bool (1)) (xyz) (var_ref lightvec@0x2d80c00) (var_ref assignment_tmp@0x2d7dde0) ) (declare (temporary ) vec3 assignment_tmp@0x2d7d410) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x2d7d410) (expression vec3 + (var_ref assignment_tmp@0x2d7dde0) (expression vec3 neg (var_ref eyetopos@0x2d9b390) ) ) ) (assign (constant bool (1)) (xyz) (var_ref halfangle@0x2d81250) (var_ref assignment_tmp@0x2d7d410) ) (declare (temporary ) float length_retval@0x2d7cac0) (assign (constant bool (1)) (x) (var_ref length_retval@0x2d7cac0) (call length ((var_ref assignment_tmp@0x2d7d410) )) ) (assign (constant bool (1)) (xyz) (var_ref halfangle@0x2d81250) (expression vec3 / (var_ref halfangle@0x2d81250) (var_ref length_retval@0x2d7cac0) ) ) (declare (temporary ) float dot_retval@0x2d7be50) (assign (constant bool (1)) (x) (var_ref dot_retval@0x2d7be50) (call dot ((var_ref normal@0x2d9a750) (var_ref lightvec@0x2d80c00) )) ) (declare (temporary ) float max_retval@0x2d7b900) (assign (constant bool (1)) (x) (var_ref max_retval@0x2d7b900) (call max ((var_ref dot_retval@0x2d7be50) (constant float (0.000000)) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x2d981a0) (expression vec4 + (var_ref pc@0x2d981a0) (expression vec4 * (var_ref att@0x2d81000) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2c79ae0) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2c79ae0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) ambient) ) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x2d7b900) (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x2c79ae0) diffuse) ) ) ) ) ) (declare (temporary ) float dot_retval@0x2d79d70) (assign (constant bool (1)) (x) (var_ref dot_retval@0x2d79d70) (call dot ((var_ref normal@0x2d9a750) (var_ref halfangle@0x2d81250) )) ) (declare (temporary ) float max_retval@0x2d79820) (assign (constant bool (1)) (x) (var_ref max_retval@0x2d79820) (call max ((var_ref dot_retval@0x2d79d70) (constant float (0.000000)) )) ) (declare (temporary ) float pow_retval@0x2d792d0) (assign (constant bool (1)) (x) (var_ref pow_retval@0x2d792d0) (call pow ((var_ref max_retval@0x2d79820) (record_ref (var_ref gl_FrontMaterial@0x2c79ae0) shininess) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x2d97a20) (expression vec4 + (var_ref sc@0x2d97a20) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x2d81000) (record_ref (var_ref gl_FrontMaterial@0x2c79ae0) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) specular) ) (var_ref pow_retval@0x2d792d0) ) ) ) ) ()) (assign (constant bool (1)) (x) (var_ref li@0x2d971d0) (expression int + (var_ref li@0x2d971d0) (constant int (1)) ) ) (declare (temporary ) bool and_tmp@0x2d77020) (if (expression bool != (array_ref (var_ref light_enabled@0x2d9eb10) (var_ref li@0x2d971d0) ) (constant int (0)) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x2d77020) (expression bool <= (var_ref li@0x2d971d0) (var_ref max_light_enabled@0x2d9e990) ) ) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x2d77020) (constant bool (0)) ) )) (if (var_ref and_tmp@0x2d77020) ( (declare () vec3 halfangle@0x2d76700) (declare () vec4 att@0x2d76480) (declare () vec3 lightvec@0x2d75ec0) (declare (temporary ) vec3 assignment_tmp@0x2d75d40) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x2d75d40) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) position) )(swiz w (var_ref position@0x2d9bb10) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref position@0x2d9bb10) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) position) )) ) ) ) (assign (constant bool (1)) (xyz) (var_ref lightvec@0x2d75ec0) (var_ref assignment_tmp@0x2d75d40) ) (declare (temporary ) float length_retval@0x2d74c40) (assign (constant bool (1)) (x) (var_ref length_retval@0x2d74c40) (call length ((var_ref assignment_tmp@0x2d75d40) )) ) (assign (constant bool (1)) (xyzw) (var_ref att@0x2d76480) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) linearAttenuation) (swiz xxxx (var_ref length_retval@0x2d74c40) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref length_retval@0x2d74c40) (var_ref length_retval@0x2d74c40) ) )) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x2d72fd0) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x2d72fd0) (expression vec3 / (var_ref lightvec@0x2d75ec0) (var_ref length_retval@0x2d74c40) ) ) (assign (constant bool (1)) (xyz) (var_ref lightvec@0x2d75ec0) (var_ref assignment_tmp@0x2d72fd0) ) (declare (temporary ) vec3 assignment_tmp@0x2d72900) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x2d72900) (expression vec3 + (var_ref assignment_tmp@0x2d72fd0) (expression vec3 neg (var_ref eyetopos@0x2d9b390) ) ) ) (assign (constant bool (1)) (xyz) (var_ref halfangle@0x2d76700) (var_ref assignment_tmp@0x2d72900) ) (declare (temporary ) float length_retval@0x2d71f10) (assign (constant bool (1)) (x) (var_ref length_retval@0x2d71f10) (call length ((var_ref assignment_tmp@0x2d72900) )) ) (assign (constant bool (1)) (xyz) (var_ref halfangle@0x2d76700) (expression vec3 / (var_ref halfangle@0x2d76700) (var_ref length_retval@0x2d71f10) ) ) (declare (temporary ) float dot_retval@0x2d71130) (assign (constant bool (1)) (x) (var_ref dot_retval@0x2d71130) (call dot ((var_ref normal@0x2d9a750) (var_ref lightvec@0x2d75ec0) )) ) (declare (temporary ) float max_retval@0x2d70be0) (assign (constant bool (1)) (x) (var_ref max_retval@0x2d70be0) (call max ((var_ref dot_retval@0x2d71130) (constant float (0.000000)) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x2d981a0) (expression vec4 + (var_ref pc@0x2d981a0) (expression vec4 * (var_ref att@0x2d76480) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2c79ae0) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2c79ae0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) ambient) ) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x2d70be0) (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x2c79ae0) diffuse) ) ) ) ) ) (declare (temporary ) float dot_retval@0x2d6f370) (assign (constant bool (1)) (x) (var_ref dot_retval@0x2d6f370) (call dot ((var_ref normal@0x2d9a750) (var_ref halfangle@0x2d76700) )) ) (declare (temporary ) float max_retval@0x2d6ee20) (assign (constant bool (1)) (x) (var_ref max_retval@0x2d6ee20) (call max ((var_ref dot_retval@0x2d6f370) (constant float (0.000000)) )) ) (declare (temporary ) float pow_retval@0x2d6e8d0) (assign (constant bool (1)) (x) (var_ref pow_retval@0x2d6e8d0) (call pow ((var_ref max_retval@0x2d6ee20) (record_ref (var_ref gl_FrontMaterial@0x2c79ae0) shininess) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x2d97a20) (expression vec4 + (var_ref sc@0x2d97a20) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x2d76480) (record_ref (var_ref gl_FrontMaterial@0x2c79ae0) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) specular) ) (var_ref pow_retval@0x2d6e8d0) ) ) ) ) ()) (assign (constant bool (1)) (x) (var_ref li@0x2d971d0) (expression int + (var_ref li@0x2d971d0) (constant int (1)) ) ) (declare (temporary ) bool and_tmp@0x2d6d100) (if (expression bool != (array_ref (var_ref light_enabled@0x2d9eb10) (var_ref li@0x2d971d0) ) (constant int (0)) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x2d6d100) (expression bool <= (var_ref li@0x2d971d0) (var_ref max_light_enabled@0x2d9e990) ) ) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x2d6d100) (constant bool (0)) ) )) (if (var_ref and_tmp@0x2d6d100) ( (declare () vec3 halfangle@0x2d6c7e0) (declare () vec4 att@0x2d6c660) (declare () vec3 lightvec@0x2d6c290) (declare (temporary ) vec3 assignment_tmp@0x2d6c110) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x2d6c110) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) position) )(swiz w (var_ref position@0x2d9bb10) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref position@0x2d9bb10) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) position) )) ) ) ) (assign (constant bool (1)) (xyz) (var_ref lightvec@0x2d6c290) (var_ref assignment_tmp@0x2d6c110) ) (declare (temporary ) float length_retval@0x2d6b380) (assign (constant bool (1)) (x) (var_ref length_retval@0x2d6b380) (call length ((var_ref assignment_tmp@0x2d6c110) )) ) (assign (constant bool (1)) (xyzw) (var_ref att@0x2d6c660) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) linearAttenuation) (swiz xxxx (var_ref length_retval@0x2d6b380) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref length_retval@0x2d6b380) (var_ref length_retval@0x2d6b380) ) )) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x2d69710) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x2d69710) (expression vec3 / (var_ref lightvec@0x2d6c290) (var_ref length_retval@0x2d6b380) ) ) (assign (constant bool (1)) (xyz) (var_ref lightvec@0x2d6c290) (var_ref assignment_tmp@0x2d69710) ) (declare (temporary ) vec3 assignment_tmp@0x2d68d50) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x2d68d50) (expression vec3 + (var_ref assignment_tmp@0x2d69710) (expression vec3 neg (var_ref eyetopos@0x2d9b390) ) ) ) (assign (constant bool (1)) (xyz) (var_ref halfangle@0x2d6c7e0) (var_ref assignment_tmp@0x2d68d50) ) (declare (temporary ) float length_retval@0x2d68360) (assign (constant bool (1)) (x) (var_ref length_retval@0x2d68360) (call length ((var_ref assignment_tmp@0x2d68d50) )) ) (assign (constant bool (1)) (xyz) (var_ref halfangle@0x2d6c7e0) (expression vec3 / (var_ref halfangle@0x2d6c7e0) (var_ref length_retval@0x2d68360) ) ) (declare (temporary ) float dot_retval@0x2d677c0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x2d677c0) (call dot ((var_ref normal@0x2d9a750) (var_ref lightvec@0x2d6c290) )) ) (declare (temporary ) float max_retval@0x2d67080) (assign (constant bool (1)) (x) (var_ref max_retval@0x2d67080) (call max ((var_ref dot_retval@0x2d677c0) (constant float (0.000000)) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x2d981a0) (expression vec4 + (var_ref pc@0x2d981a0) (expression vec4 * (var_ref att@0x2d6c660) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2c79ae0) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2c79ae0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) ambient) ) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x2d67080) (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x2c79ae0) diffuse) ) ) ) ) ) (declare (temporary ) float dot_retval@0x2d65940) (assign (constant bool (1)) (x) (var_ref dot_retval@0x2d65940) (call dot ((var_ref normal@0x2d9a750) (var_ref halfangle@0x2d6c7e0) )) ) (declare (temporary ) float max_retval@0x2d65060) (assign (constant bool (1)) (x) (var_ref max_retval@0x2d65060) (call max ((var_ref dot_retval@0x2d65940) (constant float (0.000000)) )) ) (declare (temporary ) float pow_retval@0x2d64750) (assign (constant bool (1)) (x) (var_ref pow_retval@0x2d64750) (call pow ((var_ref max_retval@0x2d65060) (record_ref (var_ref gl_FrontMaterial@0x2c79ae0) shininess) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x2d97a20) (expression vec4 + (var_ref sc@0x2d97a20) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x2d6c660) (record_ref (var_ref gl_FrontMaterial@0x2c79ae0) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) specular) ) (var_ref pow_retval@0x2d64750) ) ) ) ) ()) (assign (constant bool (1)) (x) (var_ref li@0x2d971d0) (expression int + (var_ref li@0x2d971d0) (constant int (1)) ) ) (declare (temporary ) bool and_tmp@0x2d62530) (if (expression bool != (array_ref (var_ref light_enabled@0x2d9eb10) (var_ref li@0x2d971d0) ) (constant int (0)) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x2d62530) (expression bool <= (var_ref li@0x2d971d0) (var_ref max_light_enabled@0x2d9e990) ) ) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x2d62530) (constant bool (0)) ) )) (if (var_ref and_tmp@0x2d62530) ( (declare () vec3 halfangle@0x2d61780) (declare () vec4 att@0x2d61500) (declare () vec3 lightvec@0x2d60e60) (declare (temporary ) vec3 assignment_tmp@0x2d60c10) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x2d60c10) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) position) )(swiz w (var_ref position@0x2d9bb10) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref position@0x2d9bb10) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) position) )) ) ) ) (assign (constant bool (1)) (xyz) (var_ref lightvec@0x2d60e60) (var_ref assignment_tmp@0x2d60c10) ) (declare (temporary ) float length_retval@0x2d5f7a0) (assign (constant bool (1)) (x) (var_ref length_retval@0x2d5f7a0) (call length ((var_ref assignment_tmp@0x2d60c10) )) ) (assign (constant bool (1)) (xyzw) (var_ref att@0x2d61500) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) linearAttenuation) (swiz xxxx (var_ref length_retval@0x2d5f7a0) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref length_retval@0x2d5f7a0) (var_ref length_retval@0x2d5f7a0) ) )) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x2d5d2b0) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x2d5d2b0) (expression vec3 / (var_ref lightvec@0x2d60e60) (var_ref length_retval@0x2d5f7a0) ) ) (assign (constant bool (1)) (xyz) (var_ref lightvec@0x2d60e60) (var_ref assignment_tmp@0x2d5d2b0) ) (declare (temporary ) vec3 assignment_tmp@0x2d5cab0) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x2d5cab0) (expression vec3 + (var_ref assignment_tmp@0x2d5d2b0) (expression vec3 neg (var_ref eyetopos@0x2d9b390) ) ) ) (assign (constant bool (1)) (xyz) (var_ref halfangle@0x2d61780) (var_ref assignment_tmp@0x2d5cab0) ) (declare (temporary ) float length_retval@0x2d5bcb0) (assign (constant bool (1)) (x) (var_ref length_retval@0x2d5bcb0) (call length ((var_ref assignment_tmp@0x2d5cab0) )) ) (assign (constant bool (1)) (xyz) (var_ref halfangle@0x2d61780) (expression vec3 / (var_ref halfangle@0x2d61780) (var_ref length_retval@0x2d5bcb0) ) ) (declare (temporary ) float dot_retval@0x2d5b0a0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x2d5b0a0) (call dot ((var_ref normal@0x2d9a750) (var_ref lightvec@0x2d60e60) )) ) (declare (temporary ) float max_retval@0x2d5a7f0) (assign (constant bool (1)) (x) (var_ref max_retval@0x2d5a7f0) (call max ((var_ref dot_retval@0x2d5b0a0) (constant float (0.000000)) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x2d981a0) (expression vec4 + (var_ref pc@0x2d981a0) (expression vec4 * (var_ref att@0x2d61500) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2c79ae0) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2c79ae0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) ambient) ) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x2d5a7f0) (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x2c79ae0) diffuse) ) ) ) ) ) (declare (temporary ) float dot_retval@0x2d585d0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x2d585d0) (call dot ((var_ref normal@0x2d9a750) (var_ref halfangle@0x2d61780) )) ) (declare (temporary ) float max_retval@0x2d57cc0) (assign (constant bool (1)) (x) (var_ref max_retval@0x2d57cc0) (call max ((var_ref dot_retval@0x2d585d0) (constant float (0.000000)) )) ) (declare (temporary ) float pow_retval@0x2d57530) (assign (constant bool (1)) (x) (var_ref pow_retval@0x2d57530) (call pow ((var_ref max_retval@0x2d57cc0) (record_ref (var_ref gl_FrontMaterial@0x2c79ae0) shininess) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x2d97a20) (expression vec4 + (var_ref sc@0x2d97a20) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x2d61500) (record_ref (var_ref gl_FrontMaterial@0x2c79ae0) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) specular) ) (var_ref pow_retval@0x2d57530) ) ) ) ) ()) (assign (constant bool (1)) (x) (var_ref li@0x2d971d0) (expression int + (var_ref li@0x2d971d0) (constant int (1)) ) ) (declare (temporary ) bool and_tmp@0x2da1510) (if (expression bool != (array_ref (var_ref light_enabled@0x2d9eb10) (var_ref li@0x2d971d0) ) (constant int (0)) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x2da1510) (expression bool <= (var_ref li@0x2d971d0) (var_ref max_light_enabled@0x2d9e990) ) ) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x2da1510) (constant bool (0)) ) )) (if (var_ref and_tmp@0x2da1510) ( (declare () vec3 halfangle@0x2da1c90) (declare () vec4 att@0x2da1e10) (declare () vec3 lightvec@0x2da2110) (declare (temporary ) vec3 assignment_tmp@0x2da2410) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x2da2410) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) position) )(swiz w (var_ref position@0x2d9bb10) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref position@0x2d9bb10) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) position) )) ) ) ) (assign (constant bool (1)) (xyz) (var_ref lightvec@0x2da2110) (var_ref assignment_tmp@0x2da2410) ) (declare (temporary ) float length_retval@0x2da3190) (assign (constant bool (1)) (x) (var_ref length_retval@0x2da3190) (call length ((var_ref assignment_tmp@0x2da2410) )) ) (assign (constant bool (1)) (xyzw) (var_ref att@0x2da1e10) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) linearAttenuation) (swiz xxxx (var_ref length_retval@0x2da3190) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref length_retval@0x2da3190) (var_ref length_retval@0x2da3190) ) )) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x2e227e0) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x2e227e0) (expression vec3 / (var_ref lightvec@0x2da2110) (var_ref length_retval@0x2da3190) ) ) (assign (constant bool (1)) (xyz) (var_ref lightvec@0x2da2110) (var_ref assignment_tmp@0x2e227e0) ) (declare (temporary ) vec3 assignment_tmp@0x2e13c90) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x2e13c90) (expression vec3 + (var_ref assignment_tmp@0x2e227e0) (expression vec3 neg (var_ref eyetopos@0x2d9b390) ) ) ) (assign (constant bool (1)) (xyz) (var_ref halfangle@0x2da1c90) (var_ref assignment_tmp@0x2e13c90) ) (declare (temporary ) float length_retval@0x2e0d9e0) (assign (constant bool (1)) (x) (var_ref length_retval@0x2e0d9e0) (call length ((var_ref assignment_tmp@0x2e13c90) )) ) (assign (constant bool (1)) (xyz) (var_ref halfangle@0x2da1c90) (expression vec3 / (var_ref halfangle@0x2da1c90) (var_ref length_retval@0x2e0d9e0) ) ) (declare (temporary ) float dot_retval@0x2e01880) (assign (constant bool (1)) (x) (var_ref dot_retval@0x2e01880) (call dot ((var_ref normal@0x2d9a750) (var_ref lightvec@0x2da2110) )) ) (declare (temporary ) float max_retval@0x2dfdde0) (assign (constant bool (1)) (x) (var_ref max_retval@0x2dfdde0) (call max ((var_ref dot_retval@0x2e01880) (constant float (0.000000)) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x2d981a0) (expression vec4 + (var_ref pc@0x2d981a0) (expression vec4 * (var_ref att@0x2da1e10) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2c79ae0) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2c79ae0) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) ambient) ) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x2dfdde0) (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x2c79ae0) diffuse) ) ) ) ) ) (declare (temporary ) float dot_retval@0x2dd8f40) (assign (constant bool (1)) (x) (var_ref dot_retval@0x2dd8f40) (call dot ((var_ref normal@0x2d9a750) (var_ref halfangle@0x2da1c90) )) ) (declare (temporary ) float max_retval@0x2dd52f0) (assign (constant bool (1)) (x) (var_ref max_retval@0x2dd52f0) (call max ((var_ref dot_retval@0x2dd8f40) (constant float (0.000000)) )) ) (declare (temporary ) float pow_retval@0x2dcbf20) (assign (constant bool (1)) (x) (var_ref pow_retval@0x2dcbf20) (call pow ((var_ref max_retval@0x2dd52f0) (record_ref (var_ref gl_FrontMaterial@0x2c79ae0) shininess) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x2d97a20) (expression vec4 + (var_ref sc@0x2d97a20) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x2da1e10) (record_ref (var_ref gl_FrontMaterial@0x2c79ae0) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x2c7a0e0) (var_ref li@0x2d971d0) ) specular) ) (var_ref pow_retval@0x2dcbf20) ) ) ) ) ()) (assign (constant bool (1)) (x) (var_ref li@0x2d971d0) (expression int + (var_ref li@0x2d971d0) (constant int (1)) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x2c71900) (expression vec4 * (var_ref gl_ModelViewProjectionMatrix@0x2c74b30) (var_ref gl_Vertex@0x2c71d40) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_BackColor@0x2c73e10) (var_ref pc@0x2d981a0) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0x2c73be0) (var_ref pc@0x2d981a0) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontSecondaryColor@0x2c74040) (var_ref sc@0x2d97a20) ) )) ) ) 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@0x2edd010) (declare (uniform ) vec4 cloaking@0x2edd190) (declare (uniform ) sampler2D detail1Map@0x2edd310) (declare (uniform ) sampler2D detail0Map@0x2eeadd0) (declare (uniform ) sampler2D damageMap@0x2eeaf50) (declare (uniform ) sampler2D normalMap@0x2eeb0d0) (declare (uniform ) sampler2D glowMap@0x2eeb260) (declare (uniform ) sampler2D specMap@0x2eeb3f0) (declare (uniform ) sampler2D envMap@0x2eeb580) (declare (uniform ) sampler2D diffuseMap@0x2eeb710) (declare (uniform ) int max_light_enabled@0x2eeb890) (declare (uniform ) (array int 8) light_enabled@0x2eeba10) (declare (in ) vec4 gl_FragCoord@0x313e4d0) (declare (in ) bool gl_FrontFacing@0x2d8f1d0) (declare (out ) vec4 gl_FragColor@0x2d8f620) (declare (out ) float gl_FragDepth@0x2d8f7d0) (declare (in ) vec4 gl_Color@0x2d8f980) (declare (in ) vec4 gl_SecondaryColor@0x2d8fdd0) (declare (in ) float gl_FogFragCoord@0x2d8ff50) (declare (uniform ) mat4 gl_ModelViewMatrix@0x2d90100) (declare (uniform ) mat4 gl_ProjectionMatrix@0x2d90550) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x2d906d0) (declare (uniform ) mat3 gl_NormalMatrix@0x2d90b20) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0x2d90cd0) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0x2d90e80) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0x2d912d0) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0x2d91450) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0x2d918a0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0x2d91a50) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0x2d91ea0) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0x2d92050) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0x2d924a0) (declare (uniform ) float gl_NormalScale@0x2d92aa0) (declare (uniform ) gl_LightModelParameters gl_LightModel@0x2d92c50) (declare () int gl_MaxLights@0x2d92e00) (declare () int gl_MaxClipPlanes@0x2d933d0) (declare () int gl_MaxTextureUnits@0x2d939d0) (declare () int gl_MaxTextureCoords@0x2d93d00) (declare () int gl_MaxVertexAttribs@0x2d942d0) (declare () int gl_MaxVertexUniformComponents@0x2d948c0) (declare () int gl_MaxVaryingFloats@0x2d94d60) (declare () int gl_MaxVertexTextureImageUnits@0x2d953f0) (declare () int gl_MaxCombinedTextureImageUnits@0x2d958c0) (declare () int gl_MaxTextureImageUnits@0x2d95f50) (declare () int gl_MaxFragmentUniformComponents@0x2d96420) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0x2d96d30) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0x2d96f80) (declare (uniform ) (array vec4 6) gl_ClipPlane@0x2d975a0) (declare (uniform ) gl_PointParameters gl_Point@0x2d97720) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x2d978a0) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0x2d97d20) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x2d97ea0) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x2d984a0) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0x2d98620) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0x2d98920) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0x2d98aa0) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0x2d98c20) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0x2d98f20) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0x2d990a0) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0x2d99e20) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0x2d99fa0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0x2d9c890) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0x2d9da90) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0x2d9dc10) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0x2d9e210) (declare (uniform ) gl_FogParameters gl_Fog@0x2da1090) (declare (in ) (array vec4 0) gl_TexCoord@0x2da1f90) (declare () int gl_MaxDrawBuffers@0x2c815a0) (declare (out ) (array vec4 1) gl_FragData@0x2c81980) (function matmul (signature vec3 (parameters (declare (in ) vec3 tangent@0x2edce90) (declare (in ) vec3 binormal@0x2edcd10) (declare (in ) vec3 normal@0x2edcb90) (declare (in ) vec3 lightVec@0x2edca10) ) ( (declare (temporary ) float dot_retval@0x2edc710) (assign (constant bool (1)) (x) (var_ref dot_retval@0x2edc710) (call dot ((var_ref lightVec@0x2edca10) (var_ref tangent@0x2edce90) )) ) (declare (temporary ) float dot_retval@0x2edc590) (assign (constant bool (1)) (x) (var_ref dot_retval@0x2edc590) (call dot ((var_ref lightVec@0x2edca10) (var_ref binormal@0x2edcd10) )) ) (declare (temporary ) float dot_retval@0x324ff90) (assign (constant bool (1)) (x) (var_ref dot_retval@0x324ff90) (call dot ((var_ref lightVec@0x2edca10) (var_ref normal@0x2edcb90) )) ) (declare (temporary ) vec3 vec_ctor@0x324fe10) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x324fe10) (swiz xxx (var_ref dot_retval@0x2edc710) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x324fe10) (swiz xxx (var_ref dot_retval@0x2edc590) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x324fe10) (swiz xxx (var_ref dot_retval@0x324ff90) )) (return (var_ref vec_ctor@0x324fe10) ) )) ) (function imatmul (signature vec3 (parameters (declare (in ) vec3 tangent@0x324fc90) (declare (in ) vec3 binormal@0x324fb10) (declare (in ) vec3 normal@0x324f990) (declare (in ) vec3 lightVec@0x324f810) ) ( (return (expression vec3 + (expression vec3 + (expression vec3 * (swiz xxx (var_ref lightVec@0x324f810) )(var_ref tangent@0x324fc90) ) (expression vec3 * (swiz yyy (var_ref lightVec@0x324f810) )(var_ref binormal@0x324fb10) ) ) (expression vec3 * (swiz zzz (var_ref lightVec@0x324f810) )(var_ref normal@0x324f990) ) ) ) )) ) (function expand (signature vec3 (parameters (declare (in ) vec3 expandme@0x324f510) ) ( (return (expression vec3 + (expression vec3 * (var_ref expandme@0x324f510) (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@0x324f210) ) ( (declare (temporary ) float assignment_tmp@0x32478f0) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x32478f0) (expression float + (swiz z (var_ref f@0x324f210) )(constant float (1.000000)) ) ) (declare (temporary ) float sqrt_retval@0x3247470) (assign (constant bool (1)) (x) (var_ref sqrt_retval@0x3247470) (call sqrt ((expression float + (expression float + (expression float * (swiz x (var_ref f@0x324f210) )(swiz x (var_ref f@0x324f210) )) (expression float * (swiz y (var_ref f@0x324f210) )(swiz y (var_ref f@0x324f210) )) ) (expression float * (var_ref assignment_tmp@0x32478f0) (var_ref assignment_tmp@0x32478f0) ) ) )) ) (declare (temporary ) float assignment_tmp@0x3246ff0) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x3246ff0) (expression float * (constant float (2.000000)) (var_ref sqrt_retval@0x3247470) ) ) (declare (temporary ) vec2 vec_ctor@0x3219270) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x3219270) (swiz xx (expression float + (expression float / (swiz x (var_ref f@0x324f210) )(var_ref assignment_tmp@0x3246ff0) ) (constant float (0.500000)) ) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x3219270) (swiz xx (expression float + (expression float / (swiz y (var_ref f@0x324f210) )(var_ref assignment_tmp@0x3246ff0) ) (constant float (0.500000)) ) )) (return (var_ref vec_ctor@0x3219270) ) )) ) (function main (signature void (parameters ) ( (declare () vec4 specularity@0x2f25840) (declare () vec4 ambient@0x2f688f0) (declare () vec4 specsurface@0x2fa1250) (declare () vec4 diffsurface@0x2fe3260) (declare () vec4 damagecolor@0x2eed090) (declare () vec4 undamagedcolor@0x32126c0) (declare (temporary ) vec4 texture2D_retval@0x3212040) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x3212040) (call texture2D ((var_ref diffuseMap@0x2eeb710) (swiz xy (array_ref (var_ref gl_TexCoord@0x2da1f90) (constant int (0)) ) ))) ) (assign (constant bool (1)) (xyzw) (var_ref undamagedcolor@0x32126c0) (var_ref texture2D_retval@0x3212040) ) (declare (temporary ) vec4 texture2D_retval@0x30c44e0) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x30c44e0) (call texture2D ((var_ref damageMap@0x2eeaf50) (swiz xy (array_ref (var_ref gl_TexCoord@0x2da1f90) (constant int (0)) ) ))) ) (assign (constant bool (1)) (xyzw) (var_ref damagecolor@0x2eed090) (var_ref texture2D_retval@0x30c44e0) ) (declare (temporary ) vec4 mix_retval@0x2fe2dc0) (assign (constant bool (1)) (xyzw) (var_ref mix_retval@0x2fe2dc0) (call mix ((var_ref undamagedcolor@0x32126c0) (var_ref texture2D_retval@0x30c44e0) (swiz x (var_ref damage@0x2edd010) ))) ) (assign (constant bool (1)) (xyzw) (var_ref diffsurface@0x2fe3260) (var_ref mix_retval@0x2fe2dc0) ) (declare (temporary ) vec4 texture2D_retval@0x2fa0d00) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x2fa0d00) (call texture2D ((var_ref specMap@0x2eeb3f0) (swiz xy (array_ref (var_ref gl_TexCoord@0x2da1f90) (constant int (0)) ) ))) ) (assign (constant bool (1)) (xyzw) (var_ref specsurface@0x2fa1250) (expression vec4 * (var_ref texture2D_retval@0x2fa0d00) (expression vec4 + (constant float (1.000000)) (expression vec4 neg (expression vec4 * (expression vec4 * (var_ref damagecolor@0x2eed090) (swiz x (var_ref damage@0x2edd010) )) (constant float (2.000000)) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref ambient@0x2f688f0) (var_ref gl_Color@0x2d8f980) ) (declare (temporary ) vec4 texture2D_retval@0x2f252e0) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x2f252e0) (call texture2D ((var_ref envMap@0x2eeb580) (swiz xy (array_ref (var_ref gl_TexCoord@0x2da1f90) (constant int (1)) ) ))) ) (assign (constant bool (1)) (xyzw) (var_ref specularity@0x2f25840) (expression vec4 + (var_ref gl_SecondaryColor@0x2d8fdd0) (var_ref texture2D_retval@0x2f252e0) ) ) (declare (temporary ) vec4 texture2D_retval@0x31dede0) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x31dede0) (call texture2D ((var_ref glowMap@0x2eeb260) (swiz xy (array_ref (var_ref gl_TexCoord@0x2da1f90) (constant int (0)) ) ))) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x2d8f620) (expression vec4 * (expression vec4 + (expression vec4 + (expression vec4 * (var_ref ambient@0x2f688f0) (var_ref diffsurface@0x2fe3260) ) (expression vec4 * (var_ref specularity@0x2f25840) (var_ref specsurface@0x2fa1250) ) ) (var_ref texture2D_retval@0x31dede0) ) (swiz xxxy (var_ref cloaking@0x2edd190) )) ) )) ) ) GLSL IR for linked vertex program 1: ( (declare (uniform ) int max_light_enabled@0x311cab0) (declare (uniform ) (array int 9) light_enabled@0x311c930) (declare (out ) vec4 gl_Position@0x311c7b0) (declare (in ) vec4 gl_Vertex@0x310fc40) (declare (in ) vec3 gl_Normal@0x310fac0) (declare (in ) vec4 gl_MultiTexCoord0@0x310f3e0) (declare (out ) vec4 gl_FrontColor@0x304ded0) (declare (out ) vec4 gl_BackColor@0x304dd50) (declare (out ) vec4 gl_FrontSecondaryColor@0x304d970) (declare (uniform ) mat4 gl_ModelViewMatrix@0x304d420) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x302a9a0) (declare (uniform ) mat3 gl_NormalMatrix@0x302a750) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x2cffe30) (declare (uniform ) (array gl_LightSourceParameters 9) gl_LightSource@0x2cffa60) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x2cff8e0) (declare (uniform ) (array gl_LightProducts 1) gl_FrontLightProduct@0x2cfdfb0) (declare (out ) (array vec4 0) gl_TexCoord@0x2cf8970) (function main (signature void (parameters ) ( (declare () vec4 sc@0x3184ee0) (declare () vec4 pc@0x317e820) (declare (temporary ) vec4 flattening_tmp@0x338d180) (assign (constant bool (1)) (xyzw) (var_ref flattening_tmp@0x338d180) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x304d420) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x310fc40) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x304d420) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x310fc40) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x304d420) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x310fc40) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x304d420) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x310fc40) )) ) ) (declare () vec3 _ret_val@0x3140aa0) (declare () vec3 arg0@0x3140f50) (assign (constant bool (1)) (xyz) (var_ref arg0@0x3140f50) (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x338d180) )(expression float rcp (swiz w (var_ref flattening_tmp@0x338d180) )) ) ) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x3140aa0) (expression vec3 * (var_ref arg0@0x3140f50) (expression float rsq (expression float dot (var_ref arg0@0x3140f50) (var_ref arg0@0x3140f50) ) ) ) ) (declare () vec3 _ret_val@0x3152670) (declare (temporary ) vec3 flattening_tmp@0x338cd20) (assign (constant bool (1)) (xyz) (var_ref flattening_tmp@0x338cd20) (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x302a750) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x310fac0) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x302a750) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x310fac0) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x302a750) (constant int (2)) ) (swiz z (var_ref gl_Normal@0x310fac0) )) ) ) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref flattening_tmp@0x338cd20) (expression float rsq (expression float dot (var_ref flattening_tmp@0x338cd20) (var_ref flattening_tmp@0x338cd20) ) ) ) ) (declare () vec3 _ret_val@0x317ba20) (declare () vec3 i@0x317ffb0) (assign (constant bool (1)) (xyz) (var_ref i@0x317ffb0) (expression vec3 neg (var_ref _ret_val@0x3140aa0) ) ) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x317ba20) (expression vec3 + (var_ref i@0x317ffb0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x3152670) (var_ref i@0x317ffb0) ) (var_ref _ret_val@0x3152670) ) ) ) ) ) (declare (temporary ) float assignment_tmp@0x2df59b0) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x2df59b0) (expression float + (swiz z (var_ref _ret_val@0x317ba20) )(constant float (1.000000)) ) ) (declare (temporary ) float assignment_tmp@0x2cc0fa0) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x2cc0fa0) (expression float * (constant float (2.000000)) (expression float sqrt (expression float + (expression float + (expression float * (swiz x (var_ref _ret_val@0x317ba20) )(swiz x (var_ref _ret_val@0x317ba20) )) (expression float * (swiz y (var_ref _ret_val@0x317ba20) )(swiz y (var_ref _ret_val@0x317ba20) )) ) (expression float * (var_ref assignment_tmp@0x2df59b0) (var_ref assignment_tmp@0x2df59b0) ) ) ) ) ) (declare (temporary ) vec2 vec_ctor@0x2e5a7d0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x2e5a7d0) (swiz xx (expression float + (expression float * (swiz x (var_ref _ret_val@0x317ba20) )(expression float rcp (var_ref assignment_tmp@0x2cc0fa0) ) ) (constant float (0.500000)) ) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x2e5a7d0) (swiz xx (expression float + (expression float * (swiz y (var_ref _ret_val@0x317ba20) )(expression float rcp (var_ref assignment_tmp@0x2cc0fa0) ) ) (constant float (0.500000)) ) )) (assign (constant bool (1)) (xy) (array_ref (var_ref gl_TexCoord@0x2cf8970) (constant int (1)) ) (var_ref vec_ctor@0x2e5a7d0) ) (assign (constant bool (1)) (zw) (array_ref (var_ref gl_TexCoord@0x2cf8970) (constant int (1)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x2cf8970) (constant int (0)) ) (var_ref gl_MultiTexCoord0@0x310f3e0) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x317e820) (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x2cfdfb0) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontLightModelProduct@0x2cff8e0) sceneColor) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x3184ee0) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (declare (temporary ) bool and_tmp@0x2e01cc0) (if (expression bool != (array_ref (var_ref light_enabled@0x311c930) (constant int (0)) ) (constant int (0)) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x2e01cc0) (expression bool <= (constant int (0)) (var_ref max_light_enabled@0x311cab0) ) ) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x2e01cc0) (constant bool (0)) ) )) (if (var_ref and_tmp@0x2e01cc0) ( (declare () vec4 att@0x2cba2f0) (declare (temporary ) vec3 assignment_tmp@0x3114a60) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x3114a60) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) position) )(swiz w (var_ref flattening_tmp@0x338d180) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x338d180) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) position) )) ) ) ) (declare () float _ret_val@0x332db10) (assign (constant bool (1)) (x) (var_ref _ret_val@0x332db10) (expression float sqrt (expression float dot (var_ref assignment_tmp@0x3114a60) (var_ref assignment_tmp@0x3114a60) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref att@0x2cba2f0) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x332db10) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x332db10) (var_ref _ret_val@0x332db10) ) )) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x3231a70) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x3231a70) (expression vec3 * (var_ref assignment_tmp@0x3114a60) (expression float rcp (var_ref _ret_val@0x332db10) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x312eb10) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x312eb10) (expression vec3 + (var_ref assignment_tmp@0x3231a70) (expression vec3 neg (var_ref _ret_val@0x3140aa0) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x317e820) (expression vec4 + (var_ref pc@0x317e820) (expression vec4 * (var_ref att@0x2cba2f0) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2cffe30) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2cffe30) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x3231a70) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x3184ee0) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x2cba2f0) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x312eb10) (expression float rsq (expression float dot (var_ref assignment_tmp@0x312eb10) (var_ref assignment_tmp@0x312eb10) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) shininess) ) ) ) ) ()) (declare (temporary ) bool and_tmp@0x3221690) (if (expression bool != (array_ref (var_ref light_enabled@0x311c930) (constant int (1)) ) (constant int (0)) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x3221690) (expression bool <= (constant int (1)) (var_ref max_light_enabled@0x311cab0) ) ) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x3221690) (constant bool (0)) ) )) (if (var_ref and_tmp@0x3221690) ( (declare () vec4 att@0x315b8b0) (declare (temporary ) vec3 assignment_tmp@0x3153d90) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x3153d90) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) position) )(swiz w (var_ref flattening_tmp@0x338d180) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x338d180) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) position) )) ) ) ) (declare () float _ret_val@0x2cee1f0) (assign (constant bool (1)) (x) (var_ref _ret_val@0x2cee1f0) (expression float sqrt (expression float dot (var_ref assignment_tmp@0x3153d90) (var_ref assignment_tmp@0x3153d90) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref att@0x315b8b0) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x2cee1f0) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x2cee1f0) (var_ref _ret_val@0x2cee1f0) ) )) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x2ca8e00) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x2ca8e00) (expression vec3 * (var_ref assignment_tmp@0x3153d90) (expression float rcp (var_ref _ret_val@0x2cee1f0) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x2c9ea60) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x2c9ea60) (expression vec3 + (var_ref assignment_tmp@0x2ca8e00) (expression vec3 neg (var_ref _ret_val@0x3140aa0) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x317e820) (expression vec4 + (var_ref pc@0x317e820) (expression vec4 * (var_ref att@0x315b8b0) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2cffe30) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2cffe30) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x2ca8e00) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x3184ee0) (expression vec4 + (var_ref sc@0x3184ee0) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x315b8b0) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x2c9ea60) (expression float rsq (expression float dot (var_ref assignment_tmp@0x2c9ea60) (var_ref assignment_tmp@0x2c9ea60) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) shininess) ) ) ) ) ) ()) (declare (temporary ) bool and_tmp@0x2d54c80) (if (expression bool != (array_ref (var_ref light_enabled@0x311c930) (constant int (2)) ) (constant int (0)) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x2d54c80) (expression bool <= (constant int (2)) (var_ref max_light_enabled@0x311cab0) ) ) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x2d54c80) (constant bool (0)) ) )) (if (var_ref and_tmp@0x2d54c80) ( (declare () vec4 att@0x33ad550) (declare (temporary ) vec3 assignment_tmp@0x33ad6b0) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x33ad6b0) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) position) )(swiz w (var_ref flattening_tmp@0x338d180) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x338d180) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) position) )) ) ) ) (declare () float _ret_val@0x323ecc0) (assign (constant bool (1)) (x) (var_ref _ret_val@0x323ecc0) (expression float sqrt (expression float dot (var_ref assignment_tmp@0x33ad6b0) (var_ref assignment_tmp@0x33ad6b0) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref att@0x33ad550) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x323ecc0) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x323ecc0) (var_ref _ret_val@0x323ecc0) ) )) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x33ae170) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x33ae170) (expression vec3 * (var_ref assignment_tmp@0x33ad6b0) (expression float rcp (var_ref _ret_val@0x323ecc0) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x33ae400) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x33ae400) (expression vec3 + (var_ref assignment_tmp@0x33ae170) (expression vec3 neg (var_ref _ret_val@0x3140aa0) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x317e820) (expression vec4 + (var_ref pc@0x317e820) (expression vec4 * (var_ref att@0x33ad550) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2cffe30) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2cffe30) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x33ae170) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x3184ee0) (expression vec4 + (var_ref sc@0x3184ee0) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x33ad550) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x33ae400) (expression float rsq (expression float dot (var_ref assignment_tmp@0x33ae400) (var_ref assignment_tmp@0x33ae400) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) shininess) ) ) ) ) ) ()) (declare (temporary ) bool and_tmp@0x33b0010) (if (expression bool != (array_ref (var_ref light_enabled@0x311c930) (constant int (3)) ) (constant int (0)) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x33b0010) (expression bool <= (constant int (3)) (var_ref max_light_enabled@0x311cab0) ) ) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x33b0010) (constant bool (0)) ) )) (if (var_ref and_tmp@0x33b0010) ( (declare () vec4 att@0x33b0730) (declare (temporary ) vec3 assignment_tmp@0x33b0890) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x33b0890) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) position) )(swiz w (var_ref flattening_tmp@0x338d180) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x338d180) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) position) )) ) ) ) (declare () float _ret_val@0x2cb7f10) (assign (constant bool (1)) (x) (var_ref _ret_val@0x2cb7f10) (expression float sqrt (expression float dot (var_ref assignment_tmp@0x33b0890) (var_ref assignment_tmp@0x33b0890) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref att@0x33b0730) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x2cb7f10) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x2cb7f10) (var_ref _ret_val@0x2cb7f10) ) )) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x33b1350) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x33b1350) (expression vec3 * (var_ref assignment_tmp@0x33b0890) (expression float rcp (var_ref _ret_val@0x2cb7f10) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x33b15e0) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x33b15e0) (expression vec3 + (var_ref assignment_tmp@0x33b1350) (expression vec3 neg (var_ref _ret_val@0x3140aa0) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x317e820) (expression vec4 + (var_ref pc@0x317e820) (expression vec4 * (var_ref att@0x33b0730) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2cffe30) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2cffe30) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x33b1350) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x3184ee0) (expression vec4 + (var_ref sc@0x3184ee0) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x33b0730) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x33b15e0) (expression float rsq (expression float dot (var_ref assignment_tmp@0x33b15e0) (var_ref assignment_tmp@0x33b15e0) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) shininess) ) ) ) ) ) ()) (declare (temporary ) bool and_tmp@0x33b31f0) (if (expression bool != (array_ref (var_ref light_enabled@0x311c930) (constant int (4)) ) (constant int (0)) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x33b31f0) (expression bool <= (constant int (4)) (var_ref max_light_enabled@0x311cab0) ) ) ) ( (assign (constant bool (1)) (x) (var_ref and_tmp@0x33b31f0) (constant bool (0)) ) )) (if (var_ref and_tmp@0x33b31f0) ( (declare () vec4 att@0x33b3910) (declare (temporary ) vec3 assignment_tmp@0x33b3a70) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x33b3a70) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) position) )(swiz w (var_ref flattening_tmp@0x338d180) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x338d180) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) position) )) ) ) ) (declare () float _ret_val@0x3255640) (assign (constant bool (1)) (x) (var_ref _ret_val@0x3255640) (expression float sqrt (expression float dot (var_ref assignment_tmp@0x33b3a70) (var_ref assignment_tmp@0x33b3a70) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref att@0x33b3910) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x3255640) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x3255640) (var_ref _ret_val@0x3255640) ) )) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x33b4530) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x33b4530) (expression vec3 * (var_ref assignment_tmp@0x33b3a70) (expression float rcp (var_ref _ret_val@0x3255640) ) ) ) (declare (temporary ) vec3 assignment_tmp@0x33b47c0) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x33b47c0) (expression vec3 + (var_ref assignment_tmp@0x33b4530) (expression vec3 neg (var_ref _ret_val@0x3140aa0) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x317e820) (expression vec4 + (var_ref pc@0x317e820) (expression vec4 * (var_ref att@0x33b3910) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2cffe30) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2cffe30) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x33b4530) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x3184ee0) (expression vec4 + (var_ref sc@0x3184ee0) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x33b3910) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x33b47c0) (expression float rsq (expression float dot (var_ref assignment_tmp@0x33b47c0) (var_ref assignment_tmp@0x33b47c0) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) shininess) ) ) ) ) ) ()) (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x311c7b0) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x302a9a0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x310fc40) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x302a9a0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x310fc40) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x302a9a0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x310fc40) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x302a9a0) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x310fc40) )) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_BackColor@0x304dd50) (var_ref pc@0x317e820) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0x304ded0) (var_ref pc@0x317e820) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontSecondaryColor@0x304d970) (var_ref sc@0x3184ee0) ) )) ) ) Mesa IR for linked vertex program 1: 0: (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x2cffe30) MOV TEMP[1], STATE[21]; 1: MOV TEMP[2], STATE[22]; 2: MOV TEMP[3], STATE[23]; 3: MOV TEMP[4], STATE[24]; 4: MOV TEMP[5], STATE[25].xxxx; 5: (declare (uniform ) (array gl_LightSourceParameters 9) gl_LightSource@0x2cffa60) MOV TEMP[6], STATE[26]; 6: MOV TEMP[7], STATE[27]; 7: MOV TEMP[8], STATE[28]; 8: MOV TEMP[9], STATE[29]; 9: MOV TEMP[10], STATE[30]; 10: MOV TEMP[11], STATE[31]; 11: MOV TEMP[12], STATE[31].wwww; 12: MOV TEMP[13], STATE[32].xxxx; 13: MOV TEMP[14], STATE[33].wwww; 14: MOV TEMP[15], STATE[33].xxxx; 15: MOV TEMP[16], STATE[33].yyyy; 16: MOV TEMP[17], STATE[33].zzzz; 17: MOV TEMP[18], STATE[34]; 18: MOV TEMP[19], STATE[35]; 19: MOV TEMP[20], STATE[36]; 20: MOV TEMP[21], STATE[37]; 21: MOV TEMP[22], STATE[38]; 22: MOV TEMP[23], STATE[39]; 23: MOV TEMP[24], STATE[39].wwww; 24: MOV TEMP[25], STATE[40].xxxx; 25: MOV TEMP[26], STATE[41].wwww; 26: MOV TEMP[27], STATE[41].xxxx; 27: MOV TEMP[28], STATE[41].yyyy; 28: MOV TEMP[29], STATE[41].zzzz; 29: MOV TEMP[30], STATE[42]; 30: MOV TEMP[31], STATE[43]; 31: MOV TEMP[32], STATE[44]; 32: MOV TEMP[33], STATE[45]; 33: MOV TEMP[34], STATE[46]; 34: MOV TEMP[35], STATE[47]; 35: MOV TEMP[36], STATE[47].wwww; 36: MOV TEMP[37], STATE[48].xxxx; 37: MOV TEMP[38], STATE[49].wwww; 38: MOV TEMP[39], STATE[49].xxxx; 39: MOV TEMP[40], STATE[49].yyyy; 40: MOV TEMP[41], STATE[49].zzzz; 41: MOV TEMP[42], STATE[50]; 42: MOV TEMP[43], STATE[51]; 43: MOV TEMP[44], STATE[52]; 44: MOV TEMP[45], STATE[53]; 45: MOV TEMP[46], STATE[54]; 46: MOV TEMP[47], STATE[55]; 47: MOV TEMP[48], STATE[55].wwww; 48: MOV TEMP[49], STATE[56].xxxx; 49: MOV TEMP[50], STATE[57].wwww; 50: MOV TEMP[51], STATE[57].xxxx; 51: MOV TEMP[52], STATE[57].yyyy; 52: MOV TEMP[53], STATE[57].zzzz; 53: MOV TEMP[54], STATE[58]; 54: MOV TEMP[55], STATE[59]; 55: MOV TEMP[56], STATE[60]; 56: MOV TEMP[57], STATE[61]; 57: MOV TEMP[58], STATE[62]; 58: MOV TEMP[59], STATE[63]; 59: MOV TEMP[60], STATE[63].wwww; 60: MOV TEMP[61], STATE[64].xxxx; 61: MOV TEMP[62], STATE[65].wwww; 62: MOV TEMP[63], STATE[65].xxxx; 63: MOV TEMP[64], STATE[65].yyyy; 64: MOV TEMP[65], STATE[65].zzzz; 65: MOV TEMP[66], STATE[66]; 66: MOV TEMP[67], STATE[67]; 67: MOV TEMP[68], STATE[68]; 68: MOV TEMP[69], STATE[69]; 69: MOV TEMP[70], STATE[70]; 70: MOV TEMP[71], STATE[71]; 71: MOV TEMP[72], STATE[71].wwww; 72: MOV TEMP[73], STATE[72].xxxx; 73: MOV TEMP[74], STATE[73].wwww; 74: MOV TEMP[75], STATE[73].xxxx; 75: MOV TEMP[76], STATE[73].yyyy; 76: MOV TEMP[77], STATE[73].zzzz; 77: MOV TEMP[78], STATE[74]; 78: MOV TEMP[79], STATE[75]; 79: MOV TEMP[80], STATE[76]; 80: MOV TEMP[81], STATE[77]; 81: MOV TEMP[82], STATE[78]; 82: MOV TEMP[83], STATE[79]; 83: MOV TEMP[84], STATE[79].wwww; 84: MOV TEMP[85], STATE[80].xxxx; 85: MOV TEMP[86], STATE[81].wwww; 86: MOV TEMP[87], STATE[81].xxxx; 87: MOV TEMP[88], STATE[81].yyyy; 88: MOV TEMP[89], STATE[81].zzzz; 89: MOV TEMP[90], STATE[82]; 90: MOV TEMP[91], STATE[83]; 91: MOV TEMP[92], STATE[84]; 92: MOV TEMP[93], STATE[85]; 93: MOV TEMP[94], STATE[86]; 94: MOV TEMP[95], STATE[87]; 95: MOV TEMP[96], STATE[87].wwww; 96: MOV TEMP[97], STATE[88].xxxx; 97: MOV TEMP[98], STATE[89].wwww; 98: MOV TEMP[99], STATE[89].xxxx; 99: MOV TEMP[100], STATE[89].yyyy; 100: MOV TEMP[101], STATE[89].zzzz; 101: MOV TEMP[102], STATE[90]; 102: MOV TEMP[103], STATE[91]; 103: MOV TEMP[104], STATE[92]; 104: MOV TEMP[105], STATE[93]; 105: MOV TEMP[106], STATE[94]; 106: MOV TEMP[107], STATE[95]; 107: MOV TEMP[108], STATE[95].wwww; 108: MOV TEMP[109], STATE[96].xxxx; 109: MOV TEMP[110], STATE[97].wwww; 110: MOV TEMP[111], STATE[97].xxxx; 111: MOV TEMP[112], STATE[97].yyyy; 112: MOV TEMP[113], STATE[97].zzzz; 113: (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x304d420) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x310fc40) )) MUL TEMP[114], STATE[10], INPUT[0].xxxx; 114: (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x304d420) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x310fc40) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x304d420) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x310fc40) )) ) MAD TEMP[115], STATE[11], INPUT[0].yyyy, TEMP[114]; 115: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x304d420) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x310fc40) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x304d420) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x310fc40) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x304d420) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x310fc40) )) ) MAD TEMP[116], STATE[12], INPUT[0].zzzz, TEMP[115]; 116: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x304d420) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x310fc40) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x304d420) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x310fc40) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x304d420) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x310fc40) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x304d420) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x310fc40) )) ) MAD TEMP[117], STATE[13], INPUT[0].wwww, TEMP[116]; 117: (assign (constant bool (1)) (xyzw) (var_ref flattening_tmp@0x338d180) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x304d420) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x310fc40) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x304d420) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x310fc40) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x304d420) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x310fc40) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x304d420) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x310fc40) )) ) ) MOV TEMP[118], TEMP[117]; 118: (expression float rcp (swiz w (var_ref flattening_tmp@0x338d180) )) RCP TEMP[119].x, TEMP[118].wwww; 119: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x338d180) )(expression float rcp (swiz w (var_ref flattening_tmp@0x338d180) )) ) MUL TEMP[120].xyz, TEMP[118].xyzz, TEMP[119].xxxx; 120: (assign (constant bool (1)) (xyz) (var_ref arg0@0x3140f50) (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x338d180) )(expression float rcp (swiz w (var_ref flattening_tmp@0x338d180) )) ) ) MOV TEMP[121].xyz, TEMP[120].xyzz; 121: (expression float dot (var_ref arg0@0x3140f50) (var_ref arg0@0x3140f50) ) DP3 TEMP[122].x, TEMP[121].xyzz, TEMP[121].xyzz; 122: (expression float rsq (expression float dot (var_ref arg0@0x3140f50) (var_ref arg0@0x3140f50) ) ) RSQ TEMP[123].x, TEMP[122].xxxx; 123: (expression vec3 * (var_ref arg0@0x3140f50) (expression float rsq (expression float dot (var_ref arg0@0x3140f50) (var_ref arg0@0x3140f50) ) ) ) MUL TEMP[124].xyz, TEMP[121].xyzz, TEMP[123].xxxx; 124: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x3140aa0) (expression vec3 * (var_ref arg0@0x3140f50) (expression float rsq (expression float dot (var_ref arg0@0x3140f50) (var_ref arg0@0x3140f50) ) ) ) ) MOV TEMP[125].xyz, TEMP[124].xyzz; 125: (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x302a750) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x310fac0) )) MUL TEMP[126].xyz, STATE[18].xyzz, INPUT[2].xxxx; 126: (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x302a750) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x310fac0) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x302a750) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x310fac0) )) ) MAD TEMP[127], STATE[19].xyzz, INPUT[2].yyyy, TEMP[126].xyzz; 127: (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x302a750) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x310fac0) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x302a750) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x310fac0) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x302a750) (constant int (2)) ) (swiz z (var_ref gl_Normal@0x310fac0) )) ) MAD TEMP[128], STATE[20].xyzz, INPUT[2].zzzz, TEMP[127].xyzz; 128: (assign (constant bool (1)) (xyz) (var_ref flattening_tmp@0x338cd20) (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x302a750) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x310fac0) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x302a750) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x310fac0) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x302a750) (constant int (2)) ) (swiz z (var_ref gl_Normal@0x310fac0) )) ) ) MOV TEMP[129].xyz, TEMP[128].xyzz; 129: (expression float dot (var_ref flattening_tmp@0x338cd20) (var_ref flattening_tmp@0x338cd20) ) DP3 TEMP[130].x, TEMP[129].xyzz, TEMP[129].xyzz; 130: (expression float rsq (expression float dot (var_ref flattening_tmp@0x338cd20) (var_ref flattening_tmp@0x338cd20) ) ) RSQ TEMP[131].x, TEMP[130].xxxx; 131: (expression vec3 * (var_ref flattening_tmp@0x338cd20) (expression float rsq (expression float dot (var_ref flattening_tmp@0x338cd20) (var_ref flattening_tmp@0x338cd20) ) ) ) MUL TEMP[132].xyz, TEMP[129].xyzz, TEMP[131].xxxx; 132: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref flattening_tmp@0x338cd20) (expression float rsq (expression float dot (var_ref flattening_tmp@0x338cd20) (var_ref flattening_tmp@0x338cd20) ) ) ) ) MOV TEMP[133].xyz, TEMP[132].xyzz; 133: (assign (constant bool (1)) (xyz) (var_ref i@0x317ffb0) (expression vec3 neg (var_ref _ret_val@0x3140aa0) ) ) MOV TEMP[135].xyz, TEMP[125].-x-y-z-z; 134: (expression float dot (var_ref _ret_val@0x3152670) (var_ref i@0x317ffb0) ) DP3 TEMP[136].x, TEMP[133].xyzz, TEMP[135].xyzz; 135: (expression vec3 * (expression float dot (var_ref _ret_val@0x3152670) (var_ref i@0x317ffb0) ) (var_ref _ret_val@0x3152670) ) MUL TEMP[137].xyz, TEMP[136].xxxx, TEMP[133].xyzz; 136: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x3152670) (var_ref i@0x317ffb0) ) (var_ref _ret_val@0x3152670) ) ) MUL TEMP[138].xyz, CONST[102].xxxx, TEMP[137].xyzz; 137: (expression vec3 + (var_ref i@0x317ffb0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x3152670) (var_ref i@0x317ffb0) ) (var_ref _ret_val@0x3152670) ) ) ) ) ADD TEMP[140].xyz, TEMP[135].xyzz, TEMP[138].-x-y-z-z; 138: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x317ba20) (expression vec3 + (var_ref i@0x317ffb0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x3152670) (var_ref i@0x317ffb0) ) (var_ref _ret_val@0x3152670) ) ) ) ) ) MOV TEMP[141].xyz, TEMP[140].xyzz; 139: (expression float + (swiz z (var_ref _ret_val@0x317ba20) )(constant float (1.000000)) ) ADD TEMP[142].x, TEMP[141].zzzz, CONST[102].yyyy; 140: (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x2df59b0) (expression float + (swiz z (var_ref _ret_val@0x317ba20) )(constant float (1.000000)) ) ) MOV TEMP[143], TEMP[142].xxxx; 141: (expression float * (swiz x (var_ref _ret_val@0x317ba20) )(swiz x (var_ref _ret_val@0x317ba20) )) MUL TEMP[144].x, TEMP[141].xxxx, TEMP[141].xxxx; 142: (expression float + (expression float * (swiz x (var_ref _ret_val@0x317ba20) )(swiz x (var_ref _ret_val@0x317ba20) )) (expression float * (swiz y (var_ref _ret_val@0x317ba20) )(swiz y (var_ref _ret_val@0x317ba20) )) ) MAD TEMP[145], TEMP[141].yyyy, TEMP[141].yyyy, TEMP[144].xxxx; 143: (expression float + (expression float + (expression float * (swiz x (var_ref _ret_val@0x317ba20) )(swiz x (var_ref _ret_val@0x317ba20) )) (expression float * (swiz y (var_ref _ret_val@0x317ba20) )(swiz y (var_ref _ret_val@0x317ba20) )) ) (expression float * (var_ref assignment_tmp@0x2df59b0) (var_ref assignment_tmp@0x2df59b0) ) ) MAD TEMP[146], TEMP[143].xxxx, TEMP[143].xxxx, TEMP[145].xxxx; 144: (expression float sqrt (expression float + (expression float + (expression float * (swiz x (var_ref _ret_val@0x317ba20) )(swiz x (var_ref _ret_val@0x317ba20) )) (expression float * (swiz y (var_ref _ret_val@0x317ba20) )(swiz y (var_ref _ret_val@0x317ba20) )) ) (expression float * (var_ref assignment_tmp@0x2df59b0) (var_ref assignment_tmp@0x2df59b0) ) ) ) RSQ TEMP[147].x, TEMP[146].xxxx; 145: MUL TEMP[147].x, TEMP[147].xxxx, TEMP[146].xxxx; 146: CMP TEMP[147].x, TEMP[146].-x-x-x-x, TEMP[147].xxxx, CONST[102].zzzz; 147: (expression float * (constant float (2.000000)) (expression float sqrt (expression float + (expression float + (expression float * (swiz x (var_ref _ret_val@0x317ba20) )(swiz x (var_ref _ret_val@0x317ba20) )) (expression float * (swiz y (var_ref _ret_val@0x317ba20) )(swiz y (var_ref _ret_val@0x317ba20) )) ) (expression float * (var_ref assignment_tmp@0x2df59b0) (var_ref assignment_tmp@0x2df59b0) ) ) ) ) MUL TEMP[148].x, CONST[102].xxxx, TEMP[147].xxxx; 148: (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x2cc0fa0) (expression float * (constant float (2.000000)) (expression float sqrt (expression float + (expression float + (expression float * (swiz x (var_ref _ret_val@0x317ba20) )(swiz x (var_ref _ret_val@0x317ba20) )) (expression float * (swiz y (var_ref _ret_val@0x317ba20) )(swiz y (var_ref _ret_val@0x317ba20) )) ) (expression float * (var_ref assignment_tmp@0x2df59b0) (var_ref assignment_tmp@0x2df59b0) ) ) ) ) ) MOV TEMP[149], TEMP[148].xxxx; 149: (expression float rcp (var_ref assignment_tmp@0x2cc0fa0) ) RCP TEMP[150].x, TEMP[149].xxxx; 150: (expression float + (expression float * (swiz x (var_ref _ret_val@0x317ba20) )(expression float rcp (var_ref assignment_tmp@0x2cc0fa0) ) ) (constant float (0.500000)) ) MAD TEMP[151], TEMP[141].xxxx, TEMP[150].xxxx, CONST[102].wwww; 151: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x2e5a7d0) (swiz xx (expression float + (expression float * (swiz x (var_ref _ret_val@0x317ba20) )(expression float rcp (var_ref assignment_tmp@0x2cc0fa0) ) ) (constant float (0.500000)) ) )) MOV TEMP[152].x, TEMP[151].xxxx; 152: (expression float rcp (var_ref assignment_tmp@0x2cc0fa0) ) RCP TEMP[153].x, TEMP[149].xxxx; 153: (expression float + (expression float * (swiz y (var_ref _ret_val@0x317ba20) )(expression float rcp (var_ref assignment_tmp@0x2cc0fa0) ) ) (constant float (0.500000)) ) MAD TEMP[154], TEMP[141].yyyy, TEMP[153].xxxx, CONST[102].wwww; 154: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x2e5a7d0) (swiz xx (expression float + (expression float * (swiz y (var_ref _ret_val@0x317ba20) )(expression float rcp (var_ref assignment_tmp@0x2cc0fa0) ) ) (constant float (0.500000)) ) )) MOV TEMP[152].y, TEMP[154].xxxx; 155: (assign (constant bool (1)) (xy) (array_ref (var_ref gl_TexCoord@0x2cf8970) (constant int (1)) ) (var_ref vec_ctor@0x2e5a7d0) ) MOV OUTPUT[5].xy, TEMP[152].xyyy; 156: (assign (constant bool (1)) (zw) (array_ref (var_ref gl_TexCoord@0x2cf8970) (constant int (1)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) MOV OUTPUT[5].zw, CONST[102].zzzz; 157: (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x2cf8970) (constant int (0)) ) (var_ref gl_MultiTexCoord0@0x310f3e0) ) MOV OUTPUT[4], INPUT[8]; 158: (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x2cfdfb0) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontLightModelProduct@0x2cff8e0) sceneColor) ) ADD TEMP[155], STATE[99], STATE[98]; 159: (assign (constant bool (1)) (xyzw) (var_ref pc@0x317e820) (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x2cfdfb0) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontLightModelProduct@0x2cff8e0) sceneColor) ) ) MOV TEMP[156], TEMP[155]; 160: (assign (constant bool (1)) (xyzw) (var_ref sc@0x3184ee0) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) MOV TEMP[157], CONST[102].zzzz; 161: (expression bool != (array_ref (var_ref light_enabled@0x311c930) (constant int (0)) ) (constant int (0)) ) SNE.C TEMP[158].x, UNIFORM[1].xxxx, CONST[102].zzzz; 162: IF (NE.xxxx); # (if false, goto 165); 163: (expression bool <= (constant int (0)) (var_ref max_light_enabled@0x311cab0) ) SLE TEMP[159].x, CONST[102].zzzz, UNIFORM[0].xxxx; 164: (assign (constant bool (1)) (x) (var_ref and_tmp@0x2e01cc0) (expression bool <= (constant int (0)) (var_ref max_light_enabled@0x311cab0) ) ) MOV TEMP[160], TEMP[159].xxxx; 165: (expression bool != (array_ref (var_ref light_enabled@0x311c930) (constant int (0)) ) (constant int (0)) ) ELSE; # (goto 167) 166: (assign (constant bool (1)) (x) (var_ref and_tmp@0x2e01cc0) (constant bool (0)) ) MOV TEMP[160], CONST[102].zzzz; 167: (expression bool != (array_ref (var_ref light_enabled@0x311c930) (constant int (0)) ) (constant int (0)) ) ENDIF; 168: (var_ref and_tmp@0x2e01cc0) MOV.C TEMP[161], TEMP[160].xxxx; 169: IF (NE.xxxx); # (if false, goto 208); 170: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x338d180) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) position) )) MUL TEMP[162].xyz, TEMP[118].xyzz, TEMP[9].wwww; 171: (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) position) )(swiz w (var_ref flattening_tmp@0x338d180) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x338d180) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) position) )) ) ) MAD TEMP[164], TEMP[9].xyzz, TEMP[118].wwww, TEMP[162].-x-y-z-z; 172: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x3114a60) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) position) )(swiz w (var_ref flattening_tmp@0x338d180) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x338d180) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) position) )) ) ) ) MOV TEMP[165].xyz, TEMP[164].xyzz; 173: (expression float dot (var_ref assignment_tmp@0x3114a60) (var_ref assignment_tmp@0x3114a60) ) DP3 TEMP[166].x, TEMP[165].xyzz, TEMP[165].xyzz; 174: (expression float sqrt (expression float dot (var_ref assignment_tmp@0x3114a60) (var_ref assignment_tmp@0x3114a60) ) ) RSQ TEMP[167].x, TEMP[166].xxxx; 175: MUL TEMP[167].x, TEMP[167].xxxx, TEMP[166].xxxx; 176: CMP TEMP[167].x, TEMP[166].-x-x-x-x, TEMP[167].xxxx, CONST[102].zzzz; 177: (assign (constant bool (1)) (x) (var_ref _ret_val@0x332db10) (expression float sqrt (expression float dot (var_ref assignment_tmp@0x3114a60) (var_ref assignment_tmp@0x3114a60) ) ) ) MOV TEMP[168], TEMP[167].xxxx; 178: (expression float * (var_ref _ret_val@0x332db10) (var_ref _ret_val@0x332db10) ) MUL TEMP[169].x, TEMP[168].xxxx, TEMP[168].xxxx; 179: (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x332db10) )) ) MAD TEMP[170], TEMP[16].xxxx, TEMP[168].xxxx, TEMP[15].xxxx; 180: (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x332db10) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x332db10) (var_ref _ret_val@0x332db10) ) )) ) MAD TEMP[171], TEMP[17].xxxx, TEMP[169].xxxx, TEMP[170]; 181: (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x332db10) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x332db10) (var_ref _ret_val@0x332db10) ) )) ) ) RCP TEMP[172].x, TEMP[171].xxxx; 182: RCP TEMP[172].y, TEMP[171].yyyy; 183: RCP TEMP[172].z, TEMP[171].zzzz; 184: RCP TEMP[172].w, TEMP[171].wwww; 185: (assign (constant bool (1)) (xyzw) (var_ref att@0x2cba2f0) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x332db10) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x332db10) (var_ref _ret_val@0x332db10) ) )) ) ) ) MOV TEMP[173], TEMP[172]; 186: (expression float rcp (var_ref _ret_val@0x332db10) ) RCP TEMP[174].x, TEMP[168].xxxx; 187: (expression vec3 * (var_ref assignment_tmp@0x3114a60) (expression float rcp (var_ref _ret_val@0x332db10) ) ) MUL TEMP[175].xyz, TEMP[165].xyzz, TEMP[174].xxxx; 188: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x3231a70) (expression vec3 * (var_ref assignment_tmp@0x3114a60) (expression float rcp (var_ref _ret_val@0x332db10) ) ) ) MOV TEMP[176].xyz, TEMP[175].xyzz; 189: (expression vec3 + (var_ref assignment_tmp@0x3231a70) (expression vec3 neg (var_ref _ret_val@0x3140aa0) ) ) ADD TEMP[178].xyz, TEMP[176].xyzz, TEMP[125].-x-y-z-z; 190: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x312eb10) (expression vec3 + (var_ref assignment_tmp@0x3231a70) (expression vec3 neg (var_ref _ret_val@0x3140aa0) ) ) ) MOV TEMP[179].xyz, TEMP[178].xyzz; 191: (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x3231a70) ) DP3 TEMP[180].x, TEMP[133].xyzz, TEMP[176].xyzz; 192: (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x3231a70) ) (constant float (0.000000)) ) MAX TEMP[181].x, TEMP[180].xxxx, CONST[102].zzzz; 193: (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x3231a70) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) diffuse) ) MUL TEMP[182], TEMP[181].xxxx, TEMP[7]; 194: (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2cffe30) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2cffe30) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) ambient) ) ) MAD TEMP[183], TEMP[2], TEMP[6], TEMP[1]; 195: (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2cffe30) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2cffe30) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x3231a70) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) diffuse) ) ) MAD TEMP[184], TEMP[182], TEMP[3], TEMP[183]; 196: (expression vec4 + (var_ref pc@0x317e820) (expression vec4 * (var_ref att@0x2cba2f0) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2cffe30) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2cffe30) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x3231a70) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) diffuse) ) ) ) ) MAD TEMP[185], TEMP[173], TEMP[184], TEMP[156]; 197: (assign (constant bool (1)) (xyzw) (var_ref pc@0x317e820) (expression vec4 + (var_ref pc@0x317e820) (expression vec4 * (var_ref att@0x2cba2f0) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2cffe30) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2cffe30) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x3231a70) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) diffuse) ) ) ) ) ) MOV TEMP[156], TEMP[185]; 198: (expression vec4 * (var_ref att@0x2cba2f0) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) specular) ) MUL TEMP[186], TEMP[173], TEMP[4]; 199: (expression vec4 * (expression vec4 * (var_ref att@0x2cba2f0) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) specular) ) MUL TEMP[187], TEMP[186], TEMP[8]; 200: (expression float dot (var_ref assignment_tmp@0x312eb10) (var_ref assignment_tmp@0x312eb10) ) DP3 TEMP[188].x, TEMP[179].xyzz, TEMP[179].xyzz; 201: (expression float rsq (expression float dot (var_ref assignment_tmp@0x312eb10) (var_ref assignment_tmp@0x312eb10) ) ) RSQ TEMP[189].x, TEMP[188].xxxx; 202: (expression vec3 * (var_ref assignment_tmp@0x312eb10) (expression float rsq (expression float dot (var_ref assignment_tmp@0x312eb10) (var_ref assignment_tmp@0x312eb10) ) ) ) MUL TEMP[190].xyz, TEMP[179].xyzz, TEMP[189].xxxx; 203: (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x312eb10) (expression float rsq (expression float dot (var_ref assignment_tmp@0x312eb10) (var_ref assignment_tmp@0x312eb10) ) ) ) ) DP3 TEMP[191].x, TEMP[133].xyzz, TEMP[190].xyzz; 204: (expression float max (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x312eb10) (expression float rsq (expression float dot (var_ref assignment_tmp@0x312eb10) (var_ref assignment_tmp@0x312eb10) ) ) ) ) (constant float (0.000000)) ) MAX TEMP[192].x, TEMP[191].xxxx, CONST[102].zzzz; 205: (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x312eb10) (expression float rsq (expression float dot (var_ref assignment_tmp@0x312eb10) (var_ref assignment_tmp@0x312eb10) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) shininess) ) POW TEMP[193].x, TEMP[192].xxxx, TEMP[5].xxxx; 206: (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x2cba2f0) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x312eb10) (expression float rsq (expression float dot (var_ref assignment_tmp@0x312eb10) (var_ref assignment_tmp@0x312eb10) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) shininess) ) ) MUL TEMP[194], TEMP[187], TEMP[193].xxxx; 207: (assign (constant bool (1)) (xyzw) (var_ref sc@0x3184ee0) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x2cba2f0) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (0)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x312eb10) (expression float rsq (expression float dot (var_ref assignment_tmp@0x312eb10) (var_ref assignment_tmp@0x312eb10) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) shininess) ) ) ) MOV TEMP[157], TEMP[194]; 208: (var_ref and_tmp@0x2e01cc0) ENDIF; 209: (expression bool != (array_ref (var_ref light_enabled@0x311c930) (constant int (1)) ) (constant int (0)) ) SNE.C TEMP[195].x, UNIFORM[2].xxxx, CONST[102].zzzz; 210: IF (NE.xxxx); # (if false, goto 213); 211: (expression bool <= (constant int (1)) (var_ref max_light_enabled@0x311cab0) ) SLE TEMP[196].x, CONST[102].yyyy, UNIFORM[0].xxxx; 212: (assign (constant bool (1)) (x) (var_ref and_tmp@0x3221690) (expression bool <= (constant int (1)) (var_ref max_light_enabled@0x311cab0) ) ) MOV TEMP[197], TEMP[196].xxxx; 213: (expression bool != (array_ref (var_ref light_enabled@0x311c930) (constant int (1)) ) (constant int (0)) ) ELSE; # (goto 215) 214: (assign (constant bool (1)) (x) (var_ref and_tmp@0x3221690) (constant bool (0)) ) MOV TEMP[197], CONST[102].zzzz; 215: (expression bool != (array_ref (var_ref light_enabled@0x311c930) (constant int (1)) ) (constant int (0)) ) ENDIF; 216: (var_ref and_tmp@0x3221690) MOV.C TEMP[198], TEMP[197].xxxx; 217: IF (NE.xxxx); # (if false, goto 256); 218: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x338d180) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) position) )) MUL TEMP[199].xyz, TEMP[118].xyzz, TEMP[21].wwww; 219: (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) position) )(swiz w (var_ref flattening_tmp@0x338d180) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x338d180) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) position) )) ) ) MAD TEMP[201], TEMP[21].xyzz, TEMP[118].wwww, TEMP[199].-x-y-z-z; 220: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x3153d90) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) position) )(swiz w (var_ref flattening_tmp@0x338d180) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x338d180) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) position) )) ) ) ) MOV TEMP[202].xyz, TEMP[201].xyzz; 221: (expression float dot (var_ref assignment_tmp@0x3153d90) (var_ref assignment_tmp@0x3153d90) ) DP3 TEMP[203].x, TEMP[202].xyzz, TEMP[202].xyzz; 222: (expression float sqrt (expression float dot (var_ref assignment_tmp@0x3153d90) (var_ref assignment_tmp@0x3153d90) ) ) RSQ TEMP[204].x, TEMP[203].xxxx; 223: MUL TEMP[204].x, TEMP[204].xxxx, TEMP[203].xxxx; 224: CMP TEMP[204].x, TEMP[203].-x-x-x-x, TEMP[204].xxxx, CONST[102].zzzz; 225: (assign (constant bool (1)) (x) (var_ref _ret_val@0x2cee1f0) (expression float sqrt (expression float dot (var_ref assignment_tmp@0x3153d90) (var_ref assignment_tmp@0x3153d90) ) ) ) MOV TEMP[205], TEMP[204].xxxx; 226: (expression float * (var_ref _ret_val@0x2cee1f0) (var_ref _ret_val@0x2cee1f0) ) MUL TEMP[206].x, TEMP[205].xxxx, TEMP[205].xxxx; 227: (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x2cee1f0) )) ) MAD TEMP[207], TEMP[28].xxxx, TEMP[205].xxxx, TEMP[27].xxxx; 228: (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x2cee1f0) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x2cee1f0) (var_ref _ret_val@0x2cee1f0) ) )) ) MAD TEMP[208], TEMP[29].xxxx, TEMP[206].xxxx, TEMP[207]; 229: (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x2cee1f0) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x2cee1f0) (var_ref _ret_val@0x2cee1f0) ) )) ) ) RCP TEMP[209].x, TEMP[208].xxxx; 230: RCP TEMP[209].y, TEMP[208].yyyy; 231: RCP TEMP[209].z, TEMP[208].zzzz; 232: RCP TEMP[209].w, TEMP[208].wwww; 233: (assign (constant bool (1)) (xyzw) (var_ref att@0x315b8b0) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x2cee1f0) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x2cee1f0) (var_ref _ret_val@0x2cee1f0) ) )) ) ) ) MOV TEMP[210], TEMP[209]; 234: (expression float rcp (var_ref _ret_val@0x2cee1f0) ) RCP TEMP[211].x, TEMP[205].xxxx; 235: (expression vec3 * (var_ref assignment_tmp@0x3153d90) (expression float rcp (var_ref _ret_val@0x2cee1f0) ) ) MUL TEMP[212].xyz, TEMP[202].xyzz, TEMP[211].xxxx; 236: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x2ca8e00) (expression vec3 * (var_ref assignment_tmp@0x3153d90) (expression float rcp (var_ref _ret_val@0x2cee1f0) ) ) ) MOV TEMP[213].xyz, TEMP[212].xyzz; 237: (expression vec3 + (var_ref assignment_tmp@0x2ca8e00) (expression vec3 neg (var_ref _ret_val@0x3140aa0) ) ) ADD TEMP[215].xyz, TEMP[213].xyzz, TEMP[125].-x-y-z-z; 238: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x2c9ea60) (expression vec3 + (var_ref assignment_tmp@0x2ca8e00) (expression vec3 neg (var_ref _ret_val@0x3140aa0) ) ) ) MOV TEMP[216].xyz, TEMP[215].xyzz; 239: (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x2ca8e00) ) DP3 TEMP[217].x, TEMP[133].xyzz, TEMP[213].xyzz; 240: (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x2ca8e00) ) (constant float (0.000000)) ) MAX TEMP[218].x, TEMP[217].xxxx, CONST[102].zzzz; 241: (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x2ca8e00) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) diffuse) ) MUL TEMP[219], TEMP[218].xxxx, TEMP[19]; 242: (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2cffe30) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2cffe30) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) ambient) ) ) MAD TEMP[220], TEMP[2], TEMP[18], TEMP[1]; 243: (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2cffe30) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2cffe30) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x2ca8e00) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) diffuse) ) ) MAD TEMP[221], TEMP[219], TEMP[3], TEMP[220]; 244: (expression vec4 + (var_ref pc@0x317e820) (expression vec4 * (var_ref att@0x315b8b0) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2cffe30) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2cffe30) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x2ca8e00) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) diffuse) ) ) ) ) MAD TEMP[222], TEMP[210], TEMP[221], TEMP[156]; 245: (assign (constant bool (1)) (xyzw) (var_ref pc@0x317e820) (expression vec4 + (var_ref pc@0x317e820) (expression vec4 * (var_ref att@0x315b8b0) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2cffe30) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2cffe30) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x2ca8e00) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) diffuse) ) ) ) ) ) MOV TEMP[156], TEMP[222]; 246: (expression vec4 * (var_ref att@0x315b8b0) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) specular) ) MUL TEMP[223], TEMP[210], TEMP[4]; 247: (expression vec4 * (expression vec4 * (var_ref att@0x315b8b0) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) specular) ) MUL TEMP[224], TEMP[223], TEMP[20]; 248: (expression float dot (var_ref assignment_tmp@0x2c9ea60) (var_ref assignment_tmp@0x2c9ea60) ) DP3 TEMP[225].x, TEMP[216].xyzz, TEMP[216].xyzz; 249: (expression float rsq (expression float dot (var_ref assignment_tmp@0x2c9ea60) (var_ref assignment_tmp@0x2c9ea60) ) ) RSQ TEMP[226].x, TEMP[225].xxxx; 250: (expression vec3 * (var_ref assignment_tmp@0x2c9ea60) (expression float rsq (expression float dot (var_ref assignment_tmp@0x2c9ea60) (var_ref assignment_tmp@0x2c9ea60) ) ) ) MUL TEMP[227].xyz, TEMP[216].xyzz, TEMP[226].xxxx; 251: (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x2c9ea60) (expression float rsq (expression float dot (var_ref assignment_tmp@0x2c9ea60) (var_ref assignment_tmp@0x2c9ea60) ) ) ) ) DP3 TEMP[228].x, TEMP[133].xyzz, TEMP[227].xyzz; 252: (expression float max (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x2c9ea60) (expression float rsq (expression float dot (var_ref assignment_tmp@0x2c9ea60) (var_ref assignment_tmp@0x2c9ea60) ) ) ) ) (constant float (0.000000)) ) MAX TEMP[229].x, TEMP[228].xxxx, CONST[102].zzzz; 253: (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x2c9ea60) (expression float rsq (expression float dot (var_ref assignment_tmp@0x2c9ea60) (var_ref assignment_tmp@0x2c9ea60) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) shininess) ) POW TEMP[230].x, TEMP[229].xxxx, TEMP[5].xxxx; 254: (expression vec4 + (var_ref sc@0x3184ee0) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x315b8b0) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x2c9ea60) (expression float rsq (expression float dot (var_ref assignment_tmp@0x2c9ea60) (var_ref assignment_tmp@0x2c9ea60) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) shininess) ) ) ) MAD TEMP[231], TEMP[224], TEMP[230].xxxx, TEMP[157]; 255: (assign (constant bool (1)) (xyzw) (var_ref sc@0x3184ee0) (expression vec4 + (var_ref sc@0x3184ee0) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x315b8b0) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (1)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x2c9ea60) (expression float rsq (expression float dot (var_ref assignment_tmp@0x2c9ea60) (var_ref assignment_tmp@0x2c9ea60) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) shininess) ) ) ) ) MOV TEMP[157], TEMP[231]; 256: (var_ref and_tmp@0x3221690) ENDIF; 257: (expression bool != (array_ref (var_ref light_enabled@0x311c930) (constant int (2)) ) (constant int (0)) ) SNE.C TEMP[232].x, UNIFORM[3].xxxx, CONST[102].zzzz; 258: IF (NE.xxxx); # (if false, goto 261); 259: (expression bool <= (constant int (2)) (var_ref max_light_enabled@0x311cab0) ) SLE TEMP[233].x, CONST[102].xxxx, UNIFORM[0].xxxx; 260: (assign (constant bool (1)) (x) (var_ref and_tmp@0x2d54c80) (expression bool <= (constant int (2)) (var_ref max_light_enabled@0x311cab0) ) ) MOV TEMP[234], TEMP[233].xxxx; 261: (expression bool != (array_ref (var_ref light_enabled@0x311c930) (constant int (2)) ) (constant int (0)) ) ELSE; # (goto 263) 262: (assign (constant bool (1)) (x) (var_ref and_tmp@0x2d54c80) (constant bool (0)) ) MOV TEMP[234], CONST[102].zzzz; 263: (expression bool != (array_ref (var_ref light_enabled@0x311c930) (constant int (2)) ) (constant int (0)) ) ENDIF; 264: (var_ref and_tmp@0x2d54c80) MOV.C TEMP[235], TEMP[234].xxxx; 265: IF (NE.xxxx); # (if false, goto 304); 266: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x338d180) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) position) )) MUL TEMP[236].xyz, TEMP[118].xyzz, TEMP[33].wwww; 267: (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) position) )(swiz w (var_ref flattening_tmp@0x338d180) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x338d180) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) position) )) ) ) MAD TEMP[238], TEMP[33].xyzz, TEMP[118].wwww, TEMP[236].-x-y-z-z; 268: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x33ad6b0) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) position) )(swiz w (var_ref flattening_tmp@0x338d180) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x338d180) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) position) )) ) ) ) MOV TEMP[239].xyz, TEMP[238].xyzz; 269: (expression float dot (var_ref assignment_tmp@0x33ad6b0) (var_ref assignment_tmp@0x33ad6b0) ) DP3 TEMP[240].x, TEMP[239].xyzz, TEMP[239].xyzz; 270: (expression float sqrt (expression float dot (var_ref assignment_tmp@0x33ad6b0) (var_ref assignment_tmp@0x33ad6b0) ) ) RSQ TEMP[241].x, TEMP[240].xxxx; 271: MUL TEMP[241].x, TEMP[241].xxxx, TEMP[240].xxxx; 272: CMP TEMP[241].x, TEMP[240].-x-x-x-x, TEMP[241].xxxx, CONST[102].zzzz; 273: (assign (constant bool (1)) (x) (var_ref _ret_val@0x323ecc0) (expression float sqrt (expression float dot (var_ref assignment_tmp@0x33ad6b0) (var_ref assignment_tmp@0x33ad6b0) ) ) ) MOV TEMP[242], TEMP[241].xxxx; 274: (expression float * (var_ref _ret_val@0x323ecc0) (var_ref _ret_val@0x323ecc0) ) MUL TEMP[243].x, TEMP[242].xxxx, TEMP[242].xxxx; 275: (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x323ecc0) )) ) MAD TEMP[244], TEMP[40].xxxx, TEMP[242].xxxx, TEMP[39].xxxx; 276: (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x323ecc0) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x323ecc0) (var_ref _ret_val@0x323ecc0) ) )) ) MAD TEMP[245], TEMP[41].xxxx, TEMP[243].xxxx, TEMP[244]; 277: (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x323ecc0) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x323ecc0) (var_ref _ret_val@0x323ecc0) ) )) ) ) RCP TEMP[246].x, TEMP[245].xxxx; 278: RCP TEMP[246].y, TEMP[245].yyyy; 279: RCP TEMP[246].z, TEMP[245].zzzz; 280: RCP TEMP[246].w, TEMP[245].wwww; 281: (assign (constant bool (1)) (xyzw) (var_ref att@0x33ad550) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x323ecc0) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x323ecc0) (var_ref _ret_val@0x323ecc0) ) )) ) ) ) MOV TEMP[247], TEMP[246]; 282: (expression float rcp (var_ref _ret_val@0x323ecc0) ) RCP TEMP[248].x, TEMP[242].xxxx; 283: (expression vec3 * (var_ref assignment_tmp@0x33ad6b0) (expression float rcp (var_ref _ret_val@0x323ecc0) ) ) MUL TEMP[249].xyz, TEMP[239].xyzz, TEMP[248].xxxx; 284: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x33ae170) (expression vec3 * (var_ref assignment_tmp@0x33ad6b0) (expression float rcp (var_ref _ret_val@0x323ecc0) ) ) ) MOV TEMP[250].xyz, TEMP[249].xyzz; 285: (expression vec3 + (var_ref assignment_tmp@0x33ae170) (expression vec3 neg (var_ref _ret_val@0x3140aa0) ) ) ADD TEMP[252].xyz, TEMP[250].xyzz, TEMP[125].-x-y-z-z; 286: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x33ae400) (expression vec3 + (var_ref assignment_tmp@0x33ae170) (expression vec3 neg (var_ref _ret_val@0x3140aa0) ) ) ) MOV TEMP[253].xyz, TEMP[252].xyzz; 287: (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x33ae170) ) DP3 TEMP[254].x, TEMP[133].xyzz, TEMP[250].xyzz; 288: (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x33ae170) ) (constant float (0.000000)) ) MAX TEMP[255].x, TEMP[254].xxxx, CONST[102].zzzz; 289: (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x33ae170) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) diffuse) ) MUL TEMP[256], TEMP[255].xxxx, TEMP[31]; 290: (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2cffe30) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2cffe30) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) ambient) ) ) MAD TEMP[257], TEMP[2], TEMP[30], TEMP[1]; 291: (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2cffe30) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2cffe30) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x33ae170) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) diffuse) ) ) MAD TEMP[258], TEMP[256], TEMP[3], TEMP[257]; 292: (expression vec4 + (var_ref pc@0x317e820) (expression vec4 * (var_ref att@0x33ad550) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2cffe30) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2cffe30) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x33ae170) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) diffuse) ) ) ) ) MAD TEMP[259], TEMP[247], TEMP[258], TEMP[156]; 293: (assign (constant bool (1)) (xyzw) (var_ref pc@0x317e820) (expression vec4 + (var_ref pc@0x317e820) (expression vec4 * (var_ref att@0x33ad550) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2cffe30) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2cffe30) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x33ae170) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) diffuse) ) ) ) ) ) MOV TEMP[156], TEMP[259]; 294: (expression vec4 * (var_ref att@0x33ad550) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) specular) ) MUL TEMP[260], TEMP[247], TEMP[4]; 295: (expression vec4 * (expression vec4 * (var_ref att@0x33ad550) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) specular) ) MUL TEMP[261], TEMP[260], TEMP[32]; 296: (expression float dot (var_ref assignment_tmp@0x33ae400) (var_ref assignment_tmp@0x33ae400) ) DP3 TEMP[262].x, TEMP[253].xyzz, TEMP[253].xyzz; 297: (expression float rsq (expression float dot (var_ref assignment_tmp@0x33ae400) (var_ref assignment_tmp@0x33ae400) ) ) RSQ TEMP[263].x, TEMP[262].xxxx; 298: (expression vec3 * (var_ref assignment_tmp@0x33ae400) (expression float rsq (expression float dot (var_ref assignment_tmp@0x33ae400) (var_ref assignment_tmp@0x33ae400) ) ) ) MUL TEMP[264].xyz, TEMP[253].xyzz, TEMP[263].xxxx; 299: (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x33ae400) (expression float rsq (expression float dot (var_ref assignment_tmp@0x33ae400) (var_ref assignment_tmp@0x33ae400) ) ) ) ) DP3 TEMP[265].x, TEMP[133].xyzz, TEMP[264].xyzz; 300: (expression float max (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x33ae400) (expression float rsq (expression float dot (var_ref assignment_tmp@0x33ae400) (var_ref assignment_tmp@0x33ae400) ) ) ) ) (constant float (0.000000)) ) MAX TEMP[266].x, TEMP[265].xxxx, CONST[102].zzzz; 301: (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x33ae400) (expression float rsq (expression float dot (var_ref assignment_tmp@0x33ae400) (var_ref assignment_tmp@0x33ae400) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) shininess) ) POW TEMP[267].x, TEMP[266].xxxx, TEMP[5].xxxx; 302: (expression vec4 + (var_ref sc@0x3184ee0) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x33ad550) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x33ae400) (expression float rsq (expression float dot (var_ref assignment_tmp@0x33ae400) (var_ref assignment_tmp@0x33ae400) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) shininess) ) ) ) MAD TEMP[268], TEMP[261], TEMP[267].xxxx, TEMP[157]; 303: (assign (constant bool (1)) (xyzw) (var_ref sc@0x3184ee0) (expression vec4 + (var_ref sc@0x3184ee0) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x33ad550) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (2)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x33ae400) (expression float rsq (expression float dot (var_ref assignment_tmp@0x33ae400) (var_ref assignment_tmp@0x33ae400) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) shininess) ) ) ) ) MOV TEMP[157], TEMP[268]; 304: (var_ref and_tmp@0x2d54c80) ENDIF; 305: (expression bool != (array_ref (var_ref light_enabled@0x311c930) (constant int (3)) ) (constant int (0)) ) SNE.C TEMP[269].x, UNIFORM[4].xxxx, CONST[102].zzzz; 306: IF (NE.xxxx); # (if false, goto 309); 307: (expression bool <= (constant int (3)) (var_ref max_light_enabled@0x311cab0) ) SLE TEMP[270].x, CONST[103].xxxx, UNIFORM[0].xxxx; 308: (assign (constant bool (1)) (x) (var_ref and_tmp@0x33b0010) (expression bool <= (constant int (3)) (var_ref max_light_enabled@0x311cab0) ) ) MOV TEMP[271], TEMP[270].xxxx; 309: (expression bool != (array_ref (var_ref light_enabled@0x311c930) (constant int (3)) ) (constant int (0)) ) ELSE; # (goto 311) 310: (assign (constant bool (1)) (x) (var_ref and_tmp@0x33b0010) (constant bool (0)) ) MOV TEMP[271], CONST[102].zzzz; 311: (expression bool != (array_ref (var_ref light_enabled@0x311c930) (constant int (3)) ) (constant int (0)) ) ENDIF; 312: (var_ref and_tmp@0x33b0010) MOV.C TEMP[272], TEMP[271].xxxx; 313: IF (NE.xxxx); # (if false, goto 352); 314: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x338d180) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) position) )) MUL TEMP[273].xyz, TEMP[118].xyzz, TEMP[45].wwww; 315: (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) position) )(swiz w (var_ref flattening_tmp@0x338d180) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x338d180) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) position) )) ) ) MAD TEMP[275], TEMP[45].xyzz, TEMP[118].wwww, TEMP[273].-x-y-z-z; 316: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x33b0890) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) position) )(swiz w (var_ref flattening_tmp@0x338d180) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x338d180) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) position) )) ) ) ) MOV TEMP[276].xyz, TEMP[275].xyzz; 317: (expression float dot (var_ref assignment_tmp@0x33b0890) (var_ref assignment_tmp@0x33b0890) ) DP3 TEMP[277].x, TEMP[276].xyzz, TEMP[276].xyzz; 318: (expression float sqrt (expression float dot (var_ref assignment_tmp@0x33b0890) (var_ref assignment_tmp@0x33b0890) ) ) RSQ TEMP[278].x, TEMP[277].xxxx; 319: MUL TEMP[278].x, TEMP[278].xxxx, TEMP[277].xxxx; 320: CMP TEMP[278].x, TEMP[277].-x-x-x-x, TEMP[278].xxxx, CONST[102].zzzz; 321: (assign (constant bool (1)) (x) (var_ref _ret_val@0x2cb7f10) (expression float sqrt (expression float dot (var_ref assignment_tmp@0x33b0890) (var_ref assignment_tmp@0x33b0890) ) ) ) MOV TEMP[279], TEMP[278].xxxx; 322: (expression float * (var_ref _ret_val@0x2cb7f10) (var_ref _ret_val@0x2cb7f10) ) MUL TEMP[280].x, TEMP[279].xxxx, TEMP[279].xxxx; 323: (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x2cb7f10) )) ) MAD TEMP[281], TEMP[52].xxxx, TEMP[279].xxxx, TEMP[51].xxxx; 324: (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x2cb7f10) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x2cb7f10) (var_ref _ret_val@0x2cb7f10) ) )) ) MAD TEMP[282], TEMP[53].xxxx, TEMP[280].xxxx, TEMP[281]; 325: (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x2cb7f10) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x2cb7f10) (var_ref _ret_val@0x2cb7f10) ) )) ) ) RCP TEMP[283].x, TEMP[282].xxxx; 326: RCP TEMP[283].y, TEMP[282].yyyy; 327: RCP TEMP[283].z, TEMP[282].zzzz; 328: RCP TEMP[283].w, TEMP[282].wwww; 329: (assign (constant bool (1)) (xyzw) (var_ref att@0x33b0730) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x2cb7f10) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x2cb7f10) (var_ref _ret_val@0x2cb7f10) ) )) ) ) ) MOV TEMP[284], TEMP[283]; 330: (expression float rcp (var_ref _ret_val@0x2cb7f10) ) RCP TEMP[285].x, TEMP[279].xxxx; 331: (expression vec3 * (var_ref assignment_tmp@0x33b0890) (expression float rcp (var_ref _ret_val@0x2cb7f10) ) ) MUL TEMP[286].xyz, TEMP[276].xyzz, TEMP[285].xxxx; 332: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x33b1350) (expression vec3 * (var_ref assignment_tmp@0x33b0890) (expression float rcp (var_ref _ret_val@0x2cb7f10) ) ) ) MOV TEMP[287].xyz, TEMP[286].xyzz; 333: (expression vec3 + (var_ref assignment_tmp@0x33b1350) (expression vec3 neg (var_ref _ret_val@0x3140aa0) ) ) ADD TEMP[289].xyz, TEMP[287].xyzz, TEMP[125].-x-y-z-z; 334: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x33b15e0) (expression vec3 + (var_ref assignment_tmp@0x33b1350) (expression vec3 neg (var_ref _ret_val@0x3140aa0) ) ) ) MOV TEMP[290].xyz, TEMP[289].xyzz; 335: (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x33b1350) ) DP3 TEMP[291].x, TEMP[133].xyzz, TEMP[287].xyzz; 336: (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x33b1350) ) (constant float (0.000000)) ) MAX TEMP[292].x, TEMP[291].xxxx, CONST[102].zzzz; 337: (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x33b1350) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) diffuse) ) MUL TEMP[293], TEMP[292].xxxx, TEMP[43]; 338: (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2cffe30) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2cffe30) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) ambient) ) ) MAD TEMP[294], TEMP[2], TEMP[42], TEMP[1]; 339: (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2cffe30) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2cffe30) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x33b1350) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) diffuse) ) ) MAD TEMP[295], TEMP[293], TEMP[3], TEMP[294]; 340: (expression vec4 + (var_ref pc@0x317e820) (expression vec4 * (var_ref att@0x33b0730) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2cffe30) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2cffe30) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x33b1350) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) diffuse) ) ) ) ) MAD TEMP[296], TEMP[284], TEMP[295], TEMP[156]; 341: (assign (constant bool (1)) (xyzw) (var_ref pc@0x317e820) (expression vec4 + (var_ref pc@0x317e820) (expression vec4 * (var_ref att@0x33b0730) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2cffe30) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2cffe30) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x33b1350) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) diffuse) ) ) ) ) ) MOV TEMP[156], TEMP[296]; 342: (expression vec4 * (var_ref att@0x33b0730) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) specular) ) MUL TEMP[297], TEMP[284], TEMP[4]; 343: (expression vec4 * (expression vec4 * (var_ref att@0x33b0730) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) specular) ) MUL TEMP[298], TEMP[297], TEMP[44]; 344: (expression float dot (var_ref assignment_tmp@0x33b15e0) (var_ref assignment_tmp@0x33b15e0) ) DP3 TEMP[299].x, TEMP[290].xyzz, TEMP[290].xyzz; 345: (expression float rsq (expression float dot (var_ref assignment_tmp@0x33b15e0) (var_ref assignment_tmp@0x33b15e0) ) ) RSQ TEMP[300].x, TEMP[299].xxxx; 346: (expression vec3 * (var_ref assignment_tmp@0x33b15e0) (expression float rsq (expression float dot (var_ref assignment_tmp@0x33b15e0) (var_ref assignment_tmp@0x33b15e0) ) ) ) MUL TEMP[301].xyz, TEMP[290].xyzz, TEMP[300].xxxx; 347: (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x33b15e0) (expression float rsq (expression float dot (var_ref assignment_tmp@0x33b15e0) (var_ref assignment_tmp@0x33b15e0) ) ) ) ) DP3 TEMP[302].x, TEMP[133].xyzz, TEMP[301].xyzz; 348: (expression float max (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x33b15e0) (expression float rsq (expression float dot (var_ref assignment_tmp@0x33b15e0) (var_ref assignment_tmp@0x33b15e0) ) ) ) ) (constant float (0.000000)) ) MAX TEMP[303].x, TEMP[302].xxxx, CONST[102].zzzz; 349: (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x33b15e0) (expression float rsq (expression float dot (var_ref assignment_tmp@0x33b15e0) (var_ref assignment_tmp@0x33b15e0) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) shininess) ) POW TEMP[304].x, TEMP[303].xxxx, TEMP[5].xxxx; 350: (expression vec4 + (var_ref sc@0x3184ee0) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x33b0730) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x33b15e0) (expression float rsq (expression float dot (var_ref assignment_tmp@0x33b15e0) (var_ref assignment_tmp@0x33b15e0) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) shininess) ) ) ) MAD TEMP[305], TEMP[298], TEMP[304].xxxx, TEMP[157]; 351: (assign (constant bool (1)) (xyzw) (var_ref sc@0x3184ee0) (expression vec4 + (var_ref sc@0x3184ee0) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x33b0730) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (3)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x33b15e0) (expression float rsq (expression float dot (var_ref assignment_tmp@0x33b15e0) (var_ref assignment_tmp@0x33b15e0) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) shininess) ) ) ) ) MOV TEMP[157], TEMP[305]; 352: (var_ref and_tmp@0x33b0010) ENDIF; 353: (expression bool != (array_ref (var_ref light_enabled@0x311c930) (constant int (4)) ) (constant int (0)) ) SNE.C TEMP[306].x, UNIFORM[5].xxxx, CONST[102].zzzz; 354: IF (NE.xxxx); # (if false, goto 357); 355: (expression bool <= (constant int (4)) (var_ref max_light_enabled@0x311cab0) ) SLE TEMP[307].x, CONST[103].yyyy, UNIFORM[0].xxxx; 356: (assign (constant bool (1)) (x) (var_ref and_tmp@0x33b31f0) (expression bool <= (constant int (4)) (var_ref max_light_enabled@0x311cab0) ) ) MOV TEMP[308], TEMP[307].xxxx; 357: (expression bool != (array_ref (var_ref light_enabled@0x311c930) (constant int (4)) ) (constant int (0)) ) ELSE; # (goto 359) 358: (assign (constant bool (1)) (x) (var_ref and_tmp@0x33b31f0) (constant bool (0)) ) MOV TEMP[308], CONST[102].zzzz; 359: (expression bool != (array_ref (var_ref light_enabled@0x311c930) (constant int (4)) ) (constant int (0)) ) ENDIF; 360: (var_ref and_tmp@0x33b31f0) MOV.C TEMP[309], TEMP[308].xxxx; 361: IF (NE.xxxx); # (if false, goto 400); 362: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x338d180) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) position) )) MUL TEMP[310].xyz, TEMP[118].xyzz, TEMP[57].wwww; 363: (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) position) )(swiz w (var_ref flattening_tmp@0x338d180) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x338d180) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) position) )) ) ) MAD TEMP[312], TEMP[57].xyzz, TEMP[118].wwww, TEMP[310].-x-y-z-z; 364: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x33b3a70) (expression vec3 + (expression vec3 * (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) position) )(swiz w (var_ref flattening_tmp@0x338d180) )) (expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x338d180) )(swiz w (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) position) )) ) ) ) MOV TEMP[313].xyz, TEMP[312].xyzz; 365: (expression float dot (var_ref assignment_tmp@0x33b3a70) (var_ref assignment_tmp@0x33b3a70) ) DP3 TEMP[314].x, TEMP[313].xyzz, TEMP[313].xyzz; 366: (expression float sqrt (expression float dot (var_ref assignment_tmp@0x33b3a70) (var_ref assignment_tmp@0x33b3a70) ) ) RSQ TEMP[315].x, TEMP[314].xxxx; 367: MUL TEMP[315].x, TEMP[315].xxxx, TEMP[314].xxxx; 368: CMP TEMP[315].x, TEMP[314].-x-x-x-x, TEMP[315].xxxx, CONST[102].zzzz; 369: (assign (constant bool (1)) (x) (var_ref _ret_val@0x3255640) (expression float sqrt (expression float dot (var_ref assignment_tmp@0x33b3a70) (var_ref assignment_tmp@0x33b3a70) ) ) ) MOV TEMP[316], TEMP[315].xxxx; 370: (expression float * (var_ref _ret_val@0x3255640) (var_ref _ret_val@0x3255640) ) MUL TEMP[317].x, TEMP[316].xxxx, TEMP[316].xxxx; 371: (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x3255640) )) ) MAD TEMP[318], TEMP[64].xxxx, TEMP[316].xxxx, TEMP[63].xxxx; 372: (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x3255640) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x3255640) (var_ref _ret_val@0x3255640) ) )) ) MAD TEMP[319], TEMP[65].xxxx, TEMP[317].xxxx, TEMP[318]; 373: (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x3255640) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x3255640) (var_ref _ret_val@0x3255640) ) )) ) ) RCP TEMP[320].x, TEMP[319].xxxx; 374: RCP TEMP[320].y, TEMP[319].yyyy; 375: RCP TEMP[320].z, TEMP[319].zzzz; 376: RCP TEMP[320].w, TEMP[319].wwww; 377: (assign (constant bool (1)) (xyzw) (var_ref att@0x33b3910) (expression vec4 rcp (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) constantAttenuation) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) linearAttenuation) (swiz xxxx (var_ref _ret_val@0x3255640) )) ) (expression vec4 * (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) quadraticAttenuation) (swiz xxxx (expression float * (var_ref _ret_val@0x3255640) (var_ref _ret_val@0x3255640) ) )) ) ) ) MOV TEMP[321], TEMP[320]; 378: (expression float rcp (var_ref _ret_val@0x3255640) ) RCP TEMP[322].x, TEMP[316].xxxx; 379: (expression vec3 * (var_ref assignment_tmp@0x33b3a70) (expression float rcp (var_ref _ret_val@0x3255640) ) ) MUL TEMP[323].xyz, TEMP[313].xyzz, TEMP[322].xxxx; 380: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x33b4530) (expression vec3 * (var_ref assignment_tmp@0x33b3a70) (expression float rcp (var_ref _ret_val@0x3255640) ) ) ) MOV TEMP[324].xyz, TEMP[323].xyzz; 381: (expression vec3 + (var_ref assignment_tmp@0x33b4530) (expression vec3 neg (var_ref _ret_val@0x3140aa0) ) ) ADD TEMP[326].xyz, TEMP[324].xyzz, TEMP[125].-x-y-z-z; 382: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x33b47c0) (expression vec3 + (var_ref assignment_tmp@0x33b4530) (expression vec3 neg (var_ref _ret_val@0x3140aa0) ) ) ) MOV TEMP[327].xyz, TEMP[326].xyzz; 383: (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x33b4530) ) DP3 TEMP[328].x, TEMP[133].xyzz, TEMP[324].xyzz; 384: (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x33b4530) ) (constant float (0.000000)) ) MAX TEMP[329].x, TEMP[328].xxxx, CONST[102].zzzz; 385: (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x33b4530) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) diffuse) ) MUL TEMP[330], TEMP[329].xxxx, TEMP[55]; 386: (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2cffe30) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2cffe30) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) ambient) ) ) MAD TEMP[331], TEMP[2], TEMP[54], TEMP[1]; 387: (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2cffe30) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2cffe30) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x33b4530) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) diffuse) ) ) MAD TEMP[332], TEMP[330], TEMP[3], TEMP[331]; 388: (expression vec4 + (var_ref pc@0x317e820) (expression vec4 * (var_ref att@0x33b3910) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2cffe30) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2cffe30) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x33b4530) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) diffuse) ) ) ) ) MAD TEMP[333], TEMP[321], TEMP[332], TEMP[156]; 389: (assign (constant bool (1)) (xyzw) (var_ref pc@0x317e820) (expression vec4 + (var_ref pc@0x317e820) (expression vec4 * (var_ref att@0x33b3910) (expression vec4 + (expression vec4 + (record_ref (var_ref gl_FrontMaterial@0x2cffe30) emission) (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x2cffe30) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) ambient) ) ) (expression vec4 * (expression vec4 * (expression float max (expression float dot (var_ref _ret_val@0x3152670) (var_ref assignment_tmp@0x33b4530) ) (constant float (0.000000)) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) diffuse) ) ) ) ) ) MOV TEMP[156], TEMP[333]; 390: (expression vec4 * (var_ref att@0x33b3910) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) specular) ) MUL TEMP[334], TEMP[321], TEMP[4]; 391: (expression vec4 * (expression vec4 * (var_ref att@0x33b3910) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) specular) ) MUL TEMP[335], TEMP[334], TEMP[56]; 392: (expression float dot (var_ref assignment_tmp@0x33b47c0) (var_ref assignment_tmp@0x33b47c0) ) DP3 TEMP[336].x, TEMP[327].xyzz, TEMP[327].xyzz; 393: (expression float rsq (expression float dot (var_ref assignment_tmp@0x33b47c0) (var_ref assignment_tmp@0x33b47c0) ) ) RSQ TEMP[337].x, TEMP[336].xxxx; 394: (expression vec3 * (var_ref assignment_tmp@0x33b47c0) (expression float rsq (expression float dot (var_ref assignment_tmp@0x33b47c0) (var_ref assignment_tmp@0x33b47c0) ) ) ) MUL TEMP[338].xyz, TEMP[327].xyzz, TEMP[337].xxxx; 395: (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x33b47c0) (expression float rsq (expression float dot (var_ref assignment_tmp@0x33b47c0) (var_ref assignment_tmp@0x33b47c0) ) ) ) ) DP3 TEMP[339].x, TEMP[133].xyzz, TEMP[338].xyzz; 396: (expression float max (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x33b47c0) (expression float rsq (expression float dot (var_ref assignment_tmp@0x33b47c0) (var_ref assignment_tmp@0x33b47c0) ) ) ) ) (constant float (0.000000)) ) MAX TEMP[340].x, TEMP[339].xxxx, CONST[102].zzzz; 397: (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x33b47c0) (expression float rsq (expression float dot (var_ref assignment_tmp@0x33b47c0) (var_ref assignment_tmp@0x33b47c0) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) shininess) ) POW TEMP[341].x, TEMP[340].xxxx, TEMP[5].xxxx; 398: (expression vec4 + (var_ref sc@0x3184ee0) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x33b3910) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x33b47c0) (expression float rsq (expression float dot (var_ref assignment_tmp@0x33b47c0) (var_ref assignment_tmp@0x33b47c0) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) shininess) ) ) ) MAD TEMP[342], TEMP[335], TEMP[341].xxxx, TEMP[157]; 399: (assign (constant bool (1)) (xyzw) (var_ref sc@0x3184ee0) (expression vec4 + (var_ref sc@0x3184ee0) (expression vec4 * (expression vec4 * (expression vec4 * (var_ref att@0x33b3910) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) specular) ) (record_ref (array_ref (var_ref gl_LightSource@0x2cffa60) (constant int (4)) ) specular) ) (expression float pow (expression float max (expression float dot (var_ref _ret_val@0x3152670) (expression vec3 * (var_ref assignment_tmp@0x33b47c0) (expression float rsq (expression float dot (var_ref assignment_tmp@0x33b47c0) (var_ref assignment_tmp@0x33b47c0) ) ) ) ) (constant float (0.000000)) ) (record_ref (var_ref gl_FrontMaterial@0x2cffe30) shininess) ) ) ) ) MOV TEMP[157], TEMP[342]; 400: (var_ref and_tmp@0x33b31f0) ENDIF; 401: (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x302a9a0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x310fc40) )) MUL TEMP[343], STATE[14], INPUT[0].xxxx; 402: (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x302a9a0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x310fc40) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x302a9a0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x310fc40) )) ) MAD TEMP[344], STATE[15], INPUT[0].yyyy, TEMP[343]; 403: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x302a9a0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x310fc40) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x302a9a0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x310fc40) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x302a9a0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x310fc40) )) ) MAD TEMP[345], STATE[16], INPUT[0].zzzz, TEMP[344]; 404: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x302a9a0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x310fc40) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x302a9a0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x310fc40) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x302a9a0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x310fc40) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x302a9a0) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x310fc40) )) ) MAD TEMP[346], STATE[17], INPUT[0].wwww, TEMP[345]; 405: (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x311c7b0) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x302a9a0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x310fc40) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x302a9a0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x310fc40) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x302a9a0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x310fc40) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x302a9a0) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x310fc40) )) ) ) MOV OUTPUT[0], TEMP[346]; 406: (assign (constant bool (1)) (xyzw) (var_ref gl_BackColor@0x304dd50) (var_ref pc@0x317e820) ) MOV OUTPUT[13], TEMP[156]; 407: (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0x304ded0) (var_ref pc@0x317e820) ) MOV OUTPUT[1], TEMP[156]; 408: (assign (constant bool (1)) (xyzw) (var_ref gl_FrontSecondaryColor@0x304d970) (var_ref sc@0x3184ee0) ) MOV OUTPUT[2], TEMP[157]; 409: END GLSL IR for linked fragment program 1: ( (declare (uniform ) vec4 damage@0x2ce7bc0) (declare (uniform ) vec4 cloaking@0x33b7bf0) (declare (uniform ) sampler2D damageMap@0x33b7e00) (declare (uniform ) sampler2D glowMap@0x33b7f60) (declare (uniform ) sampler2D specMap@0x33b8010) (declare (uniform ) sampler2D envMap@0x33b80c0) (declare (uniform ) sampler2D diffuseMap@0x33b8170) (declare (out ) vec4 gl_FragColor@0x33b84e0) (declare (in ) vec4 gl_Color@0x33b8640) (declare (in ) vec4 gl_SecondaryColor@0x33b86f0) (declare (in ) (array vec4 0) gl_TexCoord@0x33bb240) (function main (signature void (parameters ) ( (declare () vec4 _ret_val@0x332d070) (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x332d070) (tex (var_ref damageMap@0x33b7e00) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (constant int (0)) ) ) (0 0 0) 1 () )) (declare () float arg2@0x32df340) (assign (constant bool (1)) (x) (var_ref arg2@0x32df340) (swiz x (var_ref damage@0x2ce7bc0) )) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x33b84e0) (expression vec4 * (expression vec4 + (expression vec4 + (expression vec4 * (var_ref gl_Color@0x33b8640) (expression vec4 + (expression vec4 * (tex (var_ref diffuseMap@0x33b8170) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (constant int (0)) ) ) (0 0 0) 1 () )(expression float + (constant float (1.000000)) (expression float neg (var_ref arg2@0x32df340) ) ) ) (expression vec4 * (var_ref _ret_val@0x332d070) (var_ref arg2@0x32df340) ) ) ) (expression vec4 * (expression vec4 + (var_ref gl_SecondaryColor@0x33b86f0) (tex (var_ref envMap@0x33b80c0) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (constant int (1)) ) ) (0 0 0) 1 () )) (expression vec4 * (tex (var_ref specMap@0x33b8010) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (constant int (0)) ) ) (0 0 0) 1 () )(expression vec4 + (constant float (1.000000)) (expression vec4 neg (expression vec4 * (expression vec4 * (var_ref _ret_val@0x332d070) (swiz x (var_ref damage@0x2ce7bc0) )) (constant float (2.000000)) ) ) ) ) ) ) (tex (var_ref glowMap@0x33b7f60) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (constant int (0)) ) ) (0 0 0) 1 () )) (swiz xxxy (var_ref cloaking@0x33b7bf0) )) ) )) ) ) Mesa IR for linked fragment program 1: 0: (tex (var_ref damageMap@0x33b7e00) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (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@0x332d070) (tex (var_ref damageMap@0x33b7e00) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (constant int (0)) ) ) (0 0 0) 1 () )) MOV TEMP[3], TEMP[2]; 3: (assign (constant bool (1)) (x) (var_ref arg2@0x32df340) (swiz x (var_ref damage@0x2ce7bc0) )) MOV TEMP[4], UNIFORM[0].xxxx; 4: (tex (var_ref envMap@0x33b80c0) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (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@0x33b86f0) (tex (var_ref envMap@0x33b80c0) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (constant int (1)) ) ) (0 0 0) 1 () )) ADD TEMP[7], INPUT[2], TEMP[6]; 7: (tex (var_ref specMap@0x33b8010) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (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@0x332d070) (swiz x (var_ref damage@0x2ce7bc0) )) MUL TEMP[10], TEMP[3], UNIFORM[0].xxxx; 10: (expression vec4 * (expression vec4 * (var_ref _ret_val@0x332d070) (swiz x (var_ref damage@0x2ce7bc0) )) (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@0x332d070) (swiz x (var_ref damage@0x2ce7bc0) )) (constant float (2.000000)) ) ) ) ADD TEMP[13], CONST[7].xxxx, TEMP[11].-x-y-z-w; 12: (expression vec4 * (tex (var_ref specMap@0x33b8010) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (constant int (0)) ) ) (0 0 0) 1 () )(expression vec4 + (constant float (1.000000)) (expression vec4 neg (expression vec4 * (expression vec4 * (var_ref _ret_val@0x332d070) (swiz x (var_ref damage@0x2ce7bc0) )) (constant float (2.000000)) ) ) ) ) MUL TEMP[14], TEMP[9], TEMP[13]; 13: (tex (var_ref diffuseMap@0x33b8170) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (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@0x32df340) ) ) ADD TEMP[18].x, CONST[7].xxxx, TEMP[4].-x-x-x-x; 16: (expression vec4 * (tex (var_ref diffuseMap@0x33b8170) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (constant int (0)) ) ) (0 0 0) 1 () )(expression float + (constant float (1.000000)) (expression float neg (var_ref arg2@0x32df340) ) ) ) MUL TEMP[19], TEMP[16], TEMP[18].xxxx; 17: (expression vec4 + (expression vec4 * (tex (var_ref diffuseMap@0x33b8170) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (constant int (0)) ) ) (0 0 0) 1 () )(expression float + (constant float (1.000000)) (expression float neg (var_ref arg2@0x32df340) ) ) ) (expression vec4 * (var_ref _ret_val@0x332d070) (var_ref arg2@0x32df340) ) ) MAD TEMP[20], TEMP[3], TEMP[4].xxxx, TEMP[19]; 18: (expression vec4 * (var_ref gl_Color@0x33b8640) (expression vec4 + (expression vec4 * (tex (var_ref diffuseMap@0x33b8170) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (constant int (0)) ) ) (0 0 0) 1 () )(expression float + (constant float (1.000000)) (expression float neg (var_ref arg2@0x32df340) ) ) ) (expression vec4 * (var_ref _ret_val@0x332d070) (var_ref arg2@0x32df340) ) ) ) MUL TEMP[21], INPUT[1], TEMP[20]; 19: (expression vec4 + (expression vec4 * (var_ref gl_Color@0x33b8640) (expression vec4 + (expression vec4 * (tex (var_ref diffuseMap@0x33b8170) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (constant int (0)) ) ) (0 0 0) 1 () )(expression float + (constant float (1.000000)) (expression float neg (var_ref arg2@0x32df340) ) ) ) (expression vec4 * (var_ref _ret_val@0x332d070) (var_ref arg2@0x32df340) ) ) ) (expression vec4 * (expression vec4 + (var_ref gl_SecondaryColor@0x33b86f0) (tex (var_ref envMap@0x33b80c0) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (constant int (1)) ) ) (0 0 0) 1 () )) (expression vec4 * (tex (var_ref specMap@0x33b8010) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (constant int (0)) ) ) (0 0 0) 1 () )(expression vec4 + (constant float (1.000000)) (expression vec4 neg (expression vec4 * (expression vec4 * (var_ref _ret_val@0x332d070) (swiz x (var_ref damage@0x2ce7bc0) )) (constant float (2.000000)) ) ) ) ) ) ) MAD TEMP[22], TEMP[7], TEMP[14], TEMP[21]; 20: (tex (var_ref glowMap@0x33b7f60) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (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@0x33b8640) (expression vec4 + (expression vec4 * (tex (var_ref diffuseMap@0x33b8170) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (constant int (0)) ) ) (0 0 0) 1 () )(expression float + (constant float (1.000000)) (expression float neg (var_ref arg2@0x32df340) ) ) ) (expression vec4 * (var_ref _ret_val@0x332d070) (var_ref arg2@0x32df340) ) ) ) (expression vec4 * (expression vec4 + (var_ref gl_SecondaryColor@0x33b86f0) (tex (var_ref envMap@0x33b80c0) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (constant int (1)) ) ) (0 0 0) 1 () )) (expression vec4 * (tex (var_ref specMap@0x33b8010) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (constant int (0)) ) ) (0 0 0) 1 () )(expression vec4 + (constant float (1.000000)) (expression vec4 neg (expression vec4 * (expression vec4 * (var_ref _ret_val@0x332d070) (swiz x (var_ref damage@0x2ce7bc0) )) (constant float (2.000000)) ) ) ) ) ) ) (tex (var_ref glowMap@0x33b7f60) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (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@0x33b8640) (expression vec4 + (expression vec4 * (tex (var_ref diffuseMap@0x33b8170) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (constant int (0)) ) ) (0 0 0) 1 () )(expression float + (constant float (1.000000)) (expression float neg (var_ref arg2@0x32df340) ) ) ) (expression vec4 * (var_ref _ret_val@0x332d070) (var_ref arg2@0x32df340) ) ) ) (expression vec4 * (expression vec4 + (var_ref gl_SecondaryColor@0x33b86f0) (tex (var_ref envMap@0x33b80c0) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (constant int (1)) ) ) (0 0 0) 1 () )) (expression vec4 * (tex (var_ref specMap@0x33b8010) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (constant int (0)) ) ) (0 0 0) 1 () )(expression vec4 + (constant float (1.000000)) (expression vec4 neg (expression vec4 * (expression vec4 * (var_ref _ret_val@0x332d070) (swiz x (var_ref damage@0x2ce7bc0) )) (constant float (2.000000)) ) ) ) ) ) ) (tex (var_ref glowMap@0x33b7f60) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (constant int (0)) ) ) (0 0 0) 1 () )) (swiz xxxy (var_ref cloaking@0x33b7bf0) )) MUL TEMP[26], TEMP[25], UNIFORM[1].xxxy; 24: (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x33b84e0) (expression vec4 * (expression vec4 + (expression vec4 + (expression vec4 * (var_ref gl_Color@0x33b8640) (expression vec4 + (expression vec4 * (tex (var_ref diffuseMap@0x33b8170) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (constant int (0)) ) ) (0 0 0) 1 () )(expression float + (constant float (1.000000)) (expression float neg (var_ref arg2@0x32df340) ) ) ) (expression vec4 * (var_ref _ret_val@0x332d070) (var_ref arg2@0x32df340) ) ) ) (expression vec4 * (expression vec4 + (var_ref gl_SecondaryColor@0x33b86f0) (tex (var_ref envMap@0x33b80c0) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (constant int (1)) ) ) (0 0 0) 1 () )) (expression vec4 * (tex (var_ref specMap@0x33b8010) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (constant int (0)) ) ) (0 0 0) 1 () )(expression vec4 + (constant float (1.000000)) (expression vec4 neg (expression vec4 * (expression vec4 * (var_ref _ret_val@0x332d070) (swiz x (var_ref damage@0x2ce7bc0) )) (constant float (2.000000)) ) ) ) ) ) ) (tex (var_ref glowMap@0x33b7f60) (swiz xy (array_ref (var_ref gl_TexCoord@0x33bb240) (constant int (0)) ) ) (0 0 0) 1 () )) (swiz xxxy (var_ref cloaking@0x33b7bf0) )) ) 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@0x2e11130) (declare (uniform ) vec4 detail0Plane@0x2e10f00) (declare (uniform ) int max_light_enabled@0x2d213c0) (declare (uniform ) (array vec4 8) light_size@0x2d21190) (declare (uniform ) (array int 8) light_enabled@0x2cc7440) (declare (out ) vec4 gl_Position@0x329cb40) (declare (out ) float gl_PointSize@0x329f410) (declare (in ) vec4 gl_Vertex@0x2fa5470) (declare (in ) vec3 gl_Normal@0x32a4210) (declare (in ) vec4 gl_Color@0x32a43a0) (declare (in ) vec4 gl_SecondaryColor@0x32a46b0) (declare (in ) vec4 gl_MultiTexCoord0@0x32a4840) (declare (in ) vec4 gl_MultiTexCoord1@0x32ac070) (declare (in ) vec4 gl_MultiTexCoord2@0x32ac200) (declare (in ) vec4 gl_MultiTexCoord3@0x32ac510) (declare (in ) vec4 gl_MultiTexCoord4@0x32ac6a0) (declare (in ) vec4 gl_MultiTexCoord5@0x32ac9b0) (declare (in ) vec4 gl_MultiTexCoord6@0x32acb40) (declare (in ) vec4 gl_MultiTexCoord7@0x32b43f0) (declare (in ) float gl_FogCoord@0x32b45a0) (declare (out ) vec4 gl_ClipVertex@0x32b4890) (declare (out ) vec4 gl_FrontColor@0x32b4a60) (declare (out ) vec4 gl_BackColor@0x32b4d30) (declare (out ) vec4 gl_FrontSecondaryColor@0x32b4f00) (declare (out ) vec4 gl_BackSecondaryColor@0x32bc7f0) (declare (out ) float gl_FogFragCoord@0x32bc9c0) (declare (uniform ) mat4 gl_ModelViewMatrix@0x32bcc90) (declare (uniform ) mat4 gl_ProjectionMatrix@0x32bce60) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x32bd130) (declare (uniform ) mat3 gl_NormalMatrix@0x32bd270) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0x32cce50) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0x32ccf90) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0x32ced10) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0x32cee50) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0x32cf1b0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0x32cf2f0) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0x32d2580) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0x32d26c0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0x32d4860) (declare (uniform ) float gl_NormalScale@0x32d4a30) (declare (uniform ) gl_LightModelParameters gl_LightModel@0x32d4d00) (declare () int gl_MaxLights@0x32d4ed0) (declare () int gl_MaxClipPlanes@0x32d8810) (declare () int gl_MaxTextureUnits@0x32da6d0) (declare () int gl_MaxTextureCoords@0x32dab70) (declare () int gl_MaxVertexAttribs@0x32ddf40) (declare () int gl_MaxVertexUniformComponents@0x32e0220) (declare () int gl_MaxVaryingFloats@0x32e06c0) (declare () int gl_MaxVertexTextureImageUnits@0x3331750) (declare () int gl_MaxCombinedTextureImageUnits@0x3334d70) (declare () int gl_MaxTextureImageUnits@0x33480c0) (declare () int gl_MaxFragmentUniformComponents@0x33490d0) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0x334a0e0) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0x334d420) (declare (uniform ) (array vec4 6) gl_ClipPlane@0x334d5f0) (declare (uniform ) gl_PointParameters gl_Point@0x3352fb0) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x3353180) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0x3358710) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x335f480) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x335f640) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0x3363a70) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0x3363c40) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0x33793f0) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0x337c5b0) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0x337de90) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0x337e050) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0x33812d0) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0x3382b30) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0x3382fd0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0x3383190) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0x33859e0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0x33878b0) (declare (uniform ) gl_FogParameters gl_Fog@0x3389780) (declare (out ) (array vec4 0) gl_TexCoord@0x33898d0) (declare () int gl_MaxDrawBuffers@0x3389c20) (function selfshadowStep (signature float (parameters (declare (in ) float VNdotL@0x335f840) ) ( (declare (temporary ) float smoothstep_retval@0x3352320) (assign (constant bool (1)) (x) (var_ref smoothstep_retval@0x3352320) (call smoothstep ((constant float (0.000000)) (constant float (0.250000)) (var_ref VNdotL@0x335f840) )) ) (return (var_ref smoothstep_retval@0x3352320) ) )) ) (function lightPosAndSize0 (signature vec4 (parameters (declare (in ) vec4 vertex@0x3352440) ) ( (declare () vec4 rv@0x2d0e710) (declare (temporary ) vec4 assignment_tmp@0x2d07cf0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x2d07cf0) (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (0)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x2d0e710) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x2d07cf0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x3352440) )(swiz w (var_ref assignment_tmp@0x2d07cf0) )) ) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x2d0e710) (swiz zzzz (array_ref (var_ref light_size@0x2d21190) (constant int (0)) ) )) (return (var_ref rv@0x2d0e710) ) )) ) (function lightPosAndSize1 (signature vec4 (parameters (declare (in ) vec4 vertex@0x3057080) ) ( (declare () vec4 rv@0x3052180) (declare (temporary ) vec4 assignment_tmp@0x334aa90) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x334aa90) (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (1)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x3052180) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x334aa90) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x3057080) )(swiz w (var_ref assignment_tmp@0x334aa90) )) ) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x3052180) (swiz zzzz (array_ref (var_ref light_size@0x2d21190) (constant int (1)) ) )) (return (var_ref rv@0x3052180) ) )) ) (function lightPosAndAttenuation2 (signature vec4 (parameters (declare (in ) vec4 vertex@0x311acd0) ) ( (declare () vec4 rv@0x2cc2e20) (declare (temporary ) vec4 assignment_tmp@0x2dc7410) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x2dc7410) (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (2)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x2cc2e20) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x2dc7410) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x311acd0) )(swiz w (var_ref assignment_tmp@0x2dc7410) )) ) ) )) (declare (temporary ) float length_retval@0x3217ea0) (assign (constant bool (1)) (x) (var_ref length_retval@0x3217ea0) (call length ((swiz xyz (var_ref rv@0x2cc2e20) ))) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x2cc2e20) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x2cc2e20) )(expression float rcp (var_ref length_retval@0x3217ea0) ) ) )) (declare (temporary ) vec3 vec_ctor@0x2d1aca0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x2d1aca0) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x2d1aca0) (swiz xxx (var_ref length_retval@0x3217ea0) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x2d1aca0) (swiz xxx (expression float * (var_ref length_retval@0x3217ea0) (var_ref length_retval@0x3217ea0) ) )) (declare (temporary ) vec3 vec_ctor@0x302e5e0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x302e5e0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (2)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x302e5e0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (2)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x302e5e0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (2)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x3352030) (assign (constant bool (1)) (x) (var_ref dot_retval@0x3352030) (call dot ((var_ref vec_ctor@0x2d1aca0) (var_ref vec_ctor@0x302e5e0) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x2cc2e20) (swiz xxxx (expression float rcp (var_ref dot_retval@0x3352030) ) )) (return (var_ref rv@0x2cc2e20) ) )) ) (function lightPosAndAttenuation3 (signature vec4 (parameters (declare (in ) vec4 vertex@0x337ab60) ) ( (declare () vec4 rv@0x2e25b80) (declare (temporary ) vec4 assignment_tmp@0x2d03a80) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x2d03a80) (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (3)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x2e25b80) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x2d03a80) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x337ab60) )(swiz w (var_ref assignment_tmp@0x2d03a80) )) ) ) )) (declare (temporary ) float length_retval@0x31faec0) (assign (constant bool (1)) (x) (var_ref length_retval@0x31faec0) (call length ((swiz xyz (var_ref rv@0x2e25b80) ))) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x2e25b80) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x2e25b80) )(expression float rcp (var_ref length_retval@0x31faec0) ) ) )) (declare (temporary ) vec3 vec_ctor@0x31efe30) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x31efe30) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x31efe30) (swiz xxx (var_ref length_retval@0x31faec0) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x31efe30) (swiz xxx (expression float * (var_ref length_retval@0x31faec0) (var_ref length_retval@0x31faec0) ) )) (declare (temporary ) vec3 vec_ctor@0x2f5d5d0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x2f5d5d0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (3)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x2f5d5d0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (3)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x2f5d5d0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (3)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x2e27e80) (assign (constant bool (1)) (x) (var_ref dot_retval@0x2e27e80) (call dot ((var_ref vec_ctor@0x31efe30) (var_ref vec_ctor@0x2f5d5d0) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x2e25b80) (swiz xxxx (expression float rcp (var_ref dot_retval@0x2e27e80) ) )) (return (var_ref rv@0x2e25b80) ) )) ) (function lightPosAndAttenuation4 (signature vec4 (parameters (declare (in ) vec4 vertex@0x32169b0) ) ( (declare () vec4 rv@0x3366c10) (declare (temporary ) vec4 assignment_tmp@0x334efc0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x334efc0) (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (4)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x3366c10) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x334efc0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x32169b0) )(swiz w (var_ref assignment_tmp@0x334efc0) )) ) ) )) (declare (temporary ) float length_retval@0x2e89240) (assign (constant bool (1)) (x) (var_ref length_retval@0x2e89240) (call length ((swiz xyz (var_ref rv@0x3366c10) ))) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x3366c10) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x3366c10) )(expression float rcp (var_ref length_retval@0x2e89240) ) ) )) (declare (temporary ) vec3 vec_ctor@0x31f2230) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x31f2230) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x31f2230) (swiz xxx (var_ref length_retval@0x2e89240) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x31f2230) (swiz xxx (expression float * (var_ref length_retval@0x2e89240) (var_ref length_retval@0x2e89240) ) )) (declare (temporary ) vec3 vec_ctor@0x3252260) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x3252260) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (4)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x3252260) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (4)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x3252260) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (4)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x2cfc6a0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x2cfc6a0) (call dot ((var_ref vec_ctor@0x31f2230) (var_ref vec_ctor@0x3252260) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x3366c10) (swiz xxxx (expression float rcp (var_ref dot_retval@0x2cfc6a0) ) )) (return (var_ref rv@0x3366c10) ) )) ) (function lightPosAndAttenuation5 (signature vec4 (parameters (declare (in ) vec4 vertex@0x2d0b3a0) ) ( (declare () vec4 rv@0x2f66b30) (declare (temporary ) vec4 assignment_tmp@0x2d15700) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x2d15700) (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (5)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x2f66b30) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x2d15700) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x2d0b3a0) )(swiz w (var_ref assignment_tmp@0x2d15700) )) ) ) )) (declare (temporary ) float length_retval@0x30a8420) (assign (constant bool (1)) (x) (var_ref length_retval@0x30a8420) (call length ((swiz xyz (var_ref rv@0x2f66b30) ))) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x2f66b30) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x2f66b30) )(expression float rcp (var_ref length_retval@0x30a8420) ) ) )) (declare (temporary ) vec3 vec_ctor@0x2d05020) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x2d05020) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x2d05020) (swiz xxx (var_ref length_retval@0x30a8420) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x2d05020) (swiz xxx (expression float * (var_ref length_retval@0x30a8420) (var_ref length_retval@0x30a8420) ) )) (declare (temporary ) vec3 vec_ctor@0x2d11760) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x2d11760) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (5)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x2d11760) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (5)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x2d11760) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (5)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x2d1b750) (assign (constant bool (1)) (x) (var_ref dot_retval@0x2d1b750) (call dot ((var_ref vec_ctor@0x2d05020) (var_ref vec_ctor@0x2d11760) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x2f66b30) (swiz xxxx (expression float rcp (var_ref dot_retval@0x2d1b750) ) )) (return (var_ref rv@0x2f66b30) ) )) ) (function lightPosAndAttenuation6 (signature vec4 (parameters (declare (in ) vec4 vertex@0x2d1f150) ) ( (declare () vec4 rv@0x2e0f160) (declare (temporary ) vec4 assignment_tmp@0x31f3cf0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x31f3cf0) (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (6)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x2e0f160) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x31f3cf0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x2d1f150) )(swiz w (var_ref assignment_tmp@0x31f3cf0) )) ) ) )) (declare (temporary ) float length_retval@0x3070f70) (assign (constant bool (1)) (x) (var_ref length_retval@0x3070f70) (call length ((swiz xyz (var_ref rv@0x2e0f160) ))) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x2e0f160) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x2e0f160) )(expression float rcp (var_ref length_retval@0x3070f70) ) ) )) (declare (temporary ) vec3 vec_ctor@0x2dca530) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x2dca530) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x2dca530) (swiz xxx (var_ref length_retval@0x3070f70) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x2dca530) (swiz xxx (expression float * (var_ref length_retval@0x3070f70) (var_ref length_retval@0x3070f70) ) )) (declare (temporary ) vec3 vec_ctor@0x30620c0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x30620c0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (6)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x30620c0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (6)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x30620c0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (6)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x2dc34e0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x2dc34e0) (call dot ((var_ref vec_ctor@0x2dca530) (var_ref vec_ctor@0x30620c0) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x2e0f160) (swiz xxxx (expression float rcp (var_ref dot_retval@0x2dc34e0) ) )) (return (var_ref rv@0x2e0f160) ) )) ) (function lightPosAndAttenuation7 (signature vec4 (parameters (declare (in ) vec4 vertex@0x3333f00) ) ( (declare () vec4 rv@0x2e3ebc0) (declare (temporary ) vec4 assignment_tmp@0x31f5480) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x31f5480) (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (7)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x2e3ebc0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x31f5480) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x3333f00) )(swiz w (var_ref assignment_tmp@0x31f5480) )) ) ) )) (declare (temporary ) float length_retval@0x335f380) (assign (constant bool (1)) (x) (var_ref length_retval@0x335f380) (call length ((swiz xyz (var_ref rv@0x2e3ebc0) ))) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x2e3ebc0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x2e3ebc0) )(expression float rcp (var_ref length_retval@0x335f380) ) ) )) (declare (temporary ) vec3 vec_ctor@0x2e49290) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x2e49290) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x2e49290) (swiz xxx (var_ref length_retval@0x335f380) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x2e49290) (swiz xxx (expression float * (var_ref length_retval@0x335f380) (var_ref length_retval@0x335f380) ) )) (declare (temporary ) vec3 vec_ctor@0x3040930) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x3040930) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (7)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x3040930) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (7)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x3040930) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (7)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x2cd14b0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x2cd14b0) (call dot ((var_ref vec_ctor@0x2e49290) (var_ref vec_ctor@0x3040930) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x2e3ebc0) (swiz xxxx (expression float rcp (var_ref dot_retval@0x2cd14b0) ) )) (return (var_ref rv@0x2e3ebc0) ) )) ) (function lighting2 (signature void (parameters (declare (in ) vec4 vertex@0x32480a0) (declare (in ) vec3 refl@0x3248150) (declare (in ) vec3 normal@0x3248200) (declare (inout ) vec4 pc@0x32482b0) (declare (inout ) vec4 sc@0x2dc51f0) ) ( (declare () float RdotL@0x2e10950) (declare () float NdotL@0x2e612f0) (declare () vec4 lpatt@0x2c5c460) (declare (temporary ) vec4 lightPosAndAttenuation2_retval@0x2c5c6d0) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation2_retval@0x2c5c6d0) (call lightPosAndAttenuation2 ((var_ref vertex@0x32480a0) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x2c5c460) (var_ref lightPosAndAttenuation2_retval@0x2c5c6d0) ) (declare (temporary ) float dot_retval@0x2e616f0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x2e616f0) (call dot ((swiz xyz (var_ref lightPosAndAttenuation2_retval@0x2c5c6d0) )(var_ref normal@0x3248200) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x2e612f0) (var_ref dot_retval@0x2e616f0) ) (declare (temporary ) float dot_retval@0x2e15850) (assign (constant bool (1)) (x) (var_ref dot_retval@0x2e15850) (call dot ((swiz xyz (var_ref lpatt@0x2c5c460) )(var_ref refl@0x3248150) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x2e10950) (var_ref dot_retval@0x2e15850) ) (declare (temporary ) float max_retval@0x30329c0) (assign (constant bool (1)) (x) (var_ref max_retval@0x30329c0) (call max ((constant float (0.000000)) (var_ref NdotL@0x2e612f0) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x32482b0) (expression vec4 + (var_ref pc@0x32482b0) (expression vec4 * (swiz w (var_ref lpatt@0x2c5c460) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x3353180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x30329c0) (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x3353180) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x323b100) (assign (constant bool (1)) (x) (var_ref max_retval@0x323b100) (call max ((constant float (0.000000)) (var_ref RdotL@0x2e10950) )) ) (declare (temporary ) float max_retval@0x3061340) (assign (constant bool (1)) (x) (var_ref max_retval@0x3061340) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3353180) shininess) )) ) (declare (temporary ) float pow_retval@0x3328df0) (assign (constant bool (1)) (x) (var_ref pow_retval@0x3328df0) (call pow ((var_ref max_retval@0x323b100) (var_ref max_retval@0x3061340) )) ) (declare (temporary ) float selfshadowStep_retval@0x332f9c0) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x332f9c0) (call selfshadowStep ((var_ref NdotL@0x2e612f0) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x2dc51f0) (expression vec4 + (var_ref sc@0x2dc51f0) (expression vec4 * (swiz w (var_ref lpatt@0x2c5c460) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x3328df0) (var_ref selfshadowStep_retval@0x332f9c0) ) (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x3353180) specular) ) ) ) ) (return) )) ) (function lighting3 (signature void (parameters (declare (in ) vec4 vertex@0x2e92320) (declare (in ) vec3 refl@0x2e923d0) (declare (in ) vec3 normal@0x2e92480) (declare (inout ) vec4 pc@0x2e92530) (declare (inout ) vec4 sc@0x2e925e0) ) ( (declare () float RdotL@0x31fbe60) (declare () float NdotL@0x3364ba0) (declare () vec4 lpatt@0x30b1cc0) (declare (temporary ) vec4 lightPosAndAttenuation3_retval@0x332a550) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation3_retval@0x332a550) (call lightPosAndAttenuation3 ((var_ref vertex@0x2e92320) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x30b1cc0) (var_ref lightPosAndAttenuation3_retval@0x332a550) ) (declare (temporary ) float dot_retval@0x3329da0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x3329da0) (call dot ((swiz xyz (var_ref lightPosAndAttenuation3_retval@0x332a550) )(var_ref normal@0x2e92480) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x3364ba0) (var_ref dot_retval@0x3329da0) ) (declare (temporary ) float dot_retval@0x3241460) (assign (constant bool (1)) (x) (var_ref dot_retval@0x3241460) (call dot ((swiz xyz (var_ref lpatt@0x30b1cc0) )(var_ref refl@0x2e923d0) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x31fbe60) (var_ref dot_retval@0x3241460) ) (declare (temporary ) float max_retval@0x2d1a4b0) (assign (constant bool (1)) (x) (var_ref max_retval@0x2d1a4b0) (call max ((constant float (0.000000)) (var_ref NdotL@0x3364ba0) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x2e92530) (expression vec4 + (var_ref pc@0x2e92530) (expression vec4 * (swiz w (var_ref lpatt@0x30b1cc0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x3353180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x2d1a4b0) (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x3353180) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x31d9310) (assign (constant bool (1)) (x) (var_ref max_retval@0x31d9310) (call max ((constant float (0.000000)) (var_ref RdotL@0x31fbe60) )) ) (declare (temporary ) float max_retval@0x320aa10) (assign (constant bool (1)) (x) (var_ref max_retval@0x320aa10) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3353180) shininess) )) ) (declare (temporary ) float pow_retval@0x320ae00) (assign (constant bool (1)) (x) (var_ref pow_retval@0x320ae00) (call pow ((var_ref max_retval@0x31d9310) (var_ref max_retval@0x320aa10) )) ) (declare (temporary ) float selfshadowStep_retval@0x30b7c40) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x30b7c40) (call selfshadowStep ((var_ref NdotL@0x3364ba0) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x2e925e0) (expression vec4 + (var_ref sc@0x2e925e0) (expression vec4 * (swiz w (var_ref lpatt@0x30b1cc0) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x320ae00) (var_ref selfshadowStep_retval@0x30b7c40) ) (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x3353180) specular) ) ) ) ) (return) )) ) (function lighting4 (signature void (parameters (declare (in ) vec4 vertex@0x3069c20) (declare (in ) vec3 refl@0x3069cd0) (declare (in ) vec3 normal@0x3069d80) (declare (inout ) vec4 pc@0x3069e30) (declare (inout ) vec4 sc@0x320dc50) ) ( (declare () float RdotL@0x322a850) (declare () float NdotL@0x2ced5b0) (declare () vec4 lpatt@0x2eceb90) (declare (temporary ) vec4 lightPosAndAttenuation4_retval@0x2ecee00) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation4_retval@0x2ecee00) (call lightPosAndAttenuation4 ((var_ref vertex@0x3069c20) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x2eceb90) (var_ref lightPosAndAttenuation4_retval@0x2ecee00) ) (declare (temporary ) float dot_retval@0x336ffe0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x336ffe0) (call dot ((swiz xyz (var_ref lightPosAndAttenuation4_retval@0x2ecee00) )(var_ref normal@0x3069d80) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x2ced5b0) (var_ref dot_retval@0x336ffe0) ) (declare (temporary ) float dot_retval@0x31fe950) (assign (constant bool (1)) (x) (var_ref dot_retval@0x31fe950) (call dot ((swiz xyz (var_ref lpatt@0x2eceb90) )(var_ref refl@0x3069cd0) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x322a850) (var_ref dot_retval@0x31fe950) ) (declare (temporary ) float max_retval@0x2cc16a0) (assign (constant bool (1)) (x) (var_ref max_retval@0x2cc16a0) (call max ((constant float (0.000000)) (var_ref NdotL@0x2ced5b0) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x3069e30) (expression vec4 + (var_ref pc@0x3069e30) (expression vec4 * (swiz w (var_ref lpatt@0x2eceb90) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x3353180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x2cc16a0) (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x3353180) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x32409f0) (assign (constant bool (1)) (x) (var_ref max_retval@0x32409f0) (call max ((constant float (0.000000)) (var_ref RdotL@0x322a850) )) ) (declare (temporary ) float max_retval@0x2f63f10) (assign (constant bool (1)) (x) (var_ref max_retval@0x2f63f10) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3353180) shininess) )) ) (declare (temporary ) float pow_retval@0x2f64300) (assign (constant bool (1)) (x) (var_ref pow_retval@0x2f64300) (call pow ((var_ref max_retval@0x32409f0) (var_ref max_retval@0x2f63f10) )) ) (declare (temporary ) float selfshadowStep_retval@0x2f825c0) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x2f825c0) (call selfshadowStep ((var_ref NdotL@0x2ced5b0) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x320dc50) (expression vec4 + (var_ref sc@0x320dc50) (expression vec4 * (swiz w (var_ref lpatt@0x2eceb90) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x2f64300) (var_ref selfshadowStep_retval@0x2f825c0) ) (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x3353180) specular) ) ) ) ) (return) )) ) (function lighting5 (signature void (parameters (declare (in ) vec4 vertex@0x2e96e80) (declare (in ) vec3 refl@0x2e96f30) (declare (in ) vec3 normal@0x2e96fe0) (declare (inout ) vec4 pc@0x2e97090) (declare (inout ) vec4 sc@0x2e97140) ) ( (declare () float RdotL@0x31a8af0) (declare () float NdotL@0x2e42c60) (declare () vec4 lpatt@0x324c4d0) (declare (temporary ) vec4 lightPosAndAttenuation5_retval@0x2d01be0) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation5_retval@0x2d01be0) (call lightPosAndAttenuation5 ((var_ref vertex@0x2e96e80) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x324c4d0) (var_ref lightPosAndAttenuation5_retval@0x2d01be0) ) (declare (temporary ) float dot_retval@0x2f89310) (assign (constant bool (1)) (x) (var_ref dot_retval@0x2f89310) (call dot ((swiz xyz (var_ref lightPosAndAttenuation5_retval@0x2d01be0) )(var_ref normal@0x2e96fe0) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x2e42c60) (var_ref dot_retval@0x2f89310) ) (declare (temporary ) float dot_retval@0x335b5b0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x335b5b0) (call dot ((swiz xyz (var_ref lpatt@0x324c4d0) )(var_ref refl@0x2e96f30) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x31a8af0) (var_ref dot_retval@0x335b5b0) ) (declare (temporary ) float max_retval@0x3221480) (assign (constant bool (1)) (x) (var_ref max_retval@0x3221480) (call max ((constant float (0.000000)) (var_ref NdotL@0x2e42c60) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x2e97090) (expression vec4 + (var_ref pc@0x2e97090) (expression vec4 * (swiz w (var_ref lpatt@0x324c4d0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x3353180) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (5)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x3221480) (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (5)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x3353180) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x3223410) (assign (constant bool (1)) (x) (var_ref max_retval@0x3223410) (call max ((constant float (0.000000)) (var_ref RdotL@0x31a8af0) )) ) (declare (temporary ) float max_retval@0x30a2680) (assign (constant bool (1)) (x) (var_ref max_retval@0x30a2680) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3353180) shininess) )) ) (declare (temporary ) float pow_retval@0x30a2a70) (assign (constant bool (1)) (x) (var_ref pow_retval@0x30a2a70) (call pow ((var_ref max_retval@0x3223410) (var_ref max_retval@0x30a2680) )) ) (declare (temporary ) float selfshadowStep_retval@0x2dcb030) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x2dcb030) (call selfshadowStep ((var_ref NdotL@0x2e42c60) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x2e97140) (expression vec4 + (var_ref sc@0x2e97140) (expression vec4 * (swiz w (var_ref lpatt@0x324c4d0) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x30a2a70) (var_ref selfshadowStep_retval@0x2dcb030) ) (record_ref (array_ref (var_ref gl_LightSource@0x335f480) (constant int (5)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x3353180) specular) ) ) ) ) (return) )) ) (function main (signature void (parameters ) ( (declare () vec3 refl@0x31115d0) (declare () vec4 sc@0x2ee11f0) (declare () vec4 pc@0x3112a30) (declare () vec3 tangent@0x2cc4130) (declare () vec3 normal@0x303b0b0) (declare () vec3 eyetopos@0x2e41320) (declare () vec4 position@0x2e5dd30) (declare (temporary ) vec4 assignment_tmp@0x2e5e0a0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x2e5e0a0) (expression vec4 * (var_ref gl_ModelViewMatrix@0x32bcc90) (var_ref gl_Vertex@0x2fa5470) ) ) (assign (constant bool (1)) (xyzw) (var_ref position@0x2e5dd30) (var_ref assignment_tmp@0x2e5e0a0) ) (declare (temporary ) vec3 normalize_retval@0x2ce9500) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x2ce9500) (call normalize ((swiz xyz (var_ref assignment_tmp@0x2e5e0a0) ))) ) (assign (constant bool (1)) (xyz) (var_ref eyetopos@0x2e41320) (var_ref normalize_retval@0x2ce9500) ) (declare (temporary ) vec3 normalize_retval@0x3378d80) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x3378d80) (call normalize ((expression vec3 * (var_ref gl_NormalMatrix@0x32bd270) (var_ref gl_Normal@0x32a4210) ) )) ) (assign (constant bool (1)) (xyz) (var_ref normal@0x303b0b0) (var_ref normalize_retval@0x3378d80) ) (declare (temporary ) vec3 normalize_retval@0x3367cd0) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x3367cd0) (call normalize ((expression vec3 * (var_ref gl_NormalMatrix@0x32bd270) (swiz xyz (var_ref gl_MultiTexCoord2@0x32ac200) )) )) ) (assign (constant bool (1)) (xyz) (var_ref tangent@0x2cc4130) (var_ref normalize_retval@0x3367cd0) ) (declare (temporary ) vec3 cross_retval@0x2e04640) (assign (constant bool (1)) (xyz) (var_ref cross_retval@0x2e04640) (call cross ((var_ref normalize_retval@0x3367cd0) (var_ref normal@0x303b0b0) )) ) (declare (temporary ) float sign_retval@0x311ff80) (assign (constant bool (1)) (x) (var_ref sign_retval@0x311ff80) (call sign ((swiz w (var_ref gl_MultiTexCoord2@0x32ac200) ))) ) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x33898d0) (constant int (0)) ) (var_ref gl_MultiTexCoord0@0x32a4840) ) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x33898d0) (constant int (1)) ) (swiz xyz (var_ref normal@0x303b0b0) )) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x33898d0) (constant int (2)) ) (swiz xyz (var_ref tangent@0x2cc4130) )) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x33898d0) (constant int (3)) ) (swiz xyz (expression vec3 * (var_ref cross_retval@0x2e04640) (var_ref sign_retval@0x311ff80) ) )) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x33898d0) (constant int (4)) ) (swiz xyz (expression vec3 neg (var_ref eyetopos@0x2e41320) ) )) (declare (temporary ) vec4 lightPosAndSize0_retval@0x30ee2e0) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndSize0_retval@0x30ee2e0) (call lightPosAndSize0 ((var_ref position@0x2e5dd30) )) ) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x33898d0) (constant int (5)) ) (var_ref lightPosAndSize0_retval@0x30ee2e0) ) (declare (temporary ) vec4 lightPosAndSize1_retval@0x2ea3450) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndSize1_retval@0x2ea3450) (call lightPosAndSize1 ((var_ref position@0x2e5dd30) )) ) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x33898d0) (constant int (6)) ) (var_ref lightPosAndSize1_retval@0x2ea3450) ) (assign (constant bool (1)) (w) (array_ref (var_ref gl_TexCoord@0x33898d0) (constant int (4)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (w) (array_ref (var_ref gl_TexCoord@0x33898d0) (constant int (3)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (w) (array_ref (var_ref gl_TexCoord@0x33898d0) (constant int (2)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (w) (array_ref (var_ref gl_TexCoord@0x33898d0) (constant int (1)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x33898d0) (constant int (7)) ) (var_ref position@0x2e5dd30) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x3112a30) (record_ref (var_ref gl_FrontMaterial@0x3353180) emission) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x2ee11f0) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (declare (temporary ) vec3 reflect_retval@0x320b5e0) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x320b5e0) (call reflect ((var_ref eyetopos@0x2e41320) (var_ref normal@0x303b0b0) )) ) (assign (constant bool (1)) (xyz) (var_ref refl@0x31115d0) (var_ref reflect_retval@0x320b5e0) ) (if (expression bool >= (var_ref max_light_enabled@0x2d213c0) (constant int (2)) ) ( (if (expression bool != (array_ref (var_ref light_enabled@0x2cc7440) (constant int (2)) ) (constant int (0)) ) ( (call lighting2 ((var_ref position@0x2e5dd30) (var_ref reflect_retval@0x320b5e0) (var_ref normal@0x303b0b0) (var_ref pc@0x3112a30) (var_ref sc@0x2ee11f0) )) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x2cc7440) (constant int (3)) ) (constant int (0)) ) ( (call lighting3 ((var_ref position@0x2e5dd30) (var_ref refl@0x31115d0) (var_ref normal@0x303b0b0) (var_ref pc@0x3112a30) (var_ref sc@0x2ee11f0) )) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x2cc7440) (constant int (4)) ) (constant int (0)) ) ( (call lighting4 ((var_ref position@0x2e5dd30) (var_ref refl@0x31115d0) (var_ref normal@0x303b0b0) (var_ref pc@0x3112a30) (var_ref sc@0x2ee11f0) )) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x2cc7440) (constant int (5)) ) (constant int (0)) ) ( (call lighting5 ((var_ref position@0x2e5dd30) (var_ref refl@0x31115d0) (var_ref normal@0x303b0b0) (var_ref pc@0x3112a30) (var_ref sc@0x2ee11f0) )) ) ()) ) ()) (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x329cb40) (expression vec4 * (var_ref gl_ModelViewProjectionMatrix@0x32bd130) (var_ref gl_Vertex@0x2fa5470) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_BackColor@0x32b4d30) (var_ref pc@0x3112a30) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0x32b4a60) (var_ref pc@0x3112a30) ) (assign (constant bool (1)) (xyzw) (var_ref gl_BackSecondaryColor@0x32bc7f0) (var_ref sc@0x2ee11f0) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontSecondaryColor@0x32b4f00) (var_ref sc@0x2ee11f0) ) )) ) ) 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@0x2cc5570) (declare (uniform ) vec4 damage@0x332f030) (declare (uniform ) vec4 cloaking@0x332ee00) (declare (uniform ) sampler2D detail1Map@0x332ebd0) (declare (uniform ) sampler2D detail0Map@0x332e9c0) (declare (uniform ) sampler2D damageMap@0x30fd310) (declare (uniform ) sampler2D normalMap@0x30fd0e0) (declare (uniform ) sampler2D glowMap@0x30fcec0) (declare (uniform ) sampler2D specMap@0x30fcca0) (declare (uniform ) samplerCube envMap@0x30fcac0) (declare (uniform ) sampler2D diffuseMap@0x305dfb0) (declare (uniform ) int max_light_enabled@0x305dd80) (declare (uniform ) (array int 8) light_enabled@0x305db50) (declare (in ) vec4 gl_FragCoord@0x3292e20) (declare (in ) bool gl_FrontFacing@0x33657a0) (declare (out ) vec4 gl_FragColor@0x3356940) (declare (out ) float gl_FragDepth@0x3350970) (declare (in ) vec4 gl_Color@0x2d1c5e0) (declare (in ) vec4 gl_SecondaryColor@0x2d0f3c0) (declare (in ) float gl_FogFragCoord@0x3365360) (declare (uniform ) mat4 gl_ModelViewMatrix@0x3363f40) (declare (uniform ) mat4 gl_ProjectionMatrix@0x3360fc0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x335a1f0) (declare (uniform ) mat3 gl_NormalMatrix@0x335a310) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0x33594b0) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0x33595d0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0x3353d80) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0x334e220) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0x334e360) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0x3348820) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0x3333050) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0x3333190) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0x30ea680) (declare (uniform ) float gl_NormalScale@0x3129fb0) (declare (uniform ) gl_LightModelParameters gl_LightModel@0x2f64bf0) (declare () int gl_MaxLights@0x334e470) (declare () int gl_MaxClipPlanes@0x336a290) (declare () int gl_MaxTextureUnits@0x33674d0) (declare () int gl_MaxTextureCoords@0x3361650) (declare () int gl_MaxVertexAttribs@0x3356540) (declare () int gl_MaxVertexUniformComponents@0x3354f60) (declare () int gl_MaxVaryingFloats@0x3352640) (declare () int gl_MaxVertexTextureImageUnits@0x334f7d0) (declare () int gl_MaxCombinedTextureImageUnits@0x3336e80) (declare () int gl_MaxTextureImageUnits@0x2ce9830) (declare () int gl_MaxFragmentUniformComponents@0x3368f80) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0x329c590) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0x3293930) (declare (uniform ) (array vec4 6) gl_ClipPlane@0x328d130) (declare (uniform ) gl_PointParameters gl_Point@0x3289e90) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x326e230) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0x2cc3410) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x3367650) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x3357a70) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0x3336890) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0x33369f0) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0x302da20) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0x2d1c060) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0x2d04300) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0x2f6d360) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0x2d1b300) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0x2e0f370) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0x302e0c0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0x302cf80) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0x2dca100) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0x2e0bbf0) (declare (uniform ) gl_FogParameters gl_Fog@0x30714e0) (declare (in ) (array vec4 0) gl_TexCoord@0x2e27650) (declare () int gl_MaxDrawBuffers@0x2e15400) (declare (out ) (array vec4 1) gl_FragData@0x2e10540) (function matmul (signature vec3 (parameters (declare (in ) vec3 tangent@0x2cc57a0) (declare (in ) vec3 binormal@0x2cc58b0) (declare (in ) vec3 normal@0x2cc59d0) (declare (in ) vec3 lightVec@0x2cc5ae0) ) ( (declare (temporary ) float dot_retval@0x2d1daa0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x2d1daa0) (call dot ((var_ref lightVec@0x2cc5ae0) (var_ref tangent@0x2cc57a0) )) ) (declare (temporary ) float dot_retval@0x2d1dc30) (assign (constant bool (1)) (x) (var_ref dot_retval@0x2d1dc30) (call dot ((var_ref lightVec@0x2cc5ae0) (var_ref binormal@0x2cc58b0) )) ) (declare (temporary ) float dot_retval@0x3074b60) (assign (constant bool (1)) (x) (var_ref dot_retval@0x3074b60) (call dot ((var_ref lightVec@0x2cc5ae0) (var_ref normal@0x2cc59d0) )) ) (declare (temporary ) vec3 vec_ctor@0x3074c80) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x3074c80) (swiz xxx (var_ref dot_retval@0x2d1daa0) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x3074c80) (swiz xxx (var_ref dot_retval@0x2d1dc30) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x3074c80) (swiz xxx (var_ref dot_retval@0x3074b60) )) (declare (temporary ) vec3 normalize_retval@0x3074fe0) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x3074fe0) (call normalize ((var_ref vec_ctor@0x3074c80) )) ) (return (var_ref normalize_retval@0x3074fe0) ) )) ) (function imatmul (signature vec3 (parameters (declare (in ) vec3 tangent@0x3075350) (declare (in ) vec3 binormal@0x3220580) (declare (in ) vec3 normal@0x32206a0) (declare (in ) vec3 lightVec@0x32207b0) ) ( (declare (temporary ) vec3 normalize_retval@0x2cc21a0) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x2cc21a0) (call normalize ((expression vec3 + (expression vec3 + (expression vec3 * (swiz xxx (var_ref lightVec@0x32207b0) )(var_ref tangent@0x3075350) ) (expression vec3 * (swiz yyy (var_ref lightVec@0x32207b0) )(var_ref binormal@0x3220580) ) ) (expression vec3 * (swiz zzz (var_ref lightVec@0x32207b0) )(var_ref normal@0x32206a0) ) ) )) ) (return (var_ref normalize_retval@0x2cc21a0) ) )) ) (function bias (signature float (parameters (declare (in ) float f@0x3361bf0) ) ( (return (expression float + (expression float * (var_ref f@0x3361bf0) (constant float (0.500000)) ) (constant float (0.500000)) ) ) )) (signature vec2 (parameters (declare (in ) vec2 f@0x2f26050) ) ( (return (expression vec2 + (expression vec2 * (var_ref f@0x2f26050) (constant float (0.500000)) ) (constant vec2 (0.500000 0.500000)) ) ) )) (signature vec3 (parameters (declare (in ) vec3 f@0x3362230) ) ( (return (expression vec3 + (expression vec3 * (var_ref f@0x3362230) (constant float (0.500000)) ) (constant vec3 (0.500000 0.500000 0.500000)) ) ) )) (signature vec4 (parameters (declare (in ) vec4 f@0x33abeb0) ) ( (return (expression vec4 + (expression vec4 * (var_ref f@0x33abeb0) (constant float (0.500000)) ) (constant vec4 (0.500000 0.500000 0.500000 0.500000)) ) ) )) ) (function expand (signature float (parameters (declare (in ) float f@0x33a9fe0) ) ( (return (expression float + (expression float * (var_ref f@0x33a9fe0) (constant float (2.000000)) ) (constant float (-1.000000)) ) ) )) (signature vec2 (parameters (declare (in ) vec2 f@0x2f3e800) ) ( (return (expression vec2 + (expression vec2 * (var_ref f@0x2f3e800) (constant float (2.000000)) ) (constant vec2 (-1.000000 -1.000000)) ) ) )) (signature vec3 (parameters (declare (in ) vec3 f@0x3087100) ) ( (return (expression vec3 + (expression vec3 * (var_ref f@0x3087100) (constant float (2.000000)) ) (constant vec3 (-1.000000 -1.000000 -1.000000)) ) ) )) (signature vec4 (parameters (declare (in ) vec4 f@0x30877f0) ) ( (return (expression vec4 + (expression vec4 * (var_ref f@0x30877f0) (constant float (2.000000)) ) (constant vec4 (-1.000000 -1.000000 -1.000000 -1.000000)) ) ) )) ) (function lerp (signature float (parameters (declare (in ) float f@0x2df6260) (declare (in ) float a@0x2df6370) (declare (in ) float b@0x2df6480) ) ( (return (expression float + (expression float * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x2df6260) ) ) (var_ref a@0x2df6370) ) (expression float * (var_ref f@0x2df6260) (var_ref b@0x2df6480) ) ) ) )) (signature vec2 (parameters (declare (in ) float f@0x31e9c00) (declare (in ) vec2 a@0x31e9d10) (declare (in ) vec2 b@0x31e9e20) ) ( (return (expression vec2 + (expression vec2 * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x31e9c00) ) ) (var_ref a@0x31e9d10) ) (expression vec2 * (var_ref f@0x31e9c00) (var_ref b@0x31e9e20) ) ) ) )) (signature vec3 (parameters (declare (in ) float f@0x320e740) (declare (in ) vec3 a@0x320e850) (declare (in ) vec3 b@0x320e960) ) ( (return (expression vec3 + (expression vec3 * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x320e740) ) ) (var_ref a@0x320e850) ) (expression vec3 * (var_ref f@0x320e740) (var_ref b@0x320e960) ) ) ) )) (signature vec4 (parameters (declare (in ) float f@0x312e480) (declare (in ) vec4 a@0x312e590) (declare (in ) vec4 b@0x312e6a0) ) ( (return (expression vec4 + (expression vec4 * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x312e480) ) ) (var_ref a@0x312e590) ) (expression vec4 * (var_ref f@0x312e480) (var_ref b@0x312e6a0) ) ) ) )) ) (function saturate (signature float (parameters (declare (in ) float a@0x2fc4ed0) ) ( (declare (temporary ) float clamp_retval@0x2d19310) (assign (constant bool (1)) (x) (var_ref clamp_retval@0x2d19310) (call clamp ((var_ref a@0x2fc4ed0) (constant float (0.000000)) (constant float (1.000000)) )) ) (return (var_ref clamp_retval@0x2d19310) ) )) (signature vec2 (parameters (declare (in ) vec2 a@0x2d19680) ) ( (declare (temporary ) vec2 clamp_retval@0x2e02b50) (assign (constant bool (1)) (xy) (var_ref clamp_retval@0x2e02b50) (call clamp ((var_ref a@0x2d19680) (constant vec2 (0.000000 0.000000)) (constant vec2 (1.000000 1.000000)) )) ) (return (var_ref clamp_retval@0x2e02b50) ) )) (signature vec3 (parameters (declare (in ) vec3 a@0x30615c0) ) ( (declare (temporary ) vec3 clamp_retval@0x3061cd0) (assign (constant bool (1)) (xyz) (var_ref clamp_retval@0x3061cd0) (call clamp ((var_ref a@0x30615c0) (constant vec3 (0.000000 0.000000 0.000000)) (constant vec3 (1.000000 1.000000 1.000000)) )) ) (return (var_ref clamp_retval@0x3061cd0) ) )) (signature vec4 (parameters (declare (in ) vec4 a@0x30ed810) ) ( (declare (temporary ) vec4 clamp_retval@0x30edf80) (assign (constant bool (1)) (xyzw) (var_ref clamp_retval@0x30edf80) (call clamp ((var_ref a@0x30ed810) (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@0x30edf80) ) )) ) (function dUdV_first_decode (signature vec2 (parameters (declare (in ) vec4 nmfetch@0x2e495d0) ) ( (declare (temporary ) vec2 vec_ctor@0x3331030) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x3331030) (swiz xx (expression float + (expression float * (constant float (0.333300)) (expression float + (expression float + (swiz x (var_ref nmfetch@0x2e495d0) )(swiz y (var_ref nmfetch@0x2e495d0) )) (swiz z (var_ref nmfetch@0x2e495d0) )) ) (constant float (-0.500000)) ) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x3331030) (swiz xx (expression float + (swiz w (var_ref nmfetch@0x2e495d0) )(constant float (-0.500000)) ) )) (return (var_ref vec_ctor@0x3331030) ) )) ) (function dUdV_final_decode (signature vec3 (parameters (declare (in ) vec2 blend_of_first_decode@0x2e47530) ) ( (declare (temporary ) vec3 vec_ctor@0x2e47b10) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x2e47b10) (constant vec3 (0.000000 0.000000 0.250000)) ) (assign (constant bool (1)) (xy) (var_ref vec_ctor@0x2e47b10) (swiz xyx (var_ref blend_of_first_decode@0x2e47530) )) (declare (temporary ) vec3 normalize_retval@0x3362720) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x3362720) (call normalize ((var_ref vec_ctor@0x2e47b10) )) ) (return (var_ref normalize_retval@0x3362720) ) )) ) (function normalmap_decode (signature vec3 (parameters (declare (in ) vec4 nm@0x3362a90) ) ( (declare (temporary ) vec2 dUdV_first_decode_retval@0x2dffe70) (assign (constant bool (1)) (xy) (var_ref dUdV_first_decode_retval@0x2dffe70) (call dUdV_first_decode ((var_ref nm@0x3362a90) )) ) (declare (temporary ) vec3 dUdV_final_decode_retval@0x2e00180) (assign (constant bool (1)) (xyz) (var_ref dUdV_final_decode_retval@0x2e00180) (call dUdV_final_decode ((var_ref dUdV_first_decode_retval@0x2dffe70) )) ) (return (var_ref dUdV_final_decode_retval@0x2e00180) ) )) ) (function GLOSS_init (signature void (parameters (declare (inout ) vec4 mat_gloss@0x2e00480) (declare (in ) float gloss_in@0x30a97d0) ) ( (assign (constant bool (1)) (x) (var_ref mat_gloss@0x2e00480) (expression float * (constant float (0.500000)) (expression float + (var_ref gloss_in@0x30a97d0) (expression float * (var_ref gloss_in@0x30a97d0) (var_ref gloss_in@0x30a97d0) ) ) ) ) (assign (constant bool (1)) (y) (var_ref mat_gloss@0x2e00480) (swiz xx (expression float * (constant float (7.288829)) (expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref mat_gloss@0x2e00480) )) ) ) )) (declare (temporary ) float pow_retval@0x2e70b80) (assign (constant bool (1)) (x) (var_ref pow_retval@0x2e70b80) (call pow ((constant float (2.500000)) (expression float + (swiz y (var_ref mat_gloss@0x2e00480) )(expression float neg (constant float (8.000000)) ) ) )) ) (assign (constant bool (1)) (z) (var_ref mat_gloss@0x2e00480) (swiz xxx (expression float * (constant float (1.047198)) (var_ref pow_retval@0x2e70b80) ) )) (declare (temporary ) float cos_retval@0x2e40200) (assign (constant bool (1)) (x) (var_ref cos_retval@0x2e40200) (call cos ((swiz z (var_ref mat_gloss@0x2e00480) ))) ) (assign (constant bool (1)) (w) (var_ref mat_gloss@0x2e00480) (swiz xxxx (expression float * (constant float (6.283185)) (expression float + (constant float (1.000000)) (expression float neg (var_ref cos_retval@0x2e40200) ) ) ) )) (return) )) ) (function GLOSS_power (signature float (parameters (declare (in ) float mat_gloss_sa@0x2e2d1f0) (declare (in ) float light_solid_angle@0x2e2d310) ) ( (return (expression float + (expression float / (constant float (1.570796)) (expression float + (var_ref mat_gloss_sa@0x2e2d1f0) (var_ref light_solid_angle@0x2e2d310) ) ) (constant float (-0.810660)) ) ) )) ) (function GLOSS_env_reflection (signature vec3 (parameters (declare (in ) vec3 direction@0x2f36c20) ) ( (declare (temporary ) vec4 textureCube_retval@0x2f37430) (assign (constant bool (1)) (xyzw) (var_ref textureCube_retval@0x2f37430) (call textureCube ((var_ref envMap@0x30fcac0) (var_ref direction@0x2f36c20) )) ) (declare (temporary ) vec3 assignment_tmp@0x2fa29a0) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x2fa29a0) (swiz xyz (var_ref textureCube_retval@0x2f37430) )) (return (expression vec3 * (var_ref assignment_tmp@0x2fa29a0) (var_ref assignment_tmp@0x2fa29a0) ) ) )) ) (function GLOSS_phong_reflection (signature float (parameters (declare (in ) float mat_gloss_sa@0x2fa3110) (declare (in ) float RdotL@0x2fa3230) (declare (in ) float light_solid_angle@0x2fb3780) ) ( (declare () float shininess@0x2fb3d70) (declare (temporary ) float GLOSS_power_retval@0x2fb4150) (assign (constant bool (1)) (x) (var_ref GLOSS_power_retval@0x2fb4150) (call GLOSS_power ((var_ref mat_gloss_sa@0x2fa3110) (var_ref light_solid_angle@0x2fb3780) )) ) (assign (constant bool (1)) (x) (var_ref shininess@0x2fb3d70) (var_ref GLOSS_power_retval@0x2fb4150) ) (declare (temporary ) float pow_retval@0x30ebf90) (assign (constant bool (1)) (x) (var_ref pow_retval@0x30ebf90) (call pow ((var_ref RdotL@0x2fa3230) (var_ref GLOSS_power_retval@0x2fb4150) )) ) (declare (temporary ) float max_retval@0x30d3090) (assign (constant bool (1)) (x) (var_ref max_retval@0x30d3090) (call max ((constant float (0.000000)) (expression float * (var_ref pow_retval@0x30ebf90) (var_ref shininess@0x2fb3d70) ) )) ) (return (var_ref max_retval@0x30d3090) ) )) ) (function diffuse_soft_dot (signature float (parameters (declare (in ) vec3 normal@0x30d3400) (declare (in ) vec3 light@0x30d34b0) (declare (in ) float light_sa@0x30d35c0) ) ( (declare (temporary ) float dot_retval@0x30e1990) (assign (constant bool (1)) (x) (var_ref dot_retval@0x30e1990) (call dot ((var_ref normal@0x30d3400) (var_ref light@0x30d34b0) )) ) (declare (temporary ) float assignment_tmp@0x2e86440) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x2e86440) (expression float / (var_ref light_sa@0x30d35c0) (constant float (6.283185)) ) ) (return (expression float / (expression float + (var_ref dot_retval@0x30e1990) (var_ref assignment_tmp@0x2e86440) ) (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x2e86440) ) ) ) )) ) (function lightingLight (signature void (parameters (declare (in ) vec4 lightinfo@0x2e8a9b0) (declare (in ) vec3 normal@0x2e8aad0) (declare (in ) vec3 vnormal@0x2e8e890) (declare (in ) vec3 reflection@0x2e8e9a0) (declare (in ) vec3 raw_light_col@0x2e8eac0) (declare (in ) float mat_gloss_sa@0x2e8ebe0) (declare (inout ) vec3 light_acc@0x2e8ed00) (declare (inout ) vec3 diffuse_acc@0x2e8ee20) (declare (inout ) vec3 specular_acc@0x2e8ef40) ) ( (declare () float NdotL@0x3051780) (declare () float VNdotLx4@0x32e3820) (declare () vec3 light_col@0x2ea0b80) (declare () float light_sa@0x2ea0400) (declare () vec3 light_pos@0x2e93270) (declare (temporary ) vec3 normalize_retval@0x2e935c0) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x2e935c0) (call normalize ((swiz xyz (var_ref lightinfo@0x2e8a9b0) ))) ) (assign (constant bool (1)) (xyz) (var_ref light_pos@0x2e93270) (var_ref normalize_retval@0x2e935c0) ) (declare (temporary ) float assignment_tmp@0x2ea06d0) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x2ea06d0) (swiz w (var_ref lightinfo@0x2e8a9b0) )) (assign (constant bool (1)) (x) (var_ref light_sa@0x2ea0400) (var_ref assignment_tmp@0x2ea06d0) ) (assign (constant bool (1)) (xyz) (var_ref light_col@0x2ea0b80) (expression vec3 * (var_ref raw_light_col@0x2e8eac0) (var_ref raw_light_col@0x2e8eac0) ) ) (declare (temporary ) float diffuse_soft_dot_retval@0x32ec8f0) (assign (constant bool (1)) (x) (var_ref diffuse_soft_dot_retval@0x32ec8f0) (call diffuse_soft_dot ((var_ref vnormal@0x2e8e890) (var_ref normalize_retval@0x2e935c0) (var_ref assignment_tmp@0x2ea06d0) )) ) (declare (temporary ) float saturate_retval@0x32ecd80) (assign (constant bool (1)) (x) (var_ref saturate_retval@0x32ecd80) (call saturate ((expression float * (constant float (4.000000)) (var_ref diffuse_soft_dot_retval@0x32ec8f0) ) )) ) (assign (constant bool (1)) (x) (var_ref VNdotLx4@0x32e3820) (var_ref saturate_retval@0x32ecd80) ) (declare (temporary ) float diffuse_soft_dot_retval@0x3051be0) (assign (constant bool (1)) (x) (var_ref diffuse_soft_dot_retval@0x3051be0) (call diffuse_soft_dot ((var_ref normal@0x2e8aad0) (var_ref light_pos@0x2e93270) (var_ref light_sa@0x2ea0400) )) ) (declare (temporary ) float clamp_retval@0x30dbc90) (assign (constant bool (1)) (x) (var_ref clamp_retval@0x30dbc90) (call clamp ((var_ref diffuse_soft_dot_retval@0x3051be0) (constant float (0.000000)) (var_ref VNdotLx4@0x32e3820) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x3051780) (var_ref clamp_retval@0x30dbc90) ) (declare (temporary ) float dot_retval@0x2e97ff0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x2e97ff0) (call dot ((var_ref reflection@0x2e8e9a0) (var_ref light_pos@0x2e93270) )) ) (declare (temporary ) float clamp_retval@0x2e98550) (assign (constant bool (1)) (x) (var_ref clamp_retval@0x2e98550) (call clamp ((var_ref dot_retval@0x2e97ff0) (constant float (0.000000)) (var_ref VNdotLx4@0x32e3820) )) ) (assign (constant bool (1)) (xyz) (var_ref light_acc@0x2e8ed00) (expression vec3 + (var_ref light_acc@0x2e8ed00) (var_ref light_col@0x2ea0b80) ) ) (declare (temporary ) float GLOSS_phong_reflection_retval@0x2e11620) (assign (constant bool (1)) (x) (var_ref GLOSS_phong_reflection_retval@0x2e11620) (call GLOSS_phong_reflection ((var_ref mat_gloss_sa@0x2e8ebe0) (var_ref clamp_retval@0x2e98550) (var_ref light_sa@0x2ea0400) )) ) (assign (constant bool (1)) (xyz) (var_ref specular_acc@0x2e8ef40) (expression vec3 + (var_ref specular_acc@0x2e8ef40) (expression vec3 * (var_ref GLOSS_phong_reflection_retval@0x2e11620) (var_ref light_col@0x2ea0b80) ) ) ) (assign (constant bool (1)) (xyz) (var_ref diffuse_acc@0x2e8ee20) (expression vec3 + (var_ref diffuse_acc@0x2e8ee20) (expression vec3 * (var_ref NdotL@0x3051780) (var_ref light_col@0x2ea0b80) ) ) ) (return) )) ) (function lighting0 (signature void (parameters (declare (in ) vec3 normal@0x2f2e9f0) (declare (in ) vec3 vnormal@0x2f2eb00) (declare (in ) vec3 reflection@0x2f2ec10) (declare (in ) float mat_gloss_sa@0x2f2ed30) (declare (inout ) vec3 light_acc@0x2f2ee50) (declare (inout ) vec3 diffuse_acc@0x2f2ef70) (declare (inout ) vec3 specular_acc@0x3399320) ) ( (call lightingLight ((array_ref (var_ref gl_TexCoord@0x2e27650) (constant int (5)) ) (var_ref normal@0x2f2e9f0) (var_ref vnormal@0x2f2eb00) (var_ref reflection@0x2f2ec10) (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x3367650) (constant int (0)) ) diffuse) )(var_ref mat_gloss_sa@0x2f2ed30) (var_ref light_acc@0x2f2ee50) (var_ref diffuse_acc@0x2f2ef70) (var_ref specular_acc@0x3399320) )) (return) )) ) (function lighting1 (signature void (parameters (declare (in ) vec3 normal@0x302b600) (declare (in ) vec3 vnormal@0x302b710) (declare (in ) vec3 reflection@0x302b820) (declare (in ) float mat_gloss_sa@0x302b940) (declare (inout ) vec3 light_acc@0x302ba60) (declare (inout ) vec3 diffuse_acc@0x3399da0) (declare (inout ) vec3 specular_acc@0x2ef65f0) ) ( (call lightingLight ((array_ref (var_ref gl_TexCoord@0x2e27650) (constant int (6)) ) (var_ref normal@0x302b600) (var_ref vnormal@0x302b710) (var_ref reflection@0x302b820) (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x3367650) (constant int (1)) ) diffuse) )(var_ref mat_gloss_sa@0x302b940) (var_ref light_acc@0x302ba60) (var_ref diffuse_acc@0x3399da0) (var_ref specular_acc@0x2ef65f0) )) (return) )) ) (function main (signature void (parameters ) ( (declare () float mtl_gloss_sa@0x31c34f0) (declare () vec3 specular_acc@0x2f460a0) (declare () vec3 diffuse_acc@0x2de39a0) (declare () vec3 light_acc@0x2de3180) (declare () vec3 reflection@0x2e4daf0) (declare () float UAO@0x2e86cb0) (declare () float alpha@0x2e86af0) (declare () vec3 glow_col@0x2e868c0) (declare () vec3 mspec_col@0x2e866d0) (declare () vec3 diff_col@0x3396d20) (declare () vec4 mtl_gloss@0x3396af0) (declare () vec4 glowcolor@0x3253a40) (declare () vec4 speccolor@0x2ecf380) (declare () vec4 diffcolor@0x320ef40) (declare () vec4 damagecolor@0x30fae80) (declare () vec3 eye@0x305cee0) (declare () vec3 normal@0x3126730) (declare () vec3 vnormal@0x2f06ba0) (declare () vec3 iBinormal@0x2f062a0) (declare () vec3 iTangent@0x2de86d0) (declare () vec3 iNormal@0x300ae80) (declare () vec2 tex_coord@0x2f6def0) (assign (constant bool (1)) (xy) (var_ref tex_coord@0x2f6def0) (swiz xy (array_ref (var_ref gl_TexCoord@0x2e27650) (constant int (0)) ) )) (declare (temporary ) vec3 assignment_tmp@0x300b2b0) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x300b2b0) (swiz xyz (array_ref (var_ref gl_TexCoord@0x2e27650) (constant int (1)) ) )) (assign (constant bool (1)) (xyz) (var_ref iNormal@0x300ae80) (var_ref assignment_tmp@0x300b2b0) ) (assign (constant bool (1)) (xyz) (var_ref iTangent@0x2de86d0) (swiz xyz (array_ref (var_ref gl_TexCoord@0x2e27650) (constant int (2)) ) )) (assign (constant bool (1)) (xyz) (var_ref iBinormal@0x2f062a0) (swiz xyz (array_ref (var_ref gl_TexCoord@0x2e27650) (constant int (3)) ) )) (declare (temporary ) vec3 normalize_retval@0x3125fd0) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x3125fd0) (call normalize ((var_ref assignment_tmp@0x300b2b0) )) ) (assign (constant bool (1)) (xyz) (var_ref vnormal@0x2f06ba0) (var_ref normalize_retval@0x3125fd0) ) (declare (temporary ) vec4 texture2D_retval@0x3121bc0) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x3121bc0) (call texture2D ((var_ref normalMap@0x30fd0e0) (var_ref tex_coord@0x2f6def0) )) ) (declare (temporary ) vec3 normalmap_decode_retval@0x3121fb0) (assign (constant bool (1)) (xyz) (var_ref normalmap_decode_retval@0x3121fb0) (call normalmap_decode ((var_ref texture2D_retval@0x3121bc0) )) ) (declare (temporary ) vec3 imatmul_retval@0x31223a0) (assign (constant bool (1)) (xyz) (var_ref imatmul_retval@0x31223a0) (call imatmul ((var_ref iTangent@0x2de86d0) (var_ref iBinormal@0x2f062a0) (var_ref iNormal@0x300ae80) (var_ref normalmap_decode_retval@0x3121fb0) )) ) (assign (constant bool (1)) (xyz) (var_ref normal@0x3126730) (var_ref imatmul_retval@0x31223a0) ) (assign (constant bool (1)) (xyz) (var_ref eye@0x305cee0) (swiz xyz (array_ref (var_ref gl_TexCoord@0x2e27650) (constant int (4)) ) )) (declare (temporary ) vec4 texture2D_retval@0x30fb260) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x30fb260) (call texture2D ((var_ref damageMap@0x30fd310) (var_ref tex_coord@0x2f6def0) )) ) (assign (constant bool (1)) (xyzw) (var_ref damagecolor@0x30fae80) (var_ref texture2D_retval@0x30fb260) ) (declare (temporary ) vec4 texture2D_retval@0x320f320) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x320f320) (call texture2D ((var_ref diffuseMap@0x305dfb0) (var_ref tex_coord@0x2f6def0) )) ) (assign (constant bool (1)) (xyzw) (var_ref diffcolor@0x320ef40) (var_ref texture2D_retval@0x320f320) ) (declare (temporary ) vec4 texture2D_retval@0x2ecf760) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x2ecf760) (call texture2D ((var_ref specMap@0x30fcca0) (var_ref tex_coord@0x2f6def0) )) ) (assign (constant bool (1)) (xyzw) (var_ref speccolor@0x2ecf380) (var_ref texture2D_retval@0x2ecf760) ) (declare (temporary ) vec4 texture2D_retval@0x3253e20) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x3253e20) (call texture2D ((var_ref glowMap@0x30fcec0) (var_ref tex_coord@0x2f6def0) )) ) (assign (constant bool (1)) (xyzw) (var_ref glowcolor@0x3253a40) (var_ref texture2D_retval@0x3253e20) ) (declare (temporary ) vec4 lerp_retval@0x30d3e70) (assign (constant bool (1)) (xyzw) (var_ref lerp_retval@0x30d3e70) (call lerp ((swiz x (var_ref damage@0x332f030) )(var_ref diffcolor@0x320ef40) (var_ref damagecolor@0x30fae80) )) ) (assign (constant bool (1)) (xyz) (var_ref diffcolor@0x320ef40) (swiz xyz (var_ref lerp_retval@0x30d3e70) )) (declare (temporary ) vec4 assignment_tmp@0x31136e0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x31136e0) (expression vec4 * (var_ref speccolor@0x2ecf380) (expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref damage@0x332f030) )) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref speccolor@0x2ecf380) (var_ref assignment_tmp@0x31136e0) ) (assign (constant bool (1)) (xyz) (var_ref glowcolor@0x3253a40) (swiz xyz (expression vec3 * (swiz xyz (var_ref glowcolor@0x3253a40) )(expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref damage@0x332f030) )) ) ) )) (assign (constant bool (1)) (x) (var_ref alpha@0x2e86af0) (swiz w (var_ref diffcolor@0x320ef40) )) (assign (constant bool (1)) (x) (var_ref UAO@0x2e86cb0) (swiz w (var_ref glowcolor@0x3253a40) )) (call GLOSS_init ((var_ref mtl_gloss@0x3396af0) (swiz w (var_ref assignment_tmp@0x31136e0) ))) (assign (constant bool (1)) (xyz) (var_ref diff_col@0x3396d20) (swiz xyz (expression vec4 * (var_ref diffcolor@0x320ef40) (var_ref diffcolor@0x320ef40) ) )) (assign (constant bool (1)) (xyz) (var_ref mspec_col@0x2e866d0) (swiz xyz (expression vec4 * (var_ref speccolor@0x2ecf380) (var_ref speccolor@0x2ecf380) ) )) (assign (constant bool (1)) (xyz) (var_ref glow_col@0x2e868c0) (swiz xyz (expression vec4 * (var_ref glowcolor@0x3253a40) (var_ref glowcolor@0x3253a40) ) )) (declare (temporary ) vec3 reflect_retval@0x2e4ded0) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x2e4ded0) (call reflect ((var_ref eye@0x305cee0) (var_ref normal@0x3126730) )) ) (declare (temporary ) vec3 assignment_tmp@0x2e4e250) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x2e4e250) (expression vec3 neg (var_ref reflect_retval@0x2e4ded0) ) ) (assign (constant bool (1)) (xyz) (var_ref reflection@0x2e4daf0) (var_ref assignment_tmp@0x2e4e250) ) (assign (constant bool (1)) (xyz) (var_ref light_acc@0x2de3180) (constant vec3 (0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (xyz) (var_ref diffuse_acc@0x2de39a0) (constant vec3 (0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (xyz) (var_ref specular_acc@0x2f460a0) (constant vec3 (0.000000 0.000000 0.000000)) ) (declare (temporary ) float assignment_tmp@0x31c37c0) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x31c37c0) (swiz w (var_ref mtl_gloss@0x3396af0) )) (assign (constant bool (1)) (x) (var_ref mtl_gloss_sa@0x31c34f0) (var_ref assignment_tmp@0x31c37c0) ) (if (expression bool != (array_ref (var_ref light_enabled@0x305db50) (constant int (0)) ) (constant int (0)) ) ( (call lighting0 ((var_ref normal@0x3126730) (var_ref vnormal@0x2f06ba0) (var_ref assignment_tmp@0x2e4e250) (var_ref assignment_tmp@0x31c37c0) (var_ref light_acc@0x2de3180) (var_ref diffuse_acc@0x2de39a0) (var_ref specular_acc@0x2f460a0) )) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x305db50) (constant int (1)) ) (constant int (0)) ) ( (call lighting1 ((var_ref normal@0x3126730) (var_ref vnormal@0x2f06ba0) (var_ref reflection@0x2e4daf0) (var_ref mtl_gloss_sa@0x31c34f0) (var_ref light_acc@0x2de3180) (var_ref diffuse_acc@0x2de39a0) (var_ref specular_acc@0x2f460a0) )) ) ()) (declare (temporary ) vec3 normalize_retval@0x2e8c1a0) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x2e8c1a0) (call normalize ((var_ref light_acc@0x2de3180) )) ) (declare (temporary ) vec3 assignment_tmp@0x2e8c650) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x2e8c650) (expression vec3 / (expression vec3 * (constant float (3.000000)) (var_ref normalize_retval@0x2e8c1a0) ) (var_ref light_acc@0x2de3180) ) ) (assign (constant bool (1)) (xyz) (var_ref diffuse_acc@0x2de39a0) (expression vec3 * (var_ref diffuse_acc@0x2de39a0) (var_ref assignment_tmp@0x2e8c650) ) ) (assign (constant bool (1)) (xyz) (var_ref specular_acc@0x2f460a0) (expression vec3 * (var_ref specular_acc@0x2f460a0) (var_ref assignment_tmp@0x2e8c650) ) ) (declare (temporary ) vec3 GLOSS_env_reflection_retval@0x2e8b1f0) (assign (constant bool (1)) (xyz) (var_ref GLOSS_env_reflection_retval@0x2e8b1f0) (call GLOSS_env_reflection ((var_ref reflection@0x2e4daf0) )) ) (declare (temporary ) vec3 sqrt_retval@0x2e90010) (assign (constant bool (1)) (xyz) (var_ref sqrt_retval@0x2e90010) (call sqrt ((expression vec3 + (expression vec3 * (expression vec3 + (expression vec3 * (expression vec3 * (expression vec3 + (var_ref GLOSS_env_reflection_retval@0x2e8b1f0) (var_ref specular_acc@0x2f460a0) ) (var_ref mspec_col@0x2e866d0) ) (var_ref UAO@0x2e86cb0) ) (expression vec3 * (expression vec3 + (var_ref glow_col@0x2e868c0) (var_ref diffuse_acc@0x2de39a0) ) (var_ref diff_col@0x3396d20) ) ) (var_ref UAO@0x2e86cb0) ) (var_ref glow_col@0x2e868c0) ) )) ) (declare (temporary ) vec4 vec_ctor@0x3125240) (assign (constant bool (1)) (xyz) (var_ref vec_ctor@0x3125240) (swiz xyzx (var_ref sqrt_retval@0x2e90010) )) (assign (constant bool (1)) (w) (var_ref vec_ctor@0x3125240) (swiz xxxx (var_ref alpha@0x2e86af0) )) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x3356940) (expression vec4 * (var_ref vec_ctor@0x3125240) (swiz xxxy (var_ref cloaking@0x332ee00) )) ) )) ) ) GLSL IR for linked vertex program 4: ( (declare (uniform ) int max_light_enabled@0x2e90e80) (declare (uniform ) (array vec4 2) light_size@0x2e8d520) (declare (uniform ) (array int 6) light_enabled@0x2e8cec0) (declare (out ) vec4 gl_Position@0x2e8bd70) (declare (in ) vec4 gl_Vertex@0x2f45bf0) (declare (in ) vec3 gl_Normal@0x2de34f0) (declare (in ) vec4 gl_MultiTexCoord0@0x2e880e0) (declare (in ) vec4 gl_MultiTexCoord2@0x2e87080) (declare (out ) vec4 gl_FrontColor@0x311f910) (declare (out ) vec4 gl_BackColor@0x30dc420) (declare (out ) vec4 gl_FrontSecondaryColor@0x32e33b0) (declare (out ) vec4 gl_BackSecondaryColor@0x2e86080) (declare (uniform ) mat4 gl_ModelViewMatrix@0x2e2d8f0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x2e70f00) (declare (uniform ) mat3 gl_NormalMatrix@0x33602c0) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x3112740) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x2ecefe0) (declare (out ) (array vec4 0) gl_TexCoord@0x32b7fb0) (function main (signature void (parameters ) ( (declare () vec4 sc@0x3395640) (declare () vec4 pc@0x3395750) (declare (temporary ) vec4 flattening_tmp@0x2f3a970) (assign (constant bool (1)) (xyzw) (var_ref flattening_tmp@0x2f3a970) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x2e2d8f0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x2f45bf0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x2e2d8f0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x2f45bf0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x2e2d8f0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x2f45bf0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x2e2d8f0) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x2f45bf0) )) ) ) (declare () vec3 _ret_val@0x2e9cce0) (declare () vec3 arg0@0x2e9cd90) (assign (constant bool (1)) (xyz) (var_ref arg0@0x2e9cd90) (swiz xyz (var_ref flattening_tmp@0x2f3a970) )) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x2e9cce0) (expression vec3 * (var_ref arg0@0x2e9cd90) (expression float rsq (expression float dot (var_ref arg0@0x2e9cd90) (var_ref arg0@0x2e9cd90) ) ) ) ) (declare () vec3 _ret_val@0x2e9d5b0) (declare (temporary ) vec3 flattening_tmp@0x2f3adf0) (assign (constant bool (1)) (xyz) (var_ref flattening_tmp@0x2f3adf0) (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x33602c0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x2de34f0) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x33602c0) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x2de34f0) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x33602c0) (constant int (2)) ) (swiz z (var_ref gl_Normal@0x2de34f0) )) ) ) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x2e9d5b0) (expression vec3 * (var_ref flattening_tmp@0x2f3adf0) (expression float rsq (expression float dot (var_ref flattening_tmp@0x2f3adf0) (var_ref flattening_tmp@0x2f3adf0) ) ) ) ) (declare () vec3 _ret_val@0x30ba0d0) (declare (temporary ) vec3 flattening_tmp@0x2f3b060) (declare (temporary ) vec3 mat_op_to_vec@0x2f3de60) (assign (constant bool (1)) (xyz) (var_ref mat_op_to_vec@0x2f3de60) (swiz xyz (var_ref gl_MultiTexCoord2@0x2e87080) )) (assign (constant bool (1)) (xyz) (var_ref flattening_tmp@0x2f3b060) (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x33602c0) (constant int (0)) ) (swiz x (var_ref mat_op_to_vec@0x2f3de60) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x33602c0) (constant int (1)) ) (swiz y (var_ref mat_op_to_vec@0x2f3de60) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x33602c0) (constant int (2)) ) (swiz z (var_ref mat_op_to_vec@0x2f3de60) )) ) ) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x30ba0d0) (expression vec3 * (var_ref flattening_tmp@0x2f3b060) (expression float rsq (expression float dot (var_ref flattening_tmp@0x2f3b060) (var_ref flattening_tmp@0x2f3b060) ) ) ) ) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x32b7fb0) (constant int (0)) ) (var_ref gl_MultiTexCoord0@0x2e880e0) ) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x32b7fb0) (constant int (1)) ) (swiz xyz (var_ref _ret_val@0x2e9d5b0) )) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x32b7fb0) (constant int (2)) ) (swiz xyz (var_ref _ret_val@0x30ba0d0) )) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x32b7fb0) (constant int (3)) ) (swiz xyz (expression vec3 * (expression vec3 cross (var_ref _ret_val@0x30ba0d0) (var_ref _ret_val@0x2e9d5b0) ) (expression float sign (swiz w (var_ref gl_MultiTexCoord2@0x2e87080) )) ) )) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x32b7fb0) (constant int (4)) ) (swiz xyz (expression vec3 neg (var_ref _ret_val@0x2e9cce0) ) )) (declare () vec4 rv@0x3200910) (declare (temporary ) vec4 assignment_tmp@0x3200a20) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x3200a20) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (0)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x3200910) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x3200a20) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x2f3a970) )(swiz w (var_ref assignment_tmp@0x3200a20) )) ) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x3200910) (swiz zzzz (array_ref (var_ref light_size@0x2e8d520) (constant int (0)) ) )) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x32b7fb0) (constant int (5)) ) (var_ref rv@0x3200910) ) (declare () vec4 rv@0x2e04d00) (declare (temporary ) vec4 assignment_tmp@0x2e04e10) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x2e04e10) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (1)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x2e04d00) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x2e04e10) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x2f3a970) )(swiz w (var_ref assignment_tmp@0x2e04e10) )) ) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x2e04d00) (swiz zzzz (array_ref (var_ref light_size@0x2e8d520) (constant int (1)) ) )) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x32b7fb0) (constant int (6)) ) (var_ref rv@0x2e04d00) ) (assign (constant bool (1)) (w) (array_ref (var_ref gl_TexCoord@0x32b7fb0) (constant int (4)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (w) (array_ref (var_ref gl_TexCoord@0x32b7fb0) (constant int (3)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (w) (array_ref (var_ref gl_TexCoord@0x32b7fb0) (constant int (2)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (w) (array_ref (var_ref gl_TexCoord@0x32b7fb0) (constant int (1)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x32b7fb0) (constant int (7)) ) (var_ref flattening_tmp@0x2f3a970) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x3395750) (record_ref (var_ref gl_FrontMaterial@0x3112740) emission) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x3395640) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (declare () vec3 _ret_val@0x2e060b0) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x2e060b0) (expression vec3 + (var_ref _ret_val@0x2e9cce0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x2e9d5b0) (var_ref _ret_val@0x2e9cce0) ) (var_ref _ret_val@0x2e9d5b0) ) ) ) ) ) (if (expression bool >= (var_ref max_light_enabled@0x2e90e80) (constant int (2)) ) ( (if (expression bool != (array_ref (var_ref light_enabled@0x2e8cec0) (constant int (2)) ) (constant int (0)) ) ( (declare () vec4 rv@0x30e6750) (declare (temporary ) vec4 assignment_tmp@0x30e6860) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x30e6860) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (2)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x30e6750) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x30e6860) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x2f3a970) )(swiz w (var_ref assignment_tmp@0x30e6860) )) ) ) )) (declare () float _ret_val@0x30e7530) (declare () vec3 arg0@0x30e75e0) (assign (constant bool (1)) (xyz) (var_ref arg0@0x30e75e0) (swiz xyz (var_ref rv@0x30e6750) )) (assign (constant bool (1)) (x) (var_ref _ret_val@0x30e7530) (expression float sqrt (expression float dot (var_ref arg0@0x30e75e0) (var_ref arg0@0x30e75e0) ) ) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x30e6750) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x30e6750) )(expression float rcp (var_ref _ret_val@0x30e7530) ) ) )) (declare (temporary ) vec3 vec_ctor@0x2dd1a30) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x2dd1a30) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x2dd1a30) (swiz xxx (var_ref _ret_val@0x30e7530) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x2dd1a30) (swiz xxx (expression float * (var_ref _ret_val@0x30e7530) (var_ref _ret_val@0x30e7530) ) )) (declare (temporary ) vec3 vec_ctor@0x2dd22c0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x2dd22c0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (2)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x2dd22c0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (2)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x2dd22c0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (2)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x30e6750) (swiz xxxx (expression float rcp (expression float dot (var_ref vec_ctor@0x2dd1a30) (var_ref vec_ctor@0x2dd22c0) ) ) )) (declare () float _ret_val@0x2cdee10) (assign (constant bool (1)) (x) (var_ref _ret_val@0x2cdee10) (expression float dot (swiz xyz (var_ref rv@0x30e6750) )(var_ref _ret_val@0x2e9d5b0) ) ) (declare () float t@0x2e35610) (assign (constant bool (1)) (x) (var_ref t@0x2e35610) (expression float max (expression float min (expression float * (var_ref _ret_val@0x2cdee10) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x3395750) (expression vec4 + (var_ref pc@0x3395750) (expression vec4 * (swiz w (var_ref rv@0x30e6750) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x3112740) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x2cdee10) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x3395640) (expression vec4 * (swiz w (var_ref rv@0x30e6750) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x30e6750) )(var_ref _ret_val@0x2e060b0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) ) (expression float * (var_ref t@0x2e35610) (expression float * (var_ref t@0x2e35610) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x2e35610) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) specular) ) ) ) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x2e8cec0) (constant int (3)) ) (constant int (0)) ) ( (declare () vec4 rv@0x30789e0) (declare (temporary ) vec4 assignment_tmp@0x3078af0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x3078af0) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (3)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x30789e0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x3078af0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x2f3a970) )(swiz w (var_ref assignment_tmp@0x3078af0) )) ) ) )) (declare () float _ret_val@0x30c6be0) (declare () vec3 arg0@0x30c6c90) (assign (constant bool (1)) (xyz) (var_ref arg0@0x30c6c90) (swiz xyz (var_ref rv@0x30789e0) )) (assign (constant bool (1)) (x) (var_ref _ret_val@0x30c6be0) (expression float sqrt (expression float dot (var_ref arg0@0x30c6c90) (var_ref arg0@0x30c6c90) ) ) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x30789e0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x30789e0) )(expression float rcp (var_ref _ret_val@0x30c6be0) ) ) )) (declare (temporary ) vec3 vec_ctor@0x30c7bb0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x30c7bb0) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x30c7bb0) (swiz xxx (var_ref _ret_val@0x30c6be0) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x30c7bb0) (swiz xxx (expression float * (var_ref _ret_val@0x30c6be0) (var_ref _ret_val@0x30c6be0) ) )) (declare (temporary ) vec3 vec_ctor@0x30c8440) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x30c8440) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (3)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x30c8440) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (3)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x30c8440) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (3)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x30789e0) (swiz xxxx (expression float rcp (expression float dot (var_ref vec_ctor@0x30c7bb0) (var_ref vec_ctor@0x30c8440) ) ) )) (declare () float _ret_val@0x2ee83c0) (assign (constant bool (1)) (x) (var_ref _ret_val@0x2ee83c0) (expression float dot (swiz xyz (var_ref rv@0x30789e0) )(var_ref _ret_val@0x2e9d5b0) ) ) (declare () float t@0x2ed2fa0) (assign (constant bool (1)) (x) (var_ref t@0x2ed2fa0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x2ee83c0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x3395750) (expression vec4 + (var_ref pc@0x3395750) (expression vec4 * (swiz w (var_ref rv@0x30789e0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x3112740) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x2ee83c0) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x3395640) (expression vec4 + (var_ref sc@0x3395640) (expression vec4 * (swiz w (var_ref rv@0x30789e0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x30789e0) )(var_ref _ret_val@0x2e060b0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) ) (expression float * (var_ref t@0x2ed2fa0) (expression float * (var_ref t@0x2ed2fa0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x2ed2fa0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) specular) ) ) ) ) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x2e8cec0) (constant int (4)) ) (constant int (0)) ) ( (declare () vec4 rv@0x31c06b0) (declare (temporary ) vec4 assignment_tmp@0x31c07c0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x31c07c0) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (4)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x31c06b0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x31c07c0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x2f3a970) )(swiz w (var_ref assignment_tmp@0x31c07c0) )) ) ) )) (declare () float _ret_val@0x31c1490) (declare () vec3 arg0@0x31c1540) (assign (constant bool (1)) (xyz) (var_ref arg0@0x31c1540) (swiz xyz (var_ref rv@0x31c06b0) )) (assign (constant bool (1)) (x) (var_ref _ret_val@0x31c1490) (expression float sqrt (expression float dot (var_ref arg0@0x31c1540) (var_ref arg0@0x31c1540) ) ) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x31c06b0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x31c06b0) )(expression float rcp (var_ref _ret_val@0x31c1490) ) ) )) (declare (temporary ) vec3 vec_ctor@0x2fce6e0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x2fce6e0) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x2fce6e0) (swiz xxx (var_ref _ret_val@0x31c1490) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x2fce6e0) (swiz xxx (expression float * (var_ref _ret_val@0x31c1490) (var_ref _ret_val@0x31c1490) ) )) (declare (temporary ) vec3 vec_ctor@0x2fcef70) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x2fcef70) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (4)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x2fcef70) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (4)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x2fcef70) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (4)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x31c06b0) (swiz xxxx (expression float rcp (expression float dot (var_ref vec_ctor@0x2fce6e0) (var_ref vec_ctor@0x2fcef70) ) ) )) (declare () float _ret_val@0x2ed9b00) (assign (constant bool (1)) (x) (var_ref _ret_val@0x2ed9b00) (expression float dot (swiz xyz (var_ref rv@0x31c06b0) )(var_ref _ret_val@0x2e9d5b0) ) ) (declare () float t@0x30f4680) (assign (constant bool (1)) (x) (var_ref t@0x30f4680) (expression float max (expression float min (expression float * (var_ref _ret_val@0x2ed9b00) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x3395750) (expression vec4 + (var_ref pc@0x3395750) (expression vec4 * (swiz w (var_ref rv@0x31c06b0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x3112740) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x2ed9b00) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x3395640) (expression vec4 + (var_ref sc@0x3395640) (expression vec4 * (swiz w (var_ref rv@0x31c06b0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x31c06b0) )(var_ref _ret_val@0x2e060b0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) ) (expression float * (var_ref t@0x30f4680) (expression float * (var_ref t@0x30f4680) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x30f4680) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) specular) ) ) ) ) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x2e8cec0) (constant int (5)) ) (constant int (0)) ) ( (declare () vec4 rv@0x2e43110) (declare (temporary ) vec4 assignment_tmp@0x2e43220) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x2e43220) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (5)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x2e43110) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x2e43220) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x2f3a970) )(swiz w (var_ref assignment_tmp@0x2e43220) )) ) ) )) (declare () float _ret_val@0x2e440b0) (declare () vec3 arg0@0x2e441d0) (assign (constant bool (1)) (xyz) (var_ref arg0@0x2e441d0) (swiz xyz (var_ref rv@0x2e43110) )) (assign (constant bool (1)) (x) (var_ref _ret_val@0x2e440b0) (expression float sqrt (expression float dot (var_ref arg0@0x2e441d0) (var_ref arg0@0x2e441d0) ) ) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x2e43110) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x2e43110) )(expression float rcp (var_ref _ret_val@0x2e440b0) ) ) )) (declare (temporary ) vec3 vec_ctor@0x2e450f0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x2e450f0) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x2e450f0) (swiz xxx (var_ref _ret_val@0x2e440b0) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x2e450f0) (swiz xxx (expression float * (var_ref _ret_val@0x2e440b0) (var_ref _ret_val@0x2e440b0) ) )) (declare (temporary ) vec3 vec_ctor@0x2faf070) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x2faf070) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (5)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x2faf070) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (5)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x2faf070) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (5)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x2e43110) (swiz xxxx (expression float rcp (expression float dot (var_ref vec_ctor@0x2e450f0) (var_ref vec_ctor@0x2faf070) ) ) )) (declare () float _ret_val@0x31c4980) (assign (constant bool (1)) (x) (var_ref _ret_val@0x31c4980) (expression float dot (swiz xyz (var_ref rv@0x2e43110) )(var_ref _ret_val@0x2e9d5b0) ) ) (declare () float t@0x3190260) (assign (constant bool (1)) (x) (var_ref t@0x3190260) (expression float max (expression float min (expression float * (var_ref _ret_val@0x31c4980) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x3395750) (expression vec4 + (var_ref pc@0x3395750) (expression vec4 * (swiz w (var_ref rv@0x2e43110) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x3112740) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (5)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x31c4980) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (5)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x3395640) (expression vec4 + (var_ref sc@0x3395640) (expression vec4 * (swiz w (var_ref rv@0x2e43110) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x2e43110) )(var_ref _ret_val@0x2e060b0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) ) (expression float * (var_ref t@0x3190260) (expression float * (var_ref t@0x3190260) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x3190260) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (5)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) specular) ) ) ) ) ) ()) ) ()) (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x2e8bd70) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x2e70f00) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x2f45bf0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x2e70f00) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x2f45bf0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x2e70f00) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x2f45bf0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x2e70f00) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x2f45bf0) )) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_BackColor@0x30dc420) (var_ref pc@0x3395750) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0x311f910) (var_ref pc@0x3395750) ) (assign (constant bool (1)) (xyzw) (var_ref gl_BackSecondaryColor@0x2e86080) (var_ref sc@0x3395640) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontSecondaryColor@0x32e33b0) (var_ref sc@0x3395640) ) )) ) ) Mesa IR for linked vertex program 4: 0: (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x3112740) MOV TEMP[1], STATE[20]; 1: MOV TEMP[2], STATE[21]; 2: MOV TEMP[3], STATE[22]; 3: MOV TEMP[4], STATE[23]; 4: MOV TEMP[5], STATE[24].xxxx; 5: (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x2ecefe0) MOV TEMP[6], STATE[25]; 6: MOV TEMP[7], STATE[26]; 7: MOV TEMP[8], STATE[27]; 8: MOV TEMP[9], STATE[28]; 9: MOV TEMP[10], STATE[29]; 10: MOV TEMP[11], STATE[30]; 11: MOV TEMP[12], STATE[30].wwww; 12: MOV TEMP[13], STATE[31].xxxx; 13: MOV TEMP[14], STATE[32].wwww; 14: MOV TEMP[15], STATE[32].xxxx; 15: MOV TEMP[16], STATE[32].yyyy; 16: MOV TEMP[17], STATE[32].zzzz; 17: MOV TEMP[18], STATE[33]; 18: MOV TEMP[19], STATE[34]; 19: MOV TEMP[20], STATE[35]; 20: MOV TEMP[21], STATE[36]; 21: MOV TEMP[22], STATE[37]; 22: MOV TEMP[23], STATE[38]; 23: MOV TEMP[24], STATE[38].wwww; 24: MOV TEMP[25], STATE[39].xxxx; 25: MOV TEMP[26], STATE[40].wwww; 26: MOV TEMP[27], STATE[40].xxxx; 27: MOV TEMP[28], STATE[40].yyyy; 28: MOV TEMP[29], STATE[40].zzzz; 29: MOV TEMP[30], STATE[41]; 30: MOV TEMP[31], STATE[42]; 31: MOV TEMP[32], STATE[43]; 32: MOV TEMP[33], STATE[44]; 33: MOV TEMP[34], STATE[45]; 34: MOV TEMP[35], STATE[46]; 35: MOV TEMP[36], STATE[46].wwww; 36: MOV TEMP[37], STATE[47].xxxx; 37: MOV TEMP[38], STATE[48].wwww; 38: MOV TEMP[39], STATE[48].xxxx; 39: MOV TEMP[40], STATE[48].yyyy; 40: MOV TEMP[41], STATE[48].zzzz; 41: MOV TEMP[42], STATE[49]; 42: MOV TEMP[43], STATE[50]; 43: MOV TEMP[44], STATE[51]; 44: MOV TEMP[45], STATE[52]; 45: MOV TEMP[46], STATE[53]; 46: MOV TEMP[47], STATE[54]; 47: MOV TEMP[48], STATE[54].wwww; 48: MOV TEMP[49], STATE[55].xxxx; 49: MOV TEMP[50], STATE[56].wwww; 50: MOV TEMP[51], STATE[56].xxxx; 51: MOV TEMP[52], STATE[56].yyyy; 52: MOV TEMP[53], STATE[56].zzzz; 53: MOV TEMP[54], STATE[57]; 54: MOV TEMP[55], STATE[58]; 55: MOV TEMP[56], STATE[59]; 56: MOV TEMP[57], STATE[60]; 57: MOV TEMP[58], STATE[61]; 58: MOV TEMP[59], STATE[62]; 59: MOV TEMP[60], STATE[62].wwww; 60: MOV TEMP[61], STATE[63].xxxx; 61: MOV TEMP[62], STATE[64].wwww; 62: MOV TEMP[63], STATE[64].xxxx; 63: MOV TEMP[64], STATE[64].yyyy; 64: MOV TEMP[65], STATE[64].zzzz; 65: MOV TEMP[66], STATE[65]; 66: MOV TEMP[67], STATE[66]; 67: MOV TEMP[68], STATE[67]; 68: MOV TEMP[69], STATE[68]; 69: MOV TEMP[70], STATE[69]; 70: MOV TEMP[71], STATE[70]; 71: MOV TEMP[72], STATE[70].wwww; 72: MOV TEMP[73], STATE[71].xxxx; 73: MOV TEMP[74], STATE[72].wwww; 74: MOV TEMP[75], STATE[72].xxxx; 75: MOV TEMP[76], STATE[72].yyyy; 76: MOV TEMP[77], STATE[72].zzzz; 77: MOV TEMP[78], STATE[73]; 78: MOV TEMP[79], STATE[74]; 79: MOV TEMP[80], STATE[75]; 80: MOV TEMP[81], STATE[76]; 81: MOV TEMP[82], STATE[77]; 82: MOV TEMP[83], STATE[78]; 83: MOV TEMP[84], STATE[78].wwww; 84: MOV TEMP[85], STATE[79].xxxx; 85: MOV TEMP[86], STATE[80].wwww; 86: MOV TEMP[87], STATE[80].xxxx; 87: MOV TEMP[88], STATE[80].yyyy; 88: MOV TEMP[89], STATE[80].zzzz; 89: MOV TEMP[90], STATE[81]; 90: MOV TEMP[91], STATE[82]; 91: MOV TEMP[92], STATE[83]; 92: MOV TEMP[93], STATE[84]; 93: MOV TEMP[94], STATE[85]; 94: MOV TEMP[95], STATE[86]; 95: MOV TEMP[96], STATE[86].wwww; 96: MOV TEMP[97], STATE[87].xxxx; 97: MOV TEMP[98], STATE[88].wwww; 98: MOV TEMP[99], STATE[88].xxxx; 99: MOV TEMP[100], STATE[88].yyyy; 100: MOV TEMP[101], STATE[88].zzzz; 101: (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x2e2d8f0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x2f45bf0) )) MUL TEMP[102], STATE[9], INPUT[0].xxxx; 102: (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x2e2d8f0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x2f45bf0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x2e2d8f0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x2f45bf0) )) ) MAD TEMP[103], STATE[10], INPUT[0].yyyy, TEMP[102]; 103: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x2e2d8f0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x2f45bf0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x2e2d8f0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x2f45bf0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x2e2d8f0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x2f45bf0) )) ) MAD TEMP[104], STATE[11], INPUT[0].zzzz, TEMP[103]; 104: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x2e2d8f0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x2f45bf0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x2e2d8f0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x2f45bf0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x2e2d8f0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x2f45bf0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x2e2d8f0) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x2f45bf0) )) ) MAD TEMP[105], STATE[12], INPUT[0].wwww, TEMP[104]; 105: (assign (constant bool (1)) (xyzw) (var_ref flattening_tmp@0x2f3a970) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x2e2d8f0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x2f45bf0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x2e2d8f0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x2f45bf0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x2e2d8f0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x2f45bf0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x2e2d8f0) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x2f45bf0) )) ) ) MOV TEMP[106], TEMP[105]; 106: (assign (constant bool (1)) (xyz) (var_ref arg0@0x2e9cd90) (swiz xyz (var_ref flattening_tmp@0x2f3a970) )) MOV TEMP[107].xyz, TEMP[106].xyzz; 107: (expression float dot (var_ref arg0@0x2e9cd90) (var_ref arg0@0x2e9cd90) ) DP3 TEMP[108].x, TEMP[107].xyzz, TEMP[107].xyzz; 108: (expression float rsq (expression float dot (var_ref arg0@0x2e9cd90) (var_ref arg0@0x2e9cd90) ) ) RSQ TEMP[109].x, TEMP[108].xxxx; 109: (expression vec3 * (var_ref arg0@0x2e9cd90) (expression float rsq (expression float dot (var_ref arg0@0x2e9cd90) (var_ref arg0@0x2e9cd90) ) ) ) MUL TEMP[110].xyz, TEMP[107].xyzz, TEMP[109].xxxx; 110: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x2e9cce0) (expression vec3 * (var_ref arg0@0x2e9cd90) (expression float rsq (expression float dot (var_ref arg0@0x2e9cd90) (var_ref arg0@0x2e9cd90) ) ) ) ) MOV TEMP[111].xyz, TEMP[110].xyzz; 111: (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x33602c0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x2de34f0) )) MUL TEMP[112].xyz, STATE[17].xyzz, INPUT[2].xxxx; 112: (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x33602c0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x2de34f0) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x33602c0) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x2de34f0) )) ) MAD TEMP[113], STATE[18].xyzz, INPUT[2].yyyy, TEMP[112].xyzz; 113: (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x33602c0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x2de34f0) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x33602c0) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x2de34f0) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x33602c0) (constant int (2)) ) (swiz z (var_ref gl_Normal@0x2de34f0) )) ) MAD TEMP[114], STATE[19].xyzz, INPUT[2].zzzz, TEMP[113].xyzz; 114: (assign (constant bool (1)) (xyz) (var_ref flattening_tmp@0x2f3adf0) (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x33602c0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x2de34f0) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x33602c0) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x2de34f0) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x33602c0) (constant int (2)) ) (swiz z (var_ref gl_Normal@0x2de34f0) )) ) ) MOV TEMP[115].xyz, TEMP[114].xyzz; 115: (expression float dot (var_ref flattening_tmp@0x2f3adf0) (var_ref flattening_tmp@0x2f3adf0) ) DP3 TEMP[116].x, TEMP[115].xyzz, TEMP[115].xyzz; 116: (expression float rsq (expression float dot (var_ref flattening_tmp@0x2f3adf0) (var_ref flattening_tmp@0x2f3adf0) ) ) RSQ TEMP[117].x, TEMP[116].xxxx; 117: (expression vec3 * (var_ref flattening_tmp@0x2f3adf0) (expression float rsq (expression float dot (var_ref flattening_tmp@0x2f3adf0) (var_ref flattening_tmp@0x2f3adf0) ) ) ) MUL TEMP[118].xyz, TEMP[115].xyzz, TEMP[117].xxxx; 118: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x2e9d5b0) (expression vec3 * (var_ref flattening_tmp@0x2f3adf0) (expression float rsq (expression float dot (var_ref flattening_tmp@0x2f3adf0) (var_ref flattening_tmp@0x2f3adf0) ) ) ) ) MOV TEMP[119].xyz, TEMP[118].xyzz; 119: (assign (constant bool (1)) (xyz) (var_ref mat_op_to_vec@0x2f3de60) (swiz xyz (var_ref gl_MultiTexCoord2@0x2e87080) )) MOV TEMP[120].xyz, INPUT[10].xyzz; 120: (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x33602c0) (constant int (0)) ) (swiz x (var_ref mat_op_to_vec@0x2f3de60) )) MUL TEMP[121].xyz, STATE[17].xyzz, TEMP[120].xxxx; 121: (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x33602c0) (constant int (0)) ) (swiz x (var_ref mat_op_to_vec@0x2f3de60) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x33602c0) (constant int (1)) ) (swiz y (var_ref mat_op_to_vec@0x2f3de60) )) ) MAD TEMP[122], STATE[18].xyzz, TEMP[120].yyyy, TEMP[121].xyzz; 122: (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x33602c0) (constant int (0)) ) (swiz x (var_ref mat_op_to_vec@0x2f3de60) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x33602c0) (constant int (1)) ) (swiz y (var_ref mat_op_to_vec@0x2f3de60) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x33602c0) (constant int (2)) ) (swiz z (var_ref mat_op_to_vec@0x2f3de60) )) ) MAD TEMP[123], STATE[19].xyzz, TEMP[120].zzzz, TEMP[122].xyzz; 123: (assign (constant bool (1)) (xyz) (var_ref flattening_tmp@0x2f3b060) (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x33602c0) (constant int (0)) ) (swiz x (var_ref mat_op_to_vec@0x2f3de60) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x33602c0) (constant int (1)) ) (swiz y (var_ref mat_op_to_vec@0x2f3de60) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x33602c0) (constant int (2)) ) (swiz z (var_ref mat_op_to_vec@0x2f3de60) )) ) ) MOV TEMP[124].xyz, TEMP[123].xyzz; 124: (expression float dot (var_ref flattening_tmp@0x2f3b060) (var_ref flattening_tmp@0x2f3b060) ) DP3 TEMP[125].x, TEMP[124].xyzz, TEMP[124].xyzz; 125: (expression float rsq (expression float dot (var_ref flattening_tmp@0x2f3b060) (var_ref flattening_tmp@0x2f3b060) ) ) RSQ TEMP[126].x, TEMP[125].xxxx; 126: (expression vec3 * (var_ref flattening_tmp@0x2f3b060) (expression float rsq (expression float dot (var_ref flattening_tmp@0x2f3b060) (var_ref flattening_tmp@0x2f3b060) ) ) ) MUL TEMP[127].xyz, TEMP[124].xyzz, TEMP[126].xxxx; 127: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x30ba0d0) (expression vec3 * (var_ref flattening_tmp@0x2f3b060) (expression float rsq (expression float dot (var_ref flattening_tmp@0x2f3b060) (var_ref flattening_tmp@0x2f3b060) ) ) ) ) MOV TEMP[128].xyz, TEMP[127].xyzz; 128: (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x32b7fb0) (constant int (0)) ) (var_ref gl_MultiTexCoord0@0x2e880e0) ) MOV OUTPUT[4], INPUT[8]; 129: (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x32b7fb0) (constant int (1)) ) (swiz xyz (var_ref _ret_val@0x2e9d5b0) )) MOV OUTPUT[5].xyz, TEMP[119].xyzz; 130: (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x32b7fb0) (constant int (2)) ) (swiz xyz (var_ref _ret_val@0x30ba0d0) )) MOV OUTPUT[6].xyz, TEMP[128].xyzz; 131: (expression vec3 cross (var_ref _ret_val@0x30ba0d0) (var_ref _ret_val@0x2e9d5b0) ) XPD TEMP[129].xyz, TEMP[128].xyzz, TEMP[119].xyzz; 132: (expression float sign (swiz w (var_ref gl_MultiTexCoord2@0x2e87080) )) SSG TEMP[130].x, INPUT[10].wwww; 133: (expression vec3 * (expression vec3 cross (var_ref _ret_val@0x30ba0d0) (var_ref _ret_val@0x2e9d5b0) ) (expression float sign (swiz w (var_ref gl_MultiTexCoord2@0x2e87080) )) ) MUL TEMP[131].xyz, TEMP[129].xyzz, TEMP[130].xxxx; 134: (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x32b7fb0) (constant int (3)) ) (swiz xyz (expression vec3 * (expression vec3 cross (var_ref _ret_val@0x30ba0d0) (var_ref _ret_val@0x2e9d5b0) ) (expression float sign (swiz w (var_ref gl_MultiTexCoord2@0x2e87080) )) ) )) MOV OUTPUT[7].xyz, TEMP[131].xyzz; 135: (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x32b7fb0) (constant int (4)) ) (swiz xyz (expression vec3 neg (var_ref _ret_val@0x2e9cce0) ) )) MOV OUTPUT[8].xyz, TEMP[111].-x-y-z-z; 136: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x3200a20) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (0)) ) position) ) MOV TEMP[133], TEMP[9]; 137: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x2f3a970) )(swiz w (var_ref assignment_tmp@0x3200a20) )) MUL TEMP[134].xyz, TEMP[106].xyzz, TEMP[133].wwww; 138: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x3200a20) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x2f3a970) )(swiz w (var_ref assignment_tmp@0x3200a20) )) ) ) ADD TEMP[136].xyz, TEMP[133].xyzz, TEMP[134].-x-y-z-z; 139: (assign (constant bool (1)) (xyz) (var_ref rv@0x3200910) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x3200a20) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x2f3a970) )(swiz w (var_ref assignment_tmp@0x3200a20) )) ) ) )) MOV TEMP[137].xyz, TEMP[136].xyzz; 140: (assign (constant bool (1)) (w) (var_ref rv@0x3200910) (swiz zzzz (array_ref (var_ref light_size@0x2e8d520) (constant int (0)) ) )) MOV TEMP[137].w, UNIFORM[1].zzzz; 141: (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x32b7fb0) (constant int (5)) ) (var_ref rv@0x3200910) ) MOV OUTPUT[9], TEMP[137]; 142: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x2e04e10) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (1)) ) position) ) MOV TEMP[138], TEMP[21]; 143: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x2f3a970) )(swiz w (var_ref assignment_tmp@0x2e04e10) )) MUL TEMP[139].xyz, TEMP[106].xyzz, TEMP[138].wwww; 144: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x2e04e10) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x2f3a970) )(swiz w (var_ref assignment_tmp@0x2e04e10) )) ) ) ADD TEMP[141].xyz, TEMP[138].xyzz, TEMP[139].-x-y-z-z; 145: (assign (constant bool (1)) (xyz) (var_ref rv@0x2e04d00) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x2e04e10) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x2f3a970) )(swiz w (var_ref assignment_tmp@0x2e04e10) )) ) ) )) MOV TEMP[142].xyz, TEMP[141].xyzz; 146: (assign (constant bool (1)) (w) (var_ref rv@0x2e04d00) (swiz zzzz (array_ref (var_ref light_size@0x2e8d520) (constant int (1)) ) )) MOV TEMP[142].w, UNIFORM[2].zzzz; 147: (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x32b7fb0) (constant int (6)) ) (var_ref rv@0x2e04d00) ) MOV OUTPUT[10], TEMP[142]; 148: (assign (constant bool (1)) (w) (array_ref (var_ref gl_TexCoord@0x32b7fb0) (constant int (4)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) MOV OUTPUT[8].w, CONST[89]; 149: (assign (constant bool (1)) (w) (array_ref (var_ref gl_TexCoord@0x32b7fb0) (constant int (3)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) MOV OUTPUT[7].w, CONST[89]; 150: (assign (constant bool (1)) (w) (array_ref (var_ref gl_TexCoord@0x32b7fb0) (constant int (2)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) MOV OUTPUT[6].w, CONST[89]; 151: (assign (constant bool (1)) (w) (array_ref (var_ref gl_TexCoord@0x32b7fb0) (constant int (1)) ) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) MOV OUTPUT[5].w, CONST[89]; 152: (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x32b7fb0) (constant int (7)) ) (var_ref flattening_tmp@0x2f3a970) ) MOV OUTPUT[11], TEMP[106]; 153: (assign (constant bool (1)) (xyzw) (var_ref pc@0x3395750) (record_ref (var_ref gl_FrontMaterial@0x3112740) emission) ) MOV TEMP[143], TEMP[1]; 154: (assign (constant bool (1)) (xyzw) (var_ref sc@0x3395640) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) MOV TEMP[144], CONST[89]; 155: (expression float dot (var_ref _ret_val@0x2e9d5b0) (var_ref _ret_val@0x2e9cce0) ) DP3 TEMP[145].x, TEMP[119].xyzz, TEMP[111].xyzz; 156: (expression vec3 * (expression float dot (var_ref _ret_val@0x2e9d5b0) (var_ref _ret_val@0x2e9cce0) ) (var_ref _ret_val@0x2e9d5b0) ) MUL TEMP[146].xyz, TEMP[145].xxxx, TEMP[119].xyzz; 157: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x2e9d5b0) (var_ref _ret_val@0x2e9cce0) ) (var_ref _ret_val@0x2e9d5b0) ) ) MUL TEMP[147].xyz, CONST[90].xxxx, TEMP[146].xyzz; 158: (expression vec3 + (var_ref _ret_val@0x2e9cce0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x2e9d5b0) (var_ref _ret_val@0x2e9cce0) ) (var_ref _ret_val@0x2e9d5b0) ) ) ) ) ADD TEMP[149].xyz, TEMP[111].xyzz, TEMP[147].-x-y-z-z; 159: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x2e060b0) (expression vec3 + (var_ref _ret_val@0x2e9cce0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x2e9d5b0) (var_ref _ret_val@0x2e9cce0) ) (var_ref _ret_val@0x2e9d5b0) ) ) ) ) ) MOV TEMP[150].xyz, TEMP[149].xyzz; 160: (expression bool >= (var_ref max_light_enabled@0x2e90e80) (constant int (2)) ) SGE.C TEMP[151].x, UNIFORM[0].xxxx, CONST[90].xxxx; 161: IF (NE.xxxx); # (if false, goto 366); 162: (expression bool != (array_ref (var_ref light_enabled@0x2e8cec0) (constant int (2)) ) (constant int (0)) ) SNE.C TEMP[152].x, UNIFORM[5].xxxx, CONST[89].xxxx; 163: IF (NE.xxxx); # (if false, goto 212); 164: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x30e6860) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (2)) ) position) ) MOV TEMP[153], TEMP[33]; 165: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x2f3a970) )(swiz w (var_ref assignment_tmp@0x30e6860) )) MUL TEMP[154].xyz, TEMP[106].xyzz, TEMP[153].wwww; 166: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x30e6860) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x2f3a970) )(swiz w (var_ref assignment_tmp@0x30e6860) )) ) ) ADD TEMP[156].xyz, TEMP[153].xyzz, TEMP[154].-x-y-z-z; 167: (assign (constant bool (1)) (xyz) (var_ref rv@0x30e6750) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x30e6860) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x2f3a970) )(swiz w (var_ref assignment_tmp@0x30e6860) )) ) ) )) MOV TEMP[157].xyz, TEMP[156].xyzz; 168: (assign (constant bool (1)) (xyz) (var_ref arg0@0x30e75e0) (swiz xyz (var_ref rv@0x30e6750) )) MOV TEMP[158].xyz, TEMP[157].xyzz; 169: (expression float dot (var_ref arg0@0x30e75e0) (var_ref arg0@0x30e75e0) ) DP3 TEMP[159].x, TEMP[158].xyzz, TEMP[158].xyzz; 170: (expression float sqrt (expression float dot (var_ref arg0@0x30e75e0) (var_ref arg0@0x30e75e0) ) ) RSQ TEMP[160].x, TEMP[159].xxxx; 171: MUL TEMP[160].x, TEMP[160].xxxx, TEMP[159].xxxx; 172: CMP TEMP[160].x, TEMP[159].-x-x-x-x, TEMP[160].xxxx, CONST[89].xxxx; 173: (assign (constant bool (1)) (x) (var_ref _ret_val@0x30e7530) (expression float sqrt (expression float dot (var_ref arg0@0x30e75e0) (var_ref arg0@0x30e75e0) ) ) ) MOV TEMP[161], TEMP[160].xxxx; 174: (expression float rcp (var_ref _ret_val@0x30e7530) ) RCP TEMP[162].x, TEMP[161].xxxx; 175: (expression vec3 * (swiz xyz (var_ref rv@0x30e6750) )(expression float rcp (var_ref _ret_val@0x30e7530) ) ) MUL TEMP[163].xyz, TEMP[157].xyzz, TEMP[162].xxxx; 176: (assign (constant bool (1)) (xyz) (var_ref rv@0x30e6750) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x30e6750) )(expression float rcp (var_ref _ret_val@0x30e7530) ) ) )) MOV TEMP[157].xyz, TEMP[163].xyzz; 177: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x2dd1a30) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[164].x, CONST[91]; 178: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x2dd1a30) (swiz xxx (var_ref _ret_val@0x30e7530) )) MOV TEMP[164].y, TEMP[161].xxxx; 179: (expression float * (var_ref _ret_val@0x30e7530) (var_ref _ret_val@0x30e7530) ) MUL TEMP[165].x, TEMP[161].xxxx, TEMP[161].xxxx; 180: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x2dd1a30) (swiz xxx (expression float * (var_ref _ret_val@0x30e7530) (var_ref _ret_val@0x30e7530) ) )) MOV TEMP[164].z, TEMP[165].xxxx; 181: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x2dd22c0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (2)) ) constantAttenuation) )) MOV TEMP[166].x, TEMP[39].xxxx; 182: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x2dd22c0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (2)) ) linearAttenuation) )) MOV TEMP[166].y, TEMP[40].xxxx; 183: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x2dd22c0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (2)) ) quadraticAttenuation) )) MOV TEMP[166].z, TEMP[41].xxxx; 184: (expression float dot (var_ref vec_ctor@0x2dd1a30) (var_ref vec_ctor@0x2dd22c0) ) DP3 TEMP[167].x, TEMP[164].xyzz, TEMP[166].xyzz; 185: (expression float rcp (expression float dot (var_ref vec_ctor@0x2dd1a30) (var_ref vec_ctor@0x2dd22c0) ) ) RCP TEMP[168].x, TEMP[167].xxxx; 186: (assign (constant bool (1)) (w) (var_ref rv@0x30e6750) (swiz xxxx (expression float rcp (expression float dot (var_ref vec_ctor@0x2dd1a30) (var_ref vec_ctor@0x2dd22c0) ) ) )) MOV TEMP[157].w, TEMP[168].xxxx; 187: (expression float dot (swiz xyz (var_ref rv@0x30e6750) )(var_ref _ret_val@0x2e9d5b0) ) DP3 TEMP[169].x, TEMP[157].xyzz, TEMP[119].xyzz; 188: (assign (constant bool (1)) (x) (var_ref _ret_val@0x2cdee10) (expression float dot (swiz xyz (var_ref rv@0x30e6750) )(var_ref _ret_val@0x2e9d5b0) ) ) MOV TEMP[170], TEMP[169].xxxx; 189: (expression float * (var_ref _ret_val@0x2cdee10) (constant float (4.000000)) ) MUL TEMP[171].x, TEMP[170].xxxx, CONST[90].yyyy; 190: (expression float min (expression float * (var_ref _ret_val@0x2cdee10) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[172].x, TEMP[171].xxxx, CONST[91].xxxx; 191: (expression float max (expression float min (expression float * (var_ref _ret_val@0x2cdee10) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[173].x, TEMP[172].xxxx, CONST[89].xxxx; 192: (assign (constant bool (1)) (x) (var_ref t@0x2e35610) (expression float max (expression float min (expression float * (var_ref _ret_val@0x2cdee10) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[174], TEMP[173].xxxx; 193: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x2cdee10) ) MAX TEMP[175].x, CONST[89].xxxx, TEMP[170].xxxx; 194: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x2cdee10) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (2)) ) diffuse) ) MUL TEMP[176], TEMP[175].xxxx, TEMP[31]; 195: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x3112740) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (2)) ) ambient) ) MUL TEMP[177], TEMP[2], TEMP[30]; 196: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x3112740) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x2cdee10) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) diffuse) ) ) MAD TEMP[178], TEMP[176], TEMP[3], TEMP[177]; 197: (expression vec4 + (var_ref pc@0x3395750) (expression vec4 * (swiz w (var_ref rv@0x30e6750) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x3112740) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x2cdee10) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) diffuse) ) ) ) ) MAD TEMP[179], TEMP[157].wwww, TEMP[178], TEMP[143]; 198: (assign (constant bool (1)) (xyzw) (var_ref pc@0x3395750) (expression vec4 + (var_ref pc@0x3395750) (expression vec4 * (swiz w (var_ref rv@0x30e6750) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x3112740) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x2cdee10) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) diffuse) ) ) ) ) ) MOV TEMP[143], TEMP[179]; 199: (expression float dot (swiz xyz (var_ref rv@0x30e6750) )(var_ref _ret_val@0x2e060b0) ) DP3 TEMP[180].x, TEMP[157].xyzz, TEMP[150].xyzz; 200: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x30e6750) )(var_ref _ret_val@0x2e060b0) ) ) MAX TEMP[181].x, CONST[89].xxxx, TEMP[180].xxxx; 201: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) MAX TEMP[182].x, CONST[91].xxxx, TEMP[5].xxxx; 202: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x30e6750) )(var_ref _ret_val@0x2e060b0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) ) POW TEMP[183].x, TEMP[181].xxxx, TEMP[182].xxxx; 203: (expression float * (constant float (2.000000)) (var_ref t@0x2e35610) ) MUL TEMP[184].x, CONST[90].xxxx, TEMP[174].xxxx; 204: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x2e35610) ) ) ) ADD TEMP[186].x, CONST[90].zzzz, TEMP[184].-x-x-x-x; 205: (expression float * (var_ref t@0x2e35610) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x2e35610) ) ) ) ) MUL TEMP[187].x, TEMP[174].xxxx, TEMP[186].xxxx; 206: (expression float * (var_ref t@0x2e35610) (expression float * (var_ref t@0x2e35610) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x2e35610) ) ) ) ) ) MUL TEMP[188].x, TEMP[174].xxxx, TEMP[187].xxxx; 207: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x30e6750) )(var_ref _ret_val@0x2e060b0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) ) (expression float * (var_ref t@0x2e35610) (expression float * (var_ref t@0x2e35610) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x2e35610) ) ) ) ) ) ) MUL TEMP[189].x, TEMP[183].xxxx, TEMP[188].xxxx; 208: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x30e6750) )(var_ref _ret_val@0x2e060b0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) ) (expression float * (var_ref t@0x2e35610) (expression float * (var_ref t@0x2e35610) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x2e35610) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (2)) ) specular) ) MUL TEMP[190], TEMP[189].xxxx, TEMP[32]; 209: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x30e6750) )(var_ref _ret_val@0x2e060b0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) ) (expression float * (var_ref t@0x2e35610) (expression float * (var_ref t@0x2e35610) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x2e35610) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) specular) ) MUL TEMP[191], TEMP[190], TEMP[4]; 210: (expression vec4 * (swiz w (var_ref rv@0x30e6750) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x30e6750) )(var_ref _ret_val@0x2e060b0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) ) (expression float * (var_ref t@0x2e35610) (expression float * (var_ref t@0x2e35610) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x2e35610) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) specular) ) ) MUL TEMP[192], TEMP[157].wwww, TEMP[191]; 211: (assign (constant bool (1)) (xyzw) (var_ref sc@0x3395640) (expression vec4 * (swiz w (var_ref rv@0x30e6750) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x30e6750) )(var_ref _ret_val@0x2e060b0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) ) (expression float * (var_ref t@0x2e35610) (expression float * (var_ref t@0x2e35610) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x2e35610) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) specular) ) ) ) MOV TEMP[144], TEMP[192]; 212: (expression bool != (array_ref (var_ref light_enabled@0x2e8cec0) (constant int (2)) ) (constant int (0)) ) ENDIF; 213: (expression bool != (array_ref (var_ref light_enabled@0x2e8cec0) (constant int (3)) ) (constant int (0)) ) SNE.C TEMP[193].x, UNIFORM[6].xxxx, CONST[89].xxxx; 214: IF (NE.xxxx); # (if false, goto 263); 215: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x3078af0) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (3)) ) position) ) MOV TEMP[194], TEMP[45]; 216: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x2f3a970) )(swiz w (var_ref assignment_tmp@0x3078af0) )) MUL TEMP[195].xyz, TEMP[106].xyzz, TEMP[194].wwww; 217: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x3078af0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x2f3a970) )(swiz w (var_ref assignment_tmp@0x3078af0) )) ) ) ADD TEMP[197].xyz, TEMP[194].xyzz, TEMP[195].-x-y-z-z; 218: (assign (constant bool (1)) (xyz) (var_ref rv@0x30789e0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x3078af0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x2f3a970) )(swiz w (var_ref assignment_tmp@0x3078af0) )) ) ) )) MOV TEMP[198].xyz, TEMP[197].xyzz; 219: (assign (constant bool (1)) (xyz) (var_ref arg0@0x30c6c90) (swiz xyz (var_ref rv@0x30789e0) )) MOV TEMP[199].xyz, TEMP[198].xyzz; 220: (expression float dot (var_ref arg0@0x30c6c90) (var_ref arg0@0x30c6c90) ) DP3 TEMP[200].x, TEMP[199].xyzz, TEMP[199].xyzz; 221: (expression float sqrt (expression float dot (var_ref arg0@0x30c6c90) (var_ref arg0@0x30c6c90) ) ) RSQ TEMP[201].x, TEMP[200].xxxx; 222: MUL TEMP[201].x, TEMP[201].xxxx, TEMP[200].xxxx; 223: CMP TEMP[201].x, TEMP[200].-x-x-x-x, TEMP[201].xxxx, CONST[89].xxxx; 224: (assign (constant bool (1)) (x) (var_ref _ret_val@0x30c6be0) (expression float sqrt (expression float dot (var_ref arg0@0x30c6c90) (var_ref arg0@0x30c6c90) ) ) ) MOV TEMP[202], TEMP[201].xxxx; 225: (expression float rcp (var_ref _ret_val@0x30c6be0) ) RCP TEMP[203].x, TEMP[202].xxxx; 226: (expression vec3 * (swiz xyz (var_ref rv@0x30789e0) )(expression float rcp (var_ref _ret_val@0x30c6be0) ) ) MUL TEMP[204].xyz, TEMP[198].xyzz, TEMP[203].xxxx; 227: (assign (constant bool (1)) (xyz) (var_ref rv@0x30789e0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x30789e0) )(expression float rcp (var_ref _ret_val@0x30c6be0) ) ) )) MOV TEMP[198].xyz, TEMP[204].xyzz; 228: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x30c7bb0) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[205].x, CONST[91].xyzz; 229: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x30c7bb0) (swiz xxx (var_ref _ret_val@0x30c6be0) )) MOV TEMP[205].y, TEMP[202].xxxx; 230: (expression float * (var_ref _ret_val@0x30c6be0) (var_ref _ret_val@0x30c6be0) ) MUL TEMP[206].x, TEMP[202].xxxx, TEMP[202].xxxx; 231: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x30c7bb0) (swiz xxx (expression float * (var_ref _ret_val@0x30c6be0) (var_ref _ret_val@0x30c6be0) ) )) MOV TEMP[205].z, TEMP[206].xxxx; 232: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x30c8440) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (3)) ) constantAttenuation) )) MOV TEMP[207].x, TEMP[51].xxxx; 233: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x30c8440) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (3)) ) linearAttenuation) )) MOV TEMP[207].y, TEMP[52].xxxx; 234: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x30c8440) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (3)) ) quadraticAttenuation) )) MOV TEMP[207].z, TEMP[53].xxxx; 235: (expression float dot (var_ref vec_ctor@0x30c7bb0) (var_ref vec_ctor@0x30c8440) ) DP3 TEMP[208].x, TEMP[205].xyzz, TEMP[207].xyzz; 236: (expression float rcp (expression float dot (var_ref vec_ctor@0x30c7bb0) (var_ref vec_ctor@0x30c8440) ) ) RCP TEMP[209].x, TEMP[208].xxxx; 237: (assign (constant bool (1)) (w) (var_ref rv@0x30789e0) (swiz xxxx (expression float rcp (expression float dot (var_ref vec_ctor@0x30c7bb0) (var_ref vec_ctor@0x30c8440) ) ) )) MOV TEMP[198].w, TEMP[209].xxxx; 238: (expression float dot (swiz xyz (var_ref rv@0x30789e0) )(var_ref _ret_val@0x2e9d5b0) ) DP3 TEMP[210].x, TEMP[198].xyzz, TEMP[119].xyzz; 239: (assign (constant bool (1)) (x) (var_ref _ret_val@0x2ee83c0) (expression float dot (swiz xyz (var_ref rv@0x30789e0) )(var_ref _ret_val@0x2e9d5b0) ) ) MOV TEMP[211], TEMP[210].xxxx; 240: (expression float * (var_ref _ret_val@0x2ee83c0) (constant float (4.000000)) ) MUL TEMP[212].x, TEMP[211].xxxx, CONST[90].yyyy; 241: (expression float min (expression float * (var_ref _ret_val@0x2ee83c0) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[213].x, TEMP[212].xxxx, CONST[91].xxxx; 242: (expression float max (expression float min (expression float * (var_ref _ret_val@0x2ee83c0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[214].x, TEMP[213].xxxx, CONST[89].xxxx; 243: (assign (constant bool (1)) (x) (var_ref t@0x2ed2fa0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x2ee83c0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[215], TEMP[214].xxxx; 244: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x2ee83c0) ) MAX TEMP[216].x, CONST[89].xxxx, TEMP[211].xxxx; 245: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x2ee83c0) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (3)) ) diffuse) ) MUL TEMP[217], TEMP[216].xxxx, TEMP[43]; 246: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x3112740) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (3)) ) ambient) ) MUL TEMP[218], TEMP[2], TEMP[42]; 247: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x3112740) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x2ee83c0) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) diffuse) ) ) MAD TEMP[219], TEMP[217], TEMP[3], TEMP[218]; 248: (expression vec4 + (var_ref pc@0x3395750) (expression vec4 * (swiz w (var_ref rv@0x30789e0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x3112740) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x2ee83c0) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) diffuse) ) ) ) ) MAD TEMP[220], TEMP[198].wwww, TEMP[219], TEMP[143]; 249: (assign (constant bool (1)) (xyzw) (var_ref pc@0x3395750) (expression vec4 + (var_ref pc@0x3395750) (expression vec4 * (swiz w (var_ref rv@0x30789e0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x3112740) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x2ee83c0) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) diffuse) ) ) ) ) ) MOV TEMP[143], TEMP[220]; 250: (expression float dot (swiz xyz (var_ref rv@0x30789e0) )(var_ref _ret_val@0x2e060b0) ) DP3 TEMP[221].x, TEMP[198].xyzz, TEMP[150].xyzz; 251: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x30789e0) )(var_ref _ret_val@0x2e060b0) ) ) MAX TEMP[222].x, CONST[89].xxxx, TEMP[221].xxxx; 252: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) MAX TEMP[223].x, CONST[91].xxxx, TEMP[5].xxxx; 253: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x30789e0) )(var_ref _ret_val@0x2e060b0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) ) POW TEMP[224].x, TEMP[222].xxxx, TEMP[223].xxxx; 254: (expression float * (constant float (2.000000)) (var_ref t@0x2ed2fa0) ) MUL TEMP[225].x, CONST[90].xxxx, TEMP[215].xxxx; 255: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x2ed2fa0) ) ) ) ADD TEMP[227].x, CONST[90].zzzz, TEMP[225].-x-x-x-x; 256: (expression float * (var_ref t@0x2ed2fa0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x2ed2fa0) ) ) ) ) MUL TEMP[228].x, TEMP[215].xxxx, TEMP[227].xxxx; 257: (expression float * (var_ref t@0x2ed2fa0) (expression float * (var_ref t@0x2ed2fa0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x2ed2fa0) ) ) ) ) ) MUL TEMP[229].x, TEMP[215].xxxx, TEMP[228].xxxx; 258: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x30789e0) )(var_ref _ret_val@0x2e060b0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) ) (expression float * (var_ref t@0x2ed2fa0) (expression float * (var_ref t@0x2ed2fa0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x2ed2fa0) ) ) ) ) ) ) MUL TEMP[230].x, TEMP[224].xxxx, TEMP[229].xxxx; 259: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x30789e0) )(var_ref _ret_val@0x2e060b0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) ) (expression float * (var_ref t@0x2ed2fa0) (expression float * (var_ref t@0x2ed2fa0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x2ed2fa0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (3)) ) specular) ) MUL TEMP[231], TEMP[230].xxxx, TEMP[44]; 260: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x30789e0) )(var_ref _ret_val@0x2e060b0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) ) (expression float * (var_ref t@0x2ed2fa0) (expression float * (var_ref t@0x2ed2fa0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x2ed2fa0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) specular) ) MUL TEMP[232], TEMP[231], TEMP[4]; 261: (expression vec4 + (var_ref sc@0x3395640) (expression vec4 * (swiz w (var_ref rv@0x30789e0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x30789e0) )(var_ref _ret_val@0x2e060b0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) ) (expression float * (var_ref t@0x2ed2fa0) (expression float * (var_ref t@0x2ed2fa0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x2ed2fa0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) specular) ) ) ) MAD TEMP[233], TEMP[198].wwww, TEMP[232], TEMP[144]; 262: (assign (constant bool (1)) (xyzw) (var_ref sc@0x3395640) (expression vec4 + (var_ref sc@0x3395640) (expression vec4 * (swiz w (var_ref rv@0x30789e0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x30789e0) )(var_ref _ret_val@0x2e060b0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) ) (expression float * (var_ref t@0x2ed2fa0) (expression float * (var_ref t@0x2ed2fa0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x2ed2fa0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) specular) ) ) ) ) MOV TEMP[144], TEMP[233]; 263: (expression bool != (array_ref (var_ref light_enabled@0x2e8cec0) (constant int (3)) ) (constant int (0)) ) ENDIF; 264: (expression bool != (array_ref (var_ref light_enabled@0x2e8cec0) (constant int (4)) ) (constant int (0)) ) SNE.C TEMP[234].x, UNIFORM[7].xxxx, CONST[89].xxxx; 265: IF (NE.xxxx); # (if false, goto 314); 266: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x31c07c0) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (4)) ) position) ) MOV TEMP[235], TEMP[57]; 267: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x2f3a970) )(swiz w (var_ref assignment_tmp@0x31c07c0) )) MUL TEMP[236].xyz, TEMP[106].xyzz, TEMP[235].wwww; 268: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x31c07c0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x2f3a970) )(swiz w (var_ref assignment_tmp@0x31c07c0) )) ) ) ADD TEMP[238].xyz, TEMP[235].xyzz, TEMP[236].-x-y-z-z; 269: (assign (constant bool (1)) (xyz) (var_ref rv@0x31c06b0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x31c07c0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x2f3a970) )(swiz w (var_ref assignment_tmp@0x31c07c0) )) ) ) )) MOV TEMP[239].xyz, TEMP[238].xyzz; 270: (assign (constant bool (1)) (xyz) (var_ref arg0@0x31c1540) (swiz xyz (var_ref rv@0x31c06b0) )) MOV TEMP[240].xyz, TEMP[239].xyzz; 271: (expression float dot (var_ref arg0@0x31c1540) (var_ref arg0@0x31c1540) ) DP3 TEMP[241].x, TEMP[240].xyzz, TEMP[240].xyzz; 272: (expression float sqrt (expression float dot (var_ref arg0@0x31c1540) (var_ref arg0@0x31c1540) ) ) RSQ TEMP[242].x, TEMP[241].xxxx; 273: MUL TEMP[242].x, TEMP[242].xxxx, TEMP[241].xxxx; 274: CMP TEMP[242].x, TEMP[241].-x-x-x-x, TEMP[242].xxxx, CONST[89].xxxx; 275: (assign (constant bool (1)) (x) (var_ref _ret_val@0x31c1490) (expression float sqrt (expression float dot (var_ref arg0@0x31c1540) (var_ref arg0@0x31c1540) ) ) ) MOV TEMP[243], TEMP[242].xxxx; 276: (expression float rcp (var_ref _ret_val@0x31c1490) ) RCP TEMP[244].x, TEMP[243].xxxx; 277: (expression vec3 * (swiz xyz (var_ref rv@0x31c06b0) )(expression float rcp (var_ref _ret_val@0x31c1490) ) ) MUL TEMP[245].xyz, TEMP[239].xyzz, TEMP[244].xxxx; 278: (assign (constant bool (1)) (xyz) (var_ref rv@0x31c06b0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x31c06b0) )(expression float rcp (var_ref _ret_val@0x31c1490) ) ) )) MOV TEMP[239].xyz, TEMP[245].xyzz; 279: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x2fce6e0) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[246].x, CONST[91].xyzz; 280: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x2fce6e0) (swiz xxx (var_ref _ret_val@0x31c1490) )) MOV TEMP[246].y, TEMP[243].xxxx; 281: (expression float * (var_ref _ret_val@0x31c1490) (var_ref _ret_val@0x31c1490) ) MUL TEMP[247].x, TEMP[243].xxxx, TEMP[243].xxxx; 282: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x2fce6e0) (swiz xxx (expression float * (var_ref _ret_val@0x31c1490) (var_ref _ret_val@0x31c1490) ) )) MOV TEMP[246].z, TEMP[247].xxxx; 283: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x2fcef70) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (4)) ) constantAttenuation) )) MOV TEMP[248].x, TEMP[63].xxxx; 284: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x2fcef70) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (4)) ) linearAttenuation) )) MOV TEMP[248].y, TEMP[64].xxxx; 285: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x2fcef70) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (4)) ) quadraticAttenuation) )) MOV TEMP[248].z, TEMP[65].xxxx; 286: (expression float dot (var_ref vec_ctor@0x2fce6e0) (var_ref vec_ctor@0x2fcef70) ) DP3 TEMP[249].x, TEMP[246].xyzz, TEMP[248].xyzz; 287: (expression float rcp (expression float dot (var_ref vec_ctor@0x2fce6e0) (var_ref vec_ctor@0x2fcef70) ) ) RCP TEMP[250].x, TEMP[249].xxxx; 288: (assign (constant bool (1)) (w) (var_ref rv@0x31c06b0) (swiz xxxx (expression float rcp (expression float dot (var_ref vec_ctor@0x2fce6e0) (var_ref vec_ctor@0x2fcef70) ) ) )) MOV TEMP[239].w, TEMP[250].xxxx; 289: (expression float dot (swiz xyz (var_ref rv@0x31c06b0) )(var_ref _ret_val@0x2e9d5b0) ) DP3 TEMP[251].x, TEMP[239].xyzz, TEMP[119].xyzz; 290: (assign (constant bool (1)) (x) (var_ref _ret_val@0x2ed9b00) (expression float dot (swiz xyz (var_ref rv@0x31c06b0) )(var_ref _ret_val@0x2e9d5b0) ) ) MOV TEMP[252], TEMP[251].xxxx; 291: (expression float * (var_ref _ret_val@0x2ed9b00) (constant float (4.000000)) ) MUL TEMP[253].x, TEMP[252].xxxx, CONST[90].yyyy; 292: (expression float min (expression float * (var_ref _ret_val@0x2ed9b00) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[254].x, TEMP[253].xxxx, CONST[91].xxxx; 293: (expression float max (expression float min (expression float * (var_ref _ret_val@0x2ed9b00) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[255].x, TEMP[254].xxxx, CONST[89].xxxx; 294: (assign (constant bool (1)) (x) (var_ref t@0x30f4680) (expression float max (expression float min (expression float * (var_ref _ret_val@0x2ed9b00) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[256], TEMP[255].xxxx; 295: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x2ed9b00) ) MAX TEMP[257].x, CONST[89].xxxx, TEMP[252].xxxx; 296: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x2ed9b00) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (4)) ) diffuse) ) MUL TEMP[258], TEMP[257].xxxx, TEMP[55]; 297: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x3112740) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (4)) ) ambient) ) MUL TEMP[259], TEMP[2], TEMP[54]; 298: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x3112740) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x2ed9b00) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) diffuse) ) ) MAD TEMP[260], TEMP[258], TEMP[3], TEMP[259]; 299: (expression vec4 + (var_ref pc@0x3395750) (expression vec4 * (swiz w (var_ref rv@0x31c06b0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x3112740) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x2ed9b00) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) diffuse) ) ) ) ) MAD TEMP[261], TEMP[239].wwww, TEMP[260], TEMP[143]; 300: (assign (constant bool (1)) (xyzw) (var_ref pc@0x3395750) (expression vec4 + (var_ref pc@0x3395750) (expression vec4 * (swiz w (var_ref rv@0x31c06b0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x3112740) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x2ed9b00) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) diffuse) ) ) ) ) ) MOV TEMP[143], TEMP[261]; 301: (expression float dot (swiz xyz (var_ref rv@0x31c06b0) )(var_ref _ret_val@0x2e060b0) ) DP3 TEMP[262].x, TEMP[239].xyzz, TEMP[150].xyzz; 302: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x31c06b0) )(var_ref _ret_val@0x2e060b0) ) ) MAX TEMP[263].x, CONST[89].xxxx, TEMP[262].xxxx; 303: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) MAX TEMP[264].x, CONST[91].xxxx, TEMP[5].xxxx; 304: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x31c06b0) )(var_ref _ret_val@0x2e060b0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) ) POW TEMP[265].x, TEMP[263].xxxx, TEMP[264].xxxx; 305: (expression float * (constant float (2.000000)) (var_ref t@0x30f4680) ) MUL TEMP[266].x, CONST[90].xxxx, TEMP[256].xxxx; 306: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x30f4680) ) ) ) ADD TEMP[268].x, CONST[90].zzzz, TEMP[266].-x-x-x-x; 307: (expression float * (var_ref t@0x30f4680) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x30f4680) ) ) ) ) MUL TEMP[269].x, TEMP[256].xxxx, TEMP[268].xxxx; 308: (expression float * (var_ref t@0x30f4680) (expression float * (var_ref t@0x30f4680) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x30f4680) ) ) ) ) ) MUL TEMP[270].x, TEMP[256].xxxx, TEMP[269].xxxx; 309: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x31c06b0) )(var_ref _ret_val@0x2e060b0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) ) (expression float * (var_ref t@0x30f4680) (expression float * (var_ref t@0x30f4680) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x30f4680) ) ) ) ) ) ) MUL TEMP[271].x, TEMP[265].xxxx, TEMP[270].xxxx; 310: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x31c06b0) )(var_ref _ret_val@0x2e060b0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) ) (expression float * (var_ref t@0x30f4680) (expression float * (var_ref t@0x30f4680) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x30f4680) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (4)) ) specular) ) MUL TEMP[272], TEMP[271].xxxx, TEMP[56]; 311: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x31c06b0) )(var_ref _ret_val@0x2e060b0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) ) (expression float * (var_ref t@0x30f4680) (expression float * (var_ref t@0x30f4680) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x30f4680) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) specular) ) MUL TEMP[273], TEMP[272], TEMP[4]; 312: (expression vec4 + (var_ref sc@0x3395640) (expression vec4 * (swiz w (var_ref rv@0x31c06b0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x31c06b0) )(var_ref _ret_val@0x2e060b0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) ) (expression float * (var_ref t@0x30f4680) (expression float * (var_ref t@0x30f4680) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x30f4680) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) specular) ) ) ) MAD TEMP[274], TEMP[239].wwww, TEMP[273], TEMP[144]; 313: (assign (constant bool (1)) (xyzw) (var_ref sc@0x3395640) (expression vec4 + (var_ref sc@0x3395640) (expression vec4 * (swiz w (var_ref rv@0x31c06b0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x31c06b0) )(var_ref _ret_val@0x2e060b0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) ) (expression float * (var_ref t@0x30f4680) (expression float * (var_ref t@0x30f4680) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x30f4680) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) specular) ) ) ) ) MOV TEMP[144], TEMP[274]; 314: (expression bool != (array_ref (var_ref light_enabled@0x2e8cec0) (constant int (4)) ) (constant int (0)) ) ENDIF; 315: (expression bool != (array_ref (var_ref light_enabled@0x2e8cec0) (constant int (5)) ) (constant int (0)) ) SNE.C TEMP[275].x, UNIFORM[8].xxxx, CONST[89].xxxx; 316: IF (NE.xxxx); # (if false, goto 365); 317: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x2e43220) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (5)) ) position) ) MOV TEMP[276], TEMP[69]; 318: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x2f3a970) )(swiz w (var_ref assignment_tmp@0x2e43220) )) MUL TEMP[277].xyz, TEMP[106].xyzz, TEMP[276].wwww; 319: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x2e43220) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x2f3a970) )(swiz w (var_ref assignment_tmp@0x2e43220) )) ) ) ADD TEMP[279].xyz, TEMP[276].xyzz, TEMP[277].-x-y-z-z; 320: (assign (constant bool (1)) (xyz) (var_ref rv@0x2e43110) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x2e43220) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x2f3a970) )(swiz w (var_ref assignment_tmp@0x2e43220) )) ) ) )) MOV TEMP[280].xyz, TEMP[279].xyzz; 321: (assign (constant bool (1)) (xyz) (var_ref arg0@0x2e441d0) (swiz xyz (var_ref rv@0x2e43110) )) MOV TEMP[281].xyz, TEMP[280].xyzz; 322: (expression float dot (var_ref arg0@0x2e441d0) (var_ref arg0@0x2e441d0) ) DP3 TEMP[282].x, TEMP[281].xyzz, TEMP[281].xyzz; 323: (expression float sqrt (expression float dot (var_ref arg0@0x2e441d0) (var_ref arg0@0x2e441d0) ) ) RSQ TEMP[283].x, TEMP[282].xxxx; 324: MUL TEMP[283].x, TEMP[283].xxxx, TEMP[282].xxxx; 325: CMP TEMP[283].x, TEMP[282].-x-x-x-x, TEMP[283].xxxx, CONST[89].xxxx; 326: (assign (constant bool (1)) (x) (var_ref _ret_val@0x2e440b0) (expression float sqrt (expression float dot (var_ref arg0@0x2e441d0) (var_ref arg0@0x2e441d0) ) ) ) MOV TEMP[284], TEMP[283].xxxx; 327: (expression float rcp (var_ref _ret_val@0x2e440b0) ) RCP TEMP[285].x, TEMP[284].xxxx; 328: (expression vec3 * (swiz xyz (var_ref rv@0x2e43110) )(expression float rcp (var_ref _ret_val@0x2e440b0) ) ) MUL TEMP[286].xyz, TEMP[280].xyzz, TEMP[285].xxxx; 329: (assign (constant bool (1)) (xyz) (var_ref rv@0x2e43110) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x2e43110) )(expression float rcp (var_ref _ret_val@0x2e440b0) ) ) )) MOV TEMP[280].xyz, TEMP[286].xyzz; 330: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x2e450f0) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[287].x, CONST[91].xyzz; 331: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x2e450f0) (swiz xxx (var_ref _ret_val@0x2e440b0) )) MOV TEMP[287].y, TEMP[284].xxxx; 332: (expression float * (var_ref _ret_val@0x2e440b0) (var_ref _ret_val@0x2e440b0) ) MUL TEMP[288].x, TEMP[284].xxxx, TEMP[284].xxxx; 333: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x2e450f0) (swiz xxx (expression float * (var_ref _ret_val@0x2e440b0) (var_ref _ret_val@0x2e440b0) ) )) MOV TEMP[287].z, TEMP[288].xxxx; 334: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x2faf070) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (5)) ) constantAttenuation) )) MOV TEMP[289].x, TEMP[75].xxxx; 335: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x2faf070) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (5)) ) linearAttenuation) )) MOV TEMP[289].y, TEMP[76].xxxx; 336: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x2faf070) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (5)) ) quadraticAttenuation) )) MOV TEMP[289].z, TEMP[77].xxxx; 337: (expression float dot (var_ref vec_ctor@0x2e450f0) (var_ref vec_ctor@0x2faf070) ) DP3 TEMP[290].x, TEMP[287].xyzz, TEMP[289].xyzz; 338: (expression float rcp (expression float dot (var_ref vec_ctor@0x2e450f0) (var_ref vec_ctor@0x2faf070) ) ) RCP TEMP[291].x, TEMP[290].xxxx; 339: (assign (constant bool (1)) (w) (var_ref rv@0x2e43110) (swiz xxxx (expression float rcp (expression float dot (var_ref vec_ctor@0x2e450f0) (var_ref vec_ctor@0x2faf070) ) ) )) MOV TEMP[280].w, TEMP[291].xxxx; 340: (expression float dot (swiz xyz (var_ref rv@0x2e43110) )(var_ref _ret_val@0x2e9d5b0) ) DP3 TEMP[292].x, TEMP[280].xyzz, TEMP[119].xyzz; 341: (assign (constant bool (1)) (x) (var_ref _ret_val@0x31c4980) (expression float dot (swiz xyz (var_ref rv@0x2e43110) )(var_ref _ret_val@0x2e9d5b0) ) ) MOV TEMP[293], TEMP[292].xxxx; 342: (expression float * (var_ref _ret_val@0x31c4980) (constant float (4.000000)) ) MUL TEMP[294].x, TEMP[293].xxxx, CONST[90].yyyy; 343: (expression float min (expression float * (var_ref _ret_val@0x31c4980) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[295].x, TEMP[294].xxxx, CONST[91].xxxx; 344: (expression float max (expression float min (expression float * (var_ref _ret_val@0x31c4980) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[296].x, TEMP[295].xxxx, CONST[89].xxxx; 345: (assign (constant bool (1)) (x) (var_ref t@0x3190260) (expression float max (expression float min (expression float * (var_ref _ret_val@0x31c4980) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[297], TEMP[296].xxxx; 346: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x31c4980) ) MAX TEMP[298].x, CONST[89].xxxx, TEMP[293].xxxx; 347: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x31c4980) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (5)) ) diffuse) ) MUL TEMP[299], TEMP[298].xxxx, TEMP[67]; 348: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x3112740) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (5)) ) ambient) ) MUL TEMP[300], TEMP[2], TEMP[66]; 349: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x3112740) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (5)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x31c4980) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (5)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) diffuse) ) ) MAD TEMP[301], TEMP[299], TEMP[3], TEMP[300]; 350: (expression vec4 + (var_ref pc@0x3395750) (expression vec4 * (swiz w (var_ref rv@0x2e43110) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x3112740) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (5)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x31c4980) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (5)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) diffuse) ) ) ) ) MAD TEMP[302], TEMP[280].wwww, TEMP[301], TEMP[143]; 351: (assign (constant bool (1)) (xyzw) (var_ref pc@0x3395750) (expression vec4 + (var_ref pc@0x3395750) (expression vec4 * (swiz w (var_ref rv@0x2e43110) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x3112740) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (5)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x31c4980) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (5)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) diffuse) ) ) ) ) ) MOV TEMP[143], TEMP[302]; 352: (expression float dot (swiz xyz (var_ref rv@0x2e43110) )(var_ref _ret_val@0x2e060b0) ) DP3 TEMP[303].x, TEMP[280].xyzz, TEMP[150].xyzz; 353: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x2e43110) )(var_ref _ret_val@0x2e060b0) ) ) MAX TEMP[304].x, CONST[89].xxxx, TEMP[303].xxxx; 354: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) MAX TEMP[305].x, CONST[91].xxxx, TEMP[5].xxxx; 355: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x2e43110) )(var_ref _ret_val@0x2e060b0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) ) POW TEMP[306].x, TEMP[304].xxxx, TEMP[305].xxxx; 356: (expression float * (constant float (2.000000)) (var_ref t@0x3190260) ) MUL TEMP[307].x, CONST[90].xxxx, TEMP[297].xxxx; 357: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x3190260) ) ) ) ADD TEMP[309].x, CONST[90].zzzz, TEMP[307].-x-x-x-x; 358: (expression float * (var_ref t@0x3190260) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x3190260) ) ) ) ) MUL TEMP[310].x, TEMP[297].xxxx, TEMP[309].xxxx; 359: (expression float * (var_ref t@0x3190260) (expression float * (var_ref t@0x3190260) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x3190260) ) ) ) ) ) MUL TEMP[311].x, TEMP[297].xxxx, TEMP[310].xxxx; 360: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x2e43110) )(var_ref _ret_val@0x2e060b0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) ) (expression float * (var_ref t@0x3190260) (expression float * (var_ref t@0x3190260) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x3190260) ) ) ) ) ) ) MUL TEMP[312].x, TEMP[306].xxxx, TEMP[311].xxxx; 361: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x2e43110) )(var_ref _ret_val@0x2e060b0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) ) (expression float * (var_ref t@0x3190260) (expression float * (var_ref t@0x3190260) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x3190260) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (5)) ) specular) ) MUL TEMP[313], TEMP[312].xxxx, TEMP[68]; 362: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x2e43110) )(var_ref _ret_val@0x2e060b0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) ) (expression float * (var_ref t@0x3190260) (expression float * (var_ref t@0x3190260) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x3190260) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (5)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) specular) ) MUL TEMP[314], TEMP[313], TEMP[4]; 363: (expression vec4 + (var_ref sc@0x3395640) (expression vec4 * (swiz w (var_ref rv@0x2e43110) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x2e43110) )(var_ref _ret_val@0x2e060b0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) ) (expression float * (var_ref t@0x3190260) (expression float * (var_ref t@0x3190260) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x3190260) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (5)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) specular) ) ) ) MAD TEMP[315], TEMP[280].wwww, TEMP[314], TEMP[144]; 364: (assign (constant bool (1)) (xyzw) (var_ref sc@0x3395640) (expression vec4 + (var_ref sc@0x3395640) (expression vec4 * (swiz w (var_ref rv@0x2e43110) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x2e43110) )(var_ref _ret_val@0x2e060b0) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x3112740) shininess) ) ) (expression float * (var_ref t@0x3190260) (expression float * (var_ref t@0x3190260) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x3190260) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x2ecefe0) (constant int (5)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x3112740) specular) ) ) ) ) MOV TEMP[144], TEMP[315]; 365: (expression bool != (array_ref (var_ref light_enabled@0x2e8cec0) (constant int (5)) ) (constant int (0)) ) ENDIF; 366: (expression bool >= (var_ref max_light_enabled@0x2e90e80) (constant int (2)) ) ENDIF; 367: (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x2e70f00) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x2f45bf0) )) MUL TEMP[316], STATE[13], INPUT[0].xxxx; 368: (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x2e70f00) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x2f45bf0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x2e70f00) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x2f45bf0) )) ) MAD TEMP[317], STATE[14], INPUT[0].yyyy, TEMP[316]; 369: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x2e70f00) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x2f45bf0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x2e70f00) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x2f45bf0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x2e70f00) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x2f45bf0) )) ) MAD TEMP[318], STATE[15], INPUT[0].zzzz, TEMP[317]; 370: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x2e70f00) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x2f45bf0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x2e70f00) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x2f45bf0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x2e70f00) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x2f45bf0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x2e70f00) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x2f45bf0) )) ) MAD TEMP[319], STATE[16], INPUT[0].wwww, TEMP[318]; 371: (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x2e8bd70) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x2e70f00) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x2f45bf0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x2e70f00) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x2f45bf0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x2e70f00) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x2f45bf0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x2e70f00) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x2f45bf0) )) ) ) MOV OUTPUT[0], TEMP[319]; 372: (assign (constant bool (1)) (xyzw) (var_ref gl_BackColor@0x30dc420) (var_ref pc@0x3395750) ) MOV OUTPUT[13], TEMP[143]; 373: (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0x311f910) (var_ref pc@0x3395750) ) MOV OUTPUT[1], TEMP[143]; 374: (assign (constant bool (1)) (xyzw) (var_ref gl_BackSecondaryColor@0x2e86080) (var_ref sc@0x3395640) ) MOV OUTPUT[14], TEMP[144]; 375: (assign (constant bool (1)) (xyzw) (var_ref gl_FrontSecondaryColor@0x32e33b0) (var_ref sc@0x3395640) ) MOV OUTPUT[2], TEMP[144]; 376: END GLSL IR for linked fragment program 4: ( (declare (uniform ) vec4 damage@0x2e006b0) (declare (uniform ) vec4 cloaking@0x2e00760) (declare (uniform ) sampler2D damageMap@0x2e009e0) (declare (uniform ) sampler2D normalMap@0x2e00a90) (declare (uniform ) sampler2D glowMap@0x2e00b40) (declare (uniform ) sampler2D specMap@0x2e00c50) (declare (uniform ) samplerCube envMap@0x2e00d60) (declare (uniform ) sampler2D diffuseMap@0x2e00e70) (declare (uniform ) (array int 6) light_enabled@0x2e00fd0) (declare (out ) vec4 gl_FragColor@0x2e011e0) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x3066240) (declare (in ) (array vec4 0) gl_TexCoord@0x3391bb0) (function main (signature void (parameters ) ( (declare () vec3 specular_acc@0x31a74b0) (declare () vec3 diffuse_acc@0x31a7560) (declare () vec3 light_acc@0x31a7610) (declare () float UAO@0x2c61630) (declare () float alpha@0x2c616e0) (declare () vec3 glow_col@0x2c617f0) (declare () vec3 mspec_col@0x2c618a0) (declare () vec3 diff_col@0x2c61950) (declare () vec4 mtl_gloss@0x2c61a00) (declare () vec4 glowcolor@0x2c61ab0) (declare () vec4 diffcolor@0x2c61c10) (declare () vec3 eye@0x2c61d70) (declare () vec2 tex_coord@0x2c62310) (assign (constant bool (1)) (xy) (var_ref tex_coord@0x2c62310) (swiz xy (array_ref (var_ref gl_TexCoord@0x3391bb0) (constant int (0)) ) )) (declare (temporary ) vec3 assignment_tmp@0x2c62780) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x2c62780) (swiz xyz (array_ref (var_ref gl_TexCoord@0x3391bb0) (constant int (1)) ) )) (declare () vec3 _ret_val@0x2ea63b0) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x2ea63b0) (expression vec3 * (var_ref assignment_tmp@0x2c62780) (expression float rsq (expression float dot (var_ref assignment_tmp@0x2c62780) (var_ref assignment_tmp@0x2c62780) ) ) ) ) (declare () vec4 _ret_val@0x2ea6c80) (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x2ea6c80) (tex (var_ref normalMap@0x2e00a90) (var_ref tex_coord@0x2c62310) (0 0 0) 1 () )) (declare (temporary ) vec2 vec_ctor@0x2ea7b70) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x2ea7b70) (swiz xx (expression float + (expression float * (constant float (0.333300)) (expression float + (expression float + (swiz x (var_ref _ret_val@0x2ea6c80) )(swiz y (var_ref _ret_val@0x2ea6c80) )) (swiz z (var_ref _ret_val@0x2ea6c80) )) ) (constant float (-0.500000)) ) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x2ea7b70) (swiz xx (expression float + (swiz w (var_ref _ret_val@0x2ea6c80) )(constant float (-0.500000)) ) )) (declare (temporary ) vec3 vec_ctor@0x2eb5330) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x2eb5330) (constant vec3 (0.000000 0.000000 0.250000)) ) (assign (constant bool (1)) (xy) (var_ref vec_ctor@0x2eb5330) (swiz xyx (var_ref vec_ctor@0x2ea7b70) )) (declare () vec3 _ret_val@0x2eb59a0) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x2eb59a0) (expression vec3 * (var_ref vec_ctor@0x2eb5330) (expression float rsq (expression float dot (var_ref vec_ctor@0x2eb5330) (var_ref vec_ctor@0x2eb5330) ) ) ) ) (declare () vec3 _ret_val@0x2eb77d0) (declare () vec3 arg0@0x2eb7880) (assign (constant bool (1)) (xyz) (var_ref arg0@0x2eb7880) (expression vec3 + (expression vec3 + (expression vec3 * (swiz xxx (var_ref _ret_val@0x2eb59a0) )(swiz xyz (array_ref (var_ref gl_TexCoord@0x3391bb0) (constant int (2)) ) )) (expression vec3 * (swiz yyy (var_ref _ret_val@0x2eb59a0) )(swiz xyz (array_ref (var_ref gl_TexCoord@0x3391bb0) (constant int (3)) ) )) ) (expression vec3 * (swiz zzz (var_ref _ret_val@0x2eb59a0) )(var_ref assignment_tmp@0x2c62780) ) ) ) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x2eb77d0) (expression vec3 * (var_ref arg0@0x2eb7880) (expression float rsq (expression float dot (var_ref arg0@0x2eb7880) (var_ref arg0@0x2eb7880) ) ) ) ) (assign (constant bool (1)) (xyz) (var_ref eye@0x2c61d70) (swiz xyz (array_ref (var_ref gl_TexCoord@0x3391bb0) (constant int (4)) ) )) (declare () vec4 _ret_val@0x325f1b0) (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x325f1b0) (tex (var_ref diffuseMap@0x2e00e70) (var_ref tex_coord@0x2c62310) (0 0 0) 1 () )) (assign (constant bool (1)) (xyzw) (var_ref diffcolor@0x2c61c10) (var_ref _ret_val@0x325f1b0) ) (declare () vec4 _ret_val@0x3260110) (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x3260110) (tex (var_ref glowMap@0x2e00b40) (var_ref tex_coord@0x2c62310) (0 0 0) 1 () )) (assign (constant bool (1)) (xyzw) (var_ref glowcolor@0x2c61ab0) (var_ref _ret_val@0x3260110) ) (declare () float f@0x3260970) (assign (constant bool (1)) (x) (var_ref f@0x3260970) (swiz x (var_ref damage@0x2e006b0) )) (assign (constant bool (1)) (xyz) (var_ref diffcolor@0x2c61c10) (swiz xyz (expression vec4 + (expression vec4 * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x3260970) ) ) (var_ref _ret_val@0x325f1b0) ) (expression vec4 * (var_ref f@0x3260970) (tex (var_ref damageMap@0x2e009e0) (var_ref tex_coord@0x2c62310) (0 0 0) 1 () )) ) )) (declare (temporary ) vec4 assignment_tmp@0x2c6d450) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x2c6d450) (expression vec4 * (tex (var_ref specMap@0x2e00c50) (var_ref tex_coord@0x2c62310) (0 0 0) 1 () )(expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref damage@0x2e006b0) )) ) ) ) (assign (constant bool (1)) (xyz) (var_ref glowcolor@0x2c61ab0) (swiz xyz (expression vec3 * (swiz xyz (var_ref _ret_val@0x3260110) )(expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref damage@0x2e006b0) )) ) ) )) (assign (constant bool (1)) (x) (var_ref alpha@0x2c616e0) (swiz w (var_ref diffcolor@0x2c61c10) )) (assign (constant bool (1)) (x) (var_ref UAO@0x2c61630) (swiz w (var_ref glowcolor@0x2c61ab0) )) (declare () vec4 mat_gloss@0x3261970) (assign (constant bool (1)) (xyzw) (var_ref mat_gloss@0x3261970) (var_ref mtl_gloss@0x2c61a00) ) (declare () float gloss_in@0x3261ac0) (assign (constant bool (1)) (x) (var_ref gloss_in@0x3261ac0) (swiz w (var_ref assignment_tmp@0x2c6d450) )) (assign (constant bool (1)) (x) (var_ref mat_gloss@0x3261970) (expression float * (constant float (0.500000)) (expression float + (var_ref gloss_in@0x3261ac0) (expression float * (var_ref gloss_in@0x3261ac0) (var_ref gloss_in@0x3261ac0) ) ) ) ) (assign (constant bool (1)) (y) (var_ref mat_gloss@0x3261970) (swiz xx (expression float * (constant float (7.288829)) (expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref mat_gloss@0x3261970) )) ) ) )) (assign (constant bool (1)) (z) (var_ref mat_gloss@0x3261970) (swiz xxx (expression float * (constant float (1.047198)) (expression float pow (constant float (2.500000)) (expression float + (swiz y (var_ref mat_gloss@0x3261970) )(constant float (-8.000000)) ) ) ) )) (assign (constant bool (1)) (w) (var_ref mat_gloss@0x3261970) (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@0x3261970) )) ) ) ) )) (assign (constant bool (1)) (xyzw) (var_ref mtl_gloss@0x2c61a00) (var_ref mat_gloss@0x3261970) ) (assign (constant bool (1)) (xyz) (var_ref diff_col@0x2c61950) (swiz xyz (expression vec4 * (var_ref diffcolor@0x2c61c10) (var_ref diffcolor@0x2c61c10) ) )) (assign (constant bool (1)) (xyz) (var_ref mspec_col@0x2c618a0) (swiz xyz (expression vec4 * (var_ref assignment_tmp@0x2c6d450) (var_ref assignment_tmp@0x2c6d450) ) )) (assign (constant bool (1)) (xyz) (var_ref glow_col@0x2c617f0) (swiz xyz (expression vec4 * (var_ref glowcolor@0x2c61ab0) (var_ref glowcolor@0x2c61ab0) ) )) (declare (temporary ) vec3 assignment_tmp@0x31a9910) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x31a9910) (expression vec3 neg (expression vec3 + (var_ref eye@0x2c61d70) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x2eb77d0) (var_ref eye@0x2c61d70) ) (var_ref _ret_val@0x2eb77d0) ) ) ) ) ) ) (assign (constant bool (1)) (xyz) (var_ref light_acc@0x31a7610) (constant vec3 (0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (xyz) (var_ref diffuse_acc@0x31a7560) (constant vec3 (0.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (xyz) (var_ref specular_acc@0x31a74b0) (constant vec3 (0.000000 0.000000 0.000000)) ) (declare (temporary ) float assignment_tmp@0x31aa410) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x31aa410) (swiz w (var_ref mat_gloss@0x3261970) )) (if (expression bool != (array_ref (var_ref light_enabled@0x2e00fd0) (constant int (0)) ) (constant int (0)) ) ( (declare () vec4 lightinfo@0x2f6ee60) (assign (constant bool (1)) (xyzw) (var_ref lightinfo@0x2f6ee60) (array_ref (var_ref gl_TexCoord@0x3391bb0) (constant int (5)) ) ) (declare () vec3 raw_light_col@0x2f6fa50) (assign (constant bool (1)) (xyz) (var_ref raw_light_col@0x2f6fa50) (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x3066240) (constant int (0)) ) diffuse) )) (declare () vec3 light_col@0x2f70b30) (declare () vec3 _ret_val@0x2f70ea0) (declare () vec3 arg0@0x2f70f50) (assign (constant bool (1)) (xyz) (var_ref arg0@0x2f70f50) (swiz xyz (var_ref lightinfo@0x2f6ee60) )) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x2f70ea0) (expression vec3 * (var_ref arg0@0x2f70f50) (expression float rsq (expression float dot (var_ref arg0@0x2f70f50) (var_ref arg0@0x2f70f50) ) ) ) ) (declare (temporary ) float assignment_tmp@0x2f71cb0) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x2f71cb0) (swiz w (var_ref lightinfo@0x2f6ee60) )) (assign (constant bool (1)) (xyz) (var_ref light_col@0x2f70b30) (expression vec3 * (var_ref raw_light_col@0x2f6fa50) (var_ref raw_light_col@0x2f6fa50) ) ) (declare (temporary ) float assignment_tmp@0x2f43370) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x2f43370) (expression float * (var_ref assignment_tmp@0x2f71cb0) (constant float (0.159155)) ) ) (declare () float _ret_val@0x2f44840) (assign (constant bool (1)) (x) (var_ref _ret_val@0x2f44840) (expression float max (expression float min (expression float * (constant float (4.000000)) (expression float * (expression float + (expression float dot (var_ref _ret_val@0x2ea63b0) (var_ref _ret_val@0x2f70ea0) ) (var_ref assignment_tmp@0x2f43370) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x2f43370) ) ) ) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (declare (temporary ) float assignment_tmp@0x2d43800) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x2d43800) (expression float * (var_ref assignment_tmp@0x2f71cb0) (constant float (0.159155)) ) ) (declare () float _ret_val@0x308deb0) (assign (constant bool (1)) (x) (var_ref _ret_val@0x308deb0) (expression float + (expression float * (constant float (1.570796)) (expression float rcp (expression float + (var_ref assignment_tmp@0x31aa410) (var_ref assignment_tmp@0x2f71cb0) ) ) ) (constant float (-0.810660)) ) ) (assign (constant bool (1)) (xyz) (var_ref light_acc@0x31a7610) (var_ref light_col@0x2f70b30) ) (assign (constant bool (1)) (xyz) (var_ref diffuse_acc@0x31a7560) (expression vec3 * (expression float max (expression float min (expression float * (expression float + (expression float dot (var_ref _ret_val@0x2eb77d0) (var_ref _ret_val@0x2f70ea0) ) (var_ref assignment_tmp@0x2d43800) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x2d43800) ) ) ) (var_ref _ret_val@0x2f44840) ) (constant float (0.000000)) ) (var_ref light_col@0x2f70b30) ) ) (assign (constant bool (1)) (xyz) (var_ref specular_acc@0x31a74b0) (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@0x31a9910) (var_ref _ret_val@0x2f70ea0) ) (var_ref _ret_val@0x2f44840) ) (constant float (0.000000)) ) (var_ref _ret_val@0x308deb0) ) (var_ref _ret_val@0x308deb0) ) ) (var_ref light_col@0x2f70b30) ) ) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x2e00fd0) (constant int (1)) ) (constant int (0)) ) ( (declare () vec4 lightinfo@0x2fab250) (assign (constant bool (1)) (xyzw) (var_ref lightinfo@0x2fab250) (array_ref (var_ref gl_TexCoord@0x3391bb0) (constant int (6)) ) ) (declare () vec3 raw_light_col@0x2fabe40) (assign (constant bool (1)) (xyz) (var_ref raw_light_col@0x2fabe40) (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x3066240) (constant int (1)) ) diffuse) )) (declare () vec3 light_col@0x2facf20) (declare () vec3 _ret_val@0x2fad290) (declare () vec3 arg0@0x2fad340) (assign (constant bool (1)) (xyz) (var_ref arg0@0x2fad340) (swiz xyz (var_ref lightinfo@0x2fab250) )) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x2fad290) (expression vec3 * (var_ref arg0@0x2fad340) (expression float rsq (expression float dot (var_ref arg0@0x2fad340) (var_ref arg0@0x2fad340) ) ) ) ) (declare (temporary ) float assignment_tmp@0x2fae0a0) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x2fae0a0) (swiz w (var_ref lightinfo@0x2fab250) )) (assign (constant bool (1)) (xyz) (var_ref light_col@0x2facf20) (expression vec3 * (var_ref raw_light_col@0x2fabe40) (var_ref raw_light_col@0x2fabe40) ) ) (declare (temporary ) float assignment_tmp@0x2ffb350) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x2ffb350) (expression float * (var_ref assignment_tmp@0x2fae0a0) (constant float (0.159155)) ) ) (declare () float _ret_val@0x2ffc820) (assign (constant bool (1)) (x) (var_ref _ret_val@0x2ffc820) (expression float max (expression float min (expression float * (constant float (4.000000)) (expression float * (expression float + (expression float dot (var_ref _ret_val@0x2ea63b0) (var_ref _ret_val@0x2fad290) ) (var_ref assignment_tmp@0x2ffb350) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x2ffb350) ) ) ) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (declare (temporary ) float assignment_tmp@0x3015360) (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x3015360) (expression float * (var_ref assignment_tmp@0x2fae0a0) (constant float (0.159155)) ) ) (declare () float _ret_val@0x2de0950) (assign (constant bool (1)) (x) (var_ref _ret_val@0x2de0950) (expression float + (expression float * (constant float (1.570796)) (expression float rcp (expression float + (var_ref assignment_tmp@0x31aa410) (var_ref assignment_tmp@0x2fae0a0) ) ) ) (constant float (-0.810660)) ) ) (assign (constant bool (1)) (xyz) (var_ref light_acc@0x31a7610) (expression vec3 + (var_ref light_acc@0x31a7610) (var_ref light_col@0x2facf20) ) ) (assign (constant bool (1)) (xyz) (var_ref diffuse_acc@0x31a7560) (expression vec3 + (var_ref diffuse_acc@0x31a7560) (expression vec3 * (expression float max (expression float min (expression float * (expression float + (expression float dot (var_ref _ret_val@0x2eb77d0) (var_ref _ret_val@0x2fad290) ) (var_ref assignment_tmp@0x3015360) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x3015360) ) ) ) (var_ref _ret_val@0x2ffc820) ) (constant float (0.000000)) ) (var_ref light_col@0x2facf20) ) ) ) (assign (constant bool (1)) (xyz) (var_ref specular_acc@0x31a74b0) (expression vec3 + (var_ref specular_acc@0x31a74b0) (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@0x31a9910) (var_ref _ret_val@0x2fad290) ) (var_ref _ret_val@0x2ffc820) ) (constant float (0.000000)) ) (var_ref _ret_val@0x2de0950) ) (var_ref _ret_val@0x2de0950) ) ) (var_ref light_col@0x2facf20) ) ) ) ) ()) (declare (temporary ) vec3 assignment_tmp@0x31abff0) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x31abff0) (expression vec3 * (expression vec3 * (constant float (3.000000)) (expression vec3 * (var_ref light_acc@0x31a7610) (expression float rsq (expression float dot (var_ref light_acc@0x31a7610) (var_ref light_acc@0x31a7610) ) ) ) ) (expression vec3 rcp (var_ref light_acc@0x31a7610) ) ) ) (assign (constant bool (1)) (xyz) (var_ref diffuse_acc@0x31a7560) (expression vec3 * (var_ref diffuse_acc@0x31a7560) (var_ref assignment_tmp@0x31abff0) ) ) (assign (constant bool (1)) (xyz) (var_ref specular_acc@0x31a74b0) (expression vec3 * (var_ref specular_acc@0x31a74b0) (var_ref assignment_tmp@0x31abff0) ) ) (declare (temporary ) vec3 assignment_tmp@0x2ef58c0) (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x2ef58c0) (swiz xyz (tex (var_ref envMap@0x2e00d60) (var_ref assignment_tmp@0x31a9910) (0 0 0) 1 () ))) (declare (temporary ) vec4 vec_ctor@0x31adbc0) (assign (constant bool (1)) (xyz) (var_ref vec_ctor@0x31adbc0) (swiz xyzx (expression vec3 sqrt (expression vec3 + (expression vec3 * (expression vec3 + (expression vec3 * (expression vec3 * (expression vec3 + (expression vec3 * (var_ref assignment_tmp@0x2ef58c0) (var_ref assignment_tmp@0x2ef58c0) ) (var_ref specular_acc@0x31a74b0) ) (var_ref mspec_col@0x2c618a0) ) (var_ref UAO@0x2c61630) ) (expression vec3 * (expression vec3 + (var_ref glow_col@0x2c617f0) (var_ref diffuse_acc@0x31a7560) ) (var_ref diff_col@0x2c61950) ) ) (var_ref UAO@0x2c61630) ) (var_ref glow_col@0x2c617f0) ) ) )) (assign (constant bool (1)) (w) (var_ref vec_ctor@0x31adbc0) (swiz xxxx (var_ref alpha@0x2c616e0) )) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x2e011e0) (expression vec4 * (var_ref vec_ctor@0x31adbc0) (swiz xxxy (var_ref cloaking@0x2e00760) )) ) )) ) ) Mesa IR for linked fragment program 4: 0: (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x3066240) MOV TEMP[1], STATE[14]; 1: MOV TEMP[2], STATE[15]; 2: MOV TEMP[3], STATE[16]; 3: MOV TEMP[4], STATE[17]; 4: MOV TEMP[5], STATE[18]; 5: MOV TEMP[6], STATE[19]; 6: MOV TEMP[7], STATE[19].wwww; 7: MOV TEMP[8], STATE[20].xxxx; 8: MOV TEMP[9], STATE[21].wwww; 9: MOV TEMP[10], STATE[21].xxxx; 10: MOV TEMP[11], STATE[21].yyyy; 11: MOV TEMP[12], STATE[21].zzzz; 12: MOV TEMP[13], STATE[22]; 13: MOV TEMP[14], STATE[23]; 14: MOV TEMP[15], STATE[24]; 15: MOV TEMP[16], STATE[25]; 16: MOV TEMP[17], STATE[26]; 17: MOV TEMP[18], STATE[27]; 18: MOV TEMP[19], STATE[27].wwww; 19: MOV TEMP[20], STATE[28].xxxx; 20: MOV TEMP[21], STATE[29].wwww; 21: MOV TEMP[22], STATE[29].xxxx; 22: MOV TEMP[23], STATE[29].yyyy; 23: MOV TEMP[24], STATE[29].zzzz; 24: MOV TEMP[25], STATE[30]; 25: MOV TEMP[26], STATE[31]; 26: MOV TEMP[27], STATE[32]; 27: MOV TEMP[28], STATE[33]; 28: MOV TEMP[29], STATE[34]; 29: MOV TEMP[30], STATE[35]; 30: MOV TEMP[31], STATE[35].wwww; 31: MOV TEMP[32], STATE[36].xxxx; 32: MOV TEMP[33], STATE[37].wwww; 33: MOV TEMP[34], STATE[37].xxxx; 34: MOV TEMP[35], STATE[37].yyyy; 35: MOV TEMP[36], STATE[37].zzzz; 36: MOV TEMP[37], STATE[38]; 37: MOV TEMP[38], STATE[39]; 38: MOV TEMP[39], STATE[40]; 39: MOV TEMP[40], STATE[41]; 40: MOV TEMP[41], STATE[42]; 41: MOV TEMP[42], STATE[43]; 42: MOV TEMP[43], STATE[43].wwww; 43: MOV TEMP[44], STATE[44].xxxx; 44: MOV TEMP[45], STATE[45].wwww; 45: MOV TEMP[46], STATE[45].xxxx; 46: MOV TEMP[47], STATE[45].yyyy; 47: MOV TEMP[48], STATE[45].zzzz; 48: MOV TEMP[49], STATE[46]; 49: MOV TEMP[50], STATE[47]; 50: MOV TEMP[51], STATE[48]; 51: MOV TEMP[52], STATE[49]; 52: MOV TEMP[53], STATE[50]; 53: MOV TEMP[54], STATE[51]; 54: MOV TEMP[55], STATE[51].wwww; 55: MOV TEMP[56], STATE[52].xxxx; 56: MOV TEMP[57], STATE[53].wwww; 57: MOV TEMP[58], STATE[53].xxxx; 58: MOV TEMP[59], STATE[53].yyyy; 59: MOV TEMP[60], STATE[53].zzzz; 60: MOV TEMP[61], STATE[54]; 61: MOV TEMP[62], STATE[55]; 62: MOV TEMP[63], STATE[56]; 63: MOV TEMP[64], STATE[57]; 64: MOV TEMP[65], STATE[58]; 65: MOV TEMP[66], STATE[59]; 66: MOV TEMP[67], STATE[59].wwww; 67: MOV TEMP[68], STATE[60].xxxx; 68: MOV TEMP[69], STATE[61].wwww; 69: MOV TEMP[70], STATE[61].xxxx; 70: MOV TEMP[71], STATE[61].yyyy; 71: MOV TEMP[72], STATE[61].zzzz; 72: MOV TEMP[73], STATE[62]; 73: MOV TEMP[74], STATE[63]; 74: MOV TEMP[75], STATE[64]; 75: MOV TEMP[76], STATE[65]; 76: MOV TEMP[77], STATE[66]; 77: MOV TEMP[78], STATE[67]; 78: MOV TEMP[79], STATE[67].wwww; 79: MOV TEMP[80], STATE[68].xxxx; 80: MOV TEMP[81], STATE[69].wwww; 81: MOV TEMP[82], STATE[69].xxxx; 82: MOV TEMP[83], STATE[69].yyyy; 83: MOV TEMP[84], STATE[69].zzzz; 84: MOV TEMP[85], STATE[70]; 85: MOV TEMP[86], STATE[71]; 86: MOV TEMP[87], STATE[72]; 87: MOV TEMP[88], STATE[73]; 88: MOV TEMP[89], STATE[74]; 89: MOV TEMP[90], STATE[75]; 90: MOV TEMP[91], STATE[75].wwww; 91: MOV TEMP[92], STATE[76].xxxx; 92: MOV TEMP[93], STATE[77].wwww; 93: MOV TEMP[94], STATE[77].xxxx; 94: MOV TEMP[95], STATE[77].yyyy; 95: MOV TEMP[96], STATE[77].zzzz; 96: (assign (constant bool (1)) (xy) (var_ref tex_coord@0x2c62310) (swiz xy (array_ref (var_ref gl_TexCoord@0x3391bb0) (constant int (0)) ) )) MOV TEMP[97].xy, INPUT[4].xyyy; 97: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x2c62780) (swiz xyz (array_ref (var_ref gl_TexCoord@0x3391bb0) (constant int (1)) ) )) MOV TEMP[98].xyz, INPUT[5].xyzz; 98: (expression float dot (var_ref assignment_tmp@0x2c62780) (var_ref assignment_tmp@0x2c62780) ) DP3 TEMP[99].x, TEMP[98].xyzz, TEMP[98].xyzz; 99: (expression float rsq (expression float dot (var_ref assignment_tmp@0x2c62780) (var_ref assignment_tmp@0x2c62780) ) ) RSQ TEMP[100].x, TEMP[99].xxxx; 100: (expression vec3 * (var_ref assignment_tmp@0x2c62780) (expression float rsq (expression float dot (var_ref assignment_tmp@0x2c62780) (var_ref assignment_tmp@0x2c62780) ) ) ) MUL TEMP[101].xyz, TEMP[98].xyzz, TEMP[100].xxxx; 101: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x2ea63b0) (expression vec3 * (var_ref assignment_tmp@0x2c62780) (expression float rsq (expression float dot (var_ref assignment_tmp@0x2c62780) (var_ref assignment_tmp@0x2c62780) ) ) ) ) MOV TEMP[102].xyz, TEMP[101].xyzz; 102: (tex (var_ref normalMap@0x2e00a90) (var_ref tex_coord@0x2c62310) (0 0 0) 1 () ) MOV TEMP[103], TEMP[97].xyyy; 103: TEX TEMP[104], TEMP[103], texture[1], 2D; 104: (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x2ea6c80) (tex (var_ref normalMap@0x2e00a90) (var_ref tex_coord@0x2c62310) (0 0 0) 1 () )) MOV TEMP[105], TEMP[104]; 105: (expression float + (swiz x (var_ref _ret_val@0x2ea6c80) )(swiz y (var_ref _ret_val@0x2ea6c80) )) ADD TEMP[106].x, TEMP[105].xxxx, TEMP[105].yyyy; 106: (expression float + (expression float + (swiz x (var_ref _ret_val@0x2ea6c80) )(swiz y (var_ref _ret_val@0x2ea6c80) )) (swiz z (var_ref _ret_val@0x2ea6c80) )) ADD TEMP[107].x, TEMP[106].xxxx, TEMP[105].zzzz; 107: (expression float + (expression float * (constant float (0.333300)) (expression float + (expression float + (swiz x (var_ref _ret_val@0x2ea6c80) )(swiz y (var_ref _ret_val@0x2ea6c80) )) (swiz z (var_ref _ret_val@0x2ea6c80) )) ) (constant float (-0.500000)) ) MAD TEMP[108], CONST[78].xxxx, TEMP[107].xxxx, CONST[78].yyyy; 108: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x2ea7b70) (swiz xx (expression float + (expression float * (constant float (0.333300)) (expression float + (expression float + (swiz x (var_ref _ret_val@0x2ea6c80) )(swiz y (var_ref _ret_val@0x2ea6c80) )) (swiz z (var_ref _ret_val@0x2ea6c80) )) ) (constant float (-0.500000)) ) )) MOV TEMP[109].x, TEMP[108].xxxx; 109: (expression float + (swiz w (var_ref _ret_val@0x2ea6c80) )(constant float (-0.500000)) ) ADD TEMP[110].x, TEMP[105].wwww, CONST[78].yyyy; 110: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x2ea7b70) (swiz xx (expression float + (swiz w (var_ref _ret_val@0x2ea6c80) )(constant float (-0.500000)) ) )) MOV TEMP[109].y, TEMP[110].xxxx; 111: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x2eb5330) (constant vec3 (0.000000 0.000000 0.250000)) ) MOV TEMP[111].z, CONST[79]; 112: (assign (constant bool (1)) (xy) (var_ref vec_ctor@0x2eb5330) (swiz xyx (var_ref vec_ctor@0x2ea7b70) )) MOV TEMP[111].xy, TEMP[109].xyxx; 113: (expression float dot (var_ref vec_ctor@0x2eb5330) (var_ref vec_ctor@0x2eb5330) ) DP3 TEMP[112].x, TEMP[111].xyzz, TEMP[111].xyzz; 114: (expression float rsq (expression float dot (var_ref vec_ctor@0x2eb5330) (var_ref vec_ctor@0x2eb5330) ) ) RSQ TEMP[113].x, TEMP[112].xxxx; 115: (expression vec3 * (var_ref vec_ctor@0x2eb5330) (expression float rsq (expression float dot (var_ref vec_ctor@0x2eb5330) (var_ref vec_ctor@0x2eb5330) ) ) ) MUL TEMP[114].xyz, TEMP[111].xyzz, TEMP[113].xxxx; 116: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x2eb59a0) (expression vec3 * (var_ref vec_ctor@0x2eb5330) (expression float rsq (expression float dot (var_ref vec_ctor@0x2eb5330) (var_ref vec_ctor@0x2eb5330) ) ) ) ) MOV TEMP[115].xyz, TEMP[114].xyzz; 117: (expression vec3 * (swiz xxx (var_ref _ret_val@0x2eb59a0) )(swiz xyz (array_ref (var_ref gl_TexCoord@0x3391bb0) (constant int (2)) ) )) MUL TEMP[116].xyz, TEMP[115].xxxx, INPUT[6].xyzz; 118: (expression vec3 + (expression vec3 * (swiz xxx (var_ref _ret_val@0x2eb59a0) )(swiz xyz (array_ref (var_ref gl_TexCoord@0x3391bb0) (constant int (2)) ) )) (expression vec3 * (swiz yyy (var_ref _ret_val@0x2eb59a0) )(swiz xyz (array_ref (var_ref gl_TexCoord@0x3391bb0) (constant int (3)) ) )) ) MAD TEMP[117], TEMP[115].yyyy, INPUT[7].xyzz, TEMP[116].xyzz; 119: (expression vec3 + (expression vec3 + (expression vec3 * (swiz xxx (var_ref _ret_val@0x2eb59a0) )(swiz xyz (array_ref (var_ref gl_TexCoord@0x3391bb0) (constant int (2)) ) )) (expression vec3 * (swiz yyy (var_ref _ret_val@0x2eb59a0) )(swiz xyz (array_ref (var_ref gl_TexCoord@0x3391bb0) (constant int (3)) ) )) ) (expression vec3 * (swiz zzz (var_ref _ret_val@0x2eb59a0) )(var_ref assignment_tmp@0x2c62780) ) ) MAD TEMP[118], TEMP[115].zzzz, TEMP[98].xyzz, TEMP[117].xyzz; 120: (assign (constant bool (1)) (xyz) (var_ref arg0@0x2eb7880) (expression vec3 + (expression vec3 + (expression vec3 * (swiz xxx (var_ref _ret_val@0x2eb59a0) )(swiz xyz (array_ref (var_ref gl_TexCoord@0x3391bb0) (constant int (2)) ) )) (expression vec3 * (swiz yyy (var_ref _ret_val@0x2eb59a0) )(swiz xyz (array_ref (var_ref gl_TexCoord@0x3391bb0) (constant int (3)) ) )) ) (expression vec3 * (swiz zzz (var_ref _ret_val@0x2eb59a0) )(var_ref assignment_tmp@0x2c62780) ) ) ) MOV TEMP[119].xyz, TEMP[118].xyzz; 121: (expression float dot (var_ref arg0@0x2eb7880) (var_ref arg0@0x2eb7880) ) DP3 TEMP[120].x, TEMP[119].xyzz, TEMP[119].xyzz; 122: (expression float rsq (expression float dot (var_ref arg0@0x2eb7880) (var_ref arg0@0x2eb7880) ) ) RSQ TEMP[121].x, TEMP[120].xxxx; 123: (expression vec3 * (var_ref arg0@0x2eb7880) (expression float rsq (expression float dot (var_ref arg0@0x2eb7880) (var_ref arg0@0x2eb7880) ) ) ) MUL TEMP[122].xyz, TEMP[119].xyzz, TEMP[121].xxxx; 124: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x2eb77d0) (expression vec3 * (var_ref arg0@0x2eb7880) (expression float rsq (expression float dot (var_ref arg0@0x2eb7880) (var_ref arg0@0x2eb7880) ) ) ) ) MOV TEMP[123].xyz, TEMP[122].xyzz; 125: (assign (constant bool (1)) (xyz) (var_ref eye@0x2c61d70) (swiz xyz (array_ref (var_ref gl_TexCoord@0x3391bb0) (constant int (4)) ) )) MOV TEMP[124].xyz, INPUT[8].xyzz; 126: (tex (var_ref diffuseMap@0x2e00e70) (var_ref tex_coord@0x2c62310) (0 0 0) 1 () ) MOV TEMP[125], TEMP[97].xyyy; 127: TEX TEMP[126], TEMP[125], texture[5], 2D; 128: (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x325f1b0) (tex (var_ref diffuseMap@0x2e00e70) (var_ref tex_coord@0x2c62310) (0 0 0) 1 () )) MOV TEMP[127], TEMP[126]; 129: (assign (constant bool (1)) (xyzw) (var_ref diffcolor@0x2c61c10) (var_ref _ret_val@0x325f1b0) ) MOV TEMP[128], TEMP[127]; 130: (tex (var_ref glowMap@0x2e00b40) (var_ref tex_coord@0x2c62310) (0 0 0) 1 () ) MOV TEMP[129], TEMP[97].xyyy; 131: TEX TEMP[130], TEMP[129], texture[2], 2D; 132: (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x3260110) (tex (var_ref glowMap@0x2e00b40) (var_ref tex_coord@0x2c62310) (0 0 0) 1 () )) MOV TEMP[131], TEMP[130]; 133: (assign (constant bool (1)) (xyzw) (var_ref glowcolor@0x2c61ab0) (var_ref _ret_val@0x3260110) ) MOV TEMP[132], TEMP[131]; 134: (assign (constant bool (1)) (x) (var_ref f@0x3260970) (swiz x (var_ref damage@0x2e006b0) )) MOV TEMP[133], UNIFORM[0].xxxx; 135: (tex (var_ref damageMap@0x2e009e0) (var_ref tex_coord@0x2c62310) (0 0 0) 1 () ) MOV TEMP[134], TEMP[97].xyyy; 136: TEX TEMP[135], TEMP[134], texture[0], 2D; 137: (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x3260970) ) ) ADD TEMP[137].x, CONST[78].zzzz, TEMP[133].-x-x-x-x; 138: (expression vec4 * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x3260970) ) ) (var_ref _ret_val@0x325f1b0) ) MUL TEMP[138], TEMP[137].xxxx, TEMP[127]; 139: (expression vec4 + (expression vec4 * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x3260970) ) ) (var_ref _ret_val@0x325f1b0) ) (expression vec4 * (var_ref f@0x3260970) (tex (var_ref damageMap@0x2e009e0) (var_ref tex_coord@0x2c62310) (0 0 0) 1 () )) ) MAD TEMP[139], TEMP[133].xxxx, TEMP[135], TEMP[138]; 140: (assign (constant bool (1)) (xyz) (var_ref diffcolor@0x2c61c10) (swiz xyz (expression vec4 + (expression vec4 * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x3260970) ) ) (var_ref _ret_val@0x325f1b0) ) (expression vec4 * (var_ref f@0x3260970) (tex (var_ref damageMap@0x2e009e0) (var_ref tex_coord@0x2c62310) (0 0 0) 1 () )) ) )) MOV TEMP[128].xyz, TEMP[139].xyzz; 141: (tex (var_ref specMap@0x2e00c50) (var_ref tex_coord@0x2c62310) (0 0 0) 1 () ) MOV TEMP[140], TEMP[97].xyyy; 142: TEX TEMP[141], TEMP[140], texture[3], 2D; 143: (expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref damage@0x2e006b0) )) ) ADD TEMP[143].x, CONST[78].zzzz, UNIFORM[0].-x-x-x-x; 144: (expression vec4 * (tex (var_ref specMap@0x2e00c50) (var_ref tex_coord@0x2c62310) (0 0 0) 1 () )(expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref damage@0x2e006b0) )) ) ) MUL TEMP[144], TEMP[141], TEMP[143].xxxx; 145: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x2c6d450) (expression vec4 * (tex (var_ref specMap@0x2e00c50) (var_ref tex_coord@0x2c62310) (0 0 0) 1 () )(expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref damage@0x2e006b0) )) ) ) ) MOV TEMP[145], TEMP[144]; 146: (expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref damage@0x2e006b0) )) ) ADD TEMP[147].x, CONST[78].zzzz, UNIFORM[0].-x-x-x-x; 147: (expression vec3 * (swiz xyz (var_ref _ret_val@0x3260110) )(expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref damage@0x2e006b0) )) ) ) MUL TEMP[148].xyz, TEMP[131].xyzz, TEMP[147].xxxx; 148: (assign (constant bool (1)) (xyz) (var_ref glowcolor@0x2c61ab0) (swiz xyz (expression vec3 * (swiz xyz (var_ref _ret_val@0x3260110) )(expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref damage@0x2e006b0) )) ) ) )) MOV TEMP[132].xyz, TEMP[148].xyzz; 149: (assign (constant bool (1)) (x) (var_ref alpha@0x2c616e0) (swiz w (var_ref diffcolor@0x2c61c10) )) MOV TEMP[149], TEMP[128].wwww; 150: (assign (constant bool (1)) (x) (var_ref UAO@0x2c61630) (swiz w (var_ref glowcolor@0x2c61ab0) )) MOV TEMP[150], TEMP[132].wwww; 151: (assign (constant bool (1)) (xyzw) (var_ref mat_gloss@0x3261970) (var_ref mtl_gloss@0x2c61a00) ) MOV TEMP[152], TEMP[151]; 152: (assign (constant bool (1)) (x) (var_ref gloss_in@0x3261ac0) (swiz w (var_ref assignment_tmp@0x2c6d450) )) MOV TEMP[153], TEMP[145].wwww; 153: (expression float + (var_ref gloss_in@0x3261ac0) (expression float * (var_ref gloss_in@0x3261ac0) (var_ref gloss_in@0x3261ac0) ) ) MAD TEMP[154], TEMP[153].xxxx, TEMP[153].xxxx, TEMP[153].xxxx; 154: (expression float * (constant float (0.500000)) (expression float + (var_ref gloss_in@0x3261ac0) (expression float * (var_ref gloss_in@0x3261ac0) (var_ref gloss_in@0x3261ac0) ) ) ) MUL TEMP[155].x, CONST[78].wwww, TEMP[154].xxxx; 155: (assign (constant bool (1)) (x) (var_ref mat_gloss@0x3261970) (expression float * (constant float (0.500000)) (expression float + (var_ref gloss_in@0x3261ac0) (expression float * (var_ref gloss_in@0x3261ac0) (var_ref gloss_in@0x3261ac0) ) ) ) ) MOV TEMP[152].x, TEMP[155].xxxx; 156: (expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref mat_gloss@0x3261970) )) ) ADD TEMP[157].x, CONST[78].zzzz, TEMP[152].-x-x-x-x; 157: (expression float * (constant float (7.288829)) (expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref mat_gloss@0x3261970) )) ) ) MUL TEMP[158].x, CONST[79].wwww, TEMP[157].xxxx; 158: (assign (constant bool (1)) (y) (var_ref mat_gloss@0x3261970) (swiz xx (expression float * (constant float (7.288829)) (expression float + (constant float (1.000000)) (expression float neg (swiz x (var_ref mat_gloss@0x3261970) )) ) ) )) MOV TEMP[152].y, TEMP[158].xxxx; 159: (expression float + (swiz y (var_ref mat_gloss@0x3261970) )(constant float (-8.000000)) ) ADD TEMP[159].x, TEMP[152].yyyy, CONST[80].zzzz; 160: (expression float pow (constant float (2.500000)) (expression float + (swiz y (var_ref mat_gloss@0x3261970) )(constant float (-8.000000)) ) ) POW TEMP[160].x, CONST[80].yyyy, TEMP[159].xxxx; 161: (expression float * (constant float (1.047198)) (expression float pow (constant float (2.500000)) (expression float + (swiz y (var_ref mat_gloss@0x3261970) )(constant float (-8.000000)) ) ) ) MUL TEMP[161].x, CONST[80].xxxx, TEMP[160].xxxx; 162: (assign (constant bool (1)) (z) (var_ref mat_gloss@0x3261970) (swiz xxx (expression float * (constant float (1.047198)) (expression float pow (constant float (2.500000)) (expression float + (swiz y (var_ref mat_gloss@0x3261970) )(constant float (-8.000000)) ) ) ) )) MOV TEMP[152].z, TEMP[161].xxxx; 163: (expression float cos (swiz z (var_ref mat_gloss@0x3261970) )) COS TEMP[162].x, TEMP[152].zzzz; 164: (expression float + (constant float (1.000000)) (expression float neg (expression float cos (swiz z (var_ref mat_gloss@0x3261970) )) ) ) ADD TEMP[164].x, CONST[78].zzzz, TEMP[162].-x-x-x-x; 165: (expression float * (constant float (6.283185)) (expression float + (constant float (1.000000)) (expression float neg (expression float cos (swiz z (var_ref mat_gloss@0x3261970) )) ) ) ) MUL TEMP[165].x, CONST[80].wwww, TEMP[164].xxxx; 166: (assign (constant bool (1)) (w) (var_ref mat_gloss@0x3261970) (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@0x3261970) )) ) ) ) )) MOV TEMP[152].w, TEMP[165].xxxx; 167: (assign (constant bool (1)) (xyzw) (var_ref mtl_gloss@0x2c61a00) (var_ref mat_gloss@0x3261970) ) MOV TEMP[151], TEMP[152]; 168: (expression vec4 * (var_ref diffcolor@0x2c61c10) (var_ref diffcolor@0x2c61c10) ) MUL TEMP[166], TEMP[128], TEMP[128]; 169: (assign (constant bool (1)) (xyz) (var_ref diff_col@0x2c61950) (swiz xyz (expression vec4 * (var_ref diffcolor@0x2c61c10) (var_ref diffcolor@0x2c61c10) ) )) MOV TEMP[167].xyz, TEMP[166].xyzz; 170: (expression vec4 * (var_ref assignment_tmp@0x2c6d450) (var_ref assignment_tmp@0x2c6d450) ) MUL TEMP[168], TEMP[145], TEMP[145]; 171: (assign (constant bool (1)) (xyz) (var_ref mspec_col@0x2c618a0) (swiz xyz (expression vec4 * (var_ref assignment_tmp@0x2c6d450) (var_ref assignment_tmp@0x2c6d450) ) )) MOV TEMP[169].xyz, TEMP[168].xyzz; 172: (expression vec4 * (var_ref glowcolor@0x2c61ab0) (var_ref glowcolor@0x2c61ab0) ) MUL TEMP[170], TEMP[132], TEMP[132]; 173: (assign (constant bool (1)) (xyz) (var_ref glow_col@0x2c617f0) (swiz xyz (expression vec4 * (var_ref glowcolor@0x2c61ab0) (var_ref glowcolor@0x2c61ab0) ) )) MOV TEMP[171].xyz, TEMP[170].xyzz; 174: (expression float dot (var_ref _ret_val@0x2eb77d0) (var_ref eye@0x2c61d70) ) DP3 TEMP[172].x, TEMP[123].xyzz, TEMP[124].xyzz; 175: (expression vec3 * (expression float dot (var_ref _ret_val@0x2eb77d0) (var_ref eye@0x2c61d70) ) (var_ref _ret_val@0x2eb77d0) ) MUL TEMP[173].xyz, TEMP[172].xxxx, TEMP[123].xyzz; 176: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x2eb77d0) (var_ref eye@0x2c61d70) ) (var_ref _ret_val@0x2eb77d0) ) ) MUL TEMP[174].xyz, CONST[81].xxxx, TEMP[173].xyzz; 177: (expression vec3 + (var_ref eye@0x2c61d70) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x2eb77d0) (var_ref eye@0x2c61d70) ) (var_ref _ret_val@0x2eb77d0) ) ) ) ) ADD TEMP[176].xyz, TEMP[124].xyzz, TEMP[174].-x-y-z-z; 178: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x31a9910) (expression vec3 neg (expression vec3 + (var_ref eye@0x2c61d70) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x2eb77d0) (var_ref eye@0x2c61d70) ) (var_ref _ret_val@0x2eb77d0) ) ) ) ) ) ) MOV TEMP[178].xyz, TEMP[176].-x-y-z-z; 179: (assign (constant bool (1)) (xyz) (var_ref light_acc@0x31a7610) (constant vec3 (0.000000 0.000000 0.000000)) ) MOV TEMP[179].xyz, CONST[79].xyxx; 180: (assign (constant bool (1)) (xyz) (var_ref diffuse_acc@0x31a7560) (constant vec3 (0.000000 0.000000 0.000000)) ) MOV TEMP[180].xyz, CONST[79].xyxx; 181: (assign (constant bool (1)) (xyz) (var_ref specular_acc@0x31a74b0) (constant vec3 (0.000000 0.000000 0.000000)) ) MOV TEMP[181].xyz, CONST[79].xyxx; 182: (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x31aa410) (swiz w (var_ref mat_gloss@0x3261970) )) MOV TEMP[182], TEMP[152].wwww; 183: (expression bool != (array_ref (var_ref light_enabled@0x2e00fd0) (constant int (0)) ) (constant int (0)) ) SNE.C TEMP[183].x, UNIFORM[8].xxxx, CONST[79].xxxx; 184: IF (NE.xxxx); # (if false, goto 230); 185: (assign (constant bool (1)) (xyzw) (var_ref lightinfo@0x2f6ee60) (array_ref (var_ref gl_TexCoord@0x3391bb0) (constant int (5)) ) ) MOV TEMP[184], INPUT[9]; 186: (assign (constant bool (1)) (xyz) (var_ref raw_light_col@0x2f6fa50) (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x3066240) (constant int (0)) ) diffuse) )) MOV TEMP[185].xyz, TEMP[2].xyzz; 187: (assign (constant bool (1)) (xyz) (var_ref arg0@0x2f70f50) (swiz xyz (var_ref lightinfo@0x2f6ee60) )) MOV TEMP[186].xyz, TEMP[184].xyzz; 188: (expression float dot (var_ref arg0@0x2f70f50) (var_ref arg0@0x2f70f50) ) DP3 TEMP[187].x, TEMP[186].xyzz, TEMP[186].xyzz; 189: (expression float rsq (expression float dot (var_ref arg0@0x2f70f50) (var_ref arg0@0x2f70f50) ) ) RSQ TEMP[188].x, TEMP[187].xxxx; 190: (expression vec3 * (var_ref arg0@0x2f70f50) (expression float rsq (expression float dot (var_ref arg0@0x2f70f50) (var_ref arg0@0x2f70f50) ) ) ) MUL TEMP[189].xyz, TEMP[186].xyzz, TEMP[188].xxxx; 191: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x2f70ea0) (expression vec3 * (var_ref arg0@0x2f70f50) (expression float rsq (expression float dot (var_ref arg0@0x2f70f50) (var_ref arg0@0x2f70f50) ) ) ) ) MOV TEMP[190].xyz, TEMP[189].xyzz; 192: (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x2f71cb0) (swiz w (var_ref lightinfo@0x2f6ee60) )) MOV TEMP[191], TEMP[184].wwww; 193: (expression vec3 * (var_ref raw_light_col@0x2f6fa50) (var_ref raw_light_col@0x2f6fa50) ) MUL TEMP[192].xyz, TEMP[185].xyzz, TEMP[185].xyzz; 194: (assign (constant bool (1)) (xyz) (var_ref light_col@0x2f70b30) (expression vec3 * (var_ref raw_light_col@0x2f6fa50) (var_ref raw_light_col@0x2f6fa50) ) ) MOV TEMP[193].xyz, TEMP[192].xyzz; 195: (expression float * (var_ref assignment_tmp@0x2f71cb0) (constant float (0.159155)) ) MUL TEMP[194].x, TEMP[191].xxxx, CONST[81].yyyy; 196: (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x2f43370) (expression float * (var_ref assignment_tmp@0x2f71cb0) (constant float (0.159155)) ) ) MOV TEMP[195], TEMP[194].xxxx; 197: (expression float dot (var_ref _ret_val@0x2ea63b0) (var_ref _ret_val@0x2f70ea0) ) DP3 TEMP[196].x, TEMP[102].xyzz, TEMP[190].xyzz; 198: (expression float + (expression float dot (var_ref _ret_val@0x2ea63b0) (var_ref _ret_val@0x2f70ea0) ) (var_ref assignment_tmp@0x2f43370) ) ADD TEMP[197].x, TEMP[196].xxxx, TEMP[195].xxxx; 199: (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x2f43370) ) ADD TEMP[198].x, CONST[78].zzzz, TEMP[195].xxxx; 200: (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x2f43370) ) ) RCP TEMP[199].x, TEMP[198].xxxx; 201: (expression float * (expression float + (expression float dot (var_ref _ret_val@0x2ea63b0) (var_ref _ret_val@0x2f70ea0) ) (var_ref assignment_tmp@0x2f43370) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x2f43370) ) ) ) MUL TEMP[200].x, TEMP[197].xxxx, TEMP[199].xxxx; 202: (expression float * (constant float (4.000000)) (expression float * (expression float + (expression float dot (var_ref _ret_val@0x2ea63b0) (var_ref _ret_val@0x2f70ea0) ) (var_ref assignment_tmp@0x2f43370) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x2f43370) ) ) ) ) MUL TEMP[201].x, CONST[81].zzzz, TEMP[200].xxxx; 203: (expression float min (expression float * (constant float (4.000000)) (expression float * (expression float + (expression float dot (var_ref _ret_val@0x2ea63b0) (var_ref _ret_val@0x2f70ea0) ) (var_ref assignment_tmp@0x2f43370) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x2f43370) ) ) ) ) (constant float (1.000000)) ) MIN TEMP[202].x, TEMP[201].xxxx, CONST[78].zzzz; 204: (expression float max (expression float min (expression float * (constant float (4.000000)) (expression float * (expression float + (expression float dot (var_ref _ret_val@0x2ea63b0) (var_ref _ret_val@0x2f70ea0) ) (var_ref assignment_tmp@0x2f43370) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x2f43370) ) ) ) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[203].x, TEMP[202].xxxx, CONST[79].xxxx; 205: (assign (constant bool (1)) (x) (var_ref _ret_val@0x2f44840) (expression float max (expression float min (expression float * (constant float (4.000000)) (expression float * (expression float + (expression float dot (var_ref _ret_val@0x2ea63b0) (var_ref _ret_val@0x2f70ea0) ) (var_ref assignment_tmp@0x2f43370) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x2f43370) ) ) ) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[204], TEMP[203].xxxx; 206: (expression float * (var_ref assignment_tmp@0x2f71cb0) (constant float (0.159155)) ) MUL TEMP[205].x, TEMP[191].xxxx, CONST[81].yyyy; 207: (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x2d43800) (expression float * (var_ref assignment_tmp@0x2f71cb0) (constant float (0.159155)) ) ) MOV TEMP[206], TEMP[205].xxxx; 208: (expression float + (var_ref assignment_tmp@0x31aa410) (var_ref assignment_tmp@0x2f71cb0) ) ADD TEMP[207].x, TEMP[182].xxxx, TEMP[191].xxxx; 209: (expression float rcp (expression float + (var_ref assignment_tmp@0x31aa410) (var_ref assignment_tmp@0x2f71cb0) ) ) RCP TEMP[208].x, TEMP[207].xxxx; 210: (expression float + (expression float * (constant float (1.570796)) (expression float rcp (expression float + (var_ref assignment_tmp@0x31aa410) (var_ref assignment_tmp@0x2f71cb0) ) ) ) (constant float (-0.810660)) ) MAD TEMP[209], CONST[81].wwww, TEMP[208].xxxx, CONST[82].xxxx; 211: (assign (constant bool (1)) (x) (var_ref _ret_val@0x308deb0) (expression float + (expression float * (constant float (1.570796)) (expression float rcp (expression float + (var_ref assignment_tmp@0x31aa410) (var_ref assignment_tmp@0x2f71cb0) ) ) ) (constant float (-0.810660)) ) ) MOV TEMP[210], TEMP[209].xxxx; 212: (assign (constant bool (1)) (xyz) (var_ref light_acc@0x31a7610) (var_ref light_col@0x2f70b30) ) MOV TEMP[179].xyz, TEMP[193].xyzz; 213: (expression float dot (var_ref _ret_val@0x2eb77d0) (var_ref _ret_val@0x2f70ea0) ) DP3 TEMP[211].x, TEMP[123].xyzz, TEMP[190].xyzz; 214: (expression float + (expression float dot (var_ref _ret_val@0x2eb77d0) (var_ref _ret_val@0x2f70ea0) ) (var_ref assignment_tmp@0x2d43800) ) ADD TEMP[212].x, TEMP[211].xxxx, TEMP[206].xxxx; 215: (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x2d43800) ) ADD TEMP[213].x, CONST[78].zzzz, TEMP[206].xxxx; 216: (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x2d43800) ) ) RCP TEMP[214].x, TEMP[213].xxxx; 217: (expression float * (expression float + (expression float dot (var_ref _ret_val@0x2eb77d0) (var_ref _ret_val@0x2f70ea0) ) (var_ref assignment_tmp@0x2d43800) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x2d43800) ) ) ) MUL TEMP[215].x, TEMP[212].xxxx, TEMP[214].xxxx; 218: (expression float min (expression float * (expression float + (expression float dot (var_ref _ret_val@0x2eb77d0) (var_ref _ret_val@0x2f70ea0) ) (var_ref assignment_tmp@0x2d43800) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x2d43800) ) ) ) (var_ref _ret_val@0x2f44840) ) MIN TEMP[216].x, TEMP[215].xxxx, TEMP[204].xxxx; 219: (expression float max (expression float min (expression float * (expression float + (expression float dot (var_ref _ret_val@0x2eb77d0) (var_ref _ret_val@0x2f70ea0) ) (var_ref assignment_tmp@0x2d43800) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x2d43800) ) ) ) (var_ref _ret_val@0x2f44840) ) (constant float (0.000000)) ) MAX TEMP[217].x, TEMP[216].xxxx, CONST[79].xxxx; 220: (expression vec3 * (expression float max (expression float min (expression float * (expression float + (expression float dot (var_ref _ret_val@0x2eb77d0) (var_ref _ret_val@0x2f70ea0) ) (var_ref assignment_tmp@0x2d43800) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x2d43800) ) ) ) (var_ref _ret_val@0x2f44840) ) (constant float (0.000000)) ) (var_ref light_col@0x2f70b30) ) MUL TEMP[218].xyz, TEMP[217].xxxx, TEMP[193].xyzz; 221: (assign (constant bool (1)) (xyz) (var_ref diffuse_acc@0x31a7560) (expression vec3 * (expression float max (expression float min (expression float * (expression float + (expression float dot (var_ref _ret_val@0x2eb77d0) (var_ref _ret_val@0x2f70ea0) ) (var_ref assignment_tmp@0x2d43800) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x2d43800) ) ) ) (var_ref _ret_val@0x2f44840) ) (constant float (0.000000)) ) (var_ref light_col@0x2f70b30) ) ) MOV TEMP[180].xyz, TEMP[218].xyzz; 222: (expression float dot (var_ref assignment_tmp@0x31a9910) (var_ref _ret_val@0x2f70ea0) ) DP3 TEMP[219].x, TEMP[178].xyzz, TEMP[190].xyzz; 223: (expression float min (expression float dot (var_ref assignment_tmp@0x31a9910) (var_ref _ret_val@0x2f70ea0) ) (var_ref _ret_val@0x2f44840) ) MIN TEMP[220].x, TEMP[219].xxxx, TEMP[204].xxxx; 224: (expression float max (expression float min (expression float dot (var_ref assignment_tmp@0x31a9910) (var_ref _ret_val@0x2f70ea0) ) (var_ref _ret_val@0x2f44840) ) (constant float (0.000000)) ) MAX TEMP[221].x, TEMP[220].xxxx, CONST[79].xxxx; 225: (expression float pow (expression float max (expression float min (expression float dot (var_ref assignment_tmp@0x31a9910) (var_ref _ret_val@0x2f70ea0) ) (var_ref _ret_val@0x2f44840) ) (constant float (0.000000)) ) (var_ref _ret_val@0x308deb0) ) POW TEMP[222].x, TEMP[221].xxxx, TEMP[210].xxxx; 226: (expression float * (expression float pow (expression float max (expression float min (expression float dot (var_ref assignment_tmp@0x31a9910) (var_ref _ret_val@0x2f70ea0) ) (var_ref _ret_val@0x2f44840) ) (constant float (0.000000)) ) (var_ref _ret_val@0x308deb0) ) (var_ref _ret_val@0x308deb0) ) MUL TEMP[223].x, TEMP[222].xxxx, TEMP[210].xxxx; 227: (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@0x31a9910) (var_ref _ret_val@0x2f70ea0) ) (var_ref _ret_val@0x2f44840) ) (constant float (0.000000)) ) (var_ref _ret_val@0x308deb0) ) (var_ref _ret_val@0x308deb0) ) ) MAX TEMP[224].x, CONST[79].xxxx, TEMP[223].xxxx; 228: (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@0x31a9910) (var_ref _ret_val@0x2f70ea0) ) (var_ref _ret_val@0x2f44840) ) (constant float (0.000000)) ) (var_ref _ret_val@0x308deb0) ) (var_ref _ret_val@0x308deb0) ) ) (var_ref light_col@0x2f70b30) ) MUL TEMP[225].xyz, TEMP[224].xxxx, TEMP[193].xyzz; 229: (assign (constant bool (1)) (xyz) (var_ref specular_acc@0x31a74b0) (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@0x31a9910) (var_ref _ret_val@0x2f70ea0) ) (var_ref _ret_val@0x2f44840) ) (constant float (0.000000)) ) (var_ref _ret_val@0x308deb0) ) (var_ref _ret_val@0x308deb0) ) ) (var_ref light_col@0x2f70b30) ) ) MOV TEMP[181].xyz, TEMP[225].xyzz; 230: (expression bool != (array_ref (var_ref light_enabled@0x2e00fd0) (constant int (0)) ) (constant int (0)) ) ENDIF; 231: (expression bool != (array_ref (var_ref light_enabled@0x2e00fd0) (constant int (1)) ) (constant int (0)) ) SNE.C TEMP[226].x, UNIFORM[9].xxxx, CONST[79].xxxx; 232: IF (NE.xxxx); # (if false, goto 279); 233: (assign (constant bool (1)) (xyzw) (var_ref lightinfo@0x2fab250) (array_ref (var_ref gl_TexCoord@0x3391bb0) (constant int (6)) ) ) MOV TEMP[227], INPUT[10]; 234: (assign (constant bool (1)) (xyz) (var_ref raw_light_col@0x2fabe40) (swiz xyz (record_ref (array_ref (var_ref gl_LightSource@0x3066240) (constant int (1)) ) diffuse) )) MOV TEMP[228].xyz, TEMP[14].xyzz; 235: (assign (constant bool (1)) (xyz) (var_ref arg0@0x2fad340) (swiz xyz (var_ref lightinfo@0x2fab250) )) MOV TEMP[229].xyz, TEMP[227].xyzz; 236: (expression float dot (var_ref arg0@0x2fad340) (var_ref arg0@0x2fad340) ) DP3 TEMP[230].x, TEMP[229].xyzz, TEMP[229].xyzz; 237: (expression float rsq (expression float dot (var_ref arg0@0x2fad340) (var_ref arg0@0x2fad340) ) ) RSQ TEMP[231].x, TEMP[230].xxxx; 238: (expression vec3 * (var_ref arg0@0x2fad340) (expression float rsq (expression float dot (var_ref arg0@0x2fad340) (var_ref arg0@0x2fad340) ) ) ) MUL TEMP[232].xyz, TEMP[229].xyzz, TEMP[231].xxxx; 239: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x2fad290) (expression vec3 * (var_ref arg0@0x2fad340) (expression float rsq (expression float dot (var_ref arg0@0x2fad340) (var_ref arg0@0x2fad340) ) ) ) ) MOV TEMP[233].xyz, TEMP[232].xyzz; 240: (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x2fae0a0) (swiz w (var_ref lightinfo@0x2fab250) )) MOV TEMP[234], TEMP[227].wwww; 241: (expression vec3 * (var_ref raw_light_col@0x2fabe40) (var_ref raw_light_col@0x2fabe40) ) MUL TEMP[235].xyz, TEMP[228].xyzz, TEMP[228].xyzz; 242: (assign (constant bool (1)) (xyz) (var_ref light_col@0x2facf20) (expression vec3 * (var_ref raw_light_col@0x2fabe40) (var_ref raw_light_col@0x2fabe40) ) ) MOV TEMP[236].xyz, TEMP[235].xyzz; 243: (expression float * (var_ref assignment_tmp@0x2fae0a0) (constant float (0.159155)) ) MUL TEMP[237].x, TEMP[234].xxxx, CONST[81].yyyy; 244: (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x2ffb350) (expression float * (var_ref assignment_tmp@0x2fae0a0) (constant float (0.159155)) ) ) MOV TEMP[238], TEMP[237].xxxx; 245: (expression float dot (var_ref _ret_val@0x2ea63b0) (var_ref _ret_val@0x2fad290) ) DP3 TEMP[239].x, TEMP[102].xyzz, TEMP[233].xyzz; 246: (expression float + (expression float dot (var_ref _ret_val@0x2ea63b0) (var_ref _ret_val@0x2fad290) ) (var_ref assignment_tmp@0x2ffb350) ) ADD TEMP[240].x, TEMP[239].xxxx, TEMP[238].xxxx; 247: (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x2ffb350) ) ADD TEMP[241].x, CONST[78].zzzz, TEMP[238].xxxx; 248: (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x2ffb350) ) ) RCP TEMP[242].x, TEMP[241].xxxx; 249: (expression float * (expression float + (expression float dot (var_ref _ret_val@0x2ea63b0) (var_ref _ret_val@0x2fad290) ) (var_ref assignment_tmp@0x2ffb350) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x2ffb350) ) ) ) MUL TEMP[243].x, TEMP[240].xxxx, TEMP[242].xxxx; 250: (expression float * (constant float (4.000000)) (expression float * (expression float + (expression float dot (var_ref _ret_val@0x2ea63b0) (var_ref _ret_val@0x2fad290) ) (var_ref assignment_tmp@0x2ffb350) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x2ffb350) ) ) ) ) MUL TEMP[244].x, CONST[81].zzzz, TEMP[243].xxxx; 251: (expression float min (expression float * (constant float (4.000000)) (expression float * (expression float + (expression float dot (var_ref _ret_val@0x2ea63b0) (var_ref _ret_val@0x2fad290) ) (var_ref assignment_tmp@0x2ffb350) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x2ffb350) ) ) ) ) (constant float (1.000000)) ) MIN TEMP[245].x, TEMP[244].xxxx, CONST[78].zzzz; 252: (expression float max (expression float min (expression float * (constant float (4.000000)) (expression float * (expression float + (expression float dot (var_ref _ret_val@0x2ea63b0) (var_ref _ret_val@0x2fad290) ) (var_ref assignment_tmp@0x2ffb350) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x2ffb350) ) ) ) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[246].x, TEMP[245].xxxx, CONST[79].xxxx; 253: (assign (constant bool (1)) (x) (var_ref _ret_val@0x2ffc820) (expression float max (expression float min (expression float * (constant float (4.000000)) (expression float * (expression float + (expression float dot (var_ref _ret_val@0x2ea63b0) (var_ref _ret_val@0x2fad290) ) (var_ref assignment_tmp@0x2ffb350) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x2ffb350) ) ) ) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[247], TEMP[246].xxxx; 254: (expression float * (var_ref assignment_tmp@0x2fae0a0) (constant float (0.159155)) ) MUL TEMP[248].x, TEMP[234].xxxx, CONST[81].yyyy; 255: (assign (constant bool (1)) (x) (var_ref assignment_tmp@0x3015360) (expression float * (var_ref assignment_tmp@0x2fae0a0) (constant float (0.159155)) ) ) MOV TEMP[249], TEMP[248].xxxx; 256: (expression float + (var_ref assignment_tmp@0x31aa410) (var_ref assignment_tmp@0x2fae0a0) ) ADD TEMP[250].x, TEMP[182].xxxx, TEMP[234].xxxx; 257: (expression float rcp (expression float + (var_ref assignment_tmp@0x31aa410) (var_ref assignment_tmp@0x2fae0a0) ) ) RCP TEMP[251].x, TEMP[250].xxxx; 258: (expression float + (expression float * (constant float (1.570796)) (expression float rcp (expression float + (var_ref assignment_tmp@0x31aa410) (var_ref assignment_tmp@0x2fae0a0) ) ) ) (constant float (-0.810660)) ) MAD TEMP[252], CONST[81].wwww, TEMP[251].xxxx, CONST[82].xxxx; 259: (assign (constant bool (1)) (x) (var_ref _ret_val@0x2de0950) (expression float + (expression float * (constant float (1.570796)) (expression float rcp (expression float + (var_ref assignment_tmp@0x31aa410) (var_ref assignment_tmp@0x2fae0a0) ) ) ) (constant float (-0.810660)) ) ) MOV TEMP[253], TEMP[252].xxxx; 260: (expression vec3 + (var_ref light_acc@0x31a7610) (var_ref light_col@0x2facf20) ) ADD TEMP[254].xyz, TEMP[179].xyzz, TEMP[236].xyzz; 261: (assign (constant bool (1)) (xyz) (var_ref light_acc@0x31a7610) (expression vec3 + (var_ref light_acc@0x31a7610) (var_ref light_col@0x2facf20) ) ) MOV TEMP[179].xyz, TEMP[254].xyzz; 262: (expression float dot (var_ref _ret_val@0x2eb77d0) (var_ref _ret_val@0x2fad290) ) DP3 TEMP[255].x, TEMP[123].xyzz, TEMP[233].xyzz; 263: (expression float + (expression float dot (var_ref _ret_val@0x2eb77d0) (var_ref _ret_val@0x2fad290) ) (var_ref assignment_tmp@0x3015360) ) ADD TEMP[256].x, TEMP[255].xxxx, TEMP[249].xxxx; 264: (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x3015360) ) ADD TEMP[257].x, CONST[78].zzzz, TEMP[249].xxxx; 265: (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x3015360) ) ) RCP TEMP[258].x, TEMP[257].xxxx; 266: (expression float * (expression float + (expression float dot (var_ref _ret_val@0x2eb77d0) (var_ref _ret_val@0x2fad290) ) (var_ref assignment_tmp@0x3015360) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x3015360) ) ) ) MUL TEMP[259].x, TEMP[256].xxxx, TEMP[258].xxxx; 267: (expression float min (expression float * (expression float + (expression float dot (var_ref _ret_val@0x2eb77d0) (var_ref _ret_val@0x2fad290) ) (var_ref assignment_tmp@0x3015360) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x3015360) ) ) ) (var_ref _ret_val@0x2ffc820) ) MIN TEMP[260].x, TEMP[259].xxxx, TEMP[247].xxxx; 268: (expression float max (expression float min (expression float * (expression float + (expression float dot (var_ref _ret_val@0x2eb77d0) (var_ref _ret_val@0x2fad290) ) (var_ref assignment_tmp@0x3015360) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x3015360) ) ) ) (var_ref _ret_val@0x2ffc820) ) (constant float (0.000000)) ) MAX TEMP[261].x, TEMP[260].xxxx, CONST[79].xxxx; 269: (expression vec3 + (var_ref diffuse_acc@0x31a7560) (expression vec3 * (expression float max (expression float min (expression float * (expression float + (expression float dot (var_ref _ret_val@0x2eb77d0) (var_ref _ret_val@0x2fad290) ) (var_ref assignment_tmp@0x3015360) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x3015360) ) ) ) (var_ref _ret_val@0x2ffc820) ) (constant float (0.000000)) ) (var_ref light_col@0x2facf20) ) ) MAD TEMP[262], TEMP[261].xxxx, TEMP[236].xyzz, TEMP[180].xyzz; 270: (assign (constant bool (1)) (xyz) (var_ref diffuse_acc@0x31a7560) (expression vec3 + (var_ref diffuse_acc@0x31a7560) (expression vec3 * (expression float max (expression float min (expression float * (expression float + (expression float dot (var_ref _ret_val@0x2eb77d0) (var_ref _ret_val@0x2fad290) ) (var_ref assignment_tmp@0x3015360) ) (expression float rcp (expression float + (constant float (1.000000)) (var_ref assignment_tmp@0x3015360) ) ) ) (var_ref _ret_val@0x2ffc820) ) (constant float (0.000000)) ) (var_ref light_col@0x2facf20) ) ) ) MOV TEMP[180].xyz, TEMP[262].xyzz; 271: (expression float dot (var_ref assignment_tmp@0x31a9910) (var_ref _ret_val@0x2fad290) ) DP3 TEMP[263].x, TEMP[178].xyzz, TEMP[233].xyzz; 272: (expression float min (expression float dot (var_ref assignment_tmp@0x31a9910) (var_ref _ret_val@0x2fad290) ) (var_ref _ret_val@0x2ffc820) ) MIN TEMP[264].x, TEMP[263].xxxx, TEMP[247].xxxx; 273: (expression float max (expression float min (expression float dot (var_ref assignment_tmp@0x31a9910) (var_ref _ret_val@0x2fad290) ) (var_ref _ret_val@0x2ffc820) ) (constant float (0.000000)) ) MAX TEMP[265].x, TEMP[264].xxxx, CONST[79].xxxx; 274: (expression float pow (expression float max (expression float min (expression float dot (var_ref assignment_tmp@0x31a9910) (var_ref _ret_val@0x2fad290) ) (var_ref _ret_val@0x2ffc820) ) (constant float (0.000000)) ) (var_ref _ret_val@0x2de0950) ) POW TEMP[266].x, TEMP[265].xxxx, TEMP[253].xxxx; 275: (expression float * (expression float pow (expression float max (expression float min (expression float dot (var_ref assignment_tmp@0x31a9910) (var_ref _ret_val@0x2fad290) ) (var_ref _ret_val@0x2ffc820) ) (constant float (0.000000)) ) (var_ref _ret_val@0x2de0950) ) (var_ref _ret_val@0x2de0950) ) MUL TEMP[267].x, TEMP[266].xxxx, TEMP[253].xxxx; 276: (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@0x31a9910) (var_ref _ret_val@0x2fad290) ) (var_ref _ret_val@0x2ffc820) ) (constant float (0.000000)) ) (var_ref _ret_val@0x2de0950) ) (var_ref _ret_val@0x2de0950) ) ) MAX TEMP[268].x, CONST[79].xxxx, TEMP[267].xxxx; 277: (expression vec3 + (var_ref specular_acc@0x31a74b0) (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@0x31a9910) (var_ref _ret_val@0x2fad290) ) (var_ref _ret_val@0x2ffc820) ) (constant float (0.000000)) ) (var_ref _ret_val@0x2de0950) ) (var_ref _ret_val@0x2de0950) ) ) (var_ref light_col@0x2facf20) ) ) MAD TEMP[269], TEMP[268].xxxx, TEMP[236].xyzz, TEMP[181].xyzz; 278: (assign (constant bool (1)) (xyz) (var_ref specular_acc@0x31a74b0) (expression vec3 + (var_ref specular_acc@0x31a74b0) (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@0x31a9910) (var_ref _ret_val@0x2fad290) ) (var_ref _ret_val@0x2ffc820) ) (constant float (0.000000)) ) (var_ref _ret_val@0x2de0950) ) (var_ref _ret_val@0x2de0950) ) ) (var_ref light_col@0x2facf20) ) ) ) MOV TEMP[181].xyz, TEMP[269].xyzz; 279: (expression bool != (array_ref (var_ref light_enabled@0x2e00fd0) (constant int (1)) ) (constant int (0)) ) ENDIF; 280: (expression float dot (var_ref light_acc@0x31a7610) (var_ref light_acc@0x31a7610) ) DP3 TEMP[270].x, TEMP[179].xyzz, TEMP[179].xyzz; 281: (expression float rsq (expression float dot (var_ref light_acc@0x31a7610) (var_ref light_acc@0x31a7610) ) ) RSQ TEMP[271].x, TEMP[270].xxxx; 282: (expression vec3 * (var_ref light_acc@0x31a7610) (expression float rsq (expression float dot (var_ref light_acc@0x31a7610) (var_ref light_acc@0x31a7610) ) ) ) MUL TEMP[272].xyz, TEMP[179].xyzz, TEMP[271].xxxx; 283: (expression vec3 * (constant float (3.000000)) (expression vec3 * (var_ref light_acc@0x31a7610) (expression float rsq (expression float dot (var_ref light_acc@0x31a7610) (var_ref light_acc@0x31a7610) ) ) ) ) MUL TEMP[273].xyz, CONST[82].yyyy, TEMP[272].xyzz; 284: (expression vec3 rcp (var_ref light_acc@0x31a7610) ) RCP TEMP[274].x, TEMP[179].xxxx; 285: RCP TEMP[274].y, TEMP[179].yyyy; 286: RCP TEMP[274].z, TEMP[179].zzzz; 287: (expression vec3 * (expression vec3 * (constant float (3.000000)) (expression vec3 * (var_ref light_acc@0x31a7610) (expression float rsq (expression float dot (var_ref light_acc@0x31a7610) (var_ref light_acc@0x31a7610) ) ) ) ) (expression vec3 rcp (var_ref light_acc@0x31a7610) ) ) MUL TEMP[275].xyz, TEMP[273].xyzz, TEMP[274].xyzz; 288: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x31abff0) (expression vec3 * (expression vec3 * (constant float (3.000000)) (expression vec3 * (var_ref light_acc@0x31a7610) (expression float rsq (expression float dot (var_ref light_acc@0x31a7610) (var_ref light_acc@0x31a7610) ) ) ) ) (expression vec3 rcp (var_ref light_acc@0x31a7610) ) ) ) MOV TEMP[276].xyz, TEMP[275].xyzz; 289: (expression vec3 * (var_ref diffuse_acc@0x31a7560) (var_ref assignment_tmp@0x31abff0) ) MUL TEMP[277].xyz, TEMP[180].xyzz, TEMP[276].xyzz; 290: (assign (constant bool (1)) (xyz) (var_ref diffuse_acc@0x31a7560) (expression vec3 * (var_ref diffuse_acc@0x31a7560) (var_ref assignment_tmp@0x31abff0) ) ) MOV TEMP[180].xyz, TEMP[277].xyzz; 291: (expression vec3 * (var_ref specular_acc@0x31a74b0) (var_ref assignment_tmp@0x31abff0) ) MUL TEMP[278].xyz, TEMP[181].xyzz, TEMP[276].xyzz; 292: (assign (constant bool (1)) (xyz) (var_ref specular_acc@0x31a74b0) (expression vec3 * (var_ref specular_acc@0x31a74b0) (var_ref assignment_tmp@0x31abff0) ) ) MOV TEMP[181].xyz, TEMP[278].xyzz; 293: (tex (var_ref envMap@0x2e00d60) (var_ref assignment_tmp@0x31a9910) (0 0 0) 1 () ) MOV TEMP[279], TEMP[178].xyzz; 294: TEX TEMP[280], TEMP[279], texture[4], CUBE; 295: (assign (constant bool (1)) (xyz) (var_ref assignment_tmp@0x2ef58c0) (swiz xyz (tex (var_ref envMap@0x2e00d60) (var_ref assignment_tmp@0x31a9910) (0 0 0) 1 () ))) MOV TEMP[281].xyz, TEMP[280].xyzz; 296: (expression vec3 + (var_ref glow_col@0x2c617f0) (var_ref diffuse_acc@0x31a7560) ) ADD TEMP[282].xyz, TEMP[171].xyzz, TEMP[180].xyzz; 297: (expression vec3 + (expression vec3 * (var_ref assignment_tmp@0x2ef58c0) (var_ref assignment_tmp@0x2ef58c0) ) (var_ref specular_acc@0x31a74b0) ) MAD TEMP[283], TEMP[281].xyzz, TEMP[281].xyzz, TEMP[181].xyzz; 298: (expression vec3 * (expression vec3 + (expression vec3 * (var_ref assignment_tmp@0x2ef58c0) (var_ref assignment_tmp@0x2ef58c0) ) (var_ref specular_acc@0x31a74b0) ) (var_ref mspec_col@0x2c618a0) ) MUL TEMP[284].xyz, TEMP[283].xyzz, TEMP[169].xyzz; 299: (expression vec3 * (expression vec3 * (expression vec3 + (expression vec3 * (var_ref assignment_tmp@0x2ef58c0) (var_ref assignment_tmp@0x2ef58c0) ) (var_ref specular_acc@0x31a74b0) ) (var_ref mspec_col@0x2c618a0) ) (var_ref UAO@0x2c61630) ) MUL TEMP[285].xyz, TEMP[284].xyzz, TEMP[150].xxxx; 300: (expression vec3 + (expression vec3 * (expression vec3 * (expression vec3 + (expression vec3 * (var_ref assignment_tmp@0x2ef58c0) (var_ref assignment_tmp@0x2ef58c0) ) (var_ref specular_acc@0x31a74b0) ) (var_ref mspec_col@0x2c618a0) ) (var_ref UAO@0x2c61630) ) (expression vec3 * (expression vec3 + (var_ref glow_col@0x2c617f0) (var_ref diffuse_acc@0x31a7560) ) (var_ref diff_col@0x2c61950) ) ) MAD TEMP[286], TEMP[282].xyzz, TEMP[167].xyzz, TEMP[285].xyzz; 301: (expression vec3 + (expression vec3 * (expression vec3 + (expression vec3 * (expression vec3 * (expression vec3 + (expression vec3 * (var_ref assignment_tmp@0x2ef58c0) (var_ref assignment_tmp@0x2ef58c0) ) (var_ref specular_acc@0x31a74b0) ) (var_ref mspec_col@0x2c618a0) ) (var_ref UAO@0x2c61630) ) (expression vec3 * (expression vec3 + (var_ref glow_col@0x2c617f0) (var_ref diffuse_acc@0x31a7560) ) (var_ref diff_col@0x2c61950) ) ) (var_ref UAO@0x2c61630) ) (var_ref glow_col@0x2c617f0) ) MAD TEMP[287], TEMP[286].xyzz, TEMP[150].xxxx, TEMP[171].xyzz; 302: (expression vec3 sqrt (expression vec3 + (expression vec3 * (expression vec3 + (expression vec3 * (expression vec3 * (expression vec3 + (expression vec3 * (var_ref assignment_tmp@0x2ef58c0) (var_ref assignment_tmp@0x2ef58c0) ) (var_ref specular_acc@0x31a74b0) ) (var_ref mspec_col@0x2c618a0) ) (var_ref UAO@0x2c61630) ) (expression vec3 * (expression vec3 + (var_ref glow_col@0x2c617f0) (var_ref diffuse_acc@0x31a7560) ) (var_ref diff_col@0x2c61950) ) ) (var_ref UAO@0x2c61630) ) (var_ref glow_col@0x2c617f0) ) ) RSQ TEMP[288].x, TEMP[287].xxxx; 303: RSQ TEMP[288].y, TEMP[287].yyyy; 304: RSQ TEMP[288].z, TEMP[287].zzzz; 305: MUL TEMP[288].xyz, TEMP[288].xyzz, TEMP[287].xyzz; 306: CMP TEMP[288].xyz, TEMP[287].-x-y-z-z, TEMP[288].xyzz, CONST[79].xxxx; 307: (assign (constant bool (1)) (xyz) (var_ref vec_ctor@0x31adbc0) (swiz xyzx (expression vec3 sqrt (expression vec3 + (expression vec3 * (expression vec3 + (expression vec3 * (expression vec3 * (expression vec3 + (expression vec3 * (var_ref assignment_tmp@0x2ef58c0) (var_ref assignment_tmp@0x2ef58c0) ) (var_ref specular_acc@0x31a74b0) ) (var_ref mspec_col@0x2c618a0) ) (var_ref UAO@0x2c61630) ) (expression vec3 * (expression vec3 + (var_ref glow_col@0x2c617f0) (var_ref diffuse_acc@0x31a7560) ) (var_ref diff_col@0x2c61950) ) ) (var_ref UAO@0x2c61630) ) (var_ref glow_col@0x2c617f0) ) ) )) MOV TEMP[289].xyz, TEMP[288].xyzx; 308: (assign (constant bool (1)) (w) (var_ref vec_ctor@0x31adbc0) (swiz xxxx (var_ref alpha@0x2c616e0) )) MOV TEMP[289].w, TEMP[149].xxxx; 309: (expression vec4 * (var_ref vec_ctor@0x31adbc0) (swiz xxxy (var_ref cloaking@0x2e00760) )) MUL TEMP[290], TEMP[289], UNIFORM[1].xxxy; 310: (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x2e011e0) (expression vec4 * (var_ref vec_ctor@0x31adbc0) (swiz xxxy (var_ref cloaking@0x2e00760) )) ) MOV OUTPUT[1], TEMP[290]; 311: 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@0x7fccecbb86c0) (declare (uniform ) (array int 8) light_enabled@0x7fccecbb8490) (declare (out ) vec4 gl_Position@0x7fccecb11d90) (declare (out ) float gl_PointSize@0x7fccecb11f80) (declare (in ) vec4 gl_Vertex@0x7fccecb12170) (declare (in ) vec3 gl_Normal@0x7fccecb12360) (declare (in ) vec4 gl_Color@0x7fccecb12550) (declare (in ) vec4 gl_SecondaryColor@0x7fccecb12740) (declare (in ) vec4 gl_MultiTexCoord0@0x7fccecb12930) (declare (in ) vec4 gl_MultiTexCoord1@0x7fccecb12b20) (declare (in ) vec4 gl_MultiTexCoord2@0x7fccecb12d10) (declare (in ) vec4 gl_MultiTexCoord3@0x7fccecb12f00) (declare (in ) vec4 gl_MultiTexCoord4@0x7fccecb130f0) (declare (in ) vec4 gl_MultiTexCoord5@0x7fccecb132e0) (declare (in ) vec4 gl_MultiTexCoord6@0x7fccecb134d0) (declare (in ) vec4 gl_MultiTexCoord7@0x7fccecb136c0) (declare (in ) float gl_FogCoord@0x7fccecb138b0) (declare (out ) vec4 gl_ClipVertex@0x7fccecb13aa0) (declare (out ) vec4 gl_FrontColor@0x7fccecb13c90) (declare (out ) vec4 gl_BackColor@0x7fccecb13e80) (declare (out ) vec4 gl_FrontSecondaryColor@0x7fccecb7b370) (declare (out ) vec4 gl_BackSecondaryColor@0x7fccecb7b560) (declare (out ) float gl_FogFragCoord@0x7fccecb7b750) (declare (uniform ) mat4 gl_ModelViewMatrix@0x7fccecb7b940) (declare (uniform ) mat4 gl_ProjectionMatrix@0x7fccecb7bb30) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x7fccecb7bd20) (declare (uniform ) mat3 gl_NormalMatrix@0x7fccecb7bf50) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0x7fccecb7c140) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0x7fccecb7c370) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0x7fccecb7c5a0) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0x7fccecb7c7d0) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0x7fccecb7ca00) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0x7fccecb7cc30) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0x7fccecb7ce60) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0x7fccecb7d090) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0x7fccecb7d2c0) (declare (uniform ) float gl_NormalScale@0x7fccecb7d4d0) (declare (uniform ) gl_LightModelParameters gl_LightModel@0x7fccecb7d6c0) (declare () int gl_MaxLights@0x7fccecb7d8b0) (declare () int gl_MaxClipPlanes@0x7fccecb7db80) (declare () int gl_MaxTextureUnits@0x7fccecb7de50) (declare () int gl_MaxTextureCoords@0x7fccecb7e120) (declare () int gl_MaxVertexAttribs@0x7fccecb7e3f0) (declare () int gl_MaxVertexUniformComponents@0x7fccecb7e6c0) (declare () int gl_MaxVaryingFloats@0x7fccecb7e9d0) (declare () int gl_MaxVertexTextureImageUnits@0x7fccecb7eca0) (declare () int gl_MaxCombinedTextureImageUnits@0x7fccecb7efb0) (declare () int gl_MaxTextureImageUnits@0x7fccecb7f2c0) (declare () int gl_MaxFragmentUniformComponents@0x7fccecb7f590) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0x7fccecb7f8a0) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0x7fccecb7fa90) (declare (uniform ) (array vec4 6) gl_ClipPlane@0x7fccecb7fc80) (declare (uniform ) gl_PointParameters gl_Point@0x7fccecb7fe70) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x7fccecb80060) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0x7fccecb80250) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x7fccecb80440) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x7fccecb80630) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0x7fccecb80860) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0x7fccecb80a90) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0x7fccecb80c80) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0x7fccecb80e70) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0x7fccecb81060) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0x7fccecb81250) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0x7fccecb81440) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0x7fccecb81630) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0x7fccecb81820) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0x7fccecb81a10) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0x7fccecb81c00) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0x7fccecb81df0) (declare (uniform ) gl_FogParameters gl_Fog@0x7fccecb81fe0) (declare (out ) (array vec4 0) gl_TexCoord@0x7fccecb82160) (declare () int gl_MaxDrawBuffers@0x7fccecb82350) (function lightPosAndAttenuation0 (signature vec4 (parameters (declare (in ) vec4 vertex@0x7fccecbb88f0) ) ( (declare () vec4 rv@0x7fccecbb97f0) (declare (temporary ) vec4 assignment_tmp@0x7fccecbb92d0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecbb92d0) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (0)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecbb97f0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecbb92d0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x7fccecbb88f0) )(swiz w (var_ref assignment_tmp@0x7fccecbb92d0) )) ) ) )) (declare (temporary ) float length_retval@0x7fccecbba7c0) (assign (constant bool (1)) (x) (var_ref length_retval@0x7fccecbba7c0) (call length ((swiz xyz (var_ref rv@0x7fccecbb97f0) ))) ) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecbb97f0) (swiz xxxx (var_ref length_retval@0x7fccecbba7c0) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecbb97f0) (swiz xyz (expression vec3 / (swiz xyz (var_ref rv@0x7fccecbb97f0) )(swiz w (var_ref rv@0x7fccecbb97f0) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecbbbf60) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecbbbf60) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecbbbf60) (swiz www (var_ref rv@0x7fccecbb97f0) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecbbbf60) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fccecbb97f0) )(swiz w (var_ref rv@0x7fccecbb97f0) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecbbcfa0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecbbcfa0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (0)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecbbcfa0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (0)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecbbcfa0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (0)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x7fccecbbd7a0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecbbd7a0) (call dot ((var_ref vec_ctor@0x7fccecbbbf60) (var_ref vec_ctor@0x7fccecbbcfa0) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecbb97f0) (swiz xxxx (var_ref dot_retval@0x7fccecbbd7a0) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecbb97f0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fccecbb97f0) )) )) (return (var_ref rv@0x7fccecbb97f0) ) )) ) (function lightPosAndAttenuation1 (signature vec4 (parameters (declare (in ) vec4 vertex@0x7fccecbbe8a0) ) ( (declare () vec4 rv@0x7fccecbbf610) (declare (temporary ) vec4 assignment_tmp@0x7fccecbbf160) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecbbf160) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (1)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecbbf610) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecbbf160) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x7fccecbbe8a0) )(swiz w (var_ref assignment_tmp@0x7fccecbbf160) )) ) ) )) (declare (temporary ) float length_retval@0x7fccecbc0570) (assign (constant bool (1)) (x) (var_ref length_retval@0x7fccecbc0570) (call length ((swiz xyz (var_ref rv@0x7fccecbbf610) ))) ) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecbbf610) (swiz xxxx (var_ref length_retval@0x7fccecbc0570) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecbbf610) (swiz xyz (expression vec3 / (swiz xyz (var_ref rv@0x7fccecbbf610) )(swiz w (var_ref rv@0x7fccecbbf610) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecbc1d10) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecbc1d10) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecbc1d10) (swiz www (var_ref rv@0x7fccecbbf610) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecbc1d10) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fccecbbf610) )(swiz w (var_ref rv@0x7fccecbbf610) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecbc2d50) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecbc2d50) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (1)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecbc2d50) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (1)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecbc2d50) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (1)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x7fccecbc3550) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecbc3550) (call dot ((var_ref vec_ctor@0x7fccecbc1d10) (var_ref vec_ctor@0x7fccecbc2d50) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecbbf610) (swiz xxxx (var_ref dot_retval@0x7fccecbc3550) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecbbf610) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fccecbbf610) )) )) (return (var_ref rv@0x7fccecbbf610) ) )) ) (function lightPosAndAttenuation2 (signature vec4 (parameters (declare (in ) vec4 vertex@0x7fccecbc4650) ) ( (declare () vec4 rv@0x7fccecbc53c0) (declare (temporary ) vec4 assignment_tmp@0x7fccecbc4f10) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecbc4f10) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (2)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecbc53c0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecbc4f10) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x7fccecbc4650) )(swiz w (var_ref assignment_tmp@0x7fccecbc4f10) )) ) ) )) (declare (temporary ) float length_retval@0x7fccecbc6320) (assign (constant bool (1)) (x) (var_ref length_retval@0x7fccecbc6320) (call length ((swiz xyz (var_ref rv@0x7fccecbc53c0) ))) ) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecbc53c0) (swiz xxxx (var_ref length_retval@0x7fccecbc6320) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecbc53c0) (swiz xyz (expression vec3 / (swiz xyz (var_ref rv@0x7fccecbc53c0) )(swiz w (var_ref rv@0x7fccecbc53c0) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecbc7ac0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecbc7ac0) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecbc7ac0) (swiz www (var_ref rv@0x7fccecbc53c0) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecbc7ac0) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fccecbc53c0) )(swiz w (var_ref rv@0x7fccecbc53c0) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecbc8b00) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecbc8b00) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (2)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecbc8b00) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (2)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecbc8b00) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (2)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x7fccecbc9300) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecbc9300) (call dot ((var_ref vec_ctor@0x7fccecbc7ac0) (var_ref vec_ctor@0x7fccecbc8b00) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecbc53c0) (swiz xxxx (var_ref dot_retval@0x7fccecbc9300) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecbc53c0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fccecbc53c0) )) )) (return (var_ref rv@0x7fccecbc53c0) ) )) ) (function lightPosAndAttenuation3 (signature vec4 (parameters (declare (in ) vec4 vertex@0x7fccecbca400) ) ( (declare () vec4 rv@0x7fccecbcb170) (declare (temporary ) vec4 assignment_tmp@0x7fccecbcacc0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecbcacc0) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (3)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecbcb170) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecbcacc0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x7fccecbca400) )(swiz w (var_ref assignment_tmp@0x7fccecbcacc0) )) ) ) )) (declare (temporary ) float length_retval@0x7fccecbcc0d0) (assign (constant bool (1)) (x) (var_ref length_retval@0x7fccecbcc0d0) (call length ((swiz xyz (var_ref rv@0x7fccecbcb170) ))) ) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecbcb170) (swiz xxxx (var_ref length_retval@0x7fccecbcc0d0) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecbcb170) (swiz xyz (expression vec3 / (swiz xyz (var_ref rv@0x7fccecbcb170) )(swiz w (var_ref rv@0x7fccecbcb170) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecbcd870) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecbcd870) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecbcd870) (swiz www (var_ref rv@0x7fccecbcb170) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecbcd870) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fccecbcb170) )(swiz w (var_ref rv@0x7fccecbcb170) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecbce8b0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecbce8b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (3)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecbce8b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (3)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecbce8b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (3)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x7fccecbcf0b0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecbcf0b0) (call dot ((var_ref vec_ctor@0x7fccecbcd870) (var_ref vec_ctor@0x7fccecbce8b0) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecbcb170) (swiz xxxx (var_ref dot_retval@0x7fccecbcf0b0) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecbcb170) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fccecbcb170) )) )) (return (var_ref rv@0x7fccecbcb170) ) )) ) (function lightPosAndAttenuation4 (signature vec4 (parameters (declare (in ) vec4 vertex@0x7fccecbd01b0) ) ( (declare () vec4 rv@0x7fccecbd0f20) (declare (temporary ) vec4 assignment_tmp@0x7fccecbd0a70) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecbd0a70) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (4)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecbd0f20) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecbd0a70) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x7fccecbd01b0) )(swiz w (var_ref assignment_tmp@0x7fccecbd0a70) )) ) ) )) (declare (temporary ) float length_retval@0x7fccecbd1e80) (assign (constant bool (1)) (x) (var_ref length_retval@0x7fccecbd1e80) (call length ((swiz xyz (var_ref rv@0x7fccecbd0f20) ))) ) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecbd0f20) (swiz xxxx (var_ref length_retval@0x7fccecbd1e80) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecbd0f20) (swiz xyz (expression vec3 / (swiz xyz (var_ref rv@0x7fccecbd0f20) )(swiz w (var_ref rv@0x7fccecbd0f20) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecbd3620) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecbd3620) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecbd3620) (swiz www (var_ref rv@0x7fccecbd0f20) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecbd3620) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fccecbd0f20) )(swiz w (var_ref rv@0x7fccecbd0f20) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecbd4660) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecbd4660) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (4)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecbd4660) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (4)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecbd4660) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (4)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x7fccecbd4e60) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecbd4e60) (call dot ((var_ref vec_ctor@0x7fccecbd3620) (var_ref vec_ctor@0x7fccecbd4660) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecbd0f20) (swiz xxxx (var_ref dot_retval@0x7fccecbd4e60) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecbd0f20) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fccecbd0f20) )) )) (return (var_ref rv@0x7fccecbd0f20) ) )) ) (function lightPosAndAttenuation5 (signature vec4 (parameters (declare (in ) vec4 vertex@0x7fccecbd5f60) ) ( (declare () vec4 rv@0x7fccecbd6cd0) (declare (temporary ) vec4 assignment_tmp@0x7fccecbd6820) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecbd6820) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (5)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecbd6cd0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecbd6820) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x7fccecbd5f60) )(swiz w (var_ref assignment_tmp@0x7fccecbd6820) )) ) ) )) (declare (temporary ) float length_retval@0x7fccecbd7c30) (assign (constant bool (1)) (x) (var_ref length_retval@0x7fccecbd7c30) (call length ((swiz xyz (var_ref rv@0x7fccecbd6cd0) ))) ) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecbd6cd0) (swiz xxxx (var_ref length_retval@0x7fccecbd7c30) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecbd6cd0) (swiz xyz (expression vec3 / (swiz xyz (var_ref rv@0x7fccecbd6cd0) )(swiz w (var_ref rv@0x7fccecbd6cd0) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecbd93d0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecbd93d0) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecbd93d0) (swiz www (var_ref rv@0x7fccecbd6cd0) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecbd93d0) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fccecbd6cd0) )(swiz w (var_ref rv@0x7fccecbd6cd0) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecbda410) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecbda410) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (5)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecbda410) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (5)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecbda410) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (5)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x7fccecbdac10) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecbdac10) (call dot ((var_ref vec_ctor@0x7fccecbd93d0) (var_ref vec_ctor@0x7fccecbda410) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecbd6cd0) (swiz xxxx (var_ref dot_retval@0x7fccecbdac10) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecbd6cd0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fccecbd6cd0) )) )) (return (var_ref rv@0x7fccecbd6cd0) ) )) ) (function lightPosAndAttenuation6 (signature vec4 (parameters (declare (in ) vec4 vertex@0x7fccecbdbd10) ) ( (declare () vec4 rv@0x7fccecbdca80) (declare (temporary ) vec4 assignment_tmp@0x7fccecbdc5d0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecbdc5d0) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (6)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecbdca80) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecbdc5d0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x7fccecbdbd10) )(swiz w (var_ref assignment_tmp@0x7fccecbdc5d0) )) ) ) )) (declare (temporary ) float length_retval@0x7fccecbdd9e0) (assign (constant bool (1)) (x) (var_ref length_retval@0x7fccecbdd9e0) (call length ((swiz xyz (var_ref rv@0x7fccecbdca80) ))) ) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecbdca80) (swiz xxxx (var_ref length_retval@0x7fccecbdd9e0) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecbdca80) (swiz xyz (expression vec3 / (swiz xyz (var_ref rv@0x7fccecbdca80) )(swiz w (var_ref rv@0x7fccecbdca80) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecbdf180) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecbdf180) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecbdf180) (swiz www (var_ref rv@0x7fccecbdca80) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecbdf180) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fccecbdca80) )(swiz w (var_ref rv@0x7fccecbdca80) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecbe01c0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecbe01c0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (6)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecbe01c0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (6)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecbe01c0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (6)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x7fccecbe09c0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecbe09c0) (call dot ((var_ref vec_ctor@0x7fccecbdf180) (var_ref vec_ctor@0x7fccecbe01c0) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecbdca80) (swiz xxxx (var_ref dot_retval@0x7fccecbe09c0) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecbdca80) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fccecbdca80) )) )) (return (var_ref rv@0x7fccecbdca80) ) )) ) (function lightPosAndAttenuation7 (signature vec4 (parameters (declare (in ) vec4 vertex@0x7fccecbe1ac0) ) ( (declare () vec4 rv@0x7fccecbe2830) (declare (temporary ) vec4 assignment_tmp@0x7fccecbe2380) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecbe2380) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (7)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecbe2830) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecbe2380) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x7fccecbe1ac0) )(swiz w (var_ref assignment_tmp@0x7fccecbe2380) )) ) ) )) (declare (temporary ) float length_retval@0x7fccecbe3790) (assign (constant bool (1)) (x) (var_ref length_retval@0x7fccecbe3790) (call length ((swiz xyz (var_ref rv@0x7fccecbe2830) ))) ) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecbe2830) (swiz xxxx (var_ref length_retval@0x7fccecbe3790) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecbe2830) (swiz xyz (expression vec3 / (swiz xyz (var_ref rv@0x7fccecbe2830) )(swiz w (var_ref rv@0x7fccecbe2830) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecbe4f30) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecbe4f30) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecbe4f30) (swiz www (var_ref rv@0x7fccecbe2830) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecbe4f30) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fccecbe2830) )(swiz w (var_ref rv@0x7fccecbe2830) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecbe5f70) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecbe5f70) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (7)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecbe5f70) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (7)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecbe5f70) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (7)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x7fccecbe6770) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecbe6770) (call dot ((var_ref vec_ctor@0x7fccecbe4f30) (var_ref vec_ctor@0x7fccecbe5f70) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecbe2830) (swiz xxxx (var_ref dot_retval@0x7fccecbe6770) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecbe2830) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fccecbe2830) )) )) (return (var_ref rv@0x7fccecbe2830) ) )) ) (function selfshadowStep (signature float (parameters (declare (in ) float VNdotL@0x7fccecbe7870) ) ( (declare (temporary ) float smoothstep_retval@0x7fccecbe8060) (assign (constant bool (1)) (x) (var_ref smoothstep_retval@0x7fccecbe8060) (call smoothstep ((constant float (0.000000)) (constant float (0.250000)) (var_ref VNdotL@0x7fccecbe7870) )) ) (return (var_ref smoothstep_retval@0x7fccecbe8060) ) )) ) (function lighting0 (signature void (parameters (declare (in ) vec4 vertex@0x7fccecbe83d0) (declare (in ) vec3 eye@0x7fccecbe84e0) (declare (in ) vec3 normal@0x7fccecbe85f0) (declare (inout ) vec4 pc@0x7fccecbe8700) (declare (inout ) vec4 sc@0x7fccecbe8810) ) ( (declare () float RdotL@0x7fccecbeb460) (declare () float NdotL@0x7fccecbea800) (declare () vec3 refl@0x7fccecbe9c30) (declare () vec4 lpatt@0x7fccecbe90d0) (declare (temporary ) vec4 lightPosAndAttenuation0_retval@0x7fccecbe9420) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation0_retval@0x7fccecbe9420) (call lightPosAndAttenuation0 ((var_ref vertex@0x7fccecbe83d0) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x7fccecbe90d0) (var_ref lightPosAndAttenuation0_retval@0x7fccecbe9420) ) (declare (temporary ) vec3 reflect_retval@0x7fccecbea000) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x7fccecbea000) (call reflect ((var_ref eye@0x7fccecbe84e0) (var_ref normal@0x7fccecbe85f0) )) ) (assign (constant bool (1)) (xyz) (var_ref refl@0x7fccecbe9c30) (var_ref reflect_retval@0x7fccecbea000) ) (declare (temporary ) float dot_retval@0x7fccecbeac60) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecbeac60) (call dot ((swiz xyz (var_ref lpatt@0x7fccecbe90d0) )(var_ref normal@0x7fccecbe85f0) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x7fccecbea800) (var_ref dot_retval@0x7fccecbeac60) ) (declare (temporary ) float dot_retval@0x7fccecbeb8c0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecbeb8c0) (call dot ((swiz xyz (var_ref lpatt@0x7fccecbe90d0) )(var_ref refl@0x7fccecbe9c30) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x7fccecbeb460) (var_ref dot_retval@0x7fccecbeb8c0) ) (declare (temporary ) float max_retval@0x7fccecbeca00) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecbeca00) (call max ((constant float (0.000000)) (var_ref NdotL@0x7fccecbea800) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecbe8700) (expression vec4 + (var_ref pc@0x7fccecbe8700) (expression vec4 * (swiz w (var_ref lpatt@0x7fccecbe90d0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (0)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x7fccecbeca00) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (0)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x7fccecbedd40) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecbedd40) (call max ((constant float (0.000000)) (var_ref RdotL@0x7fccecbeb460) )) ) (declare (temporary ) float max_retval@0x7fccecbee3a0) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecbee3a0) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) shininess) )) ) (declare (temporary ) float pow_retval@0x7fccecbee790) (assign (constant bool (1)) (x) (var_ref pow_retval@0x7fccecbee790) (call pow ((var_ref max_retval@0x7fccecbedd40) (var_ref max_retval@0x7fccecbee3a0) )) ) (declare (temporary ) float selfshadowStep_retval@0x7fccecbeec10) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x7fccecbeec10) (call selfshadowStep ((var_ref NdotL@0x7fccecbea800) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecbe8810) (expression vec4 + (var_ref sc@0x7fccecbe8810) (expression vec4 * (swiz w (var_ref lpatt@0x7fccecbe90d0) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x7fccecbee790) (var_ref selfshadowStep_retval@0x7fccecbeec10) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (0)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) specular) ) ) ) ) (return) )) ) (function lighting1 (signature void (parameters (declare (in ) vec4 vertex@0x7fccecbefb40) (declare (in ) vec3 eye@0x7fccecbefc50) (declare (in ) vec3 normal@0x7fccecbefd60) (declare (inout ) vec4 pc@0x7fccecbefe70) (declare (inout ) vec4 sc@0x7fccecbeff80) ) ( (declare () float RdotL@0x7fccecbf2740) (declare () float NdotL@0x7fccecbf1b50) (declare () vec3 refl@0x7fccecbf1020) (declare () vec4 lpatt@0x7fccecbf0560) (declare (temporary ) vec4 lightPosAndAttenuation1_retval@0x7fccecbf08b0) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation1_retval@0x7fccecbf08b0) (call lightPosAndAttenuation1 ((var_ref vertex@0x7fccecbefb40) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x7fccecbf0560) (var_ref lightPosAndAttenuation1_retval@0x7fccecbf08b0) ) (declare (temporary ) vec3 reflect_retval@0x7fccecbf13f0) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x7fccecbf13f0) (call reflect ((var_ref eye@0x7fccecbefc50) (var_ref normal@0x7fccecbefd60) )) ) (assign (constant bool (1)) (xyz) (var_ref refl@0x7fccecbf1020) (var_ref reflect_retval@0x7fccecbf13f0) ) (declare (temporary ) float dot_retval@0x7fccecbf1fb0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecbf1fb0) (call dot ((swiz xyz (var_ref lpatt@0x7fccecbf0560) )(var_ref normal@0x7fccecbefd60) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x7fccecbf1b50) (var_ref dot_retval@0x7fccecbf1fb0) ) (declare (temporary ) float dot_retval@0x7fccecbf2ba0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecbf2ba0) (call dot ((swiz xyz (var_ref lpatt@0x7fccecbf0560) )(var_ref refl@0x7fccecbf1020) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x7fccecbf2740) (var_ref dot_retval@0x7fccecbf2ba0) ) (declare (temporary ) float max_retval@0x7fccecbf3c70) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecbf3c70) (call max ((constant float (0.000000)) (var_ref NdotL@0x7fccecbf1b50) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecbefe70) (expression vec4 + (var_ref pc@0x7fccecbefe70) (expression vec4 * (swiz w (var_ref lpatt@0x7fccecbf0560) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (1)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x7fccecbf3c70) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (1)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x7fccecbf4fb0) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecbf4fb0) (call max ((constant float (0.000000)) (var_ref RdotL@0x7fccecbf2740) )) ) (declare (temporary ) float max_retval@0x7fccecbf5610) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecbf5610) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) shininess) )) ) (declare (temporary ) float pow_retval@0x7fccecbf5a00) (assign (constant bool (1)) (x) (var_ref pow_retval@0x7fccecbf5a00) (call pow ((var_ref max_retval@0x7fccecbf4fb0) (var_ref max_retval@0x7fccecbf5610) )) ) (declare (temporary ) float selfshadowStep_retval@0x7fccecbf5e80) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x7fccecbf5e80) (call selfshadowStep ((var_ref NdotL@0x7fccecbf1b50) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecbeff80) (expression vec4 + (var_ref sc@0x7fccecbeff80) (expression vec4 * (swiz w (var_ref lpatt@0x7fccecbf0560) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x7fccecbf5a00) (var_ref selfshadowStep_retval@0x7fccecbf5e80) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (1)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) specular) ) ) ) ) (return) )) ) (function lighting2 (signature void (parameters (declare (in ) vec4 vertex@0x7fccecbf6db0) (declare (in ) vec3 eye@0x7fccecbf6ec0) (declare (in ) vec3 normal@0x7fccecbf6fd0) (declare (inout ) vec4 pc@0x7fccecbf70e0) (declare (inout ) vec4 sc@0x7fccecbf71f0) ) ( (declare () float RdotL@0x7fccecbf99b0) (declare () float NdotL@0x7fccecbf8dc0) (declare () vec3 refl@0x7fccecbf8290) (declare () vec4 lpatt@0x7fccecbf77d0) (declare (temporary ) vec4 lightPosAndAttenuation2_retval@0x7fccecbf7b20) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation2_retval@0x7fccecbf7b20) (call lightPosAndAttenuation2 ((var_ref vertex@0x7fccecbf6db0) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x7fccecbf77d0) (var_ref lightPosAndAttenuation2_retval@0x7fccecbf7b20) ) (declare (temporary ) vec3 reflect_retval@0x7fccecbf8660) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x7fccecbf8660) (call reflect ((var_ref eye@0x7fccecbf6ec0) (var_ref normal@0x7fccecbf6fd0) )) ) (assign (constant bool (1)) (xyz) (var_ref refl@0x7fccecbf8290) (var_ref reflect_retval@0x7fccecbf8660) ) (declare (temporary ) float dot_retval@0x7fccecbf9220) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecbf9220) (call dot ((swiz xyz (var_ref lpatt@0x7fccecbf77d0) )(var_ref normal@0x7fccecbf6fd0) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x7fccecbf8dc0) (var_ref dot_retval@0x7fccecbf9220) ) (declare (temporary ) float dot_retval@0x7fccecbf9e10) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecbf9e10) (call dot ((swiz xyz (var_ref lpatt@0x7fccecbf77d0) )(var_ref refl@0x7fccecbf8290) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x7fccecbf99b0) (var_ref dot_retval@0x7fccecbf9e10) ) (declare (temporary ) float max_retval@0x7fccecbfaee0) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecbfaee0) (call max ((constant float (0.000000)) (var_ref NdotL@0x7fccecbf8dc0) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecbf70e0) (expression vec4 + (var_ref pc@0x7fccecbf70e0) (expression vec4 * (swiz w (var_ref lpatt@0x7fccecbf77d0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x7fccecbfaee0) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x7fccecbfc220) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecbfc220) (call max ((constant float (0.000000)) (var_ref RdotL@0x7fccecbf99b0) )) ) (declare (temporary ) float max_retval@0x7fccecbfc880) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecbfc880) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) shininess) )) ) (declare (temporary ) float pow_retval@0x7fccecbfcc70) (assign (constant bool (1)) (x) (var_ref pow_retval@0x7fccecbfcc70) (call pow ((var_ref max_retval@0x7fccecbfc220) (var_ref max_retval@0x7fccecbfc880) )) ) (declare (temporary ) float selfshadowStep_retval@0x7fccecbfd0f0) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x7fccecbfd0f0) (call selfshadowStep ((var_ref NdotL@0x7fccecbf8dc0) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecbf71f0) (expression vec4 + (var_ref sc@0x7fccecbf71f0) (expression vec4 * (swiz w (var_ref lpatt@0x7fccecbf77d0) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x7fccecbfcc70) (var_ref selfshadowStep_retval@0x7fccecbfd0f0) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) specular) ) ) ) ) (return) )) ) (function lighting3 (signature void (parameters (declare (in ) vec4 vertex@0x7fccecc00400) (declare (in ) vec3 eye@0x7fccecc00510) (declare (in ) vec3 normal@0x7fccecc00620) (declare (inout ) vec4 pc@0x7fccecc00730) (declare (inout ) vec4 sc@0x7fccecc00840) ) ( (declare () float RdotL@0x7fccecc02f90) (declare () float NdotL@0x7fccecc023d0) (declare () vec3 refl@0x7fccecc018a0) (declare () vec4 lpatt@0x7fccecc00de0) (declare (temporary ) vec4 lightPosAndAttenuation3_retval@0x7fccecc01130) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation3_retval@0x7fccecc01130) (call lightPosAndAttenuation3 ((var_ref vertex@0x7fccecc00400) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x7fccecc00de0) (var_ref lightPosAndAttenuation3_retval@0x7fccecc01130) ) (declare (temporary ) vec3 reflect_retval@0x7fccecc01c70) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x7fccecc01c70) (call reflect ((var_ref eye@0x7fccecc00510) (var_ref normal@0x7fccecc00620) )) ) (assign (constant bool (1)) (xyz) (var_ref refl@0x7fccecc018a0) (var_ref reflect_retval@0x7fccecc01c70) ) (declare (temporary ) float dot_retval@0x7fccecc02830) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecc02830) (call dot ((swiz xyz (var_ref lpatt@0x7fccecc00de0) )(var_ref normal@0x7fccecc00620) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x7fccecc023d0) (var_ref dot_retval@0x7fccecc02830) ) (declare (temporary ) float dot_retval@0x7fccecc033f0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecc033f0) (call dot ((swiz xyz (var_ref lpatt@0x7fccecc00de0) )(var_ref refl@0x7fccecc018a0) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x7fccecc02f90) (var_ref dot_retval@0x7fccecc033f0) ) (declare (temporary ) float max_retval@0x7fccecc044c0) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecc044c0) (call max ((constant float (0.000000)) (var_ref NdotL@0x7fccecc023d0) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecc00730) (expression vec4 + (var_ref pc@0x7fccecc00730) (expression vec4 * (swiz w (var_ref lpatt@0x7fccecc00de0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x7fccecc044c0) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x7fccecc05800) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecc05800) (call max ((constant float (0.000000)) (var_ref RdotL@0x7fccecc02f90) )) ) (declare (temporary ) float max_retval@0x7fccecc05e60) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecc05e60) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) shininess) )) ) (declare (temporary ) float pow_retval@0x7fccecc06250) (assign (constant bool (1)) (x) (var_ref pow_retval@0x7fccecc06250) (call pow ((var_ref max_retval@0x7fccecc05800) (var_ref max_retval@0x7fccecc05e60) )) ) (declare (temporary ) float selfshadowStep_retval@0x7fccecc066d0) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x7fccecc066d0) (call selfshadowStep ((var_ref NdotL@0x7fccecc023d0) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecc00840) (expression vec4 + (var_ref sc@0x7fccecc00840) (expression vec4 * (swiz w (var_ref lpatt@0x7fccecc00de0) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x7fccecc06250) (var_ref selfshadowStep_retval@0x7fccecc066d0) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) specular) ) ) ) ) (return) )) ) (function lighting4 (signature void (parameters (declare (in ) vec4 vertex@0x7fccecc07600) (declare (in ) vec3 eye@0x7fccecc07710) (declare (in ) vec3 normal@0x7fccecc07820) (declare (inout ) vec4 pc@0x7fccecc07930) (declare (inout ) vec4 sc@0x7fccecc07a40) ) ( (declare () float RdotL@0x7fccecc0a1d0) (declare () float NdotL@0x7fccecc09610) (declare () vec3 refl@0x7fccecc08ae0) (declare () vec4 lpatt@0x7fccecc08020) (declare (temporary ) vec4 lightPosAndAttenuation4_retval@0x7fccecc08370) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation4_retval@0x7fccecc08370) (call lightPosAndAttenuation4 ((var_ref vertex@0x7fccecc07600) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x7fccecc08020) (var_ref lightPosAndAttenuation4_retval@0x7fccecc08370) ) (declare (temporary ) vec3 reflect_retval@0x7fccecc08eb0) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x7fccecc08eb0) (call reflect ((var_ref eye@0x7fccecc07710) (var_ref normal@0x7fccecc07820) )) ) (assign (constant bool (1)) (xyz) (var_ref refl@0x7fccecc08ae0) (var_ref reflect_retval@0x7fccecc08eb0) ) (declare (temporary ) float dot_retval@0x7fccecc09a70) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecc09a70) (call dot ((swiz xyz (var_ref lpatt@0x7fccecc08020) )(var_ref normal@0x7fccecc07820) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x7fccecc09610) (var_ref dot_retval@0x7fccecc09a70) ) (declare (temporary ) float dot_retval@0x7fccecc0a630) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecc0a630) (call dot ((swiz xyz (var_ref lpatt@0x7fccecc08020) )(var_ref refl@0x7fccecc08ae0) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x7fccecc0a1d0) (var_ref dot_retval@0x7fccecc0a630) ) (declare (temporary ) float max_retval@0x7fccecc0b700) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecc0b700) (call max ((constant float (0.000000)) (var_ref NdotL@0x7fccecc09610) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecc07930) (expression vec4 + (var_ref pc@0x7fccecc07930) (expression vec4 * (swiz w (var_ref lpatt@0x7fccecc08020) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x7fccecc0b700) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x7fccecc0ca40) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecc0ca40) (call max ((constant float (0.000000)) (var_ref RdotL@0x7fccecc0a1d0) )) ) (declare (temporary ) float max_retval@0x7fccecc0d0a0) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecc0d0a0) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) shininess) )) ) (declare (temporary ) float pow_retval@0x7fccecc0d490) (assign (constant bool (1)) (x) (var_ref pow_retval@0x7fccecc0d490) (call pow ((var_ref max_retval@0x7fccecc0ca40) (var_ref max_retval@0x7fccecc0d0a0) )) ) (declare (temporary ) float selfshadowStep_retval@0x7fccecc0d910) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x7fccecc0d910) (call selfshadowStep ((var_ref NdotL@0x7fccecc09610) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecc07a40) (expression vec4 + (var_ref sc@0x7fccecc07a40) (expression vec4 * (swiz w (var_ref lpatt@0x7fccecc08020) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x7fccecc0d490) (var_ref selfshadowStep_retval@0x7fccecc0d910) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) specular) ) ) ) ) (return) )) ) (function lighting5 (signature void (parameters (declare (in ) vec4 vertex@0x7fccecc0e840) (declare (in ) vec3 eye@0x7fccecc0e950) (declare (in ) vec3 normal@0x7fccecc0ea60) (declare (inout ) vec4 pc@0x7fccecc0eb70) (declare (inout ) vec4 sc@0x7fccecc0ec80) ) ( (declare () float RdotL@0x7fccecc11440) (declare () float NdotL@0x7fccecc10850) (declare () vec3 refl@0x7fccecc0fd20) (declare () vec4 lpatt@0x7fccecc0f260) (declare (temporary ) vec4 lightPosAndAttenuation5_retval@0x7fccecc0f5b0) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation5_retval@0x7fccecc0f5b0) (call lightPosAndAttenuation5 ((var_ref vertex@0x7fccecc0e840) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x7fccecc0f260) (var_ref lightPosAndAttenuation5_retval@0x7fccecc0f5b0) ) (declare (temporary ) vec3 reflect_retval@0x7fccecc100f0) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x7fccecc100f0) (call reflect ((var_ref eye@0x7fccecc0e950) (var_ref normal@0x7fccecc0ea60) )) ) (assign (constant bool (1)) (xyz) (var_ref refl@0x7fccecc0fd20) (var_ref reflect_retval@0x7fccecc100f0) ) (declare (temporary ) float dot_retval@0x7fccecc10cb0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecc10cb0) (call dot ((swiz xyz (var_ref lpatt@0x7fccecc0f260) )(var_ref normal@0x7fccecc0ea60) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x7fccecc10850) (var_ref dot_retval@0x7fccecc10cb0) ) (declare (temporary ) float dot_retval@0x7fccecc118a0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecc118a0) (call dot ((swiz xyz (var_ref lpatt@0x7fccecc0f260) )(var_ref refl@0x7fccecc0fd20) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x7fccecc11440) (var_ref dot_retval@0x7fccecc118a0) ) (declare (temporary ) float max_retval@0x7fccecc12970) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecc12970) (call max ((constant float (0.000000)) (var_ref NdotL@0x7fccecc10850) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecc0eb70) (expression vec4 + (var_ref pc@0x7fccecc0eb70) (expression vec4 * (swiz w (var_ref lpatt@0x7fccecc0f260) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (5)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x7fccecc12970) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (5)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x7fccecc13cb0) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecc13cb0) (call max ((constant float (0.000000)) (var_ref RdotL@0x7fccecc11440) )) ) (declare (temporary ) float max_retval@0x7fccecc14310) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecc14310) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) shininess) )) ) (declare (temporary ) float pow_retval@0x7fccecc14700) (assign (constant bool (1)) (x) (var_ref pow_retval@0x7fccecc14700) (call pow ((var_ref max_retval@0x7fccecc13cb0) (var_ref max_retval@0x7fccecc14310) )) ) (declare (temporary ) float selfshadowStep_retval@0x7fccecc14b80) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x7fccecc14b80) (call selfshadowStep ((var_ref NdotL@0x7fccecc10850) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecc0ec80) (expression vec4 + (var_ref sc@0x7fccecc0ec80) (expression vec4 * (swiz w (var_ref lpatt@0x7fccecc0f260) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x7fccecc14700) (var_ref selfshadowStep_retval@0x7fccecc14b80) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (5)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) specular) ) ) ) ) (return) )) ) (function lighting6 (signature void (parameters (declare (in ) vec4 vertex@0x7fccecc15ab0) (declare (in ) vec3 eye@0x7fccecc15bc0) (declare (in ) vec3 normal@0x7fccecc15cd0) (declare (inout ) vec4 pc@0x7fccecc15de0) (declare (inout ) vec4 sc@0x7fccecc15ef0) ) ( (declare () float RdotL@0x7fccecc186d0) (declare () float NdotL@0x7fccecc17ae0) (declare () vec3 refl@0x7fccecc16f80) (declare () vec4 lpatt@0x7fccecc16490) (declare (temporary ) vec4 lightPosAndAttenuation6_retval@0x7fccecc167e0) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation6_retval@0x7fccecc167e0) (call lightPosAndAttenuation6 ((var_ref vertex@0x7fccecc15ab0) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x7fccecc16490) (var_ref lightPosAndAttenuation6_retval@0x7fccecc167e0) ) (declare (temporary ) vec3 reflect_retval@0x7fccecc17350) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x7fccecc17350) (call reflect ((var_ref eye@0x7fccecc15bc0) (var_ref normal@0x7fccecc15cd0) )) ) (assign (constant bool (1)) (xyz) (var_ref refl@0x7fccecc16f80) (var_ref reflect_retval@0x7fccecc17350) ) (declare (temporary ) float dot_retval@0x7fccecc17f40) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecc17f40) (call dot ((swiz xyz (var_ref lpatt@0x7fccecc16490) )(var_ref normal@0x7fccecc15cd0) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x7fccecc17ae0) (var_ref dot_retval@0x7fccecc17f40) ) (declare (temporary ) float dot_retval@0x7fccecc18b30) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecc18b30) (call dot ((swiz xyz (var_ref lpatt@0x7fccecc16490) )(var_ref refl@0x7fccecc16f80) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x7fccecc186d0) (var_ref dot_retval@0x7fccecc18b30) ) (declare (temporary ) float max_retval@0x7fccecc19c00) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecc19c00) (call max ((constant float (0.000000)) (var_ref NdotL@0x7fccecc17ae0) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecc15de0) (expression vec4 + (var_ref pc@0x7fccecc15de0) (expression vec4 * (swiz w (var_ref lpatt@0x7fccecc16490) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (6)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x7fccecc19c00) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (6)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x7fccecc1af40) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecc1af40) (call max ((constant float (0.000000)) (var_ref RdotL@0x7fccecc186d0) )) ) (declare (temporary ) float max_retval@0x7fccecc1b5a0) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecc1b5a0) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) shininess) )) ) (declare (temporary ) float pow_retval@0x7fccecc1b990) (assign (constant bool (1)) (x) (var_ref pow_retval@0x7fccecc1b990) (call pow ((var_ref max_retval@0x7fccecc1af40) (var_ref max_retval@0x7fccecc1b5a0) )) ) (declare (temporary ) float selfshadowStep_retval@0x7fccecc1be10) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x7fccecc1be10) (call selfshadowStep ((var_ref NdotL@0x7fccecc17ae0) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecc15ef0) (expression vec4 + (var_ref sc@0x7fccecc15ef0) (expression vec4 * (swiz w (var_ref lpatt@0x7fccecc16490) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x7fccecc1b990) (var_ref selfshadowStep_retval@0x7fccecc1be10) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (6)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) specular) ) ) ) ) (return) )) ) (function lighting7 (signature void (parameters (declare (in ) vec4 vertex@0x7fccecc1cd40) (declare (in ) vec3 eye@0x7fccecc1ce50) (declare (in ) vec3 normal@0x7fccecc1cf60) (declare (inout ) vec4 pc@0x7fccecc1d070) (declare (inout ) vec4 sc@0x7fccecc1d180) ) ( (declare () float RdotL@0x7fccecc1f960) (declare () float NdotL@0x7fccecc1ed70) (declare () vec3 refl@0x7fccecc1e210) (declare () vec4 lpatt@0x7fccecc1d720) (declare (temporary ) vec4 lightPosAndAttenuation7_retval@0x7fccecc1da70) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation7_retval@0x7fccecc1da70) (call lightPosAndAttenuation7 ((var_ref vertex@0x7fccecc1cd40) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x7fccecc1d720) (var_ref lightPosAndAttenuation7_retval@0x7fccecc1da70) ) (declare (temporary ) vec3 reflect_retval@0x7fccecc1e5e0) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x7fccecc1e5e0) (call reflect ((var_ref eye@0x7fccecc1ce50) (var_ref normal@0x7fccecc1cf60) )) ) (assign (constant bool (1)) (xyz) (var_ref refl@0x7fccecc1e210) (var_ref reflect_retval@0x7fccecc1e5e0) ) (declare (temporary ) float dot_retval@0x7fccecc1f1d0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecc1f1d0) (call dot ((swiz xyz (var_ref lpatt@0x7fccecc1d720) )(var_ref normal@0x7fccecc1cf60) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x7fccecc1ed70) (var_ref dot_retval@0x7fccecc1f1d0) ) (declare (temporary ) float dot_retval@0x7fccecc1fdc0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecc1fdc0) (call dot ((swiz xyz (var_ref lpatt@0x7fccecc1d720) )(var_ref refl@0x7fccecc1e210) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x7fccecc1f960) (var_ref dot_retval@0x7fccecc1fdc0) ) (declare (temporary ) float max_retval@0x7fccecc20e90) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecc20e90) (call max ((constant float (0.000000)) (var_ref NdotL@0x7fccecc1ed70) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecc1d070) (expression vec4 + (var_ref pc@0x7fccecc1d070) (expression vec4 * (swiz w (var_ref lpatt@0x7fccecc1d720) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (7)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x7fccecc20e90) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (7)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x7fccecc221d0) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecc221d0) (call max ((constant float (0.000000)) (var_ref RdotL@0x7fccecc1f960) )) ) (declare (temporary ) float max_retval@0x7fccecc22830) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecc22830) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) shininess) )) ) (declare (temporary ) float pow_retval@0x7fccecc22c20) (assign (constant bool (1)) (x) (var_ref pow_retval@0x7fccecc22c20) (call pow ((var_ref max_retval@0x7fccecc221d0) (var_ref max_retval@0x7fccecc22830) )) ) (declare (temporary ) float selfshadowStep_retval@0x7fccecc230a0) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x7fccecc230a0) (call selfshadowStep ((var_ref NdotL@0x7fccecc1ed70) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecc1d180) (expression vec4 + (var_ref sc@0x7fccecc1d180) (expression vec4 * (swiz w (var_ref lpatt@0x7fccecc1d720) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x7fccecc22c20) (var_ref selfshadowStep_retval@0x7fccecc230a0) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecb80440) (constant int (7)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) specular) ) ) ) ) (return) )) ) (function main (signature void (parameters ) ( (declare () vec4 sc@0x7fccecc2af70) (declare () vec4 pc@0x7fccecc29b00) (declare () vec3 normal@0x7fccecc255d0) (declare () vec3 eyetopos@0x7fccecc24a10) (declare () vec4 position@0x7fccecc24220) (declare (temporary ) vec4 assignment_tmp@0x7fccecc24590) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecc24590) (expression vec4 * (var_ref gl_ModelViewMatrix@0x7fccecb7b940) (var_ref gl_Vertex@0x7fccecb12170) ) ) (assign (constant bool (1)) (xyzw) (var_ref position@0x7fccecc24220) (var_ref assignment_tmp@0x7fccecc24590) ) (declare (temporary ) vec3 normalize_retval@0x7fccecc24df0) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x7fccecc24df0) (call normalize ((swiz xyz (var_ref assignment_tmp@0x7fccecc24590) ))) ) (assign (constant bool (1)) (xyz) (var_ref eyetopos@0x7fccecc24a10) (var_ref normalize_retval@0x7fccecc24df0) ) (declare (temporary ) vec3 normalize_retval@0x7fccecc25a40) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x7fccecc25a40) (call normalize ((expression vec3 * (var_ref gl_NormalMatrix@0x7fccecb7bf50) (var_ref gl_Normal@0x7fccecb12360) ) )) ) (assign (constant bool (1)) (xyz) (var_ref normal@0x7fccecc255d0) (var_ref normalize_retval@0x7fccecc25a40) ) (declare (temporary ) vec3 normalize_retval@0x7fccecc266d0) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x7fccecc266d0) (call normalize ((expression vec3 * (var_ref gl_NormalMatrix@0x7fccecb7bf50) (swiz xyz (var_ref gl_MultiTexCoord2@0x7fccecb12d10) )) )) ) (declare (temporary ) vec3 cross_retval@0x7fccecc272b0) (assign (constant bool (1)) (xyz) (var_ref cross_retval@0x7fccecc272b0) (call cross ((var_ref normalize_retval@0x7fccecc266d0) (var_ref normal@0x7fccecc255d0) )) ) (declare (temporary ) float sign_retval@0x7fccecc277c0) (assign (constant bool (1)) (x) (var_ref sign_retval@0x7fccecc277c0) (call sign ((swiz w (var_ref gl_MultiTexCoord2@0x7fccecb12d10) ))) ) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x7fccecb82160) (constant int (0)) ) (var_ref gl_MultiTexCoord0@0x7fccecb12930) ) (declare (temporary ) vec3 reflect_retval@0x7fccecc28bc0) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x7fccecc28bc0) (call reflect ((var_ref eyetopos@0x7fccecc24a10) (var_ref normal@0x7fccecc255d0) )) ) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x7fccecb82160) (constant int (1)) ) (swiz xyz (var_ref reflect_retval@0x7fccecc28bc0) )) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x7fccecb82160) (constant int (2)) ) (swiz xyz (var_ref normal@0x7fccecc255d0) )) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecc29b00) (expression vec4 + (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x7fccecb80a90) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontMaterial@0x7fccecb80060) emission) ) (record_ref (var_ref gl_FrontLightModelProduct@0x7fccecb80630) sceneColor) ) (expression vec4 * (expression float i2f (array_ref (var_ref light_enabled@0x7fccecbb8490) (constant int (1)) ) ) (record_ref (array_ref (var_ref gl_FrontLightProduct@0x7fccecb80a90) (constant int (1)) ) ambient) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecc2af70) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (if (expression bool != (array_ref (var_ref light_enabled@0x7fccecbb8490) (constant int (0)) ) (constant int (0)) ) ( (call lighting0 ((var_ref position@0x7fccecc24220) (var_ref eyetopos@0x7fccecc24a10) (var_ref normal@0x7fccecc255d0) (var_ref pc@0x7fccecc29b00) (var_ref sc@0x7fccecc2af70) )) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x7fccecbb8490) (constant int (1)) ) (constant int (0)) ) ( (call lighting1 ((var_ref position@0x7fccecc24220) (var_ref eyetopos@0x7fccecc24a10) (var_ref normal@0x7fccecc255d0) (var_ref pc@0x7fccecc29b00) (var_ref sc@0x7fccecc2af70) )) ) ()) (if (expression bool >= (var_ref max_light_enabled@0x7fccecbb86c0) (constant int (2)) ) ( (if (expression bool != (array_ref (var_ref light_enabled@0x7fccecbb8490) (constant int (2)) ) (constant int (0)) ) ( (call lighting2 ((var_ref position@0x7fccecc24220) (var_ref eyetopos@0x7fccecc24a10) (var_ref normal@0x7fccecc255d0) (var_ref pc@0x7fccecc29b00) (var_ref sc@0x7fccecc2af70) )) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x7fccecbb8490) (constant int (3)) ) (constant int (0)) ) ( (call lighting3 ((var_ref position@0x7fccecc24220) (var_ref eyetopos@0x7fccecc24a10) (var_ref normal@0x7fccecc255d0) (var_ref pc@0x7fccecc29b00) (var_ref sc@0x7fccecc2af70) )) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x7fccecbb8490) (constant int (4)) ) (constant int (0)) ) ( (call lighting4 ((var_ref position@0x7fccecc24220) (var_ref eyetopos@0x7fccecc24a10) (var_ref normal@0x7fccecc255d0) (var_ref pc@0x7fccecc29b00) (var_ref sc@0x7fccecc2af70) )) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x7fccecbb8490) (constant int (5)) ) (constant int (0)) ) ( (call lighting5 ((var_ref position@0x7fccecc24220) (var_ref eyetopos@0x7fccecc24a10) (var_ref normal@0x7fccecc255d0) (var_ref pc@0x7fccecc29b00) (var_ref sc@0x7fccecc2af70) )) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x7fccecbb8490) (constant int (6)) ) (constant int (0)) ) ( (call lighting6 ((var_ref position@0x7fccecc24220) (var_ref eyetopos@0x7fccecc24a10) (var_ref normal@0x7fccecc255d0) (var_ref pc@0x7fccecc29b00) (var_ref sc@0x7fccecc2af70) )) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x7fccecbb8490) (constant int (7)) ) (constant int (0)) ) ( (call lighting7 ((var_ref position@0x7fccecc24220) (var_ref eyetopos@0x7fccecc24a10) (var_ref normal@0x7fccecc255d0) (var_ref pc@0x7fccecc29b00) (var_ref sc@0x7fccecc2af70) )) ) ()) ) ()) (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x7fccecb11d90) (expression vec4 * (var_ref gl_ModelViewProjectionMatrix@0x7fccecb7bd20) (var_ref gl_Vertex@0x7fccecb12170) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_BackColor@0x7fccecb13e80) (var_ref pc@0x7fccecc29b00) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0x7fccecb13c90) (var_ref pc@0x7fccecc29b00) ) (assign (constant bool (1)) (xyzw) (var_ref gl_BackSecondaryColor@0x7fccecb7b560) (var_ref sc@0x7fccecc2af70) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontSecondaryColor@0x7fccecb7b370) (var_ref sc@0x7fccecc2af70) ) )) ) ) 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@0x7fccecb1bd90) (declare (uniform ) vec4 damage@0x7fccecb1bb70) (declare (uniform ) vec4 cloaking@0x7fccecb1b940) (declare (uniform ) sampler2D damageMap@0x7fccecb1b710) (declare (uniform ) sampler2D glowMap@0x7fccecb1b4f0) (declare (uniform ) sampler2D specMap@0x7fccecb1b2d0) (declare (uniform ) samplerCube envMap@0x7fccecb1b0b0) (declare (uniform ) sampler2D diffuseMap@0x7fccecb1ae80) (declare (in ) vec4 gl_FragCoord@0x7fccecc27ea0) (declare (in ) bool gl_FrontFacing@0x7fccecc01f60) (declare (out ) vec4 gl_FragColor@0x7fccecc020f0) (declare (out ) float gl_FragDepth@0x7fccecc02a80) (declare (in ) vec4 gl_Color@0x7fccecc02c10) (declare (in ) vec4 gl_SecondaryColor@0x7fccecc03640) (declare (in ) float gl_FogFragCoord@0x7fccecc037d0) (declare (uniform ) mat4 gl_ModelViewMatrix@0x7fccecc04fc0) (declare (uniform ) mat4 gl_ProjectionMatrix@0x7fccecc05150) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x7fccecc071f0) (declare (uniform ) mat3 gl_NormalMatrix@0x7fccecc07390) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0x7fccecc085d0) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0x7fccecc08800) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0x7fccecc09100) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0x7fccecc09330) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0x7fccecc09cc0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0x7fccecc09ef0) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0x7fccecc0a880) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0x7fccecc0aab0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0x7fccecc0c200) (declare (uniform ) float gl_NormalScale@0x7fccecc0c380) (declare (uniform ) gl_LightModelParameters gl_LightModel@0x7fccecc0e430) (declare () int gl_MaxLights@0x7fccecc0e620) (declare () int gl_MaxClipPlanes@0x7fccecc0f8f0) (declare () int gl_MaxTextureUnits@0x7fccecc10420) (declare () int gl_MaxTextureCoords@0x7fccecc10fe0) (declare () int gl_MaxVertexAttribs@0x7fccecc11bd0) (declare () int gl_MaxVertexUniformComponents@0x7fccecc13550) (declare () int gl_MaxVaryingFloats@0x7fccecc15780) (declare () int gl_MaxVertexTextureImageUnits@0x7fccecc16b20) (declare () int gl_MaxCombinedTextureImageUnits@0x7fccecc17680) (declare () int gl_MaxTextureImageUnits@0x7fccecc18270) (declare () int gl_MaxFragmentUniformComponents@0x7fccecc18e60) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0x7fccecc1a7e0) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0x7fccecc1c930) (declare (uniform ) (array vec4 6) gl_ClipPlane@0x7fccecc1cb20) (declare (uniform ) gl_PointParameters gl_Point@0x7fccecc1dcd0) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x7fccecc1dec0) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0x7fccecc1e830) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x7fccecc1ea20) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x7fccecc1f420) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0x7fccecc1f650) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0x7fccecc20010) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0x7fccecc20200) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0x7fccecc21990) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0x7fccecc21b80) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0x7fccecc23bc0) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0x7fccecc23d80) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0x7fccecc25040) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0x7fccecc25240) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0x7fccecc25c90) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0x7fccecc25ec0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0x7fccecc28260) (declare (uniform ) gl_FogParameters gl_Fog@0x7fccecc28490) (declare (in ) (array vec4 0) gl_TexCoord@0x7fccecc28e10) (declare () int gl_MaxDrawBuffers@0x7fccecc29010) (declare (out ) (array vec4 1) gl_FragData@0x7fccecc2aba0) (function lerp (signature float (parameters (declare (in ) float f@0x7fccecb1bfc0) (declare (in ) float a@0x7fccecb1c0d0) (declare (in ) float b@0x7fccecb1c1e0) ) ( (return (expression float + (expression float * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x7fccecb1bfc0) ) ) (var_ref a@0x7fccecb1c0d0) ) (expression float * (var_ref f@0x7fccecb1bfc0) (var_ref b@0x7fccecb1c1e0) ) ) ) )) (signature vec2 (parameters (declare (in ) float f@0x7fccecb1cbf0) (declare (in ) vec2 a@0x7fccecb1cd00) (declare (in ) vec2 b@0x7fccecb1ce10) ) ( (return (expression vec2 + (expression vec2 * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x7fccecb1cbf0) ) ) (var_ref a@0x7fccecb1cd00) ) (expression vec2 * (var_ref f@0x7fccecb1cbf0) (var_ref b@0x7fccecb1ce10) ) ) ) )) (signature vec3 (parameters (declare (in ) float f@0x7fccecb1d770) (declare (in ) vec3 a@0x7fccecb1d880) (declare (in ) vec3 b@0x7fccecb1d990) ) ( (return (expression vec3 + (expression vec3 * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x7fccecb1d770) ) ) (var_ref a@0x7fccecb1d880) ) (expression vec3 * (var_ref f@0x7fccecb1d770) (var_ref b@0x7fccecb1d990) ) ) ) )) (signature vec4 (parameters (declare (in ) float f@0x7fccecb1e2f0) (declare (in ) vec4 a@0x7fccecb1e400) (declare (in ) vec4 b@0x7fccecb1e510) ) ( (return (expression vec4 + (expression vec4 * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x7fccecb1e2f0) ) ) (var_ref a@0x7fccecb1e400) ) (expression vec4 * (var_ref f@0x7fccecb1e2f0) (var_ref b@0x7fccecb1e510) ) ) ) )) ) (function main (signature void (parameters ) ( (declare () vec4 env@0x7fccecb22850) (declare () vec4 glowcolor@0x7fccecb21a70) (declare () vec4 speccolor@0x7fccecb20c90) (declare () vec4 diffusecolor@0x7fccecb1feb0) (declare () vec4 damagecolor@0x7fccecb1f100) (declare (temporary ) vec4 texture2D_retval@0x7fccecb1f6e0) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x7fccecb1f6e0) (call texture2D ((var_ref damageMap@0x7fccecb1b710) (swiz xy (array_ref (var_ref gl_TexCoord@0x7fccecc28e10) (constant int (0)) ) ))) ) (assign (constant bool (1)) (xyzw) (var_ref damagecolor@0x7fccecb1f100) (var_ref texture2D_retval@0x7fccecb1f6e0) ) (declare (temporary ) vec4 texture2D_retval@0x7fccecb20490) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x7fccecb20490) (call texture2D ((var_ref diffuseMap@0x7fccecb1ae80) (swiz xy (array_ref (var_ref gl_TexCoord@0x7fccecc28e10) (constant int (0)) ) ))) ) (assign (constant bool (1)) (xyzw) (var_ref diffusecolor@0x7fccecb1feb0) (var_ref texture2D_retval@0x7fccecb20490) ) (declare (temporary ) vec4 texture2D_retval@0x7fccecb21270) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x7fccecb21270) (call texture2D ((var_ref specMap@0x7fccecb1b2d0) (swiz xy (array_ref (var_ref gl_TexCoord@0x7fccecc28e10) (constant int (0)) ) ))) ) (assign (constant bool (1)) (xyzw) (var_ref speccolor@0x7fccecb20c90) (var_ref texture2D_retval@0x7fccecb21270) ) (declare (temporary ) vec4 texture2D_retval@0x7fccecb22050) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x7fccecb22050) (call texture2D ((var_ref glowMap@0x7fccecb1b4f0) (swiz xy (array_ref (var_ref gl_TexCoord@0x7fccecc28e10) (constant int (0)) ) ))) ) (assign (constant bool (1)) (xyzw) (var_ref glowcolor@0x7fccecb21a70) (var_ref texture2D_retval@0x7fccecb22050) ) (declare (temporary ) vec4 textureCube_retval@0x7fccecb22e20) (assign (constant bool (1)) (xyzw) (var_ref textureCube_retval@0x7fccecb22e20) (call textureCube ((var_ref envMap@0x7fccecb1b0b0) (swiz xyz (array_ref (var_ref gl_TexCoord@0x7fccecc28e10) (constant int (1)) ) ))) ) (assign (constant bool (1)) (xyzw) (var_ref env@0x7fccecb22850) (var_ref textureCube_retval@0x7fccecb22e20) ) (declare (temporary ) vec4 lerp_retval@0x7fccecb23b20) (assign (constant bool (1)) (xyzw) (var_ref lerp_retval@0x7fccecb23b20) (call lerp ((swiz x (var_ref damage@0x7fccecb1bb70) )(var_ref diffusecolor@0x7fccecb1feb0) (var_ref damagecolor@0x7fccecb1f100) )) ) (declare (temporary ) vec4 assignment_tmp@0x7fccecb24cc0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecb24cc0) (expression vec4 * (var_ref lerp_retval@0x7fccecb23b20) (var_ref gl_Color@0x7fccecc02c10) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x7fccecc020f0) (var_ref assignment_tmp@0x7fccecb24cc0) ) (assign (constant bool (1)) (xyz) (var_ref gl_FragColor@0x7fccecc020f0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecb24cc0) )(expression vec3 * (swiz xyz (var_ref speccolor@0x7fccecb20c90) )(swiz xyz (expression vec4 + (expression vec4 * (var_ref env@0x7fccecb22850) (var_ref envColor@0x7fccecb1bd90) ) (var_ref gl_SecondaryColor@0x7fccecc03640) ) )) ) )) (assign (constant bool (1)) (xyz) (var_ref gl_FragColor@0x7fccecc020f0) (swiz xyz (expression vec3 + (swiz xyz (var_ref gl_FragColor@0x7fccecc020f0) )(swiz xyz (var_ref glowcolor@0x7fccecb21a70) )) )) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x7fccecc020f0) (expression vec4 * (var_ref gl_FragColor@0x7fccecc020f0) (swiz xxxy (var_ref cloaking@0x7fccecb1b940) )) ) )) ) ) GLSL IR for linked vertex program 7: ( (declare (uniform ) int max_light_enabled@0x7fccecb26910) (declare (uniform ) (array int 8) light_enabled@0x7fccecb24320) (declare (out ) vec4 gl_Position@0x7fccecb23620) (declare (in ) vec4 gl_Vertex@0x7fccecbca820) (declare (in ) vec3 gl_Normal@0x7fccecbe4840) (declare (in ) vec4 gl_MultiTexCoord0@0x7fccecbcf8c0) (declare (out ) vec4 gl_FrontColor@0x7fccecbf7ea0) (declare (out ) vec4 gl_BackColor@0x7fccecbf7d80) (declare (out ) vec4 gl_FrontSecondaryColor@0x7fccecbf6b80) (declare (out ) vec4 gl_BackSecondaryColor@0x7fccecbf2f20) (declare (uniform ) mat4 gl_ModelViewMatrix@0x7fccecbf0c40) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x7fccecbef920) (declare (uniform ) mat3 gl_NormalMatrix@0x7fccecbeb0a0) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x7fccecbd6380) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x7fccecbd05d0) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x7fccecbd0680) (declare (uniform ) (array gl_LightProducts 2) gl_FrontLightProduct@0x7fccecbd9250) (declare (out ) (array vec4 0) gl_TexCoord@0x7fccecbcaf10) (function main (signature void (parameters ) ( (declare () vec4 sc@0x7fccecc82cb0) (declare () vec4 pc@0x7fccecc82df0) (declare (temporary ) vec4 flattening_tmp@0x7fccece15920) (assign (constant bool (1)) (xyzw) (var_ref flattening_tmp@0x7fccece15920) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccecbf0c40) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x7fccecbca820) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccecbf0c40) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x7fccecbca820) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccecbf0c40) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x7fccecbca820) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccecbf0c40) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x7fccecbca820) )) ) ) (declare () vec3 _ret_val@0x7fccecd59080) (declare () vec3 arg0@0x7fccecd59130) (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fccecd59130) (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x7fccecd59080) (expression vec3 * (var_ref arg0@0x7fccecd59130) (expression float rsq (expression float dot (var_ref arg0@0x7fccecd59130) (var_ref arg0@0x7fccecd59130) ) ) ) ) (declare () vec3 _ret_val@0x7fccecd599e0) (declare (temporary ) vec3 flattening_tmp@0x7fccece15d80) (assign (constant bool (1)) (xyz) (var_ref flattening_tmp@0x7fccece15d80) (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x7fccecbeb0a0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x7fccecbe4840) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x7fccecbeb0a0) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x7fccecbe4840) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x7fccecbeb0a0) (constant int (2)) ) (swiz z (var_ref gl_Normal@0x7fccecbe4840) )) ) ) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x7fccecd599e0) (expression vec3 * (var_ref flattening_tmp@0x7fccece15d80) (expression float rsq (expression float dot (var_ref flattening_tmp@0x7fccece15d80) (var_ref flattening_tmp@0x7fccece15d80) ) ) ) ) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x7fccecbcaf10) (constant int (0)) ) (var_ref gl_MultiTexCoord0@0x7fccecbcf8c0) ) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x7fccecbcaf10) (constant int (1)) ) (swiz xyz (expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) )) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x7fccecbcaf10) (constant int (2)) ) (swiz xyz (var_ref _ret_val@0x7fccecd599e0) )) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecc82df0) (expression vec4 + (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x7fccecbd9250) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) emission) ) (record_ref (var_ref gl_FrontLightModelProduct@0x7fccecbd0680) sceneColor) ) (expression vec4 * (expression float i2f (array_ref (var_ref light_enabled@0x7fccecb24320) (constant int (1)) ) ) (record_ref (array_ref (var_ref gl_FrontLightProduct@0x7fccecbd9250) (constant int (1)) ) ambient) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecc82cb0) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (if (expression bool != (array_ref (var_ref light_enabled@0x7fccecb24320) (constant int (0)) ) (constant int (0)) ) ( (declare () vec4 rv@0x7fccecd5e230) (declare (temporary ) vec4 assignment_tmp@0x7fccecd5e370) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecd5e370) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (0)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecd5e230) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecd5e370) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecd5e370) )) ) ) )) (declare () vec3 arg0@0x7fccecd5f3e0) (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fccecd5f3e0) (swiz xyz (var_ref rv@0x7fccecd5e230) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecd5e230) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x7fccecd5f3e0) (var_ref arg0@0x7fccecd5f3e0) ) ) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecd5e230) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x7fccecd5e230) )(expression float rcp (swiz w (var_ref rv@0x7fccecd5e230) )) ) )) (declare (temporary ) vec3 vec_ctor@0x7fccecd60570) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecd60570) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecd60570) (swiz www (var_ref rv@0x7fccecd5e230) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecd60570) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fccecd5e230) )(swiz w (var_ref rv@0x7fccecd5e230) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecd60fc0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecd60fc0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (0)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecd60fc0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (0)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecd60fc0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (0)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecd5e230) (swiz xxxx (expression float dot (var_ref vec_ctor@0x7fccecd60570) (var_ref vec_ctor@0x7fccecd60fc0) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecd5e230) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fccecd5e230) )) )) (declare () float _ret_val@0x7fccecd655c0) (assign (constant bool (1)) (x) (var_ref _ret_val@0x7fccecd655c0) (expression float dot (swiz xyz (var_ref rv@0x7fccecd5e230) )(var_ref _ret_val@0x7fccecd599e0) ) ) (declare () float t@0x7fccecd6e080) (assign (constant bool (1)) (x) (var_ref t@0x7fccecd6e080) (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fccecd655c0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecc82df0) (expression vec4 + (var_ref pc@0x7fccecc82df0) (expression vec4 * (swiz w (var_ref rv@0x7fccecd5e230) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (0)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecd655c0) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (0)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecc82cb0) (expression vec4 * (swiz w (var_ref rv@0x7fccecd5e230) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd5e230) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecd6e080) (expression float * (var_ref t@0x7fccecd6e080) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd6e080) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (0)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) ) ) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x7fccecb24320) (constant int (1)) ) (constant int (0)) ) ( (declare () vec4 rv@0x7fccecd72400) (declare (temporary ) vec4 assignment_tmp@0x7fccecd72510) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecd72510) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (1)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecd72400) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecd72510) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecd72510) )) ) ) )) (declare () vec3 arg0@0x7fccecd734c0) (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fccecd734c0) (swiz xyz (var_ref rv@0x7fccecd72400) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecd72400) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x7fccecd734c0) (var_ref arg0@0x7fccecd734c0) ) ) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecd72400) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x7fccecd72400) )(expression float rcp (swiz w (var_ref rv@0x7fccecd72400) )) ) )) (declare (temporary ) vec3 vec_ctor@0x7fccecd74620) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecd74620) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecd74620) (swiz www (var_ref rv@0x7fccecd72400) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecd74620) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fccecd72400) )(swiz w (var_ref rv@0x7fccecd72400) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecd75040) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecd75040) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (1)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecd75040) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (1)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecd75040) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (1)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecd72400) (swiz xxxx (expression float dot (var_ref vec_ctor@0x7fccecd74620) (var_ref vec_ctor@0x7fccecd75040) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecd72400) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fccecd72400) )) )) (declare () float _ret_val@0x7fccecd793d0) (assign (constant bool (1)) (x) (var_ref _ret_val@0x7fccecd793d0) (expression float dot (swiz xyz (var_ref rv@0x7fccecd72400) )(var_ref _ret_val@0x7fccecd599e0) ) ) (declare () float t@0x7fccecd81770) (assign (constant bool (1)) (x) (var_ref t@0x7fccecd81770) (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fccecd793d0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecc82df0) (expression vec4 + (var_ref pc@0x7fccecc82df0) (expression vec4 * (swiz w (var_ref rv@0x7fccecd72400) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (1)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecd793d0) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (1)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecc82cb0) (expression vec4 + (var_ref sc@0x7fccecc82cb0) (expression vec4 * (swiz w (var_ref rv@0x7fccecd72400) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd72400) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecd81770) (expression float * (var_ref t@0x7fccecd81770) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd81770) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (1)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) ) ) ) ) ()) (if (expression bool >= (var_ref max_light_enabled@0x7fccecb26910) (constant int (2)) ) ( (if (expression bool != (array_ref (var_ref light_enabled@0x7fccecb24320) (constant int (2)) ) (constant int (0)) ) ( (declare () vec4 rv@0x7fccecd85ac0) (declare (temporary ) vec4 assignment_tmp@0x7fccecd85bd0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecd85bd0) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (2)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecd85ac0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecd85bd0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecd85bd0) )) ) ) )) (declare () vec3 arg0@0x7fccecd86b80) (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fccecd86b80) (swiz xyz (var_ref rv@0x7fccecd85ac0) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecd85ac0) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x7fccecd86b80) (var_ref arg0@0x7fccecd86b80) ) ) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecd85ac0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x7fccecd85ac0) )(expression float rcp (swiz w (var_ref rv@0x7fccecd85ac0) )) ) )) (declare (temporary ) vec3 vec_ctor@0x7fccecd87ce0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecd87ce0) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecd87ce0) (swiz www (var_ref rv@0x7fccecd85ac0) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecd87ce0) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fccecd85ac0) )(swiz w (var_ref rv@0x7fccecd85ac0) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecd88700) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecd88700) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (2)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecd88700) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (2)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecd88700) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (2)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecd85ac0) (swiz xxxx (expression float dot (var_ref vec_ctor@0x7fccecd87ce0) (var_ref vec_ctor@0x7fccecd88700) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecd85ac0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fccecd85ac0) )) )) (declare () float _ret_val@0x7fccecd8ca90) (assign (constant bool (1)) (x) (var_ref _ret_val@0x7fccecd8ca90) (expression float dot (swiz xyz (var_ref rv@0x7fccecd85ac0) )(var_ref _ret_val@0x7fccecd599e0) ) ) (declare () float t@0x7fccecd94e30) (assign (constant bool (1)) (x) (var_ref t@0x7fccecd94e30) (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fccecd8ca90) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecc82df0) (expression vec4 + (var_ref pc@0x7fccecc82df0) (expression vec4 * (swiz w (var_ref rv@0x7fccecd85ac0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecd8ca90) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecc82cb0) (expression vec4 + (var_ref sc@0x7fccecc82cb0) (expression vec4 * (swiz w (var_ref rv@0x7fccecd85ac0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd85ac0) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecd94e30) (expression float * (var_ref t@0x7fccecd94e30) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd94e30) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) ) ) ) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x7fccecb24320) (constant int (3)) ) (constant int (0)) ) ( (declare () vec4 rv@0x7fccecd99180) (declare (temporary ) vec4 assignment_tmp@0x7fccecd99290) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecd99290) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (3)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecd99180) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecd99290) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecd99290) )) ) ) )) (declare () vec3 arg0@0x7fccecd9a240) (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fccecd9a240) (swiz xyz (var_ref rv@0x7fccecd99180) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecd99180) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x7fccecd9a240) (var_ref arg0@0x7fccecd9a240) ) ) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecd99180) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x7fccecd99180) )(expression float rcp (swiz w (var_ref rv@0x7fccecd99180) )) ) )) (declare (temporary ) vec3 vec_ctor@0x7fccecd9b3a0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecd9b3a0) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecd9b3a0) (swiz www (var_ref rv@0x7fccecd99180) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecd9b3a0) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fccecd99180) )(swiz w (var_ref rv@0x7fccecd99180) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecd9bdc0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecd9bdc0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (3)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecd9bdc0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (3)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecd9bdc0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (3)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecd99180) (swiz xxxx (expression float dot (var_ref vec_ctor@0x7fccecd9b3a0) (var_ref vec_ctor@0x7fccecd9bdc0) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecd99180) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fccecd99180) )) )) (declare () float _ret_val@0x7fccecda0150) (assign (constant bool (1)) (x) (var_ref _ret_val@0x7fccecda0150) (expression float dot (swiz xyz (var_ref rv@0x7fccecd99180) )(var_ref _ret_val@0x7fccecd599e0) ) ) (declare () float t@0x7fccecda84f0) (assign (constant bool (1)) (x) (var_ref t@0x7fccecda84f0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fccecda0150) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecc82df0) (expression vec4 + (var_ref pc@0x7fccecc82df0) (expression vec4 * (swiz w (var_ref rv@0x7fccecd99180) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecda0150) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecc82cb0) (expression vec4 + (var_ref sc@0x7fccecc82cb0) (expression vec4 * (swiz w (var_ref rv@0x7fccecd99180) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd99180) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecda84f0) (expression float * (var_ref t@0x7fccecda84f0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecda84f0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) ) ) ) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x7fccecb24320) (constant int (4)) ) (constant int (0)) ) ( (declare () vec4 rv@0x7fccecdac840) (declare (temporary ) vec4 assignment_tmp@0x7fccecdac950) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecdac950) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (4)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecdac840) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecdac950) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecdac950) )) ) ) )) (declare () vec3 arg0@0x7fccecdad900) (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fccecdad900) (swiz xyz (var_ref rv@0x7fccecdac840) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecdac840) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x7fccecdad900) (var_ref arg0@0x7fccecdad900) ) ) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecdac840) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x7fccecdac840) )(expression float rcp (swiz w (var_ref rv@0x7fccecdac840) )) ) )) (declare (temporary ) vec3 vec_ctor@0x7fccecdaea60) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecdaea60) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecdaea60) (swiz www (var_ref rv@0x7fccecdac840) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecdaea60) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fccecdac840) )(swiz w (var_ref rv@0x7fccecdac840) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecdaf480) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecdaf480) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (4)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecdaf480) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (4)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecdaf480) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (4)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecdac840) (swiz xxxx (expression float dot (var_ref vec_ctor@0x7fccecdaea60) (var_ref vec_ctor@0x7fccecdaf480) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecdac840) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fccecdac840) )) )) (declare () float _ret_val@0x7fccecdb3810) (assign (constant bool (1)) (x) (var_ref _ret_val@0x7fccecdb3810) (expression float dot (swiz xyz (var_ref rv@0x7fccecdac840) )(var_ref _ret_val@0x7fccecd599e0) ) ) (declare () float t@0x7fccecdbbbb0) (assign (constant bool (1)) (x) (var_ref t@0x7fccecdbbbb0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fccecdb3810) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecc82df0) (expression vec4 + (var_ref pc@0x7fccecc82df0) (expression vec4 * (swiz w (var_ref rv@0x7fccecdac840) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecdb3810) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecc82cb0) (expression vec4 + (var_ref sc@0x7fccecc82cb0) (expression vec4 * (swiz w (var_ref rv@0x7fccecdac840) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecdac840) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecdbbbb0) (expression float * (var_ref t@0x7fccecdbbbb0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdbbbb0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) ) ) ) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x7fccecb24320) (constant int (5)) ) (constant int (0)) ) ( (declare () vec4 rv@0x7fccecdbff00) (declare (temporary ) vec4 assignment_tmp@0x7fccecdc0010) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecdc0010) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (5)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecdbff00) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecdc0010) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecdc0010) )) ) ) )) (declare () vec3 arg0@0x7fccecdc0fc0) (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fccecdc0fc0) (swiz xyz (var_ref rv@0x7fccecdbff00) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecdbff00) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x7fccecdc0fc0) (var_ref arg0@0x7fccecdc0fc0) ) ) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecdbff00) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x7fccecdbff00) )(expression float rcp (swiz w (var_ref rv@0x7fccecdbff00) )) ) )) (declare (temporary ) vec3 vec_ctor@0x7fccecdc2120) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecdc2120) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecdc2120) (swiz www (var_ref rv@0x7fccecdbff00) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecdc2120) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fccecdbff00) )(swiz w (var_ref rv@0x7fccecdbff00) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecdc2b40) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecdc2b40) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (5)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecdc2b40) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (5)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecdc2b40) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (5)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecdbff00) (swiz xxxx (expression float dot (var_ref vec_ctor@0x7fccecdc2120) (var_ref vec_ctor@0x7fccecdc2b40) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecdbff00) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fccecdbff00) )) )) (declare () float _ret_val@0x7fccecdc6ed0) (assign (constant bool (1)) (x) (var_ref _ret_val@0x7fccecdc6ed0) (expression float dot (swiz xyz (var_ref rv@0x7fccecdbff00) )(var_ref _ret_val@0x7fccecd599e0) ) ) (declare () float t@0x7fccecdcf270) (assign (constant bool (1)) (x) (var_ref t@0x7fccecdcf270) (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fccecdc6ed0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecc82df0) (expression vec4 + (var_ref pc@0x7fccecc82df0) (expression vec4 * (swiz w (var_ref rv@0x7fccecdbff00) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (5)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecdc6ed0) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (5)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecc82cb0) (expression vec4 + (var_ref sc@0x7fccecc82cb0) (expression vec4 * (swiz w (var_ref rv@0x7fccecdbff00) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecdbff00) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecdcf270) (expression float * (var_ref t@0x7fccecdcf270) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdcf270) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (5)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) ) ) ) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x7fccecb24320) (constant int (6)) ) (constant int (0)) ) ( (declare () vec4 rv@0x7fccecdd35c0) (declare (temporary ) vec4 assignment_tmp@0x7fccecdd36d0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecdd36d0) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (6)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecdd35c0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecdd36d0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecdd36d0) )) ) ) )) (declare () vec3 arg0@0x7fccecdd4680) (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fccecdd4680) (swiz xyz (var_ref rv@0x7fccecdd35c0) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecdd35c0) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x7fccecdd4680) (var_ref arg0@0x7fccecdd4680) ) ) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecdd35c0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x7fccecdd35c0) )(expression float rcp (swiz w (var_ref rv@0x7fccecdd35c0) )) ) )) (declare (temporary ) vec3 vec_ctor@0x7fccecdd57e0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecdd57e0) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecdd57e0) (swiz www (var_ref rv@0x7fccecdd35c0) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecdd57e0) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fccecdd35c0) )(swiz w (var_ref rv@0x7fccecdd35c0) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecdd6200) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecdd6200) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (6)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecdd6200) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (6)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecdd6200) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (6)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecdd35c0) (swiz xxxx (expression float dot (var_ref vec_ctor@0x7fccecdd57e0) (var_ref vec_ctor@0x7fccecdd6200) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecdd35c0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fccecdd35c0) )) )) (declare () float _ret_val@0x7fccecdda590) (assign (constant bool (1)) (x) (var_ref _ret_val@0x7fccecdda590) (expression float dot (swiz xyz (var_ref rv@0x7fccecdd35c0) )(var_ref _ret_val@0x7fccecd599e0) ) ) (declare () float t@0x7fccecde2930) (assign (constant bool (1)) (x) (var_ref t@0x7fccecde2930) (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fccecdda590) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecc82df0) (expression vec4 + (var_ref pc@0x7fccecc82df0) (expression vec4 * (swiz w (var_ref rv@0x7fccecdd35c0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (6)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecdda590) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (6)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecc82cb0) (expression vec4 + (var_ref sc@0x7fccecc82cb0) (expression vec4 * (swiz w (var_ref rv@0x7fccecdd35c0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecdd35c0) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecde2930) (expression float * (var_ref t@0x7fccecde2930) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecde2930) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (6)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) ) ) ) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x7fccecb24320) (constant int (7)) ) (constant int (0)) ) ( (declare () vec4 rv@0x7fccecde6c80) (declare (temporary ) vec4 assignment_tmp@0x7fccecde6d90) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecde6d90) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (7)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecde6c80) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecde6d90) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecde6d90) )) ) ) )) (declare () vec3 arg0@0x7fccecde7d40) (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fccecde7d40) (swiz xyz (var_ref rv@0x7fccecde6c80) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecde6c80) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x7fccecde7d40) (var_ref arg0@0x7fccecde7d40) ) ) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecde6c80) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x7fccecde6c80) )(expression float rcp (swiz w (var_ref rv@0x7fccecde6c80) )) ) )) (declare (temporary ) vec3 vec_ctor@0x7fccecde8ea0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecde8ea0) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecde8ea0) (swiz www (var_ref rv@0x7fccecde6c80) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecde8ea0) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fccecde6c80) )(swiz w (var_ref rv@0x7fccecde6c80) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecde98c0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecde98c0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (7)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecde98c0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (7)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecde98c0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (7)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecde6c80) (swiz xxxx (expression float dot (var_ref vec_ctor@0x7fccecde8ea0) (var_ref vec_ctor@0x7fccecde98c0) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecde6c80) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fccecde6c80) )) )) (declare () float _ret_val@0x7fccecdedc50) (assign (constant bool (1)) (x) (var_ref _ret_val@0x7fccecdedc50) (expression float dot (swiz xyz (var_ref rv@0x7fccecde6c80) )(var_ref _ret_val@0x7fccecd599e0) ) ) (declare () float t@0x7fccecdf5ff0) (assign (constant bool (1)) (x) (var_ref t@0x7fccecdf5ff0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fccecdedc50) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecc82df0) (expression vec4 + (var_ref pc@0x7fccecc82df0) (expression vec4 * (swiz w (var_ref rv@0x7fccecde6c80) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (7)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecdedc50) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (7)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecc82cb0) (expression vec4 + (var_ref sc@0x7fccecc82cb0) (expression vec4 * (swiz w (var_ref rv@0x7fccecde6c80) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecde6c80) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecdf5ff0) (expression float * (var_ref t@0x7fccecdf5ff0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdf5ff0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (7)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) ) ) ) ) ()) ) ()) (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x7fccecb23620) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccecbef920) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x7fccecbca820) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccecbef920) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x7fccecbca820) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccecbef920) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x7fccecbca820) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccecbef920) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x7fccecbca820) )) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_BackColor@0x7fccecbf7d80) (var_ref pc@0x7fccecc82df0) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0x7fccecbf7ea0) (var_ref pc@0x7fccecc82df0) ) (assign (constant bool (1)) (xyzw) (var_ref gl_BackSecondaryColor@0x7fccecbf2f20) (var_ref sc@0x7fccecc82cb0) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontSecondaryColor@0x7fccecbf6b80) (var_ref sc@0x7fccecc82cb0) ) )) ) ) Mesa IR for linked vertex program 7: 0: (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x7fccecbd6380) MOV TEMP[1], STATE[20]; 1: MOV TEMP[2], STATE[21]; 2: MOV TEMP[3], STATE[22]; 3: MOV TEMP[4], STATE[23]; 4: MOV TEMP[5], STATE[24].xxxx; 5: (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x7fccecbd05d0) MOV TEMP[6], STATE[25]; 6: MOV TEMP[7], STATE[26]; 7: MOV TEMP[8], STATE[27]; 8: MOV TEMP[9], STATE[28]; 9: MOV TEMP[10], STATE[29]; 10: MOV TEMP[11], STATE[30]; 11: MOV TEMP[12], STATE[30].wwww; 12: MOV TEMP[13], STATE[31].xxxx; 13: MOV TEMP[14], STATE[32].wwww; 14: MOV TEMP[15], STATE[32].xxxx; 15: MOV TEMP[16], STATE[32].yyyy; 16: MOV TEMP[17], STATE[32].zzzz; 17: MOV TEMP[18], STATE[33]; 18: MOV TEMP[19], STATE[34]; 19: MOV TEMP[20], STATE[35]; 20: MOV TEMP[21], STATE[36]; 21: MOV TEMP[22], STATE[37]; 22: MOV TEMP[23], STATE[38]; 23: MOV TEMP[24], STATE[38].wwww; 24: MOV TEMP[25], STATE[39].xxxx; 25: MOV TEMP[26], STATE[40].wwww; 26: MOV TEMP[27], STATE[40].xxxx; 27: MOV TEMP[28], STATE[40].yyyy; 28: MOV TEMP[29], STATE[40].zzzz; 29: MOV TEMP[30], STATE[41]; 30: MOV TEMP[31], STATE[42]; 31: MOV TEMP[32], STATE[43]; 32: MOV TEMP[33], STATE[44]; 33: MOV TEMP[34], STATE[45]; 34: MOV TEMP[35], STATE[46]; 35: MOV TEMP[36], STATE[46].wwww; 36: MOV TEMP[37], STATE[47].xxxx; 37: MOV TEMP[38], STATE[48].wwww; 38: MOV TEMP[39], STATE[48].xxxx; 39: MOV TEMP[40], STATE[48].yyyy; 40: MOV TEMP[41], STATE[48].zzzz; 41: MOV TEMP[42], STATE[49]; 42: MOV TEMP[43], STATE[50]; 43: MOV TEMP[44], STATE[51]; 44: MOV TEMP[45], STATE[52]; 45: MOV TEMP[46], STATE[53]; 46: MOV TEMP[47], STATE[54]; 47: MOV TEMP[48], STATE[54].wwww; 48: MOV TEMP[49], STATE[55].xxxx; 49: MOV TEMP[50], STATE[56].wwww; 50: MOV TEMP[51], STATE[56].xxxx; 51: MOV TEMP[52], STATE[56].yyyy; 52: MOV TEMP[53], STATE[56].zzzz; 53: MOV TEMP[54], STATE[57]; 54: MOV TEMP[55], STATE[58]; 55: MOV TEMP[56], STATE[59]; 56: MOV TEMP[57], STATE[60]; 57: MOV TEMP[58], STATE[61]; 58: MOV TEMP[59], STATE[62]; 59: MOV TEMP[60], STATE[62].wwww; 60: MOV TEMP[61], STATE[63].xxxx; 61: MOV TEMP[62], STATE[64].wwww; 62: MOV TEMP[63], STATE[64].xxxx; 63: MOV TEMP[64], STATE[64].yyyy; 64: MOV TEMP[65], STATE[64].zzzz; 65: MOV TEMP[66], STATE[65]; 66: MOV TEMP[67], STATE[66]; 67: MOV TEMP[68], STATE[67]; 68: MOV TEMP[69], STATE[68]; 69: MOV TEMP[70], STATE[69]; 70: MOV TEMP[71], STATE[70]; 71: MOV TEMP[72], STATE[70].wwww; 72: MOV TEMP[73], STATE[71].xxxx; 73: MOV TEMP[74], STATE[72].wwww; 74: MOV TEMP[75], STATE[72].xxxx; 75: MOV TEMP[76], STATE[72].yyyy; 76: MOV TEMP[77], STATE[72].zzzz; 77: MOV TEMP[78], STATE[73]; 78: MOV TEMP[79], STATE[74]; 79: MOV TEMP[80], STATE[75]; 80: MOV TEMP[81], STATE[76]; 81: MOV TEMP[82], STATE[77]; 82: MOV TEMP[83], STATE[78]; 83: MOV TEMP[84], STATE[78].wwww; 84: MOV TEMP[85], STATE[79].xxxx; 85: MOV TEMP[86], STATE[80].wwww; 86: MOV TEMP[87], STATE[80].xxxx; 87: MOV TEMP[88], STATE[80].yyyy; 88: MOV TEMP[89], STATE[80].zzzz; 89: MOV TEMP[90], STATE[81]; 90: MOV TEMP[91], STATE[82]; 91: MOV TEMP[92], STATE[83]; 92: MOV TEMP[93], STATE[84]; 93: MOV TEMP[94], STATE[85]; 94: MOV TEMP[95], STATE[86]; 95: MOV TEMP[96], STATE[86].wwww; 96: MOV TEMP[97], STATE[87].xxxx; 97: MOV TEMP[98], STATE[88].wwww; 98: MOV TEMP[99], STATE[88].xxxx; 99: MOV TEMP[100], STATE[88].yyyy; 100: MOV TEMP[101], STATE[88].zzzz; 101: (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccecbf0c40) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x7fccecbca820) )) MUL TEMP[102], STATE[9], INPUT[0].xxxx; 102: (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccecbf0c40) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x7fccecbca820) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccecbf0c40) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x7fccecbca820) )) ) MAD TEMP[103], STATE[10], INPUT[0].yyyy, TEMP[102]; 103: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccecbf0c40) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x7fccecbca820) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccecbf0c40) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x7fccecbca820) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccecbf0c40) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x7fccecbca820) )) ) MAD TEMP[104], STATE[11], INPUT[0].zzzz, TEMP[103]; 104: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccecbf0c40) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x7fccecbca820) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccecbf0c40) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x7fccecbca820) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccecbf0c40) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x7fccecbca820) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccecbf0c40) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x7fccecbca820) )) ) MAD TEMP[105], STATE[12], INPUT[0].wwww, TEMP[104]; 105: (assign (constant bool (1)) (xyzw) (var_ref flattening_tmp@0x7fccece15920) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccecbf0c40) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x7fccecbca820) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccecbf0c40) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x7fccecbca820) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccecbf0c40) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x7fccecbca820) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccecbf0c40) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x7fccecbca820) )) ) ) MOV TEMP[106], TEMP[105]; 106: (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fccecd59130) (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )) MOV TEMP[107].xyz, TEMP[106].xyzz; 107: (expression float dot (var_ref arg0@0x7fccecd59130) (var_ref arg0@0x7fccecd59130) ) DP3 TEMP[108].x, TEMP[107].xyzz, TEMP[107].xyzz; 108: (expression float rsq (expression float dot (var_ref arg0@0x7fccecd59130) (var_ref arg0@0x7fccecd59130) ) ) RSQ TEMP[109].x, TEMP[108].xxxx; 109: (expression vec3 * (var_ref arg0@0x7fccecd59130) (expression float rsq (expression float dot (var_ref arg0@0x7fccecd59130) (var_ref arg0@0x7fccecd59130) ) ) ) MUL TEMP[110].xyz, TEMP[107].xyzz, TEMP[109].xxxx; 110: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x7fccecd59080) (expression vec3 * (var_ref arg0@0x7fccecd59130) (expression float rsq (expression float dot (var_ref arg0@0x7fccecd59130) (var_ref arg0@0x7fccecd59130) ) ) ) ) MOV TEMP[111].xyz, TEMP[110].xyzz; 111: (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x7fccecbeb0a0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x7fccecbe4840) )) MUL TEMP[112].xyz, STATE[17].xyzz, INPUT[2].xxxx; 112: (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x7fccecbeb0a0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x7fccecbe4840) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x7fccecbeb0a0) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x7fccecbe4840) )) ) MAD TEMP[113], STATE[18].xyzz, INPUT[2].yyyy, TEMP[112].xyzz; 113: (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x7fccecbeb0a0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x7fccecbe4840) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x7fccecbeb0a0) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x7fccecbe4840) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x7fccecbeb0a0) (constant int (2)) ) (swiz z (var_ref gl_Normal@0x7fccecbe4840) )) ) MAD TEMP[114], STATE[19].xyzz, INPUT[2].zzzz, TEMP[113].xyzz; 114: (assign (constant bool (1)) (xyz) (var_ref flattening_tmp@0x7fccece15d80) (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x7fccecbeb0a0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x7fccecbe4840) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x7fccecbeb0a0) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x7fccecbe4840) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x7fccecbeb0a0) (constant int (2)) ) (swiz z (var_ref gl_Normal@0x7fccecbe4840) )) ) ) MOV TEMP[115].xyz, TEMP[114].xyzz; 115: (expression float dot (var_ref flattening_tmp@0x7fccece15d80) (var_ref flattening_tmp@0x7fccece15d80) ) DP3 TEMP[116].x, TEMP[115].xyzz, TEMP[115].xyzz; 116: (expression float rsq (expression float dot (var_ref flattening_tmp@0x7fccece15d80) (var_ref flattening_tmp@0x7fccece15d80) ) ) RSQ TEMP[117].x, TEMP[116].xxxx; 117: (expression vec3 * (var_ref flattening_tmp@0x7fccece15d80) (expression float rsq (expression float dot (var_ref flattening_tmp@0x7fccece15d80) (var_ref flattening_tmp@0x7fccece15d80) ) ) ) MUL TEMP[118].xyz, TEMP[115].xyzz, TEMP[117].xxxx; 118: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x7fccecd599e0) (expression vec3 * (var_ref flattening_tmp@0x7fccece15d80) (expression float rsq (expression float dot (var_ref flattening_tmp@0x7fccece15d80) (var_ref flattening_tmp@0x7fccece15d80) ) ) ) ) MOV TEMP[119].xyz, TEMP[118].xyzz; 119: (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x7fccecbcaf10) (constant int (0)) ) (var_ref gl_MultiTexCoord0@0x7fccecbcf8c0) ) MOV OUTPUT[4], INPUT[8]; 120: (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) DP3 TEMP[120].x, TEMP[119].xyzz, TEMP[111].xyzz; 121: (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) MUL TEMP[121].xyz, TEMP[120].xxxx, TEMP[119].xyzz; 122: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) MUL TEMP[122].xyz, CONST[96].xxxx, TEMP[121].xyzz; 123: (expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ADD TEMP[124].xyz, TEMP[111].xyzz, TEMP[122].-x-y-z-z; 124: (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x7fccecbcaf10) (constant int (1)) ) (swiz xyz (expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) )) MOV OUTPUT[5].xyz, TEMP[124].xyzz; 125: (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x7fccecbcaf10) (constant int (2)) ) (swiz xyz (var_ref _ret_val@0x7fccecd599e0) )) MOV OUTPUT[6].xyz, TEMP[119].xyzz; 126: (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x7fccecbd9250) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) emission) ) ADD TEMP[126], STATE[90], TEMP[1]; 127: (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x7fccecbd9250) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) emission) ) (record_ref (var_ref gl_FrontLightModelProduct@0x7fccecbd0680) sceneColor) ) ADD TEMP[127], TEMP[126], STATE[89]; 128: (expression vec4 + (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x7fccecbd9250) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) emission) ) (record_ref (var_ref gl_FrontLightModelProduct@0x7fccecbd0680) sceneColor) ) (expression vec4 * (expression float i2f (array_ref (var_ref light_enabled@0x7fccecb24320) (constant int (1)) ) ) (record_ref (array_ref (var_ref gl_FrontLightProduct@0x7fccecbd9250) (constant int (1)) ) ambient) ) ) MAD TEMP[128], UNIFORM[2].xxxx, STATE[93], TEMP[127]; 129: (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecc82df0) (expression vec4 + (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x7fccecbd9250) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) emission) ) (record_ref (var_ref gl_FrontLightModelProduct@0x7fccecbd0680) sceneColor) ) (expression vec4 * (expression float i2f (array_ref (var_ref light_enabled@0x7fccecb24320) (constant int (1)) ) ) (record_ref (array_ref (var_ref gl_FrontLightProduct@0x7fccecbd9250) (constant int (1)) ) ambient) ) ) ) MOV TEMP[129], TEMP[128]; 130: (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecc82cb0) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) MOV TEMP[130], CONST[97]; 131: (expression bool != (array_ref (var_ref light_enabled@0x7fccecb24320) (constant int (0)) ) (constant int (0)) ) SNE.C TEMP[131].x, UNIFORM[1].xxxx, CONST[97].xxxx; 132: IF (NE.xxxx); # (if false, goto 186); 133: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecd5e370) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (0)) ) position) ) MOV TEMP[132], TEMP[9]; 134: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecd5e370) )) MUL TEMP[133].xyz, TEMP[106].xyzz, TEMP[132].wwww; 135: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecd5e370) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecd5e370) )) ) ) ADD TEMP[135].xyz, TEMP[132].xyzz, TEMP[133].-x-y-z-z; 136: (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecd5e230) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecd5e370) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecd5e370) )) ) ) )) MOV TEMP[136].xyz, TEMP[135].xyzz; 137: (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fccecd5f3e0) (swiz xyz (var_ref rv@0x7fccecd5e230) )) MOV TEMP[137].xyz, TEMP[136].xyzz; 138: (expression float dot (var_ref arg0@0x7fccecd5f3e0) (var_ref arg0@0x7fccecd5f3e0) ) DP3 TEMP[138].x, TEMP[137].xyzz, TEMP[137].xyzz; 139: (expression float sqrt (expression float dot (var_ref arg0@0x7fccecd5f3e0) (var_ref arg0@0x7fccecd5f3e0) ) ) RSQ TEMP[139].x, TEMP[138].xxxx; 140: MUL TEMP[139].x, TEMP[139].xxxx, TEMP[138].xxxx; 141: CMP TEMP[139].x, TEMP[138].-x-x-x-x, TEMP[139].xxxx, CONST[97].xxxx; 142: (assign (constant bool (1)) (w) (var_ref rv@0x7fccecd5e230) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x7fccecd5f3e0) (var_ref arg0@0x7fccecd5f3e0) ) ) )) MOV TEMP[136].w, TEMP[139].xxxx; 143: (expression float rcp (swiz w (var_ref rv@0x7fccecd5e230) )) RCP TEMP[140].x, TEMP[136].wwww; 144: (expression vec3 * (swiz xyz (var_ref rv@0x7fccecd5e230) )(expression float rcp (swiz w (var_ref rv@0x7fccecd5e230) )) ) MUL TEMP[141].xyz, TEMP[136].xyzz, TEMP[140].xxxx; 145: (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecd5e230) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x7fccecd5e230) )(expression float rcp (swiz w (var_ref rv@0x7fccecd5e230) )) ) )) MOV TEMP[136].xyz, TEMP[141].xyzz; 146: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecd60570) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[142].x, CONST[98]; 147: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecd60570) (swiz www (var_ref rv@0x7fccecd5e230) )) MOV TEMP[142].y, TEMP[136].wwww; 148: (expression float * (swiz w (var_ref rv@0x7fccecd5e230) )(swiz w (var_ref rv@0x7fccecd5e230) )) MUL TEMP[143].x, TEMP[136].wwww, TEMP[136].wwww; 149: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecd60570) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fccecd5e230) )(swiz w (var_ref rv@0x7fccecd5e230) )) )) MOV TEMP[142].z, TEMP[143].xxxx; 150: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecd60fc0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (0)) ) constantAttenuation) )) MOV TEMP[144].x, TEMP[15].xxxx; 151: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecd60fc0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (0)) ) linearAttenuation) )) MOV TEMP[144].y, TEMP[16].xxxx; 152: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecd60fc0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (0)) ) quadraticAttenuation) )) MOV TEMP[144].z, TEMP[17].xxxx; 153: (expression float dot (var_ref vec_ctor@0x7fccecd60570) (var_ref vec_ctor@0x7fccecd60fc0) ) DP3 TEMP[145].x, TEMP[142].xyzz, TEMP[144].xyzz; 154: (assign (constant bool (1)) (w) (var_ref rv@0x7fccecd5e230) (swiz xxxx (expression float dot (var_ref vec_ctor@0x7fccecd60570) (var_ref vec_ctor@0x7fccecd60fc0) ) )) MOV TEMP[136].w, TEMP[145].xxxx; 155: (expression float rcp (swiz w (var_ref rv@0x7fccecd5e230) )) RCP TEMP[146].x, TEMP[136].wwww; 156: (assign (constant bool (1)) (w) (var_ref rv@0x7fccecd5e230) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fccecd5e230) )) )) MOV TEMP[136].w, TEMP[146].xxxx; 157: (expression float dot (swiz xyz (var_ref rv@0x7fccecd5e230) )(var_ref _ret_val@0x7fccecd599e0) ) DP3 TEMP[147].x, TEMP[136].xyzz, TEMP[119].xyzz; 158: (assign (constant bool (1)) (x) (var_ref _ret_val@0x7fccecd655c0) (expression float dot (swiz xyz (var_ref rv@0x7fccecd5e230) )(var_ref _ret_val@0x7fccecd599e0) ) ) MOV TEMP[148], TEMP[147].xxxx; 159: (expression float * (var_ref _ret_val@0x7fccecd655c0) (constant float (4.000000)) ) MUL TEMP[149].x, TEMP[148].xxxx, CONST[96].yyyy; 160: (expression float min (expression float * (var_ref _ret_val@0x7fccecd655c0) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[150].x, TEMP[149].xxxx, CONST[98].xxxx; 161: (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fccecd655c0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[151].x, TEMP[150].xxxx, CONST[97].xxxx; 162: (assign (constant bool (1)) (x) (var_ref t@0x7fccecd6e080) (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fccecd655c0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[152], TEMP[151].xxxx; 163: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecd655c0) ) MAX TEMP[153].x, CONST[97].xxxx, TEMP[148].xxxx; 164: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecd655c0) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (0)) ) diffuse) ) MUL TEMP[154], TEMP[153].xxxx, TEMP[7]; 165: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (0)) ) ambient) ) MUL TEMP[155], TEMP[2], TEMP[6]; 166: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (0)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecd655c0) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (0)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) MAD TEMP[156], TEMP[154], TEMP[3], TEMP[155]; 167: (expression vec4 + (var_ref pc@0x7fccecc82df0) (expression vec4 * (swiz w (var_ref rv@0x7fccecd5e230) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (0)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecd655c0) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (0)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) ) ) MAD TEMP[157], TEMP[136].wwww, TEMP[156], TEMP[129]; 168: (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecc82df0) (expression vec4 + (var_ref pc@0x7fccecc82df0) (expression vec4 * (swiz w (var_ref rv@0x7fccecd5e230) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (0)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecd655c0) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (0)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) ) ) ) MOV TEMP[129], TEMP[157]; 169: (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) DP3 TEMP[158].x, TEMP[119].xyzz, TEMP[111].xyzz; 170: (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) MUL TEMP[159].xyz, TEMP[158].xxxx, TEMP[119].xyzz; 171: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) MUL TEMP[160].xyz, CONST[96].xxxx, TEMP[159].xyzz; 172: (expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ADD TEMP[162].xyz, TEMP[111].xyzz, TEMP[160].-x-y-z-z; 173: (expression float dot (swiz xyz (var_ref rv@0x7fccecd5e230) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) DP3 TEMP[163].x, TEMP[136].xyzz, TEMP[162].xyzz; 174: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd5e230) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) MAX TEMP[164].x, CONST[97].xxxx, TEMP[163].xxxx; 175: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) MAX TEMP[165].x, CONST[98].xxxx, TEMP[5].xxxx; 176: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd5e230) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) POW TEMP[166].x, TEMP[164].xxxx, TEMP[165].xxxx; 177: (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd6e080) ) MUL TEMP[167].x, CONST[96].xxxx, TEMP[152].xxxx; 178: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd6e080) ) ) ) ADD TEMP[169].x, CONST[96].zzzz, TEMP[167].-x-x-x-x; 179: (expression float * (var_ref t@0x7fccecd6e080) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd6e080) ) ) ) ) MUL TEMP[170].x, TEMP[152].xxxx, TEMP[169].xxxx; 180: (expression float * (var_ref t@0x7fccecd6e080) (expression float * (var_ref t@0x7fccecd6e080) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd6e080) ) ) ) ) ) MUL TEMP[171].x, TEMP[152].xxxx, TEMP[170].xxxx; 181: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd5e230) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecd6e080) (expression float * (var_ref t@0x7fccecd6e080) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd6e080) ) ) ) ) ) ) MUL TEMP[172].x, TEMP[166].xxxx, TEMP[171].xxxx; 182: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd5e230) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecd6e080) (expression float * (var_ref t@0x7fccecd6e080) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd6e080) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (0)) ) specular) ) MUL TEMP[173], TEMP[172].xxxx, TEMP[8]; 183: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd5e230) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecd6e080) (expression float * (var_ref t@0x7fccecd6e080) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd6e080) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (0)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) MUL TEMP[174], TEMP[173], TEMP[4]; 184: (expression vec4 * (swiz w (var_ref rv@0x7fccecd5e230) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd5e230) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecd6e080) (expression float * (var_ref t@0x7fccecd6e080) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd6e080) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (0)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) ) MUL TEMP[175], TEMP[136].wwww, TEMP[174]; 185: (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecc82cb0) (expression vec4 * (swiz w (var_ref rv@0x7fccecd5e230) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd5e230) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecd6e080) (expression float * (var_ref t@0x7fccecd6e080) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd6e080) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (0)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) ) ) MOV TEMP[130], TEMP[175]; 186: (expression bool != (array_ref (var_ref light_enabled@0x7fccecb24320) (constant int (0)) ) (constant int (0)) ) ENDIF; 187: (expression bool != (array_ref (var_ref light_enabled@0x7fccecb24320) (constant int (1)) ) (constant int (0)) ) SNE.C TEMP[176].x, UNIFORM[2].xxxx, CONST[97].xxxx; 188: IF (NE.xxxx); # (if false, goto 242); 189: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecd72510) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (1)) ) position) ) MOV TEMP[177], TEMP[21]; 190: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecd72510) )) MUL TEMP[178].xyz, TEMP[106].xyzz, TEMP[177].wwww; 191: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecd72510) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecd72510) )) ) ) ADD TEMP[180].xyz, TEMP[177].xyzz, TEMP[178].-x-y-z-z; 192: (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecd72400) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecd72510) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecd72510) )) ) ) )) MOV TEMP[181].xyz, TEMP[180].xyzz; 193: (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fccecd734c0) (swiz xyz (var_ref rv@0x7fccecd72400) )) MOV TEMP[182].xyz, TEMP[181].xyzz; 194: (expression float dot (var_ref arg0@0x7fccecd734c0) (var_ref arg0@0x7fccecd734c0) ) DP3 TEMP[183].x, TEMP[182].xyzz, TEMP[182].xyzz; 195: (expression float sqrt (expression float dot (var_ref arg0@0x7fccecd734c0) (var_ref arg0@0x7fccecd734c0) ) ) RSQ TEMP[184].x, TEMP[183].xxxx; 196: MUL TEMP[184].x, TEMP[184].xxxx, TEMP[183].xxxx; 197: CMP TEMP[184].x, TEMP[183].-x-x-x-x, TEMP[184].xxxx, CONST[97].xxxx; 198: (assign (constant bool (1)) (w) (var_ref rv@0x7fccecd72400) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x7fccecd734c0) (var_ref arg0@0x7fccecd734c0) ) ) )) MOV TEMP[181].w, TEMP[184].xxxx; 199: (expression float rcp (swiz w (var_ref rv@0x7fccecd72400) )) RCP TEMP[185].x, TEMP[181].wwww; 200: (expression vec3 * (swiz xyz (var_ref rv@0x7fccecd72400) )(expression float rcp (swiz w (var_ref rv@0x7fccecd72400) )) ) MUL TEMP[186].xyz, TEMP[181].xyzz, TEMP[185].xxxx; 201: (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecd72400) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x7fccecd72400) )(expression float rcp (swiz w (var_ref rv@0x7fccecd72400) )) ) )) MOV TEMP[181].xyz, TEMP[186].xyzz; 202: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecd74620) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[187].x, CONST[98].xyzz; 203: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecd74620) (swiz www (var_ref rv@0x7fccecd72400) )) MOV TEMP[187].y, TEMP[181].wwww; 204: (expression float * (swiz w (var_ref rv@0x7fccecd72400) )(swiz w (var_ref rv@0x7fccecd72400) )) MUL TEMP[188].x, TEMP[181].wwww, TEMP[181].wwww; 205: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecd74620) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fccecd72400) )(swiz w (var_ref rv@0x7fccecd72400) )) )) MOV TEMP[187].z, TEMP[188].xxxx; 206: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecd75040) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (1)) ) constantAttenuation) )) MOV TEMP[189].x, TEMP[27].xxxx; 207: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecd75040) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (1)) ) linearAttenuation) )) MOV TEMP[189].y, TEMP[28].xxxx; 208: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecd75040) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (1)) ) quadraticAttenuation) )) MOV TEMP[189].z, TEMP[29].xxxx; 209: (expression float dot (var_ref vec_ctor@0x7fccecd74620) (var_ref vec_ctor@0x7fccecd75040) ) DP3 TEMP[190].x, TEMP[187].xyzz, TEMP[189].xyzz; 210: (assign (constant bool (1)) (w) (var_ref rv@0x7fccecd72400) (swiz xxxx (expression float dot (var_ref vec_ctor@0x7fccecd74620) (var_ref vec_ctor@0x7fccecd75040) ) )) MOV TEMP[181].w, TEMP[190].xxxx; 211: (expression float rcp (swiz w (var_ref rv@0x7fccecd72400) )) RCP TEMP[191].x, TEMP[181].wwww; 212: (assign (constant bool (1)) (w) (var_ref rv@0x7fccecd72400) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fccecd72400) )) )) MOV TEMP[181].w, TEMP[191].xxxx; 213: (expression float dot (swiz xyz (var_ref rv@0x7fccecd72400) )(var_ref _ret_val@0x7fccecd599e0) ) DP3 TEMP[192].x, TEMP[181].xyzz, TEMP[119].xyzz; 214: (assign (constant bool (1)) (x) (var_ref _ret_val@0x7fccecd793d0) (expression float dot (swiz xyz (var_ref rv@0x7fccecd72400) )(var_ref _ret_val@0x7fccecd599e0) ) ) MOV TEMP[193], TEMP[192].xxxx; 215: (expression float * (var_ref _ret_val@0x7fccecd793d0) (constant float (4.000000)) ) MUL TEMP[194].x, TEMP[193].xxxx, CONST[96].yyyy; 216: (expression float min (expression float * (var_ref _ret_val@0x7fccecd793d0) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[195].x, TEMP[194].xxxx, CONST[98].xxxx; 217: (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fccecd793d0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[196].x, TEMP[195].xxxx, CONST[97].xxxx; 218: (assign (constant bool (1)) (x) (var_ref t@0x7fccecd81770) (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fccecd793d0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[197], TEMP[196].xxxx; 219: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecd793d0) ) MAX TEMP[198].x, CONST[97].xxxx, TEMP[193].xxxx; 220: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecd793d0) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (1)) ) diffuse) ) MUL TEMP[199], TEMP[198].xxxx, TEMP[19]; 221: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (1)) ) ambient) ) MUL TEMP[200], TEMP[2], TEMP[18]; 222: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (1)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecd793d0) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (1)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) MAD TEMP[201], TEMP[199], TEMP[3], TEMP[200]; 223: (expression vec4 + (var_ref pc@0x7fccecc82df0) (expression vec4 * (swiz w (var_ref rv@0x7fccecd72400) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (1)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecd793d0) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (1)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) ) ) MAD TEMP[202], TEMP[181].wwww, TEMP[201], TEMP[129]; 224: (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecc82df0) (expression vec4 + (var_ref pc@0x7fccecc82df0) (expression vec4 * (swiz w (var_ref rv@0x7fccecd72400) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (1)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecd793d0) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (1)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) ) ) ) MOV TEMP[129], TEMP[202]; 225: (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) DP3 TEMP[203].x, TEMP[119].xyzz, TEMP[111].xyzz; 226: (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) MUL TEMP[204].xyz, TEMP[203].xxxx, TEMP[119].xyzz; 227: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) MUL TEMP[205].xyz, CONST[96].xxxx, TEMP[204].xyzz; 228: (expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ADD TEMP[207].xyz, TEMP[111].xyzz, TEMP[205].-x-y-z-z; 229: (expression float dot (swiz xyz (var_ref rv@0x7fccecd72400) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) DP3 TEMP[208].x, TEMP[181].xyzz, TEMP[207].xyzz; 230: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd72400) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) MAX TEMP[209].x, CONST[97].xxxx, TEMP[208].xxxx; 231: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) MAX TEMP[210].x, CONST[98].xxxx, TEMP[5].xxxx; 232: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd72400) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) POW TEMP[211].x, TEMP[209].xxxx, TEMP[210].xxxx; 233: (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd81770) ) MUL TEMP[212].x, CONST[96].xxxx, TEMP[197].xxxx; 234: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd81770) ) ) ) ADD TEMP[214].x, CONST[96].zzzz, TEMP[212].-x-x-x-x; 235: (expression float * (var_ref t@0x7fccecd81770) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd81770) ) ) ) ) MUL TEMP[215].x, TEMP[197].xxxx, TEMP[214].xxxx; 236: (expression float * (var_ref t@0x7fccecd81770) (expression float * (var_ref t@0x7fccecd81770) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd81770) ) ) ) ) ) MUL TEMP[216].x, TEMP[197].xxxx, TEMP[215].xxxx; 237: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd72400) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecd81770) (expression float * (var_ref t@0x7fccecd81770) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd81770) ) ) ) ) ) ) MUL TEMP[217].x, TEMP[211].xxxx, TEMP[216].xxxx; 238: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd72400) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecd81770) (expression float * (var_ref t@0x7fccecd81770) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd81770) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (1)) ) specular) ) MUL TEMP[218], TEMP[217].xxxx, TEMP[20]; 239: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd72400) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecd81770) (expression float * (var_ref t@0x7fccecd81770) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd81770) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (1)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) MUL TEMP[219], TEMP[218], TEMP[4]; 240: (expression vec4 + (var_ref sc@0x7fccecc82cb0) (expression vec4 * (swiz w (var_ref rv@0x7fccecd72400) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd72400) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecd81770) (expression float * (var_ref t@0x7fccecd81770) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd81770) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (1)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) ) ) MAD TEMP[220], TEMP[181].wwww, TEMP[219], TEMP[130]; 241: (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecc82cb0) (expression vec4 + (var_ref sc@0x7fccecc82cb0) (expression vec4 * (swiz w (var_ref rv@0x7fccecd72400) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd72400) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecd81770) (expression float * (var_ref t@0x7fccecd81770) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd81770) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (1)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) ) ) ) MOV TEMP[130], TEMP[220]; 242: (expression bool != (array_ref (var_ref light_enabled@0x7fccecb24320) (constant int (1)) ) (constant int (0)) ) ENDIF; 243: (expression bool >= (var_ref max_light_enabled@0x7fccecb26910) (constant int (2)) ) SGE.C TEMP[221].x, UNIFORM[0].xxxx, CONST[96].xxxx; 244: IF (NE.xxxx); # (if false, goto 581); 245: (expression bool != (array_ref (var_ref light_enabled@0x7fccecb24320) (constant int (2)) ) (constant int (0)) ) SNE.C TEMP[222].x, UNIFORM[3].xxxx, CONST[97].xxxx; 246: IF (NE.xxxx); # (if false, goto 300); 247: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecd85bd0) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (2)) ) position) ) MOV TEMP[223], TEMP[33]; 248: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecd85bd0) )) MUL TEMP[224].xyz, TEMP[106].xyzz, TEMP[223].wwww; 249: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecd85bd0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecd85bd0) )) ) ) ADD TEMP[226].xyz, TEMP[223].xyzz, TEMP[224].-x-y-z-z; 250: (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecd85ac0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecd85bd0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecd85bd0) )) ) ) )) MOV TEMP[227].xyz, TEMP[226].xyzz; 251: (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fccecd86b80) (swiz xyz (var_ref rv@0x7fccecd85ac0) )) MOV TEMP[228].xyz, TEMP[227].xyzz; 252: (expression float dot (var_ref arg0@0x7fccecd86b80) (var_ref arg0@0x7fccecd86b80) ) DP3 TEMP[229].x, TEMP[228].xyzz, TEMP[228].xyzz; 253: (expression float sqrt (expression float dot (var_ref arg0@0x7fccecd86b80) (var_ref arg0@0x7fccecd86b80) ) ) RSQ TEMP[230].x, TEMP[229].xxxx; 254: MUL TEMP[230].x, TEMP[230].xxxx, TEMP[229].xxxx; 255: CMP TEMP[230].x, TEMP[229].-x-x-x-x, TEMP[230].xxxx, CONST[97].xxxx; 256: (assign (constant bool (1)) (w) (var_ref rv@0x7fccecd85ac0) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x7fccecd86b80) (var_ref arg0@0x7fccecd86b80) ) ) )) MOV TEMP[227].w, TEMP[230].xxxx; 257: (expression float rcp (swiz w (var_ref rv@0x7fccecd85ac0) )) RCP TEMP[231].x, TEMP[227].wwww; 258: (expression vec3 * (swiz xyz (var_ref rv@0x7fccecd85ac0) )(expression float rcp (swiz w (var_ref rv@0x7fccecd85ac0) )) ) MUL TEMP[232].xyz, TEMP[227].xyzz, TEMP[231].xxxx; 259: (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecd85ac0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x7fccecd85ac0) )(expression float rcp (swiz w (var_ref rv@0x7fccecd85ac0) )) ) )) MOV TEMP[227].xyz, TEMP[232].xyzz; 260: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecd87ce0) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[233].x, CONST[98].xyzz; 261: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecd87ce0) (swiz www (var_ref rv@0x7fccecd85ac0) )) MOV TEMP[233].y, TEMP[227].wwww; 262: (expression float * (swiz w (var_ref rv@0x7fccecd85ac0) )(swiz w (var_ref rv@0x7fccecd85ac0) )) MUL TEMP[234].x, TEMP[227].wwww, TEMP[227].wwww; 263: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecd87ce0) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fccecd85ac0) )(swiz w (var_ref rv@0x7fccecd85ac0) )) )) MOV TEMP[233].z, TEMP[234].xxxx; 264: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecd88700) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (2)) ) constantAttenuation) )) MOV TEMP[235].x, TEMP[39].xxxx; 265: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecd88700) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (2)) ) linearAttenuation) )) MOV TEMP[235].y, TEMP[40].xxxx; 266: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecd88700) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (2)) ) quadraticAttenuation) )) MOV TEMP[235].z, TEMP[41].xxxx; 267: (expression float dot (var_ref vec_ctor@0x7fccecd87ce0) (var_ref vec_ctor@0x7fccecd88700) ) DP3 TEMP[236].x, TEMP[233].xyzz, TEMP[235].xyzz; 268: (assign (constant bool (1)) (w) (var_ref rv@0x7fccecd85ac0) (swiz xxxx (expression float dot (var_ref vec_ctor@0x7fccecd87ce0) (var_ref vec_ctor@0x7fccecd88700) ) )) MOV TEMP[227].w, TEMP[236].xxxx; 269: (expression float rcp (swiz w (var_ref rv@0x7fccecd85ac0) )) RCP TEMP[237].x, TEMP[227].wwww; 270: (assign (constant bool (1)) (w) (var_ref rv@0x7fccecd85ac0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fccecd85ac0) )) )) MOV TEMP[227].w, TEMP[237].xxxx; 271: (expression float dot (swiz xyz (var_ref rv@0x7fccecd85ac0) )(var_ref _ret_val@0x7fccecd599e0) ) DP3 TEMP[238].x, TEMP[227].xyzz, TEMP[119].xyzz; 272: (assign (constant bool (1)) (x) (var_ref _ret_val@0x7fccecd8ca90) (expression float dot (swiz xyz (var_ref rv@0x7fccecd85ac0) )(var_ref _ret_val@0x7fccecd599e0) ) ) MOV TEMP[239], TEMP[238].xxxx; 273: (expression float * (var_ref _ret_val@0x7fccecd8ca90) (constant float (4.000000)) ) MUL TEMP[240].x, TEMP[239].xxxx, CONST[96].yyyy; 274: (expression float min (expression float * (var_ref _ret_val@0x7fccecd8ca90) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[241].x, TEMP[240].xxxx, CONST[98].xxxx; 275: (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fccecd8ca90) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[242].x, TEMP[241].xxxx, CONST[97].xxxx; 276: (assign (constant bool (1)) (x) (var_ref t@0x7fccecd94e30) (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fccecd8ca90) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[243], TEMP[242].xxxx; 277: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecd8ca90) ) MAX TEMP[244].x, CONST[97].xxxx, TEMP[239].xxxx; 278: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecd8ca90) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (2)) ) diffuse) ) MUL TEMP[245], TEMP[244].xxxx, TEMP[31]; 279: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (2)) ) ambient) ) MUL TEMP[246], TEMP[2], TEMP[30]; 280: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecd8ca90) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) MAD TEMP[247], TEMP[245], TEMP[3], TEMP[246]; 281: (expression vec4 + (var_ref pc@0x7fccecc82df0) (expression vec4 * (swiz w (var_ref rv@0x7fccecd85ac0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecd8ca90) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) ) ) MAD TEMP[248], TEMP[227].wwww, TEMP[247], TEMP[129]; 282: (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecc82df0) (expression vec4 + (var_ref pc@0x7fccecc82df0) (expression vec4 * (swiz w (var_ref rv@0x7fccecd85ac0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecd8ca90) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) ) ) ) MOV TEMP[129], TEMP[248]; 283: (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) DP3 TEMP[249].x, TEMP[119].xyzz, TEMP[111].xyzz; 284: (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) MUL TEMP[250].xyz, TEMP[249].xxxx, TEMP[119].xyzz; 285: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) MUL TEMP[251].xyz, CONST[96].xxxx, TEMP[250].xyzz; 286: (expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ADD TEMP[253].xyz, TEMP[111].xyzz, TEMP[251].-x-y-z-z; 287: (expression float dot (swiz xyz (var_ref rv@0x7fccecd85ac0) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) DP3 TEMP[254].x, TEMP[227].xyzz, TEMP[253].xyzz; 288: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd85ac0) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) MAX TEMP[255].x, CONST[97].xxxx, TEMP[254].xxxx; 289: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) MAX TEMP[256].x, CONST[98].xxxx, TEMP[5].xxxx; 290: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd85ac0) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) POW TEMP[257].x, TEMP[255].xxxx, TEMP[256].xxxx; 291: (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd94e30) ) MUL TEMP[258].x, CONST[96].xxxx, TEMP[243].xxxx; 292: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd94e30) ) ) ) ADD TEMP[260].x, CONST[96].zzzz, TEMP[258].-x-x-x-x; 293: (expression float * (var_ref t@0x7fccecd94e30) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd94e30) ) ) ) ) MUL TEMP[261].x, TEMP[243].xxxx, TEMP[260].xxxx; 294: (expression float * (var_ref t@0x7fccecd94e30) (expression float * (var_ref t@0x7fccecd94e30) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd94e30) ) ) ) ) ) MUL TEMP[262].x, TEMP[243].xxxx, TEMP[261].xxxx; 295: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd85ac0) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecd94e30) (expression float * (var_ref t@0x7fccecd94e30) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd94e30) ) ) ) ) ) ) MUL TEMP[263].x, TEMP[257].xxxx, TEMP[262].xxxx; 296: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd85ac0) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecd94e30) (expression float * (var_ref t@0x7fccecd94e30) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd94e30) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (2)) ) specular) ) MUL TEMP[264], TEMP[263].xxxx, TEMP[32]; 297: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd85ac0) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecd94e30) (expression float * (var_ref t@0x7fccecd94e30) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd94e30) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) MUL TEMP[265], TEMP[264], TEMP[4]; 298: (expression vec4 + (var_ref sc@0x7fccecc82cb0) (expression vec4 * (swiz w (var_ref rv@0x7fccecd85ac0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd85ac0) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecd94e30) (expression float * (var_ref t@0x7fccecd94e30) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd94e30) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) ) ) MAD TEMP[266], TEMP[227].wwww, TEMP[265], TEMP[130]; 299: (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecc82cb0) (expression vec4 + (var_ref sc@0x7fccecc82cb0) (expression vec4 * (swiz w (var_ref rv@0x7fccecd85ac0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd85ac0) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecd94e30) (expression float * (var_ref t@0x7fccecd94e30) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecd94e30) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) ) ) ) MOV TEMP[130], TEMP[266]; 300: (expression bool != (array_ref (var_ref light_enabled@0x7fccecb24320) (constant int (2)) ) (constant int (0)) ) ENDIF; 301: (expression bool != (array_ref (var_ref light_enabled@0x7fccecb24320) (constant int (3)) ) (constant int (0)) ) SNE.C TEMP[267].x, UNIFORM[4].xxxx, CONST[97].xxxx; 302: IF (NE.xxxx); # (if false, goto 356); 303: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecd99290) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (3)) ) position) ) MOV TEMP[268], TEMP[45]; 304: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecd99290) )) MUL TEMP[269].xyz, TEMP[106].xyzz, TEMP[268].wwww; 305: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecd99290) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecd99290) )) ) ) ADD TEMP[271].xyz, TEMP[268].xyzz, TEMP[269].-x-y-z-z; 306: (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecd99180) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecd99290) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecd99290) )) ) ) )) MOV TEMP[272].xyz, TEMP[271].xyzz; 307: (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fccecd9a240) (swiz xyz (var_ref rv@0x7fccecd99180) )) MOV TEMP[273].xyz, TEMP[272].xyzz; 308: (expression float dot (var_ref arg0@0x7fccecd9a240) (var_ref arg0@0x7fccecd9a240) ) DP3 TEMP[274].x, TEMP[273].xyzz, TEMP[273].xyzz; 309: (expression float sqrt (expression float dot (var_ref arg0@0x7fccecd9a240) (var_ref arg0@0x7fccecd9a240) ) ) RSQ TEMP[275].x, TEMP[274].xxxx; 310: MUL TEMP[275].x, TEMP[275].xxxx, TEMP[274].xxxx; 311: CMP TEMP[275].x, TEMP[274].-x-x-x-x, TEMP[275].xxxx, CONST[97].xxxx; 312: (assign (constant bool (1)) (w) (var_ref rv@0x7fccecd99180) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x7fccecd9a240) (var_ref arg0@0x7fccecd9a240) ) ) )) MOV TEMP[272].w, TEMP[275].xxxx; 313: (expression float rcp (swiz w (var_ref rv@0x7fccecd99180) )) RCP TEMP[276].x, TEMP[272].wwww; 314: (expression vec3 * (swiz xyz (var_ref rv@0x7fccecd99180) )(expression float rcp (swiz w (var_ref rv@0x7fccecd99180) )) ) MUL TEMP[277].xyz, TEMP[272].xyzz, TEMP[276].xxxx; 315: (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecd99180) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x7fccecd99180) )(expression float rcp (swiz w (var_ref rv@0x7fccecd99180) )) ) )) MOV TEMP[272].xyz, TEMP[277].xyzz; 316: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecd9b3a0) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[278].x, CONST[98].xyzz; 317: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecd9b3a0) (swiz www (var_ref rv@0x7fccecd99180) )) MOV TEMP[278].y, TEMP[272].wwww; 318: (expression float * (swiz w (var_ref rv@0x7fccecd99180) )(swiz w (var_ref rv@0x7fccecd99180) )) MUL TEMP[279].x, TEMP[272].wwww, TEMP[272].wwww; 319: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecd9b3a0) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fccecd99180) )(swiz w (var_ref rv@0x7fccecd99180) )) )) MOV TEMP[278].z, TEMP[279].xxxx; 320: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecd9bdc0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (3)) ) constantAttenuation) )) MOV TEMP[280].x, TEMP[51].xxxx; 321: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecd9bdc0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (3)) ) linearAttenuation) )) MOV TEMP[280].y, TEMP[52].xxxx; 322: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecd9bdc0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (3)) ) quadraticAttenuation) )) MOV TEMP[280].z, TEMP[53].xxxx; 323: (expression float dot (var_ref vec_ctor@0x7fccecd9b3a0) (var_ref vec_ctor@0x7fccecd9bdc0) ) DP3 TEMP[281].x, TEMP[278].xyzz, TEMP[280].xyzz; 324: (assign (constant bool (1)) (w) (var_ref rv@0x7fccecd99180) (swiz xxxx (expression float dot (var_ref vec_ctor@0x7fccecd9b3a0) (var_ref vec_ctor@0x7fccecd9bdc0) ) )) MOV TEMP[272].w, TEMP[281].xxxx; 325: (expression float rcp (swiz w (var_ref rv@0x7fccecd99180) )) RCP TEMP[282].x, TEMP[272].wwww; 326: (assign (constant bool (1)) (w) (var_ref rv@0x7fccecd99180) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fccecd99180) )) )) MOV TEMP[272].w, TEMP[282].xxxx; 327: (expression float dot (swiz xyz (var_ref rv@0x7fccecd99180) )(var_ref _ret_val@0x7fccecd599e0) ) DP3 TEMP[283].x, TEMP[272].xyzz, TEMP[119].xyzz; 328: (assign (constant bool (1)) (x) (var_ref _ret_val@0x7fccecda0150) (expression float dot (swiz xyz (var_ref rv@0x7fccecd99180) )(var_ref _ret_val@0x7fccecd599e0) ) ) MOV TEMP[284], TEMP[283].xxxx; 329: (expression float * (var_ref _ret_val@0x7fccecda0150) (constant float (4.000000)) ) MUL TEMP[285].x, TEMP[284].xxxx, CONST[96].yyyy; 330: (expression float min (expression float * (var_ref _ret_val@0x7fccecda0150) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[286].x, TEMP[285].xxxx, CONST[98].xxxx; 331: (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fccecda0150) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[287].x, TEMP[286].xxxx, CONST[97].xxxx; 332: (assign (constant bool (1)) (x) (var_ref t@0x7fccecda84f0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fccecda0150) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[288], TEMP[287].xxxx; 333: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecda0150) ) MAX TEMP[289].x, CONST[97].xxxx, TEMP[284].xxxx; 334: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecda0150) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (3)) ) diffuse) ) MUL TEMP[290], TEMP[289].xxxx, TEMP[43]; 335: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (3)) ) ambient) ) MUL TEMP[291], TEMP[2], TEMP[42]; 336: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecda0150) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) MAD TEMP[292], TEMP[290], TEMP[3], TEMP[291]; 337: (expression vec4 + (var_ref pc@0x7fccecc82df0) (expression vec4 * (swiz w (var_ref rv@0x7fccecd99180) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecda0150) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) ) ) MAD TEMP[293], TEMP[272].wwww, TEMP[292], TEMP[129]; 338: (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecc82df0) (expression vec4 + (var_ref pc@0x7fccecc82df0) (expression vec4 * (swiz w (var_ref rv@0x7fccecd99180) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecda0150) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) ) ) ) MOV TEMP[129], TEMP[293]; 339: (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) DP3 TEMP[294].x, TEMP[119].xyzz, TEMP[111].xyzz; 340: (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) MUL TEMP[295].xyz, TEMP[294].xxxx, TEMP[119].xyzz; 341: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) MUL TEMP[296].xyz, CONST[96].xxxx, TEMP[295].xyzz; 342: (expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ADD TEMP[298].xyz, TEMP[111].xyzz, TEMP[296].-x-y-z-z; 343: (expression float dot (swiz xyz (var_ref rv@0x7fccecd99180) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) DP3 TEMP[299].x, TEMP[272].xyzz, TEMP[298].xyzz; 344: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd99180) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) MAX TEMP[300].x, CONST[97].xxxx, TEMP[299].xxxx; 345: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) MAX TEMP[301].x, CONST[98].xxxx, TEMP[5].xxxx; 346: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd99180) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) POW TEMP[302].x, TEMP[300].xxxx, TEMP[301].xxxx; 347: (expression float * (constant float (2.000000)) (var_ref t@0x7fccecda84f0) ) MUL TEMP[303].x, CONST[96].xxxx, TEMP[288].xxxx; 348: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecda84f0) ) ) ) ADD TEMP[305].x, CONST[96].zzzz, TEMP[303].-x-x-x-x; 349: (expression float * (var_ref t@0x7fccecda84f0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecda84f0) ) ) ) ) MUL TEMP[306].x, TEMP[288].xxxx, TEMP[305].xxxx; 350: (expression float * (var_ref t@0x7fccecda84f0) (expression float * (var_ref t@0x7fccecda84f0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecda84f0) ) ) ) ) ) MUL TEMP[307].x, TEMP[288].xxxx, TEMP[306].xxxx; 351: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd99180) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecda84f0) (expression float * (var_ref t@0x7fccecda84f0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecda84f0) ) ) ) ) ) ) MUL TEMP[308].x, TEMP[302].xxxx, TEMP[307].xxxx; 352: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd99180) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecda84f0) (expression float * (var_ref t@0x7fccecda84f0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecda84f0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (3)) ) specular) ) MUL TEMP[309], TEMP[308].xxxx, TEMP[44]; 353: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd99180) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecda84f0) (expression float * (var_ref t@0x7fccecda84f0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecda84f0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) MUL TEMP[310], TEMP[309], TEMP[4]; 354: (expression vec4 + (var_ref sc@0x7fccecc82cb0) (expression vec4 * (swiz w (var_ref rv@0x7fccecd99180) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd99180) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecda84f0) (expression float * (var_ref t@0x7fccecda84f0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecda84f0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) ) ) MAD TEMP[311], TEMP[272].wwww, TEMP[310], TEMP[130]; 355: (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecc82cb0) (expression vec4 + (var_ref sc@0x7fccecc82cb0) (expression vec4 * (swiz w (var_ref rv@0x7fccecd99180) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecd99180) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecda84f0) (expression float * (var_ref t@0x7fccecda84f0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecda84f0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) ) ) ) MOV TEMP[130], TEMP[311]; 356: (expression bool != (array_ref (var_ref light_enabled@0x7fccecb24320) (constant int (3)) ) (constant int (0)) ) ENDIF; 357: (expression bool != (array_ref (var_ref light_enabled@0x7fccecb24320) (constant int (4)) ) (constant int (0)) ) SNE.C TEMP[312].x, UNIFORM[5].xxxx, CONST[97].xxxx; 358: IF (NE.xxxx); # (if false, goto 412); 359: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecdac950) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (4)) ) position) ) MOV TEMP[313], TEMP[57]; 360: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecdac950) )) MUL TEMP[314].xyz, TEMP[106].xyzz, TEMP[313].wwww; 361: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecdac950) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecdac950) )) ) ) ADD TEMP[316].xyz, TEMP[313].xyzz, TEMP[314].-x-y-z-z; 362: (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecdac840) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecdac950) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecdac950) )) ) ) )) MOV TEMP[317].xyz, TEMP[316].xyzz; 363: (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fccecdad900) (swiz xyz (var_ref rv@0x7fccecdac840) )) MOV TEMP[318].xyz, TEMP[317].xyzz; 364: (expression float dot (var_ref arg0@0x7fccecdad900) (var_ref arg0@0x7fccecdad900) ) DP3 TEMP[319].x, TEMP[318].xyzz, TEMP[318].xyzz; 365: (expression float sqrt (expression float dot (var_ref arg0@0x7fccecdad900) (var_ref arg0@0x7fccecdad900) ) ) RSQ TEMP[320].x, TEMP[319].xxxx; 366: MUL TEMP[320].x, TEMP[320].xxxx, TEMP[319].xxxx; 367: CMP TEMP[320].x, TEMP[319].-x-x-x-x, TEMP[320].xxxx, CONST[97].xxxx; 368: (assign (constant bool (1)) (w) (var_ref rv@0x7fccecdac840) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x7fccecdad900) (var_ref arg0@0x7fccecdad900) ) ) )) MOV TEMP[317].w, TEMP[320].xxxx; 369: (expression float rcp (swiz w (var_ref rv@0x7fccecdac840) )) RCP TEMP[321].x, TEMP[317].wwww; 370: (expression vec3 * (swiz xyz (var_ref rv@0x7fccecdac840) )(expression float rcp (swiz w (var_ref rv@0x7fccecdac840) )) ) MUL TEMP[322].xyz, TEMP[317].xyzz, TEMP[321].xxxx; 371: (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecdac840) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x7fccecdac840) )(expression float rcp (swiz w (var_ref rv@0x7fccecdac840) )) ) )) MOV TEMP[317].xyz, TEMP[322].xyzz; 372: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecdaea60) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[323].x, CONST[98].xyzz; 373: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecdaea60) (swiz www (var_ref rv@0x7fccecdac840) )) MOV TEMP[323].y, TEMP[317].wwww; 374: (expression float * (swiz w (var_ref rv@0x7fccecdac840) )(swiz w (var_ref rv@0x7fccecdac840) )) MUL TEMP[324].x, TEMP[317].wwww, TEMP[317].wwww; 375: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecdaea60) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fccecdac840) )(swiz w (var_ref rv@0x7fccecdac840) )) )) MOV TEMP[323].z, TEMP[324].xxxx; 376: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecdaf480) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (4)) ) constantAttenuation) )) MOV TEMP[325].x, TEMP[63].xxxx; 377: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecdaf480) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (4)) ) linearAttenuation) )) MOV TEMP[325].y, TEMP[64].xxxx; 378: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecdaf480) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (4)) ) quadraticAttenuation) )) MOV TEMP[325].z, TEMP[65].xxxx; 379: (expression float dot (var_ref vec_ctor@0x7fccecdaea60) (var_ref vec_ctor@0x7fccecdaf480) ) DP3 TEMP[326].x, TEMP[323].xyzz, TEMP[325].xyzz; 380: (assign (constant bool (1)) (w) (var_ref rv@0x7fccecdac840) (swiz xxxx (expression float dot (var_ref vec_ctor@0x7fccecdaea60) (var_ref vec_ctor@0x7fccecdaf480) ) )) MOV TEMP[317].w, TEMP[326].xxxx; 381: (expression float rcp (swiz w (var_ref rv@0x7fccecdac840) )) RCP TEMP[327].x, TEMP[317].wwww; 382: (assign (constant bool (1)) (w) (var_ref rv@0x7fccecdac840) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fccecdac840) )) )) MOV TEMP[317].w, TEMP[327].xxxx; 383: (expression float dot (swiz xyz (var_ref rv@0x7fccecdac840) )(var_ref _ret_val@0x7fccecd599e0) ) DP3 TEMP[328].x, TEMP[317].xyzz, TEMP[119].xyzz; 384: (assign (constant bool (1)) (x) (var_ref _ret_val@0x7fccecdb3810) (expression float dot (swiz xyz (var_ref rv@0x7fccecdac840) )(var_ref _ret_val@0x7fccecd599e0) ) ) MOV TEMP[329], TEMP[328].xxxx; 385: (expression float * (var_ref _ret_val@0x7fccecdb3810) (constant float (4.000000)) ) MUL TEMP[330].x, TEMP[329].xxxx, CONST[96].yyyy; 386: (expression float min (expression float * (var_ref _ret_val@0x7fccecdb3810) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[331].x, TEMP[330].xxxx, CONST[98].xxxx; 387: (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fccecdb3810) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[332].x, TEMP[331].xxxx, CONST[97].xxxx; 388: (assign (constant bool (1)) (x) (var_ref t@0x7fccecdbbbb0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fccecdb3810) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[333], TEMP[332].xxxx; 389: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecdb3810) ) MAX TEMP[334].x, CONST[97].xxxx, TEMP[329].xxxx; 390: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecdb3810) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (4)) ) diffuse) ) MUL TEMP[335], TEMP[334].xxxx, TEMP[55]; 391: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (4)) ) ambient) ) MUL TEMP[336], TEMP[2], TEMP[54]; 392: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecdb3810) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) MAD TEMP[337], TEMP[335], TEMP[3], TEMP[336]; 393: (expression vec4 + (var_ref pc@0x7fccecc82df0) (expression vec4 * (swiz w (var_ref rv@0x7fccecdac840) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecdb3810) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) ) ) MAD TEMP[338], TEMP[317].wwww, TEMP[337], TEMP[129]; 394: (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecc82df0) (expression vec4 + (var_ref pc@0x7fccecc82df0) (expression vec4 * (swiz w (var_ref rv@0x7fccecdac840) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecdb3810) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) ) ) ) MOV TEMP[129], TEMP[338]; 395: (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) DP3 TEMP[339].x, TEMP[119].xyzz, TEMP[111].xyzz; 396: (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) MUL TEMP[340].xyz, TEMP[339].xxxx, TEMP[119].xyzz; 397: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) MUL TEMP[341].xyz, CONST[96].xxxx, TEMP[340].xyzz; 398: (expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ADD TEMP[343].xyz, TEMP[111].xyzz, TEMP[341].-x-y-z-z; 399: (expression float dot (swiz xyz (var_ref rv@0x7fccecdac840) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) DP3 TEMP[344].x, TEMP[317].xyzz, TEMP[343].xyzz; 400: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecdac840) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) MAX TEMP[345].x, CONST[97].xxxx, TEMP[344].xxxx; 401: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) MAX TEMP[346].x, CONST[98].xxxx, TEMP[5].xxxx; 402: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecdac840) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) POW TEMP[347].x, TEMP[345].xxxx, TEMP[346].xxxx; 403: (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdbbbb0) ) MUL TEMP[348].x, CONST[96].xxxx, TEMP[333].xxxx; 404: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdbbbb0) ) ) ) ADD TEMP[350].x, CONST[96].zzzz, TEMP[348].-x-x-x-x; 405: (expression float * (var_ref t@0x7fccecdbbbb0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdbbbb0) ) ) ) ) MUL TEMP[351].x, TEMP[333].xxxx, TEMP[350].xxxx; 406: (expression float * (var_ref t@0x7fccecdbbbb0) (expression float * (var_ref t@0x7fccecdbbbb0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdbbbb0) ) ) ) ) ) MUL TEMP[352].x, TEMP[333].xxxx, TEMP[351].xxxx; 407: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecdac840) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecdbbbb0) (expression float * (var_ref t@0x7fccecdbbbb0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdbbbb0) ) ) ) ) ) ) MUL TEMP[353].x, TEMP[347].xxxx, TEMP[352].xxxx; 408: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecdac840) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecdbbbb0) (expression float * (var_ref t@0x7fccecdbbbb0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdbbbb0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (4)) ) specular) ) MUL TEMP[354], TEMP[353].xxxx, TEMP[56]; 409: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecdac840) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecdbbbb0) (expression float * (var_ref t@0x7fccecdbbbb0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdbbbb0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) MUL TEMP[355], TEMP[354], TEMP[4]; 410: (expression vec4 + (var_ref sc@0x7fccecc82cb0) (expression vec4 * (swiz w (var_ref rv@0x7fccecdac840) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecdac840) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecdbbbb0) (expression float * (var_ref t@0x7fccecdbbbb0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdbbbb0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) ) ) MAD TEMP[356], TEMP[317].wwww, TEMP[355], TEMP[130]; 411: (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecc82cb0) (expression vec4 + (var_ref sc@0x7fccecc82cb0) (expression vec4 * (swiz w (var_ref rv@0x7fccecdac840) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecdac840) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecdbbbb0) (expression float * (var_ref t@0x7fccecdbbbb0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdbbbb0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) ) ) ) MOV TEMP[130], TEMP[356]; 412: (expression bool != (array_ref (var_ref light_enabled@0x7fccecb24320) (constant int (4)) ) (constant int (0)) ) ENDIF; 413: (expression bool != (array_ref (var_ref light_enabled@0x7fccecb24320) (constant int (5)) ) (constant int (0)) ) SNE.C TEMP[357].x, UNIFORM[6].xxxx, CONST[97].xxxx; 414: IF (NE.xxxx); # (if false, goto 468); 415: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecdc0010) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (5)) ) position) ) MOV TEMP[358], TEMP[69]; 416: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecdc0010) )) MUL TEMP[359].xyz, TEMP[106].xyzz, TEMP[358].wwww; 417: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecdc0010) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecdc0010) )) ) ) ADD TEMP[361].xyz, TEMP[358].xyzz, TEMP[359].-x-y-z-z; 418: (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecdbff00) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecdc0010) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecdc0010) )) ) ) )) MOV TEMP[362].xyz, TEMP[361].xyzz; 419: (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fccecdc0fc0) (swiz xyz (var_ref rv@0x7fccecdbff00) )) MOV TEMP[363].xyz, TEMP[362].xyzz; 420: (expression float dot (var_ref arg0@0x7fccecdc0fc0) (var_ref arg0@0x7fccecdc0fc0) ) DP3 TEMP[364].x, TEMP[363].xyzz, TEMP[363].xyzz; 421: (expression float sqrt (expression float dot (var_ref arg0@0x7fccecdc0fc0) (var_ref arg0@0x7fccecdc0fc0) ) ) RSQ TEMP[365].x, TEMP[364].xxxx; 422: MUL TEMP[365].x, TEMP[365].xxxx, TEMP[364].xxxx; 423: CMP TEMP[365].x, TEMP[364].-x-x-x-x, TEMP[365].xxxx, CONST[97].xxxx; 424: (assign (constant bool (1)) (w) (var_ref rv@0x7fccecdbff00) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x7fccecdc0fc0) (var_ref arg0@0x7fccecdc0fc0) ) ) )) MOV TEMP[362].w, TEMP[365].xxxx; 425: (expression float rcp (swiz w (var_ref rv@0x7fccecdbff00) )) RCP TEMP[366].x, TEMP[362].wwww; 426: (expression vec3 * (swiz xyz (var_ref rv@0x7fccecdbff00) )(expression float rcp (swiz w (var_ref rv@0x7fccecdbff00) )) ) MUL TEMP[367].xyz, TEMP[362].xyzz, TEMP[366].xxxx; 427: (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecdbff00) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x7fccecdbff00) )(expression float rcp (swiz w (var_ref rv@0x7fccecdbff00) )) ) )) MOV TEMP[362].xyz, TEMP[367].xyzz; 428: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecdc2120) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[368].x, CONST[98].xyzz; 429: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecdc2120) (swiz www (var_ref rv@0x7fccecdbff00) )) MOV TEMP[368].y, TEMP[362].wwww; 430: (expression float * (swiz w (var_ref rv@0x7fccecdbff00) )(swiz w (var_ref rv@0x7fccecdbff00) )) MUL TEMP[369].x, TEMP[362].wwww, TEMP[362].wwww; 431: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecdc2120) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fccecdbff00) )(swiz w (var_ref rv@0x7fccecdbff00) )) )) MOV TEMP[368].z, TEMP[369].xxxx; 432: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecdc2b40) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (5)) ) constantAttenuation) )) MOV TEMP[370].x, TEMP[75].xxxx; 433: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecdc2b40) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (5)) ) linearAttenuation) )) MOV TEMP[370].y, TEMP[76].xxxx; 434: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecdc2b40) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (5)) ) quadraticAttenuation) )) MOV TEMP[370].z, TEMP[77].xxxx; 435: (expression float dot (var_ref vec_ctor@0x7fccecdc2120) (var_ref vec_ctor@0x7fccecdc2b40) ) DP3 TEMP[371].x, TEMP[368].xyzz, TEMP[370].xyzz; 436: (assign (constant bool (1)) (w) (var_ref rv@0x7fccecdbff00) (swiz xxxx (expression float dot (var_ref vec_ctor@0x7fccecdc2120) (var_ref vec_ctor@0x7fccecdc2b40) ) )) MOV TEMP[362].w, TEMP[371].xxxx; 437: (expression float rcp (swiz w (var_ref rv@0x7fccecdbff00) )) RCP TEMP[372].x, TEMP[362].wwww; 438: (assign (constant bool (1)) (w) (var_ref rv@0x7fccecdbff00) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fccecdbff00) )) )) MOV TEMP[362].w, TEMP[372].xxxx; 439: (expression float dot (swiz xyz (var_ref rv@0x7fccecdbff00) )(var_ref _ret_val@0x7fccecd599e0) ) DP3 TEMP[373].x, TEMP[362].xyzz, TEMP[119].xyzz; 440: (assign (constant bool (1)) (x) (var_ref _ret_val@0x7fccecdc6ed0) (expression float dot (swiz xyz (var_ref rv@0x7fccecdbff00) )(var_ref _ret_val@0x7fccecd599e0) ) ) MOV TEMP[374], TEMP[373].xxxx; 441: (expression float * (var_ref _ret_val@0x7fccecdc6ed0) (constant float (4.000000)) ) MUL TEMP[375].x, TEMP[374].xxxx, CONST[96].yyyy; 442: (expression float min (expression float * (var_ref _ret_val@0x7fccecdc6ed0) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[376].x, TEMP[375].xxxx, CONST[98].xxxx; 443: (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fccecdc6ed0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[377].x, TEMP[376].xxxx, CONST[97].xxxx; 444: (assign (constant bool (1)) (x) (var_ref t@0x7fccecdcf270) (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fccecdc6ed0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[378], TEMP[377].xxxx; 445: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecdc6ed0) ) MAX TEMP[379].x, CONST[97].xxxx, TEMP[374].xxxx; 446: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecdc6ed0) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (5)) ) diffuse) ) MUL TEMP[380], TEMP[379].xxxx, TEMP[67]; 447: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (5)) ) ambient) ) MUL TEMP[381], TEMP[2], TEMP[66]; 448: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (5)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecdc6ed0) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (5)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) MAD TEMP[382], TEMP[380], TEMP[3], TEMP[381]; 449: (expression vec4 + (var_ref pc@0x7fccecc82df0) (expression vec4 * (swiz w (var_ref rv@0x7fccecdbff00) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (5)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecdc6ed0) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (5)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) ) ) MAD TEMP[383], TEMP[362].wwww, TEMP[382], TEMP[129]; 450: (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecc82df0) (expression vec4 + (var_ref pc@0x7fccecc82df0) (expression vec4 * (swiz w (var_ref rv@0x7fccecdbff00) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (5)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecdc6ed0) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (5)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) ) ) ) MOV TEMP[129], TEMP[383]; 451: (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) DP3 TEMP[384].x, TEMP[119].xyzz, TEMP[111].xyzz; 452: (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) MUL TEMP[385].xyz, TEMP[384].xxxx, TEMP[119].xyzz; 453: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) MUL TEMP[386].xyz, CONST[96].xxxx, TEMP[385].xyzz; 454: (expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ADD TEMP[388].xyz, TEMP[111].xyzz, TEMP[386].-x-y-z-z; 455: (expression float dot (swiz xyz (var_ref rv@0x7fccecdbff00) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) DP3 TEMP[389].x, TEMP[362].xyzz, TEMP[388].xyzz; 456: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecdbff00) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) MAX TEMP[390].x, CONST[97].xxxx, TEMP[389].xxxx; 457: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) MAX TEMP[391].x, CONST[98].xxxx, TEMP[5].xxxx; 458: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecdbff00) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) POW TEMP[392].x, TEMP[390].xxxx, TEMP[391].xxxx; 459: (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdcf270) ) MUL TEMP[393].x, CONST[96].xxxx, TEMP[378].xxxx; 460: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdcf270) ) ) ) ADD TEMP[395].x, CONST[96].zzzz, TEMP[393].-x-x-x-x; 461: (expression float * (var_ref t@0x7fccecdcf270) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdcf270) ) ) ) ) MUL TEMP[396].x, TEMP[378].xxxx, TEMP[395].xxxx; 462: (expression float * (var_ref t@0x7fccecdcf270) (expression float * (var_ref t@0x7fccecdcf270) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdcf270) ) ) ) ) ) MUL TEMP[397].x, TEMP[378].xxxx, TEMP[396].xxxx; 463: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecdbff00) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecdcf270) (expression float * (var_ref t@0x7fccecdcf270) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdcf270) ) ) ) ) ) ) MUL TEMP[398].x, TEMP[392].xxxx, TEMP[397].xxxx; 464: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecdbff00) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecdcf270) (expression float * (var_ref t@0x7fccecdcf270) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdcf270) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (5)) ) specular) ) MUL TEMP[399], TEMP[398].xxxx, TEMP[68]; 465: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecdbff00) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecdcf270) (expression float * (var_ref t@0x7fccecdcf270) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdcf270) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (5)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) MUL TEMP[400], TEMP[399], TEMP[4]; 466: (expression vec4 + (var_ref sc@0x7fccecc82cb0) (expression vec4 * (swiz w (var_ref rv@0x7fccecdbff00) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecdbff00) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecdcf270) (expression float * (var_ref t@0x7fccecdcf270) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdcf270) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (5)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) ) ) MAD TEMP[401], TEMP[362].wwww, TEMP[400], TEMP[130]; 467: (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecc82cb0) (expression vec4 + (var_ref sc@0x7fccecc82cb0) (expression vec4 * (swiz w (var_ref rv@0x7fccecdbff00) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecdbff00) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecdcf270) (expression float * (var_ref t@0x7fccecdcf270) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdcf270) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (5)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) ) ) ) MOV TEMP[130], TEMP[401]; 468: (expression bool != (array_ref (var_ref light_enabled@0x7fccecb24320) (constant int (5)) ) (constant int (0)) ) ENDIF; 469: (expression bool != (array_ref (var_ref light_enabled@0x7fccecb24320) (constant int (6)) ) (constant int (0)) ) SNE.C TEMP[402].x, UNIFORM[7].xxxx, CONST[97].xxxx; 470: IF (NE.xxxx); # (if false, goto 524); 471: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecdd36d0) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (6)) ) position) ) MOV TEMP[403], TEMP[81]; 472: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecdd36d0) )) MUL TEMP[404].xyz, TEMP[106].xyzz, TEMP[403].wwww; 473: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecdd36d0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecdd36d0) )) ) ) ADD TEMP[406].xyz, TEMP[403].xyzz, TEMP[404].-x-y-z-z; 474: (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecdd35c0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecdd36d0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecdd36d0) )) ) ) )) MOV TEMP[407].xyz, TEMP[406].xyzz; 475: (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fccecdd4680) (swiz xyz (var_ref rv@0x7fccecdd35c0) )) MOV TEMP[408].xyz, TEMP[407].xyzz; 476: (expression float dot (var_ref arg0@0x7fccecdd4680) (var_ref arg0@0x7fccecdd4680) ) DP3 TEMP[409].x, TEMP[408].xyzz, TEMP[408].xyzz; 477: (expression float sqrt (expression float dot (var_ref arg0@0x7fccecdd4680) (var_ref arg0@0x7fccecdd4680) ) ) RSQ TEMP[410].x, TEMP[409].xxxx; 478: MUL TEMP[410].x, TEMP[410].xxxx, TEMP[409].xxxx; 479: CMP TEMP[410].x, TEMP[409].-x-x-x-x, TEMP[410].xxxx, CONST[97].xxxx; 480: (assign (constant bool (1)) (w) (var_ref rv@0x7fccecdd35c0) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x7fccecdd4680) (var_ref arg0@0x7fccecdd4680) ) ) )) MOV TEMP[407].w, TEMP[410].xxxx; 481: (expression float rcp (swiz w (var_ref rv@0x7fccecdd35c0) )) RCP TEMP[411].x, TEMP[407].wwww; 482: (expression vec3 * (swiz xyz (var_ref rv@0x7fccecdd35c0) )(expression float rcp (swiz w (var_ref rv@0x7fccecdd35c0) )) ) MUL TEMP[412].xyz, TEMP[407].xyzz, TEMP[411].xxxx; 483: (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecdd35c0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x7fccecdd35c0) )(expression float rcp (swiz w (var_ref rv@0x7fccecdd35c0) )) ) )) MOV TEMP[407].xyz, TEMP[412].xyzz; 484: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecdd57e0) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[413].x, CONST[98].xyzz; 485: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecdd57e0) (swiz www (var_ref rv@0x7fccecdd35c0) )) MOV TEMP[413].y, TEMP[407].wwww; 486: (expression float * (swiz w (var_ref rv@0x7fccecdd35c0) )(swiz w (var_ref rv@0x7fccecdd35c0) )) MUL TEMP[414].x, TEMP[407].wwww, TEMP[407].wwww; 487: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecdd57e0) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fccecdd35c0) )(swiz w (var_ref rv@0x7fccecdd35c0) )) )) MOV TEMP[413].z, TEMP[414].xxxx; 488: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecdd6200) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (6)) ) constantAttenuation) )) MOV TEMP[415].x, TEMP[87].xxxx; 489: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecdd6200) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (6)) ) linearAttenuation) )) MOV TEMP[415].y, TEMP[88].xxxx; 490: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecdd6200) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (6)) ) quadraticAttenuation) )) MOV TEMP[415].z, TEMP[89].xxxx; 491: (expression float dot (var_ref vec_ctor@0x7fccecdd57e0) (var_ref vec_ctor@0x7fccecdd6200) ) DP3 TEMP[416].x, TEMP[413].xyzz, TEMP[415].xyzz; 492: (assign (constant bool (1)) (w) (var_ref rv@0x7fccecdd35c0) (swiz xxxx (expression float dot (var_ref vec_ctor@0x7fccecdd57e0) (var_ref vec_ctor@0x7fccecdd6200) ) )) MOV TEMP[407].w, TEMP[416].xxxx; 493: (expression float rcp (swiz w (var_ref rv@0x7fccecdd35c0) )) RCP TEMP[417].x, TEMP[407].wwww; 494: (assign (constant bool (1)) (w) (var_ref rv@0x7fccecdd35c0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fccecdd35c0) )) )) MOV TEMP[407].w, TEMP[417].xxxx; 495: (expression float dot (swiz xyz (var_ref rv@0x7fccecdd35c0) )(var_ref _ret_val@0x7fccecd599e0) ) DP3 TEMP[418].x, TEMP[407].xyzz, TEMP[119].xyzz; 496: (assign (constant bool (1)) (x) (var_ref _ret_val@0x7fccecdda590) (expression float dot (swiz xyz (var_ref rv@0x7fccecdd35c0) )(var_ref _ret_val@0x7fccecd599e0) ) ) MOV TEMP[419], TEMP[418].xxxx; 497: (expression float * (var_ref _ret_val@0x7fccecdda590) (constant float (4.000000)) ) MUL TEMP[420].x, TEMP[419].xxxx, CONST[96].yyyy; 498: (expression float min (expression float * (var_ref _ret_val@0x7fccecdda590) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[421].x, TEMP[420].xxxx, CONST[98].xxxx; 499: (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fccecdda590) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[422].x, TEMP[421].xxxx, CONST[97].xxxx; 500: (assign (constant bool (1)) (x) (var_ref t@0x7fccecde2930) (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fccecdda590) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[423], TEMP[422].xxxx; 501: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecdda590) ) MAX TEMP[424].x, CONST[97].xxxx, TEMP[419].xxxx; 502: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecdda590) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (6)) ) diffuse) ) MUL TEMP[425], TEMP[424].xxxx, TEMP[79]; 503: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (6)) ) ambient) ) MUL TEMP[426], TEMP[2], TEMP[78]; 504: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (6)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecdda590) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (6)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) MAD TEMP[427], TEMP[425], TEMP[3], TEMP[426]; 505: (expression vec4 + (var_ref pc@0x7fccecc82df0) (expression vec4 * (swiz w (var_ref rv@0x7fccecdd35c0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (6)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecdda590) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (6)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) ) ) MAD TEMP[428], TEMP[407].wwww, TEMP[427], TEMP[129]; 506: (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecc82df0) (expression vec4 + (var_ref pc@0x7fccecc82df0) (expression vec4 * (swiz w (var_ref rv@0x7fccecdd35c0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (6)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecdda590) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (6)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) ) ) ) MOV TEMP[129], TEMP[428]; 507: (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) DP3 TEMP[429].x, TEMP[119].xyzz, TEMP[111].xyzz; 508: (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) MUL TEMP[430].xyz, TEMP[429].xxxx, TEMP[119].xyzz; 509: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) MUL TEMP[431].xyz, CONST[96].xxxx, TEMP[430].xyzz; 510: (expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ADD TEMP[433].xyz, TEMP[111].xyzz, TEMP[431].-x-y-z-z; 511: (expression float dot (swiz xyz (var_ref rv@0x7fccecdd35c0) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) DP3 TEMP[434].x, TEMP[407].xyzz, TEMP[433].xyzz; 512: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecdd35c0) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) MAX TEMP[435].x, CONST[97].xxxx, TEMP[434].xxxx; 513: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) MAX TEMP[436].x, CONST[98].xxxx, TEMP[5].xxxx; 514: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecdd35c0) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) POW TEMP[437].x, TEMP[435].xxxx, TEMP[436].xxxx; 515: (expression float * (constant float (2.000000)) (var_ref t@0x7fccecde2930) ) MUL TEMP[438].x, CONST[96].xxxx, TEMP[423].xxxx; 516: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecde2930) ) ) ) ADD TEMP[440].x, CONST[96].zzzz, TEMP[438].-x-x-x-x; 517: (expression float * (var_ref t@0x7fccecde2930) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecde2930) ) ) ) ) MUL TEMP[441].x, TEMP[423].xxxx, TEMP[440].xxxx; 518: (expression float * (var_ref t@0x7fccecde2930) (expression float * (var_ref t@0x7fccecde2930) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecde2930) ) ) ) ) ) MUL TEMP[442].x, TEMP[423].xxxx, TEMP[441].xxxx; 519: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecdd35c0) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecde2930) (expression float * (var_ref t@0x7fccecde2930) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecde2930) ) ) ) ) ) ) MUL TEMP[443].x, TEMP[437].xxxx, TEMP[442].xxxx; 520: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecdd35c0) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecde2930) (expression float * (var_ref t@0x7fccecde2930) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecde2930) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (6)) ) specular) ) MUL TEMP[444], TEMP[443].xxxx, TEMP[80]; 521: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecdd35c0) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecde2930) (expression float * (var_ref t@0x7fccecde2930) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecde2930) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (6)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) MUL TEMP[445], TEMP[444], TEMP[4]; 522: (expression vec4 + (var_ref sc@0x7fccecc82cb0) (expression vec4 * (swiz w (var_ref rv@0x7fccecdd35c0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecdd35c0) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecde2930) (expression float * (var_ref t@0x7fccecde2930) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecde2930) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (6)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) ) ) MAD TEMP[446], TEMP[407].wwww, TEMP[445], TEMP[130]; 523: (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecc82cb0) (expression vec4 + (var_ref sc@0x7fccecc82cb0) (expression vec4 * (swiz w (var_ref rv@0x7fccecdd35c0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecdd35c0) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecde2930) (expression float * (var_ref t@0x7fccecde2930) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecde2930) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (6)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) ) ) ) MOV TEMP[130], TEMP[446]; 524: (expression bool != (array_ref (var_ref light_enabled@0x7fccecb24320) (constant int (6)) ) (constant int (0)) ) ENDIF; 525: (expression bool != (array_ref (var_ref light_enabled@0x7fccecb24320) (constant int (7)) ) (constant int (0)) ) SNE.C TEMP[447].x, UNIFORM[8].xxxx, CONST[97].xxxx; 526: IF (NE.xxxx); # (if false, goto 580); 527: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecde6d90) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (7)) ) position) ) MOV TEMP[448], TEMP[93]; 528: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecde6d90) )) MUL TEMP[449].xyz, TEMP[106].xyzz, TEMP[448].wwww; 529: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecde6d90) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecde6d90) )) ) ) ADD TEMP[451].xyz, TEMP[448].xyzz, TEMP[449].-x-y-z-z; 530: (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecde6c80) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecde6d90) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fccece15920) )(swiz w (var_ref assignment_tmp@0x7fccecde6d90) )) ) ) )) MOV TEMP[452].xyz, TEMP[451].xyzz; 531: (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fccecde7d40) (swiz xyz (var_ref rv@0x7fccecde6c80) )) MOV TEMP[453].xyz, TEMP[452].xyzz; 532: (expression float dot (var_ref arg0@0x7fccecde7d40) (var_ref arg0@0x7fccecde7d40) ) DP3 TEMP[454].x, TEMP[453].xyzz, TEMP[453].xyzz; 533: (expression float sqrt (expression float dot (var_ref arg0@0x7fccecde7d40) (var_ref arg0@0x7fccecde7d40) ) ) RSQ TEMP[455].x, TEMP[454].xxxx; 534: MUL TEMP[455].x, TEMP[455].xxxx, TEMP[454].xxxx; 535: CMP TEMP[455].x, TEMP[454].-x-x-x-x, TEMP[455].xxxx, CONST[97].xxxx; 536: (assign (constant bool (1)) (w) (var_ref rv@0x7fccecde6c80) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x7fccecde7d40) (var_ref arg0@0x7fccecde7d40) ) ) )) MOV TEMP[452].w, TEMP[455].xxxx; 537: (expression float rcp (swiz w (var_ref rv@0x7fccecde6c80) )) RCP TEMP[456].x, TEMP[452].wwww; 538: (expression vec3 * (swiz xyz (var_ref rv@0x7fccecde6c80) )(expression float rcp (swiz w (var_ref rv@0x7fccecde6c80) )) ) MUL TEMP[457].xyz, TEMP[452].xyzz, TEMP[456].xxxx; 539: (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecde6c80) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x7fccecde6c80) )(expression float rcp (swiz w (var_ref rv@0x7fccecde6c80) )) ) )) MOV TEMP[452].xyz, TEMP[457].xyzz; 540: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecde8ea0) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[458].x, CONST[98].xyzz; 541: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecde8ea0) (swiz www (var_ref rv@0x7fccecde6c80) )) MOV TEMP[458].y, TEMP[452].wwww; 542: (expression float * (swiz w (var_ref rv@0x7fccecde6c80) )(swiz w (var_ref rv@0x7fccecde6c80) )) MUL TEMP[459].x, TEMP[452].wwww, TEMP[452].wwww; 543: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecde8ea0) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fccecde6c80) )(swiz w (var_ref rv@0x7fccecde6c80) )) )) MOV TEMP[458].z, TEMP[459].xxxx; 544: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecde98c0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (7)) ) constantAttenuation) )) MOV TEMP[460].x, TEMP[99].xxxx; 545: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecde98c0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (7)) ) linearAttenuation) )) MOV TEMP[460].y, TEMP[100].xxxx; 546: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecde98c0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (7)) ) quadraticAttenuation) )) MOV TEMP[460].z, TEMP[101].xxxx; 547: (expression float dot (var_ref vec_ctor@0x7fccecde8ea0) (var_ref vec_ctor@0x7fccecde98c0) ) DP3 TEMP[461].x, TEMP[458].xyzz, TEMP[460].xyzz; 548: (assign (constant bool (1)) (w) (var_ref rv@0x7fccecde6c80) (swiz xxxx (expression float dot (var_ref vec_ctor@0x7fccecde8ea0) (var_ref vec_ctor@0x7fccecde98c0) ) )) MOV TEMP[452].w, TEMP[461].xxxx; 549: (expression float rcp (swiz w (var_ref rv@0x7fccecde6c80) )) RCP TEMP[462].x, TEMP[452].wwww; 550: (assign (constant bool (1)) (w) (var_ref rv@0x7fccecde6c80) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fccecde6c80) )) )) MOV TEMP[452].w, TEMP[462].xxxx; 551: (expression float dot (swiz xyz (var_ref rv@0x7fccecde6c80) )(var_ref _ret_val@0x7fccecd599e0) ) DP3 TEMP[463].x, TEMP[452].xyzz, TEMP[119].xyzz; 552: (assign (constant bool (1)) (x) (var_ref _ret_val@0x7fccecdedc50) (expression float dot (swiz xyz (var_ref rv@0x7fccecde6c80) )(var_ref _ret_val@0x7fccecd599e0) ) ) MOV TEMP[464], TEMP[463].xxxx; 553: (expression float * (var_ref _ret_val@0x7fccecdedc50) (constant float (4.000000)) ) MUL TEMP[465].x, TEMP[464].xxxx, CONST[96].yyyy; 554: (expression float min (expression float * (var_ref _ret_val@0x7fccecdedc50) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[466].x, TEMP[465].xxxx, CONST[98].xxxx; 555: (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fccecdedc50) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[467].x, TEMP[466].xxxx, CONST[97].xxxx; 556: (assign (constant bool (1)) (x) (var_ref t@0x7fccecdf5ff0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fccecdedc50) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[468], TEMP[467].xxxx; 557: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecdedc50) ) MAX TEMP[469].x, CONST[97].xxxx, TEMP[464].xxxx; 558: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecdedc50) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (7)) ) diffuse) ) MUL TEMP[470], TEMP[469].xxxx, TEMP[91]; 559: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (7)) ) ambient) ) MUL TEMP[471], TEMP[2], TEMP[90]; 560: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (7)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecdedc50) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (7)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) MAD TEMP[472], TEMP[470], TEMP[3], TEMP[471]; 561: (expression vec4 + (var_ref pc@0x7fccecc82df0) (expression vec4 * (swiz w (var_ref rv@0x7fccecde6c80) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (7)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecdedc50) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (7)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) ) ) MAD TEMP[473], TEMP[452].wwww, TEMP[472], TEMP[129]; 562: (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecc82df0) (expression vec4 + (var_ref pc@0x7fccecc82df0) (expression vec4 * (swiz w (var_ref rv@0x7fccecde6c80) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (7)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fccecdedc50) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (7)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) diffuse) ) ) ) ) ) MOV TEMP[129], TEMP[473]; 563: (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) DP3 TEMP[474].x, TEMP[119].xyzz, TEMP[111].xyzz; 564: (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) MUL TEMP[475].xyz, TEMP[474].xxxx, TEMP[119].xyzz; 565: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) MUL TEMP[476].xyz, CONST[96].xxxx, TEMP[475].xyzz; 566: (expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ADD TEMP[478].xyz, TEMP[111].xyzz, TEMP[476].-x-y-z-z; 567: (expression float dot (swiz xyz (var_ref rv@0x7fccecde6c80) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) DP3 TEMP[479].x, TEMP[452].xyzz, TEMP[478].xyzz; 568: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecde6c80) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) MAX TEMP[480].x, CONST[97].xxxx, TEMP[479].xxxx; 569: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) MAX TEMP[481].x, CONST[98].xxxx, TEMP[5].xxxx; 570: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecde6c80) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) POW TEMP[482].x, TEMP[480].xxxx, TEMP[481].xxxx; 571: (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdf5ff0) ) MUL TEMP[483].x, CONST[96].xxxx, TEMP[468].xxxx; 572: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdf5ff0) ) ) ) ADD TEMP[485].x, CONST[96].zzzz, TEMP[483].-x-x-x-x; 573: (expression float * (var_ref t@0x7fccecdf5ff0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdf5ff0) ) ) ) ) MUL TEMP[486].x, TEMP[468].xxxx, TEMP[485].xxxx; 574: (expression float * (var_ref t@0x7fccecdf5ff0) (expression float * (var_ref t@0x7fccecdf5ff0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdf5ff0) ) ) ) ) ) MUL TEMP[487].x, TEMP[468].xxxx, TEMP[486].xxxx; 575: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecde6c80) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecdf5ff0) (expression float * (var_ref t@0x7fccecdf5ff0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdf5ff0) ) ) ) ) ) ) MUL TEMP[488].x, TEMP[482].xxxx, TEMP[487].xxxx; 576: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecde6c80) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecdf5ff0) (expression float * (var_ref t@0x7fccecdf5ff0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdf5ff0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (7)) ) specular) ) MUL TEMP[489], TEMP[488].xxxx, TEMP[92]; 577: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecde6c80) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecdf5ff0) (expression float * (var_ref t@0x7fccecdf5ff0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdf5ff0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (7)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) MUL TEMP[490], TEMP[489], TEMP[4]; 578: (expression vec4 + (var_ref sc@0x7fccecc82cb0) (expression vec4 * (swiz w (var_ref rv@0x7fccecde6c80) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecde6c80) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecdf5ff0) (expression float * (var_ref t@0x7fccecdf5ff0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdf5ff0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (7)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) ) ) MAD TEMP[491], TEMP[452].wwww, TEMP[490], TEMP[130]; 579: (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecc82cb0) (expression vec4 + (var_ref sc@0x7fccecc82cb0) (expression vec4 * (swiz w (var_ref rv@0x7fccecde6c80) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fccecde6c80) )(expression vec3 + (var_ref _ret_val@0x7fccecd59080) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fccecd599e0) (var_ref _ret_val@0x7fccecd59080) ) (var_ref _ret_val@0x7fccecd599e0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) shininess) ) ) (expression float * (var_ref t@0x7fccecdf5ff0) (expression float * (var_ref t@0x7fccecdf5ff0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fccecdf5ff0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccecbd05d0) (constant int (7)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccecbd6380) specular) ) ) ) ) MOV TEMP[130], TEMP[491]; 580: (expression bool != (array_ref (var_ref light_enabled@0x7fccecb24320) (constant int (7)) ) (constant int (0)) ) ENDIF; 581: (expression bool >= (var_ref max_light_enabled@0x7fccecb26910) (constant int (2)) ) ENDIF; 582: (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccecbef920) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x7fccecbca820) )) MUL TEMP[492], STATE[13], INPUT[0].xxxx; 583: (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccecbef920) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x7fccecbca820) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccecbef920) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x7fccecbca820) )) ) MAD TEMP[493], STATE[14], INPUT[0].yyyy, TEMP[492]; 584: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccecbef920) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x7fccecbca820) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccecbef920) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x7fccecbca820) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccecbef920) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x7fccecbca820) )) ) MAD TEMP[494], STATE[15], INPUT[0].zzzz, TEMP[493]; 585: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccecbef920) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x7fccecbca820) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccecbef920) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x7fccecbca820) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccecbef920) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x7fccecbca820) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccecbef920) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x7fccecbca820) )) ) MAD TEMP[495], STATE[16], INPUT[0].wwww, TEMP[494]; 586: (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x7fccecb23620) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccecbef920) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x7fccecbca820) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccecbef920) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x7fccecbca820) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccecbef920) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x7fccecbca820) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccecbef920) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x7fccecbca820) )) ) ) MOV OUTPUT[0], TEMP[495]; 587: (assign (constant bool (1)) (xyzw) (var_ref gl_BackColor@0x7fccecbf7d80) (var_ref pc@0x7fccecc82df0) ) MOV OUTPUT[13], TEMP[129]; 588: (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0x7fccecbf7ea0) (var_ref pc@0x7fccecc82df0) ) MOV OUTPUT[1], TEMP[129]; 589: (assign (constant bool (1)) (xyzw) (var_ref gl_BackSecondaryColor@0x7fccecbf2f20) (var_ref sc@0x7fccecc82cb0) ) MOV OUTPUT[14], TEMP[130]; 590: (assign (constant bool (1)) (xyzw) (var_ref gl_FrontSecondaryColor@0x7fccecbf6b80) (var_ref sc@0x7fccecc82cb0) ) MOV OUTPUT[2], TEMP[130]; 591: END GLSL IR for linked fragment program 7: ( (declare (uniform ) vec4 envColor@0x7fccecc96580) (declare (uniform ) vec4 damage@0x7fccecc96630) (declare (uniform ) vec4 cloaking@0x7fccecc966e0) (declare (uniform ) sampler2D damageMap@0x7fccecc96790) (declare (uniform ) sampler2D glowMap@0x7fccecc96840) (declare (uniform ) sampler2D specMap@0x7fccecc968f0) (declare (uniform ) samplerCube envMap@0x7fccecc969a0) (declare (uniform ) sampler2D diffuseMap@0x7fccecc97aa0) (declare (out ) vec4 gl_FragColor@0x7fccecc8cf80) (declare (in ) vec4 gl_Color@0x7fccecc8d0e0) (declare (in ) vec4 gl_SecondaryColor@0x7fccecc8d190) (declare (in ) (array vec4 0) gl_TexCoord@0x7fccecc90450) (function main (signature void (parameters ) ( (declare () float f@0x7fccece11f80) (assign (constant bool (1)) (x) (var_ref f@0x7fccece11f80) (swiz x (var_ref damage@0x7fccecc96630) )) (declare (temporary ) vec4 assignment_tmp@0x7fcceccd5dc0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fcceccd5dc0) (expression vec4 * (expression vec4 + (expression vec4 * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x7fccece11f80) ) ) (tex (var_ref diffuseMap@0x7fccecc97aa0) (swiz xy (array_ref (var_ref gl_TexCoord@0x7fccecc90450) (constant int (0)) ) ) (0 0 0) 1 () )) (expression vec4 * (var_ref f@0x7fccece11f80) (tex (var_ref damageMap@0x7fccecc96790) (swiz xy (array_ref (var_ref gl_TexCoord@0x7fccecc90450) (constant int (0)) ) ) (0 0 0) 1 () )) ) (var_ref gl_Color@0x7fccecc8d0e0) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x7fccecc8cf80) (var_ref assignment_tmp@0x7fcceccd5dc0) ) (assign (constant bool (1)) (xyz) (var_ref gl_FragColor@0x7fccecc8cf80) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fcceccd5dc0) )(expression vec3 * (swiz xyz (tex (var_ref specMap@0x7fccecc968f0) (swiz xy (array_ref (var_ref gl_TexCoord@0x7fccecc90450) (constant int (0)) ) ) (0 0 0) 1 () ))(swiz xyz (expression vec4 + (expression vec4 * (tex (var_ref envMap@0x7fccecc969a0) (swiz xyz (array_ref (var_ref gl_TexCoord@0x7fccecc90450) (constant int (1)) ) ) (0 0 0) 1 () )(var_ref envColor@0x7fccecc96580) ) (var_ref gl_SecondaryColor@0x7fccecc8d190) ) )) ) )) (assign (constant bool (1)) (xyz) (var_ref gl_FragColor@0x7fccecc8cf80) (swiz xyz (expression vec3 + (swiz xyz (var_ref gl_FragColor@0x7fccecc8cf80) )(swiz xyz (tex (var_ref glowMap@0x7fccecc96840) (swiz xy (array_ref (var_ref gl_TexCoord@0x7fccecc90450) (constant int (0)) ) ) (0 0 0) 1 () ))) )) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x7fccecc8cf80) (expression vec4 * (var_ref gl_FragColor@0x7fccecc8cf80) (swiz xxxy (var_ref cloaking@0x7fccecc966e0) )) ) )) ) ) Mesa IR for linked fragment program 7: 0: (assign (constant bool (1)) (x) (var_ref f@0x7fccece11f80) (swiz x (var_ref damage@0x7fccecc96630) )) MOV TEMP[1], UNIFORM[1].xxxx; 1: (tex (var_ref damageMap@0x7fccecc96790) (swiz xy (array_ref (var_ref gl_TexCoord@0x7fccecc90450) (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@0x7fccece11f80) ) ) ADD TEMP[5].x, CONST[8].xxxx, TEMP[1].-x-x-x-x; 4: (tex (var_ref diffuseMap@0x7fccecc97aa0) (swiz xy (array_ref (var_ref gl_TexCoord@0x7fccecc90450) (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@0x7fccece11f80) ) ) (tex (var_ref diffuseMap@0x7fccecc97aa0) (swiz xy (array_ref (var_ref gl_TexCoord@0x7fccecc90450) (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@0x7fccece11f80) ) ) (tex (var_ref diffuseMap@0x7fccecc97aa0) (swiz xy (array_ref (var_ref gl_TexCoord@0x7fccecc90450) (constant int (0)) ) ) (0 0 0) 1 () )) (expression vec4 * (var_ref f@0x7fccece11f80) (tex (var_ref damageMap@0x7fccecc96790) (swiz xy (array_ref (var_ref gl_TexCoord@0x7fccecc90450) (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@0x7fccece11f80) ) ) (tex (var_ref diffuseMap@0x7fccecc97aa0) (swiz xy (array_ref (var_ref gl_TexCoord@0x7fccecc90450) (constant int (0)) ) ) (0 0 0) 1 () )) (expression vec4 * (var_ref f@0x7fccece11f80) (tex (var_ref damageMap@0x7fccecc96790) (swiz xy (array_ref (var_ref gl_TexCoord@0x7fccecc90450) (constant int (0)) ) ) (0 0 0) 1 () )) ) (var_ref gl_Color@0x7fccecc8d0e0) ) MUL TEMP[10], TEMP[9], INPUT[1]; 9: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fcceccd5dc0) (expression vec4 * (expression vec4 + (expression vec4 * (expression float + (constant float (1.000000)) (expression float neg (var_ref f@0x7fccece11f80) ) ) (tex (var_ref diffuseMap@0x7fccecc97aa0) (swiz xy (array_ref (var_ref gl_TexCoord@0x7fccecc90450) (constant int (0)) ) ) (0 0 0) 1 () )) (expression vec4 * (var_ref f@0x7fccece11f80) (tex (var_ref damageMap@0x7fccecc96790) (swiz xy (array_ref (var_ref gl_TexCoord@0x7fccecc90450) (constant int (0)) ) ) (0 0 0) 1 () )) ) (var_ref gl_Color@0x7fccecc8d0e0) ) ) MOV TEMP[11], TEMP[10]; 10: (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x7fccecc8cf80) (var_ref assignment_tmp@0x7fcceccd5dc0) ) MOV OUTPUT[1], TEMP[11]; 11: (tex (var_ref specMap@0x7fccecc968f0) (swiz xy (array_ref (var_ref gl_TexCoord@0x7fccecc90450) (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@0x7fccecc969a0) (swiz xyz (array_ref (var_ref gl_TexCoord@0x7fccecc90450) (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@0x7fccecc969a0) (swiz xyz (array_ref (var_ref gl_TexCoord@0x7fccecc90450) (constant int (1)) ) ) (0 0 0) 1 () )(var_ref envColor@0x7fccecc96580) ) (var_ref gl_SecondaryColor@0x7fccecc8d190) ) MAD TEMP[16], TEMP[15], UNIFORM[0], INPUT[2]; 16: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fcceccd5dc0) )(expression vec3 * (swiz xyz (tex (var_ref specMap@0x7fccecc968f0) (swiz xy (array_ref (var_ref gl_TexCoord@0x7fccecc90450) (constant int (0)) ) ) (0 0 0) 1 () ))(swiz xyz (expression vec4 + (expression vec4 * (tex (var_ref envMap@0x7fccecc969a0) (swiz xyz (array_ref (var_ref gl_TexCoord@0x7fccecc90450) (constant int (1)) ) ) (0 0 0) 1 () )(var_ref envColor@0x7fccecc96580) ) (var_ref gl_SecondaryColor@0x7fccecc8d190) ) )) ) MAD TEMP[17], TEMP[13].xyzz, TEMP[16].xyzz, TEMP[11].xyzz; 17: (assign (constant bool (1)) (xyz) (var_ref gl_FragColor@0x7fccecc8cf80) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fcceccd5dc0) )(expression vec3 * (swiz xyz (tex (var_ref specMap@0x7fccecc968f0) (swiz xy (array_ref (var_ref gl_TexCoord@0x7fccecc90450) (constant int (0)) ) ) (0 0 0) 1 () ))(swiz xyz (expression vec4 + (expression vec4 * (tex (var_ref envMap@0x7fccecc969a0) (swiz xyz (array_ref (var_ref gl_TexCoord@0x7fccecc90450) (constant int (1)) ) ) (0 0 0) 1 () )(var_ref envColor@0x7fccecc96580) ) (var_ref gl_SecondaryColor@0x7fccecc8d190) ) )) ) )) MOV OUTPUT[1].xyz, TEMP[17].xyzz; 18: (tex (var_ref glowMap@0x7fccecc96840) (swiz xy (array_ref (var_ref gl_TexCoord@0x7fccecc90450) (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@0x7fccecc8cf80) )(swiz xyz (tex (var_ref glowMap@0x7fccecc96840) (swiz xy (array_ref (var_ref gl_TexCoord@0x7fccecc90450) (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@0x7fccecc8cf80) (swiz xyz (expression vec3 + (swiz xyz (var_ref gl_FragColor@0x7fccecc8cf80) )(swiz xyz (tex (var_ref glowMap@0x7fccecc96840) (swiz xy (array_ref (var_ref gl_TexCoord@0x7fccecc90450) (constant int (0)) ) ) (0 0 0) 1 () ))) )) MOV OUTPUT[1].xyz, TEMP[20].xyzz; 22: (expression vec4 * (var_ref gl_FragColor@0x7fccecc8cf80) (swiz xxxy (var_ref cloaking@0x7fccecc966e0) )) MUL TEMP[21], OUTPUT[1], UNIFORM[2].xxxy; 23: (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x7fccecc8cf80) (expression vec4 * (var_ref gl_FragColor@0x7fccecc8cf80) (swiz xxxy (var_ref cloaking@0x7fccecc966e0) )) ) 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@0x7fccececa920) (declare (uniform ) (array int 8) light_enabled@0x7fccececa6f0) (declare (out ) vec4 gl_Position@0x7fccece009d0) (declare (out ) float gl_PointSize@0x7fccece00be0) (declare (in ) vec4 gl_Vertex@0x7fccece00e10) (declare (in ) vec3 gl_Normal@0x7fccece01040) (declare (in ) vec4 gl_Color@0x7fccece01270) (declare (in ) vec4 gl_SecondaryColor@0x7fccece014a0) (declare (in ) vec4 gl_MultiTexCoord0@0x7fccece016d0) (declare (in ) vec4 gl_MultiTexCoord1@0x7fccece01900) (declare (in ) vec4 gl_MultiTexCoord2@0x7fccece01b30) (declare (in ) vec4 gl_MultiTexCoord3@0x7fccece01d60) (declare (in ) vec4 gl_MultiTexCoord4@0x7fccece01f90) (declare (in ) vec4 gl_MultiTexCoord5@0x7fccece8b5c0) (declare (in ) vec4 gl_MultiTexCoord6@0x7fccece8b7f0) (declare (in ) vec4 gl_MultiTexCoord7@0x7fccece8ba20) (declare (in ) float gl_FogCoord@0x7fccece8bc50) (declare (out ) vec4 gl_ClipVertex@0x7fccece8be80) (declare (out ) vec4 gl_FrontColor@0x7fccece8c0b0) (declare (out ) vec4 gl_BackColor@0x7fccece8c2e0) (declare (out ) vec4 gl_FrontSecondaryColor@0x7fccece8c510) (declare (out ) vec4 gl_BackSecondaryColor@0x7fccece8c740) (declare (out ) float gl_FogFragCoord@0x7fccece8c970) (declare (uniform ) mat4 gl_ModelViewMatrix@0x7fccece8cba0) (declare (uniform ) mat4 gl_ProjectionMatrix@0x7fccece8cdd0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x7fccece8d000) (declare (uniform ) mat3 gl_NormalMatrix@0x7fccece8d250) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0x7fccece8d480) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0x7fccece8d6d0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0x7fccece8d920) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0x7fccece8db70) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0x7fccece8ddc0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0x7fccece8e010) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0x7fccece8e260) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0x7fccece8e4b0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0x7fccece8e700) (declare (uniform ) float gl_NormalScale@0x7fccece8e930) (declare (uniform ) gl_LightModelParameters gl_LightModel@0x7fccece8eb60) (declare () int gl_MaxLights@0x7fccece8ed90) (declare () int gl_MaxClipPlanes@0x7fccece8f0a0) (declare () int gl_MaxTextureUnits@0x7fccece8f3b0) (declare () int gl_MaxTextureCoords@0x7fccece8f6c0) (declare () int gl_MaxVertexAttribs@0x7fccece8f9d0) (declare () int gl_MaxVertexUniformComponents@0x7fccece8fce0) (declare () int gl_MaxVaryingFloats@0x7fccece90010) (declare () int gl_MaxVertexTextureImageUnits@0x7fccece90320) (declare () int gl_MaxCombinedTextureImageUnits@0x7fccece90650) (declare () int gl_MaxTextureImageUnits@0x7fccece90980) (declare () int gl_MaxFragmentUniformComponents@0x7fccece90c90) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0x7fccece90fc0) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0x7fccece911f0) (declare (uniform ) (array vec4 6) gl_ClipPlane@0x7fccece91420) (declare (uniform ) gl_PointParameters gl_Point@0x7fccece91650) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x7fccece91880) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0x7fccece91ab0) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x7fccece91ce0) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x7fccece91f10) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0x7fccece92160) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0x7fccece923b0) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0x7fccece925e0) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0x7fccece92810) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0x7fccece92a40) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0x7fccece92c70) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0x7fccece92ea0) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0x7fccece930d0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0x7fccece93300) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0x7fccece93530) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0x7fccece93760) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0x7fccece93990) (declare (uniform ) gl_FogParameters gl_Fog@0x7fccece93bc0) (declare (out ) (array vec4 0) gl_TexCoord@0x7fccece93de0) (declare () int gl_MaxDrawBuffers@0x7fccece94010) (function lightPosAndAttenuation0 (signature vec4 (parameters (declare (in ) vec4 vertex@0x7fccececab50) ) ( (declare () vec4 rv@0x7fccececba50) (declare (temporary ) vec4 assignment_tmp@0x7fccececb530) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccececb530) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (0)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccececba50) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccececb530) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x7fccececab50) )(swiz w (var_ref assignment_tmp@0x7fccececb530) )) ) ) )) (declare (temporary ) float length_retval@0x7fccececca20) (assign (constant bool (1)) (x) (var_ref length_retval@0x7fccececca20) (call length ((swiz xyz (var_ref rv@0x7fccececba50) ))) ) (assign (constant bool (1)) (w) (var_ref rv@0x7fccececba50) (swiz xxxx (var_ref length_retval@0x7fccececca20) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccececba50) (swiz xyz (expression vec3 / (swiz xyz (var_ref rv@0x7fccececba50) )(swiz w (var_ref rv@0x7fccececba50) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecece1c0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecece1c0) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecece1c0) (swiz www (var_ref rv@0x7fccececba50) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecece1c0) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fccececba50) )(swiz w (var_ref rv@0x7fccececba50) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccececf200) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccececf200) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (0)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccececf200) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (0)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccececf200) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (0)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x7fccececfa00) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccececfa00) (call dot ((var_ref vec_ctor@0x7fccecece1c0) (var_ref vec_ctor@0x7fccececf200) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x7fccececba50) (swiz xxxx (var_ref dot_retval@0x7fccececfa00) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccececba50) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fccececba50) )) )) (return (var_ref rv@0x7fccececba50) ) )) ) (function lightPosAndAttenuation1 (signature vec4 (parameters (declare (in ) vec4 vertex@0x7fcceced0b00) ) ( (declare () vec4 rv@0x7fcceced1870) (declare (temporary ) vec4 assignment_tmp@0x7fcceced13c0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fcceced13c0) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (1)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fcceced1870) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fcceced13c0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x7fcceced0b00) )(swiz w (var_ref assignment_tmp@0x7fcceced13c0) )) ) ) )) (declare (temporary ) float length_retval@0x7fcceced27d0) (assign (constant bool (1)) (x) (var_ref length_retval@0x7fcceced27d0) (call length ((swiz xyz (var_ref rv@0x7fcceced1870) ))) ) (assign (constant bool (1)) (w) (var_ref rv@0x7fcceced1870) (swiz xxxx (var_ref length_retval@0x7fcceced27d0) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fcceced1870) (swiz xyz (expression vec3 / (swiz xyz (var_ref rv@0x7fcceced1870) )(swiz w (var_ref rv@0x7fcceced1870) )) )) (declare (temporary ) vec3 vec_ctor@0x7fcceced3f70) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fcceced3f70) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fcceced3f70) (swiz www (var_ref rv@0x7fcceced1870) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fcceced3f70) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fcceced1870) )(swiz w (var_ref rv@0x7fcceced1870) )) )) (declare (temporary ) vec3 vec_ctor@0x7fcceced4fb0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fcceced4fb0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (1)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fcceced4fb0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (1)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fcceced4fb0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (1)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x7fcceced57b0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fcceced57b0) (call dot ((var_ref vec_ctor@0x7fcceced3f70) (var_ref vec_ctor@0x7fcceced4fb0) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x7fcceced1870) (swiz xxxx (var_ref dot_retval@0x7fcceced57b0) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fcceced1870) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fcceced1870) )) )) (return (var_ref rv@0x7fcceced1870) ) )) ) (function lightPosAndAttenuation2 (signature vec4 (parameters (declare (in ) vec4 vertex@0x7fcceced68b0) ) ( (declare () vec4 rv@0x7fcceced7620) (declare (temporary ) vec4 assignment_tmp@0x7fcceced7170) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fcceced7170) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (2)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fcceced7620) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fcceced7170) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x7fcceced68b0) )(swiz w (var_ref assignment_tmp@0x7fcceced7170) )) ) ) )) (declare (temporary ) float length_retval@0x7fcceced8580) (assign (constant bool (1)) (x) (var_ref length_retval@0x7fcceced8580) (call length ((swiz xyz (var_ref rv@0x7fcceced7620) ))) ) (assign (constant bool (1)) (w) (var_ref rv@0x7fcceced7620) (swiz xxxx (var_ref length_retval@0x7fcceced8580) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fcceced7620) (swiz xyz (expression vec3 / (swiz xyz (var_ref rv@0x7fcceced7620) )(swiz w (var_ref rv@0x7fcceced7620) )) )) (declare (temporary ) vec3 vec_ctor@0x7fcceced9d20) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fcceced9d20) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fcceced9d20) (swiz www (var_ref rv@0x7fcceced7620) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fcceced9d20) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fcceced7620) )(swiz w (var_ref rv@0x7fcceced7620) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecedad60) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecedad60) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (2)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecedad60) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (2)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecedad60) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (2)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x7fccecedb560) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecedb560) (call dot ((var_ref vec_ctor@0x7fcceced9d20) (var_ref vec_ctor@0x7fccecedad60) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x7fcceced7620) (swiz xxxx (var_ref dot_retval@0x7fccecedb560) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fcceced7620) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fcceced7620) )) )) (return (var_ref rv@0x7fcceced7620) ) )) ) (function lightPosAndAttenuation3 (signature vec4 (parameters (declare (in ) vec4 vertex@0x7fccecedc660) ) ( (declare () vec4 rv@0x7fccecedd3d0) (declare (temporary ) vec4 assignment_tmp@0x7fccecedcf20) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecedcf20) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (3)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecedd3d0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecedcf20) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x7fccecedc660) )(swiz w (var_ref assignment_tmp@0x7fccecedcf20) )) ) ) )) (declare (temporary ) float length_retval@0x7fccecede330) (assign (constant bool (1)) (x) (var_ref length_retval@0x7fccecede330) (call length ((swiz xyz (var_ref rv@0x7fccecedd3d0) ))) ) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecedd3d0) (swiz xxxx (var_ref length_retval@0x7fccecede330) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecedd3d0) (swiz xyz (expression vec3 / (swiz xyz (var_ref rv@0x7fccecedd3d0) )(swiz w (var_ref rv@0x7fccecedd3d0) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecedfad0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecedfad0) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecedfad0) (swiz www (var_ref rv@0x7fccecedd3d0) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecedfad0) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fccecedd3d0) )(swiz w (var_ref rv@0x7fccecedd3d0) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecee0b10) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecee0b10) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (3)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecee0b10) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (3)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecee0b10) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (3)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x7fccecee1310) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecee1310) (call dot ((var_ref vec_ctor@0x7fccecedfad0) (var_ref vec_ctor@0x7fccecee0b10) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecedd3d0) (swiz xxxx (var_ref dot_retval@0x7fccecee1310) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecedd3d0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fccecedd3d0) )) )) (return (var_ref rv@0x7fccecedd3d0) ) )) ) (function lightPosAndAttenuation4 (signature vec4 (parameters (declare (in ) vec4 vertex@0x7fccecee2410) ) ( (declare () vec4 rv@0x7fccecee3180) (declare (temporary ) vec4 assignment_tmp@0x7fccecee2cd0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecee2cd0) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (4)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecee3180) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecee2cd0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref vertex@0x7fccecee2410) )(swiz w (var_ref assignment_tmp@0x7fccecee2cd0) )) ) ) )) (declare (temporary ) float length_retval@0x7fccecee40e0) (assign (constant bool (1)) (x) (var_ref length_retval@0x7fccecee40e0) (call length ((swiz xyz (var_ref rv@0x7fccecee3180) ))) ) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecee3180) (swiz xxxx (var_ref length_retval@0x7fccecee40e0) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fccecee3180) (swiz xyz (expression vec3 / (swiz xyz (var_ref rv@0x7fccecee3180) )(swiz w (var_ref rv@0x7fccecee3180) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecee5880) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecee5880) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecee5880) (swiz www (var_ref rv@0x7fccecee3180) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecee5880) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fccecee3180) )(swiz w (var_ref rv@0x7fccecee3180) )) )) (declare (temporary ) vec3 vec_ctor@0x7fccecee68c0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fccecee68c0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (4)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fccecee68c0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (4)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fccecee68c0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (4)) ) quadraticAttenuation) )) (declare (temporary ) float dot_retval@0x7fccecee70c0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecee70c0) (call dot ((var_ref vec_ctor@0x7fccecee5880) (var_ref vec_ctor@0x7fccecee68c0) )) ) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecee3180) (swiz xxxx (var_ref dot_retval@0x7fccecee70c0) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fccecee3180) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fccecee3180) )) )) (return (var_ref rv@0x7fccecee3180) ) )) ) (function selfshadowStep (signature float (parameters (declare (in ) float VNdotL@0x7fccecee81c0) ) ( (declare (temporary ) float smoothstep_retval@0x7fccecee89b0) (assign (constant bool (1)) (x) (var_ref smoothstep_retval@0x7fccecee89b0) (call smoothstep ((constant float (0.000000)) (constant float (0.250000)) (var_ref VNdotL@0x7fccecee81c0) )) ) (return (var_ref smoothstep_retval@0x7fccecee89b0) ) )) ) (function lighting0 (signature void (parameters (declare (in ) vec4 vertex@0x7fccecee8d20) (declare (in ) vec3 eye@0x7fccecee8e30) (declare (in ) vec3 normal@0x7fccecee8f40) (declare (inout ) vec4 pc@0x7fccecee9050) (declare (inout ) vec4 sc@0x7fccecee9160) ) ( (declare () float RdotL@0x7fcceceebdb0) (declare () float NdotL@0x7fcceceeb150) (declare () vec3 refl@0x7fcceceea580) (declare () vec4 lpatt@0x7fccecee9a20) (declare (temporary ) vec4 lightPosAndAttenuation0_retval@0x7fccecee9d70) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation0_retval@0x7fccecee9d70) (call lightPosAndAttenuation0 ((var_ref vertex@0x7fccecee8d20) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x7fccecee9a20) (var_ref lightPosAndAttenuation0_retval@0x7fccecee9d70) ) (declare (temporary ) vec3 reflect_retval@0x7fcceceea950) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x7fcceceea950) (call reflect ((var_ref eye@0x7fccecee8e30) (var_ref normal@0x7fccecee8f40) )) ) (assign (constant bool (1)) (xyz) (var_ref refl@0x7fcceceea580) (var_ref reflect_retval@0x7fcceceea950) ) (declare (temporary ) float dot_retval@0x7fcceceeb5b0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fcceceeb5b0) (call dot ((swiz xyz (var_ref lpatt@0x7fccecee9a20) )(var_ref normal@0x7fccecee8f40) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x7fcceceeb150) (var_ref dot_retval@0x7fcceceeb5b0) ) (declare (temporary ) float dot_retval@0x7fcceceec210) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fcceceec210) (call dot ((swiz xyz (var_ref lpatt@0x7fccecee9a20) )(var_ref refl@0x7fcceceea580) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x7fcceceebdb0) (var_ref dot_retval@0x7fcceceec210) ) (declare (temporary ) float max_retval@0x7fcceceee9d0) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fcceceee9d0) (call max ((constant float (0.000000)) (var_ref NdotL@0x7fcceceeb150) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecee9050) (expression vec4 + (var_ref pc@0x7fccecee9050) (expression vec4 * (swiz w (var_ref lpatt@0x7fccecee9a20) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece91880) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (0)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x7fcceceee9d0) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (0)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece91880) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x7fcceceefd10) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fcceceefd10) (call max ((constant float (0.000000)) (var_ref RdotL@0x7fcceceebdb0) )) ) (declare (temporary ) float max_retval@0x7fccecef0370) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecef0370) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece91880) shininess) )) ) (declare (temporary ) float pow_retval@0x7fccecef0760) (assign (constant bool (1)) (x) (var_ref pow_retval@0x7fccecef0760) (call pow ((var_ref max_retval@0x7fcceceefd10) (var_ref max_retval@0x7fccecef0370) )) ) (declare (temporary ) float selfshadowStep_retval@0x7fccecef0be0) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x7fccecef0be0) (call selfshadowStep ((var_ref NdotL@0x7fcceceeb150) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecee9160) (expression vec4 + (var_ref sc@0x7fccecee9160) (expression vec4 * (swiz w (var_ref lpatt@0x7fccecee9a20) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x7fccecef0760) (var_ref selfshadowStep_retval@0x7fccecef0be0) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (0)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece91880) specular) ) ) ) ) (return) )) ) (function lighting1 (signature void (parameters (declare (in ) vec4 vertex@0x7fccecef1b10) (declare (in ) vec3 eye@0x7fccecef1c20) (declare (in ) vec3 normal@0x7fccecef1d30) (declare (inout ) vec4 pc@0x7fccecef1e40) (declare (inout ) vec4 sc@0x7fccecef1f50) ) ( (declare () float RdotL@0x7fccecef4730) (declare () float NdotL@0x7fccecef3b40) (declare () vec3 refl@0x7fccecef2fe0) (declare () vec4 lpatt@0x7fccecef24f0) (declare (temporary ) vec4 lightPosAndAttenuation1_retval@0x7fccecef2840) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation1_retval@0x7fccecef2840) (call lightPosAndAttenuation1 ((var_ref vertex@0x7fccecef1b10) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x7fccecef24f0) (var_ref lightPosAndAttenuation1_retval@0x7fccecef2840) ) (declare (temporary ) vec3 reflect_retval@0x7fccecef33b0) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x7fccecef33b0) (call reflect ((var_ref eye@0x7fccecef1c20) (var_ref normal@0x7fccecef1d30) )) ) (assign (constant bool (1)) (xyz) (var_ref refl@0x7fccecef2fe0) (var_ref reflect_retval@0x7fccecef33b0) ) (declare (temporary ) float dot_retval@0x7fccecef3fa0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecef3fa0) (call dot ((swiz xyz (var_ref lpatt@0x7fccecef24f0) )(var_ref normal@0x7fccecef1d30) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x7fccecef3b40) (var_ref dot_retval@0x7fccecef3fa0) ) (declare (temporary ) float dot_retval@0x7fccecef4b90) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecef4b90) (call dot ((swiz xyz (var_ref lpatt@0x7fccecef24f0) )(var_ref refl@0x7fccecef2fe0) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x7fccecef4730) (var_ref dot_retval@0x7fccecef4b90) ) (declare (temporary ) float max_retval@0x7fccecef5c60) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecef5c60) (call max ((constant float (0.000000)) (var_ref NdotL@0x7fccecef3b40) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecef1e40) (expression vec4 + (var_ref pc@0x7fccecef1e40) (expression vec4 * (swiz w (var_ref lpatt@0x7fccecef24f0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece91880) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (1)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x7fccecef5c60) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (1)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece91880) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x7fccecef6fa0) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecef6fa0) (call max ((constant float (0.000000)) (var_ref RdotL@0x7fccecef4730) )) ) (declare (temporary ) float max_retval@0x7fccecef7600) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecef7600) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece91880) shininess) )) ) (declare (temporary ) float pow_retval@0x7fccecef79f0) (assign (constant bool (1)) (x) (var_ref pow_retval@0x7fccecef79f0) (call pow ((var_ref max_retval@0x7fccecef6fa0) (var_ref max_retval@0x7fccecef7600) )) ) (declare (temporary ) float selfshadowStep_retval@0x7fccecef7e70) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x7fccecef7e70) (call selfshadowStep ((var_ref NdotL@0x7fccecef3b40) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecef1f50) (expression vec4 + (var_ref sc@0x7fccecef1f50) (expression vec4 * (swiz w (var_ref lpatt@0x7fccecef24f0) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x7fccecef79f0) (var_ref selfshadowStep_retval@0x7fccecef7e70) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (1)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece91880) specular) ) ) ) ) (return) )) ) (function lighting2 (signature void (parameters (declare (in ) vec4 vertex@0x7fccecef8da0) (declare (in ) vec3 eye@0x7fccecef8eb0) (declare (in ) vec3 normal@0x7fccecef8fc0) (declare (inout ) vec4 pc@0x7fccecef90d0) (declare (inout ) vec4 sc@0x7fccecef91e0) ) ( (declare () float RdotL@0x7fccecefb9c0) (declare () float NdotL@0x7fccecefadd0) (declare () vec3 refl@0x7fccecefa270) (declare () vec4 lpatt@0x7fccecef9780) (declare (temporary ) vec4 lightPosAndAttenuation2_retval@0x7fccecef9ad0) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation2_retval@0x7fccecef9ad0) (call lightPosAndAttenuation2 ((var_ref vertex@0x7fccecef8da0) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x7fccecef9780) (var_ref lightPosAndAttenuation2_retval@0x7fccecef9ad0) ) (declare (temporary ) vec3 reflect_retval@0x7fccecefa640) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x7fccecefa640) (call reflect ((var_ref eye@0x7fccecef8eb0) (var_ref normal@0x7fccecef8fc0) )) ) (assign (constant bool (1)) (xyz) (var_ref refl@0x7fccecefa270) (var_ref reflect_retval@0x7fccecefa640) ) (declare (temporary ) float dot_retval@0x7fccecefb230) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecefb230) (call dot ((swiz xyz (var_ref lpatt@0x7fccecef9780) )(var_ref normal@0x7fccecef8fc0) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x7fccecefadd0) (var_ref dot_retval@0x7fccecefb230) ) (declare (temporary ) float dot_retval@0x7fccecefbe20) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecefbe20) (call dot ((swiz xyz (var_ref lpatt@0x7fccecef9780) )(var_ref refl@0x7fccecefa270) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x7fccecefb9c0) (var_ref dot_retval@0x7fccecefbe20) ) (declare (temporary ) float max_retval@0x7fccecefcef0) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecefcef0) (call max ((constant float (0.000000)) (var_ref NdotL@0x7fccecefadd0) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecef90d0) (expression vec4 + (var_ref pc@0x7fccecef90d0) (expression vec4 * (swiz w (var_ref lpatt@0x7fccecef9780) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece91880) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x7fccecefcef0) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece91880) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x7fccecefe230) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecefe230) (call max ((constant float (0.000000)) (var_ref RdotL@0x7fccecefb9c0) )) ) (declare (temporary ) float max_retval@0x7fccecefe890) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecefe890) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece91880) shininess) )) ) (declare (temporary ) float pow_retval@0x7fccecefec80) (assign (constant bool (1)) (x) (var_ref pow_retval@0x7fccecefec80) (call pow ((var_ref max_retval@0x7fccecefe230) (var_ref max_retval@0x7fccecefe890) )) ) (declare (temporary ) float selfshadowStep_retval@0x7fcceceff100) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x7fcceceff100) (call selfshadowStep ((var_ref NdotL@0x7fccecefadd0) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecef91e0) (expression vec4 + (var_ref sc@0x7fccecef91e0) (expression vec4 * (swiz w (var_ref lpatt@0x7fccecef9780) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x7fccecefec80) (var_ref selfshadowStep_retval@0x7fcceceff100) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece91880) specular) ) ) ) ) (return) )) ) (function lighting3 (signature void (parameters (declare (in ) vec4 vertex@0x7fccecf00030) (declare (in ) vec3 eye@0x7fccecf00140) (declare (in ) vec3 normal@0x7fccecf00250) (declare (inout ) vec4 pc@0x7fccecf00360) (declare (inout ) vec4 sc@0x7fccecf00470) ) ( (declare () float RdotL@0x7fccecf02c50) (declare () float NdotL@0x7fccecf02060) (declare () vec3 refl@0x7fccecf01500) (declare () vec4 lpatt@0x7fccecf00a10) (declare (temporary ) vec4 lightPosAndAttenuation3_retval@0x7fccecf00d60) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation3_retval@0x7fccecf00d60) (call lightPosAndAttenuation3 ((var_ref vertex@0x7fccecf00030) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x7fccecf00a10) (var_ref lightPosAndAttenuation3_retval@0x7fccecf00d60) ) (declare (temporary ) vec3 reflect_retval@0x7fccecf018d0) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x7fccecf018d0) (call reflect ((var_ref eye@0x7fccecf00140) (var_ref normal@0x7fccecf00250) )) ) (assign (constant bool (1)) (xyz) (var_ref refl@0x7fccecf01500) (var_ref reflect_retval@0x7fccecf018d0) ) (declare (temporary ) float dot_retval@0x7fccecf024c0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecf024c0) (call dot ((swiz xyz (var_ref lpatt@0x7fccecf00a10) )(var_ref normal@0x7fccecf00250) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x7fccecf02060) (var_ref dot_retval@0x7fccecf024c0) ) (declare (temporary ) float dot_retval@0x7fccecf030b0) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecf030b0) (call dot ((swiz xyz (var_ref lpatt@0x7fccecf00a10) )(var_ref refl@0x7fccecf01500) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x7fccecf02c50) (var_ref dot_retval@0x7fccecf030b0) ) (declare (temporary ) float max_retval@0x7fccecf04180) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecf04180) (call max ((constant float (0.000000)) (var_ref NdotL@0x7fccecf02060) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecf00360) (expression vec4 + (var_ref pc@0x7fccecf00360) (expression vec4 * (swiz w (var_ref lpatt@0x7fccecf00a10) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece91880) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x7fccecf04180) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece91880) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x7fccecf054c0) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecf054c0) (call max ((constant float (0.000000)) (var_ref RdotL@0x7fccecf02c50) )) ) (declare (temporary ) float max_retval@0x7fccecf05b20) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecf05b20) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece91880) shininess) )) ) (declare (temporary ) float pow_retval@0x7fccecf05f10) (assign (constant bool (1)) (x) (var_ref pow_retval@0x7fccecf05f10) (call pow ((var_ref max_retval@0x7fccecf054c0) (var_ref max_retval@0x7fccecf05b20) )) ) (declare (temporary ) float selfshadowStep_retval@0x7fccecf06390) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x7fccecf06390) (call selfshadowStep ((var_ref NdotL@0x7fccecf02060) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecf00470) (expression vec4 + (var_ref sc@0x7fccecf00470) (expression vec4 * (swiz w (var_ref lpatt@0x7fccecf00a10) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x7fccecf05f10) (var_ref selfshadowStep_retval@0x7fccecf06390) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece91880) specular) ) ) ) ) (return) )) ) (function lighting4 (signature void (parameters (declare (in ) vec4 vertex@0x7fccecf072c0) (declare (in ) vec3 eye@0x7fccecf073d0) (declare (in ) vec3 normal@0x7fccecf074e0) (declare (inout ) vec4 pc@0x7fccecf075f0) (declare (inout ) vec4 sc@0x7fccecf07700) ) ( (declare () float RdotL@0x7fccecf09eb0) (declare () float NdotL@0x7fccecf092f0) (declare () vec3 refl@0x7fccecf087c0) (declare () vec4 lpatt@0x7fccecf07d00) (declare (temporary ) vec4 lightPosAndAttenuation4_retval@0x7fccecf08050) (assign (constant bool (1)) (xyzw) (var_ref lightPosAndAttenuation4_retval@0x7fccecf08050) (call lightPosAndAttenuation4 ((var_ref vertex@0x7fccecf072c0) )) ) (assign (constant bool (1)) (xyzw) (var_ref lpatt@0x7fccecf07d00) (var_ref lightPosAndAttenuation4_retval@0x7fccecf08050) ) (declare (temporary ) vec3 reflect_retval@0x7fccecf08b90) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x7fccecf08b90) (call reflect ((var_ref eye@0x7fccecf073d0) (var_ref normal@0x7fccecf074e0) )) ) (assign (constant bool (1)) (xyz) (var_ref refl@0x7fccecf087c0) (var_ref reflect_retval@0x7fccecf08b90) ) (declare (temporary ) float dot_retval@0x7fccecf09750) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecf09750) (call dot ((swiz xyz (var_ref lpatt@0x7fccecf07d00) )(var_ref normal@0x7fccecf074e0) )) ) (assign (constant bool (1)) (x) (var_ref NdotL@0x7fccecf092f0) (var_ref dot_retval@0x7fccecf09750) ) (declare (temporary ) float dot_retval@0x7fccecf0a310) (assign (constant bool (1)) (x) (var_ref dot_retval@0x7fccecf0a310) (call dot ((swiz xyz (var_ref lpatt@0x7fccecf07d00) )(var_ref refl@0x7fccecf087c0) )) ) (assign (constant bool (1)) (x) (var_ref RdotL@0x7fccecf09eb0) (var_ref dot_retval@0x7fccecf0a310) ) (declare (temporary ) float max_retval@0x7fccecf0b3e0) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecf0b3e0) (call max ((constant float (0.000000)) (var_ref NdotL@0x7fccecf092f0) )) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecf075f0) (expression vec4 + (var_ref pc@0x7fccecf075f0) (expression vec4 * (swiz w (var_ref lpatt@0x7fccecf07d00) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece91880) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (var_ref max_retval@0x7fccecf0b3e0) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece91880) diffuse) ) ) ) ) ) (declare (temporary ) float max_retval@0x7fccecf0c720) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecf0c720) (call max ((constant float (0.000000)) (var_ref RdotL@0x7fccecf09eb0) )) ) (declare (temporary ) float max_retval@0x7fccecf0cd80) (assign (constant bool (1)) (x) (var_ref max_retval@0x7fccecf0cd80) (call max ((constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece91880) shininess) )) ) (declare (temporary ) float pow_retval@0x7fccecf0d170) (assign (constant bool (1)) (x) (var_ref pow_retval@0x7fccecf0d170) (call pow ((var_ref max_retval@0x7fccecf0c720) (var_ref max_retval@0x7fccecf0cd80) )) ) (declare (temporary ) float selfshadowStep_retval@0x7fccecf0d5f0) (assign (constant bool (1)) (x) (var_ref selfshadowStep_retval@0x7fccecf0d5f0) (call selfshadowStep ((var_ref NdotL@0x7fccecf092f0) )) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecf07700) (expression vec4 + (var_ref sc@0x7fccecf07700) (expression vec4 * (swiz w (var_ref lpatt@0x7fccecf07d00) )(expression vec4 * (expression vec4 * (expression float * (var_ref pow_retval@0x7fccecf0d170) (var_ref selfshadowStep_retval@0x7fccecf0d5f0) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece91ce0) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece91880) specular) ) ) ) ) (return) )) ) (function main (signature void (parameters ) ( (declare () vec4 sc@0x7fccecf13600) (declare () vec4 pc@0x7fccecf12190) (declare () vec3 normal@0x7fccecf0fb20) (declare () vec3 eyetopos@0x7fccecf0efe0) (declare () vec4 position@0x7fccecf0e7b0) (declare (temporary ) vec4 assignment_tmp@0x7fccecf0eb20) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecf0eb20) (expression vec4 * (var_ref gl_ModelViewMatrix@0x7fccece8cba0) (var_ref gl_Vertex@0x7fccece00e10) ) ) (assign (constant bool (1)) (xyzw) (var_ref position@0x7fccecf0e7b0) (var_ref assignment_tmp@0x7fccecf0eb20) ) (declare (temporary ) vec3 normalize_retval@0x7fccecf0f3c0) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x7fccecf0f3c0) (call normalize ((swiz xyz (var_ref assignment_tmp@0x7fccecf0eb20) ))) ) (assign (constant bool (1)) (xyz) (var_ref eyetopos@0x7fccecf0efe0) (var_ref normalize_retval@0x7fccecf0f3c0) ) (declare (temporary ) vec3 normalize_retval@0x7fccecf0ff90) (assign (constant bool (1)) (xyz) (var_ref normalize_retval@0x7fccecf0ff90) (call normalize ((expression vec3 * (var_ref gl_NormalMatrix@0x7fccece8d250) (var_ref gl_Normal@0x7fccece01040) ) )) ) (assign (constant bool (1)) (xyz) (var_ref normal@0x7fccecf0fb20) (var_ref normalize_retval@0x7fccecf0ff90) ) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x7fccece93de0) (constant int (0)) ) (var_ref gl_MultiTexCoord0@0x7fccece016d0) ) (declare (temporary ) vec3 reflect_retval@0x7fccecf11250) (assign (constant bool (1)) (xyz) (var_ref reflect_retval@0x7fccecf11250) (call reflect ((var_ref eyetopos@0x7fccecf0efe0) (var_ref normalize_retval@0x7fccecf0ff90) )) ) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x7fccece93de0) (constant int (1)) ) (swiz xyz (var_ref reflect_retval@0x7fccecf11250) )) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x7fccece93de0) (constant int (2)) ) (swiz xyz (var_ref normal@0x7fccecf0fb20) )) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecf12190) (expression vec4 + (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x7fccece923b0) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontMaterial@0x7fccece91880) emission) ) (record_ref (var_ref gl_FrontLightModelProduct@0x7fccece91f10) sceneColor) ) (expression vec4 * (expression float i2f (array_ref (var_ref light_enabled@0x7fccececa6f0) (constant int (1)) ) ) (record_ref (array_ref (var_ref gl_FrontLightProduct@0x7fccece923b0) (constant int (1)) ) ambient) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecf13600) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (if (expression bool != (array_ref (var_ref light_enabled@0x7fccececa6f0) (constant int (0)) ) (constant int (0)) ) ( (call lighting0 ((var_ref position@0x7fccecf0e7b0) (var_ref eyetopos@0x7fccecf0efe0) (var_ref normal@0x7fccecf0fb20) (var_ref pc@0x7fccecf12190) (var_ref sc@0x7fccecf13600) )) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x7fccececa6f0) (constant int (1)) ) (constant int (0)) ) ( (call lighting1 ((var_ref position@0x7fccecf0e7b0) (var_ref eyetopos@0x7fccecf0efe0) (var_ref normal@0x7fccecf0fb20) (var_ref pc@0x7fccecf12190) (var_ref sc@0x7fccecf13600) )) ) ()) (if (expression bool >= (var_ref max_light_enabled@0x7fccececa920) (constant int (2)) ) ( (if (expression bool != (array_ref (var_ref light_enabled@0x7fccececa6f0) (constant int (2)) ) (constant int (0)) ) ( (call lighting2 ((var_ref position@0x7fccecf0e7b0) (var_ref eyetopos@0x7fccecf0efe0) (var_ref normal@0x7fccecf0fb20) (var_ref pc@0x7fccecf12190) (var_ref sc@0x7fccecf13600) )) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x7fccececa6f0) (constant int (3)) ) (constant int (0)) ) ( (call lighting3 ((var_ref position@0x7fccecf0e7b0) (var_ref eyetopos@0x7fccecf0efe0) (var_ref normal@0x7fccecf0fb20) (var_ref pc@0x7fccecf12190) (var_ref sc@0x7fccecf13600) )) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x7fccececa6f0) (constant int (4)) ) (constant int (0)) ) ( (call lighting4 ((var_ref position@0x7fccecf0e7b0) (var_ref eyetopos@0x7fccecf0efe0) (var_ref normal@0x7fccecf0fb20) (var_ref pc@0x7fccecf12190) (var_ref sc@0x7fccecf13600) )) ) ()) ) ()) (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x7fccece009d0) (expression vec4 * (var_ref gl_ModelViewProjectionMatrix@0x7fccece8d000) (var_ref gl_Vertex@0x7fccece00e10) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_BackColor@0x7fccece8c2e0) (var_ref pc@0x7fccecf12190) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0x7fccece8c0b0) (var_ref pc@0x7fccecf12190) ) (assign (constant bool (1)) (xyzw) (var_ref gl_BackSecondaryColor@0x7fccece8c740) (var_ref sc@0x7fccecf13600) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontSecondaryColor@0x7fccece8c510) (var_ref sc@0x7fccecf13600) ) )) ) ) 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@0x7fccece5adb0) (declare (uniform ) vec4 damage@0x7fccece5ab90) (declare (uniform ) vec4 cloaking@0x7fccece5a960) (declare (uniform ) sampler2D diffuseMap@0x7fccece5a730) (declare (in ) vec4 gl_FragCoord@0x7fccece14de0) (declare (in ) bool gl_FrontFacing@0x7fccecedd210) (declare (out ) vec4 gl_FragColor@0x7fccecee1b20) (declare (out ) float gl_FragDepth@0x7fcceced73c0) (declare (in ) vec4 gl_Color@0x7fcceced1610) (declare (in ) vec4 gl_SecondaryColor@0x7fccececb780) (declare (in ) float gl_FogFragCoord@0x7fccece320f0) (declare (uniform ) mat4 gl_ModelViewMatrix@0x7fccece0b040) (declare (uniform ) mat4 gl_ProjectionMatrix@0x7fccece07ff0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x7fccece0d570) (declare (uniform ) mat3 gl_NormalMatrix@0x7fccece15330) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0x7fccece154f0) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0x7fccece15000) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0x7fccece151b0) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0x7fccececc230) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0x7fccececc3b0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0x7fccececcc70) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0x7fccececce70) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0x7fccececfc50) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0x7fccececfe70) (declare (uniform ) float gl_NormalScale@0x7fcceced1fe0) (declare (uniform ) gl_LightModelParameters gl_LightModel@0x7fcceced21f0) (declare () int gl_MaxLights@0x7fcceced2a20) (declare () int gl_MaxClipPlanes@0x7fcceced5ae0) (declare () int gl_MaxTextureUnits@0x7fcceced7e70) (declare () int gl_MaxTextureCoords@0x7fcceced88b0) (declare () int gl_MaxVertexAttribs@0x7fccecedb890) (declare () int gl_MaxVertexUniformComponents@0x7fcceceddc20) (declare () int gl_MaxVaryingFloats@0x7fccecede660) (declare () int gl_MaxVertexTextureImageUnits@0x7fccecee1640) (declare () int gl_MaxCombinedTextureImageUnits@0x7fccecee39d0) (declare () int gl_MaxTextureImageUnits@0x7fccecee4410) (declare () int gl_MaxFragmentUniformComponents@0x7fccecee73f0) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0x7fcceceea0b0) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0x7fcceced2c30) (declare (uniform ) (array vec4 6) gl_ClipPlane@0x7fcceceeaba0) (declare (uniform ) gl_PointParameters gl_Point@0x7fcceceead80) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x7fcceceeb800) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0x7fcceceeba10) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0x7fcceceec460) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x7fcceceec670) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0x7fcceceef4d0) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0x7fcceceef700) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0x7fccecef1700) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0x7fccecef1900) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0x7fccecef2aa0) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0x7fccecef2cd0) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0x7fccecef3600) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0x7fccecef3830) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0x7fccecef41f0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0x7fccecef43f0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0x7fccecef4de0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0x7fccecef5010) (declare (uniform ) gl_FogParameters gl_Fog@0x7fccecef6760) (declare (in ) (array vec4 0) gl_TexCoord@0x7fccecef6980) (declare () int gl_MaxDrawBuffers@0x7fccecef8990) (declare (out ) (array vec4 1) gl_FragData@0x7fccecef9d30) (function main (signature void (parameters ) ( (declare (temporary ) vec4 texture2D_retval@0x7fccece5b830) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0x7fccece5b830) (call texture2D ((var_ref diffuseMap@0x7fccece5a730) (swiz xy (array_ref (var_ref gl_TexCoord@0x7fccecef6980) (constant int (0)) ) ))) ) (declare (temporary ) vec4 assignment_tmp@0x7fccece5c280) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccece5c280) (expression vec4 * (var_ref texture2D_retval@0x7fccece5b830) (var_ref gl_Color@0x7fcceced1610) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x7fccecee1b20) (var_ref assignment_tmp@0x7fccece5c280) ) (assign (constant bool (1)) (xyz) (var_ref gl_FragColor@0x7fccecee1b20) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccece5c280) )(swiz xyz (var_ref gl_SecondaryColor@0x7fccececb780) )) )) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x7fccecee1b20) (expression vec4 * (var_ref gl_FragColor@0x7fccecee1b20) (swiz xxxy (var_ref cloaking@0x7fccece5a960) )) ) )) ) ) GLSL IR for linked vertex program 10: ( (declare (uniform ) int max_light_enabled@0x7fccece5ebe0) (declare (uniform ) (array int 5) light_enabled@0x7fccece5ec90) (declare (out ) vec4 gl_Position@0x7fccece5ed40) (declare (in ) vec4 gl_Vertex@0x7fccece5eea0) (declare (in ) vec3 gl_Normal@0x7fccece5ef50) (declare (in ) vec4 gl_MultiTexCoord0@0x7fccece5f160) (declare (out ) vec4 gl_FrontColor@0x7fccece5f840) (declare (out ) vec4 gl_BackColor@0x7fccece5f8f0) (declare (out ) vec4 gl_FrontSecondaryColor@0x7fccece5f9a0) (declare (out ) vec4 gl_BackSecondaryColor@0x7fccece5fa50) (declare (uniform ) mat4 gl_ModelViewMatrix@0x7fccece5fbb0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0x7fccece5fd10) (declare (uniform ) mat3 gl_NormalMatrix@0x7fccece5fdc0) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x7fccece62080) (declare (uniform ) (array gl_LightSourceParameters 5) gl_LightSource@0x7fccece621e0) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0x7fccece62290) (declare (uniform ) (array gl_LightProducts 2) gl_FrontLightProduct@0x7fccece624f0) (declare (out ) (array vec4 0) gl_TexCoord@0x7fccece62d30) (function main (signature void (parameters ) ( (declare () vec4 sc@0x7fccecf76570) (declare () vec4 pc@0x7fccecf766b0) (declare (temporary ) vec4 flattening_tmp@0x7fcced079540) (assign (constant bool (1)) (xyzw) (var_ref flattening_tmp@0x7fcced079540) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccece5fbb0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x7fccece5eea0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccece5fbb0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x7fccece5eea0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccece5fbb0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x7fccece5eea0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccece5fbb0) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x7fccece5eea0) )) ) ) (declare () vec3 _ret_val@0x7fcced014ba0) (declare () vec3 arg0@0x7fcced014c50) (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fcced014c50) (swiz xyz (var_ref flattening_tmp@0x7fcced079540) )) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x7fcced014ba0) (expression vec3 * (var_ref arg0@0x7fcced014c50) (expression float rsq (expression float dot (var_ref arg0@0x7fcced014c50) (var_ref arg0@0x7fcced014c50) ) ) ) ) (declare () vec3 _ret_val@0x7fcced0154a0) (declare (temporary ) vec3 flattening_tmp@0x7fcced0785e0) (assign (constant bool (1)) (xyz) (var_ref flattening_tmp@0x7fcced0785e0) (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x7fccece5fdc0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x7fccece5ef50) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x7fccece5fdc0) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x7fccece5ef50) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x7fccece5fdc0) (constant int (2)) ) (swiz z (var_ref gl_Normal@0x7fccece5ef50) )) ) ) (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x7fcced0154a0) (expression vec3 * (var_ref flattening_tmp@0x7fcced0785e0) (expression float rsq (expression float dot (var_ref flattening_tmp@0x7fcced0785e0) (var_ref flattening_tmp@0x7fcced0785e0) ) ) ) ) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x7fccece62d30) (constant int (0)) ) (var_ref gl_MultiTexCoord0@0x7fccece5f160) ) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x7fccece62d30) (constant int (1)) ) (swiz xyz (expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) )) (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x7fccece62d30) (constant int (2)) ) (swiz xyz (var_ref _ret_val@0x7fcced0154a0) )) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecf766b0) (expression vec4 + (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x7fccece624f0) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) emission) ) (record_ref (var_ref gl_FrontLightModelProduct@0x7fccece62290) sceneColor) ) (expression vec4 * (expression float i2f (array_ref (var_ref light_enabled@0x7fccece5ec90) (constant int (1)) ) ) (record_ref (array_ref (var_ref gl_FrontLightProduct@0x7fccece624f0) (constant int (1)) ) ambient) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecf76570) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) (if (expression bool != (array_ref (var_ref light_enabled@0x7fccece5ec90) (constant int (0)) ) (constant int (0)) ) ( (declare () vec4 rv@0x7fcced017de0) (declare (temporary ) vec4 assignment_tmp@0x7fcced017e90) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fcced017e90) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (0)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fcced017de0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fcced017e90) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fcced079540) )(swiz w (var_ref assignment_tmp@0x7fcced017e90) )) ) ) )) (declare () vec3 arg0@0x7fcced018ed0) (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fcced018ed0) (swiz xyz (var_ref rv@0x7fcced017de0) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fcced017de0) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x7fcced018ed0) (var_ref arg0@0x7fcced018ed0) ) ) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fcced017de0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x7fcced017de0) )(expression float rcp (swiz w (var_ref rv@0x7fcced017de0) )) ) )) (declare (temporary ) vec3 vec_ctor@0x7fcced01a060) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fcced01a060) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fcced01a060) (swiz www (var_ref rv@0x7fcced017de0) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fcced01a060) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fcced017de0) )(swiz w (var_ref rv@0x7fcced017de0) )) )) (declare (temporary ) vec3 vec_ctor@0x7fcced01aab0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fcced01aab0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (0)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fcced01aab0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (0)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fcced01aab0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (0)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fcced017de0) (swiz xxxx (expression float dot (var_ref vec_ctor@0x7fcced01a060) (var_ref vec_ctor@0x7fcced01aab0) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fcced017de0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fcced017de0) )) )) (declare () float _ret_val@0x7fcced01f0b0) (assign (constant bool (1)) (x) (var_ref _ret_val@0x7fcced01f0b0) (expression float dot (swiz xyz (var_ref rv@0x7fcced017de0) )(var_ref _ret_val@0x7fcced0154a0) ) ) (declare () float t@0x7fcced027b70) (assign (constant bool (1)) (x) (var_ref t@0x7fcced027b70) (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fcced01f0b0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecf766b0) (expression vec4 + (var_ref pc@0x7fccecf766b0) (expression vec4 * (swiz w (var_ref rv@0x7fcced017de0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (0)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced01f0b0) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (0)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecf76570) (expression vec4 * (swiz w (var_ref rv@0x7fcced017de0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced017de0) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced027b70) (expression float * (var_ref t@0x7fcced027b70) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced027b70) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (0)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) specular) ) ) ) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x7fccece5ec90) (constant int (1)) ) (constant int (0)) ) ( (declare () vec4 rv@0x7fcced02bd70) (declare (temporary ) vec4 assignment_tmp@0x7fcced02be80) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fcced02be80) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (1)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fcced02bd70) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fcced02be80) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fcced079540) )(swiz w (var_ref assignment_tmp@0x7fcced02be80) )) ) ) )) (declare () vec3 arg0@0x7fcced02ce30) (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fcced02ce30) (swiz xyz (var_ref rv@0x7fcced02bd70) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fcced02bd70) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x7fcced02ce30) (var_ref arg0@0x7fcced02ce30) ) ) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fcced02bd70) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x7fcced02bd70) )(expression float rcp (swiz w (var_ref rv@0x7fcced02bd70) )) ) )) (declare (temporary ) vec3 vec_ctor@0x7fcced02df90) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fcced02df90) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fcced02df90) (swiz www (var_ref rv@0x7fcced02bd70) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fcced02df90) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fcced02bd70) )(swiz w (var_ref rv@0x7fcced02bd70) )) )) (declare (temporary ) vec3 vec_ctor@0x7fcced02e9b0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fcced02e9b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (1)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fcced02e9b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (1)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fcced02e9b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (1)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fcced02bd70) (swiz xxxx (expression float dot (var_ref vec_ctor@0x7fcced02df90) (var_ref vec_ctor@0x7fcced02e9b0) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fcced02bd70) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fcced02bd70) )) )) (declare () float _ret_val@0x7fcced032d40) (assign (constant bool (1)) (x) (var_ref _ret_val@0x7fcced032d40) (expression float dot (swiz xyz (var_ref rv@0x7fcced02bd70) )(var_ref _ret_val@0x7fcced0154a0) ) ) (declare () float t@0x7fcced03b230) (assign (constant bool (1)) (x) (var_ref t@0x7fcced03b230) (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fcced032d40) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecf766b0) (expression vec4 + (var_ref pc@0x7fccecf766b0) (expression vec4 * (swiz w (var_ref rv@0x7fcced02bd70) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (1)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced032d40) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (1)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecf76570) (expression vec4 + (var_ref sc@0x7fccecf76570) (expression vec4 * (swiz w (var_ref rv@0x7fcced02bd70) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced02bd70) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced03b230) (expression float * (var_ref t@0x7fcced03b230) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced03b230) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (1)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) specular) ) ) ) ) ) ()) (if (expression bool >= (var_ref max_light_enabled@0x7fccece5ebe0) (constant int (2)) ) ( (if (expression bool != (array_ref (var_ref light_enabled@0x7fccece5ec90) (constant int (2)) ) (constant int (0)) ) ( (declare () vec4 rv@0x7fcced03f5b0) (declare (temporary ) vec4 assignment_tmp@0x7fcced03f6c0) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fcced03f6c0) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (2)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fcced03f5b0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fcced03f6c0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fcced079540) )(swiz w (var_ref assignment_tmp@0x7fcced03f6c0) )) ) ) )) (declare () vec3 arg0@0x7fcced040670) (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fcced040670) (swiz xyz (var_ref rv@0x7fcced03f5b0) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fcced03f5b0) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x7fcced040670) (var_ref arg0@0x7fcced040670) ) ) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fcced03f5b0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x7fcced03f5b0) )(expression float rcp (swiz w (var_ref rv@0x7fcced03f5b0) )) ) )) (declare (temporary ) vec3 vec_ctor@0x7fcced0417d0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fcced0417d0) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fcced0417d0) (swiz www (var_ref rv@0x7fcced03f5b0) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fcced0417d0) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fcced03f5b0) )(swiz w (var_ref rv@0x7fcced03f5b0) )) )) (declare (temporary ) vec3 vec_ctor@0x7fcced0421f0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fcced0421f0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (2)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fcced0421f0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (2)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fcced0421f0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (2)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fcced03f5b0) (swiz xxxx (expression float dot (var_ref vec_ctor@0x7fcced0417d0) (var_ref vec_ctor@0x7fcced0421f0) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fcced03f5b0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fcced03f5b0) )) )) (declare () float _ret_val@0x7fcced046580) (assign (constant bool (1)) (x) (var_ref _ret_val@0x7fcced046580) (expression float dot (swiz xyz (var_ref rv@0x7fcced03f5b0) )(var_ref _ret_val@0x7fcced0154a0) ) ) (declare () float t@0x7fcced04e920) (assign (constant bool (1)) (x) (var_ref t@0x7fcced04e920) (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fcced046580) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecf766b0) (expression vec4 + (var_ref pc@0x7fccecf766b0) (expression vec4 * (swiz w (var_ref rv@0x7fcced03f5b0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced046580) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecf76570) (expression vec4 + (var_ref sc@0x7fccecf76570) (expression vec4 * (swiz w (var_ref rv@0x7fcced03f5b0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced03f5b0) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced04e920) (expression float * (var_ref t@0x7fcced04e920) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced04e920) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) specular) ) ) ) ) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x7fccece5ec90) (constant int (3)) ) (constant int (0)) ) ( (declare () vec4 rv@0x7fcced052c70) (declare (temporary ) vec4 assignment_tmp@0x7fcced052d80) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fcced052d80) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (3)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fcced052c70) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fcced052d80) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fcced079540) )(swiz w (var_ref assignment_tmp@0x7fcced052d80) )) ) ) )) (declare () vec3 arg0@0x7fcced053d30) (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fcced053d30) (swiz xyz (var_ref rv@0x7fcced052c70) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fcced052c70) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x7fcced053d30) (var_ref arg0@0x7fcced053d30) ) ) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fcced052c70) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x7fcced052c70) )(expression float rcp (swiz w (var_ref rv@0x7fcced052c70) )) ) )) (declare (temporary ) vec3 vec_ctor@0x7fcced054e90) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fcced054e90) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fcced054e90) (swiz www (var_ref rv@0x7fcced052c70) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fcced054e90) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fcced052c70) )(swiz w (var_ref rv@0x7fcced052c70) )) )) (declare (temporary ) vec3 vec_ctor@0x7fcced0558b0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fcced0558b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (3)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fcced0558b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (3)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fcced0558b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (3)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fcced052c70) (swiz xxxx (expression float dot (var_ref vec_ctor@0x7fcced054e90) (var_ref vec_ctor@0x7fcced0558b0) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fcced052c70) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fcced052c70) )) )) (declare () float _ret_val@0x7fcced059c40) (assign (constant bool (1)) (x) (var_ref _ret_val@0x7fcced059c40) (expression float dot (swiz xyz (var_ref rv@0x7fcced052c70) )(var_ref _ret_val@0x7fcced0154a0) ) ) (declare () float t@0x7fcced061fe0) (assign (constant bool (1)) (x) (var_ref t@0x7fcced061fe0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fcced059c40) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecf766b0) (expression vec4 + (var_ref pc@0x7fccecf766b0) (expression vec4 * (swiz w (var_ref rv@0x7fcced052c70) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced059c40) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecf76570) (expression vec4 + (var_ref sc@0x7fccecf76570) (expression vec4 * (swiz w (var_ref rv@0x7fcced052c70) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced052c70) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced061fe0) (expression float * (var_ref t@0x7fcced061fe0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced061fe0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) specular) ) ) ) ) ) ()) (if (expression bool != (array_ref (var_ref light_enabled@0x7fccece5ec90) (constant int (4)) ) (constant int (0)) ) ( (declare () vec4 rv@0x7fcced066330) (declare (temporary ) vec4 assignment_tmp@0x7fcced066440) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fcced066440) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (4)) ) position) ) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fcced066330) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fcced066440) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fcced079540) )(swiz w (var_ref assignment_tmp@0x7fcced066440) )) ) ) )) (declare () vec3 arg0@0x7fcced0673f0) (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fcced0673f0) (swiz xyz (var_ref rv@0x7fcced066330) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fcced066330) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x7fcced0673f0) (var_ref arg0@0x7fcced0673f0) ) ) )) (assign (constant bool (1)) (xyz) (var_ref rv@0x7fcced066330) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x7fcced066330) )(expression float rcp (swiz w (var_ref rv@0x7fcced066330) )) ) )) (declare (temporary ) vec3 vec_ctor@0x7fcced068550) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fcced068550) (constant vec3 (1.000000 0.000000 0.000000)) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fcced068550) (swiz www (var_ref rv@0x7fcced066330) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fcced068550) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fcced066330) )(swiz w (var_ref rv@0x7fcced066330) )) )) (declare (temporary ) vec3 vec_ctor@0x7fcced068f70) (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fcced068f70) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (4)) ) constantAttenuation) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fcced068f70) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (4)) ) linearAttenuation) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fcced068f70) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (4)) ) quadraticAttenuation) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fcced066330) (swiz xxxx (expression float dot (var_ref vec_ctor@0x7fcced068550) (var_ref vec_ctor@0x7fcced068f70) ) )) (assign (constant bool (1)) (w) (var_ref rv@0x7fcced066330) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fcced066330) )) )) (declare () float _ret_val@0x7fcced06d300) (assign (constant bool (1)) (x) (var_ref _ret_val@0x7fcced06d300) (expression float dot (swiz xyz (var_ref rv@0x7fcced066330) )(var_ref _ret_val@0x7fcced0154a0) ) ) (declare () float t@0x7fcced0756a0) (assign (constant bool (1)) (x) (var_ref t@0x7fcced0756a0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fcced06d300) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecf766b0) (expression vec4 + (var_ref pc@0x7fccecf766b0) (expression vec4 * (swiz w (var_ref rv@0x7fcced066330) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced06d300) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) diffuse) ) ) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecf76570) (expression vec4 + (var_ref sc@0x7fccecf76570) (expression vec4 * (swiz w (var_ref rv@0x7fcced066330) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced066330) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced0756a0) (expression float * (var_ref t@0x7fcced0756a0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced0756a0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) specular) ) ) ) ) ) ()) ) ()) (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x7fccece5ed40) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccece5fd10) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x7fccece5eea0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccece5fd10) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x7fccece5eea0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccece5fd10) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x7fccece5eea0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccece5fd10) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x7fccece5eea0) )) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_BackColor@0x7fccece5f8f0) (var_ref pc@0x7fccecf766b0) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0x7fccece5f840) (var_ref pc@0x7fccecf766b0) ) (assign (constant bool (1)) (xyzw) (var_ref gl_BackSecondaryColor@0x7fccece5fa50) (var_ref sc@0x7fccecf76570) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontSecondaryColor@0x7fccece5f9a0) (var_ref sc@0x7fccecf76570) ) )) ) ) Mesa IR for linked vertex program 10: 0: (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0x7fccece62080) MOV TEMP[1], STATE[17]; 1: MOV TEMP[2], STATE[18]; 2: MOV TEMP[3], STATE[19]; 3: MOV TEMP[4], STATE[20]; 4: MOV TEMP[5], STATE[21].xxxx; 5: (declare (uniform ) (array gl_LightSourceParameters 5) gl_LightSource@0x7fccece621e0) MOV TEMP[6], STATE[22]; 6: MOV TEMP[7], STATE[23]; 7: MOV TEMP[8], STATE[24]; 8: MOV TEMP[9], STATE[25]; 9: MOV TEMP[10], STATE[26]; 10: MOV TEMP[11], STATE[27]; 11: MOV TEMP[12], STATE[27].wwww; 12: MOV TEMP[13], STATE[28].xxxx; 13: MOV TEMP[14], STATE[29].wwww; 14: MOV TEMP[15], STATE[29].xxxx; 15: MOV TEMP[16], STATE[29].yyyy; 16: MOV TEMP[17], STATE[29].zzzz; 17: MOV TEMP[18], STATE[30]; 18: MOV TEMP[19], STATE[31]; 19: MOV TEMP[20], STATE[32]; 20: MOV TEMP[21], STATE[33]; 21: MOV TEMP[22], STATE[34]; 22: MOV TEMP[23], STATE[35]; 23: MOV TEMP[24], STATE[35].wwww; 24: MOV TEMP[25], STATE[36].xxxx; 25: MOV TEMP[26], STATE[37].wwww; 26: MOV TEMP[27], STATE[37].xxxx; 27: MOV TEMP[28], STATE[37].yyyy; 28: MOV TEMP[29], STATE[37].zzzz; 29: MOV TEMP[30], STATE[38]; 30: MOV TEMP[31], STATE[39]; 31: MOV TEMP[32], STATE[40]; 32: MOV TEMP[33], STATE[41]; 33: MOV TEMP[34], STATE[42]; 34: MOV TEMP[35], STATE[43]; 35: MOV TEMP[36], STATE[43].wwww; 36: MOV TEMP[37], STATE[44].xxxx; 37: MOV TEMP[38], STATE[45].wwww; 38: MOV TEMP[39], STATE[45].xxxx; 39: MOV TEMP[40], STATE[45].yyyy; 40: MOV TEMP[41], STATE[45].zzzz; 41: MOV TEMP[42], STATE[46]; 42: MOV TEMP[43], STATE[47]; 43: MOV TEMP[44], STATE[48]; 44: MOV TEMP[45], STATE[49]; 45: MOV TEMP[46], STATE[50]; 46: MOV TEMP[47], STATE[51]; 47: MOV TEMP[48], STATE[51].wwww; 48: MOV TEMP[49], STATE[52].xxxx; 49: MOV TEMP[50], STATE[53].wwww; 50: MOV TEMP[51], STATE[53].xxxx; 51: MOV TEMP[52], STATE[53].yyyy; 52: MOV TEMP[53], STATE[53].zzzz; 53: MOV TEMP[54], STATE[54]; 54: MOV TEMP[55], STATE[55]; 55: MOV TEMP[56], STATE[56]; 56: MOV TEMP[57], STATE[57]; 57: MOV TEMP[58], STATE[58]; 58: MOV TEMP[59], STATE[59]; 59: MOV TEMP[60], STATE[59].wwww; 60: MOV TEMP[61], STATE[60].xxxx; 61: MOV TEMP[62], STATE[61].wwww; 62: MOV TEMP[63], STATE[61].xxxx; 63: MOV TEMP[64], STATE[61].yyyy; 64: MOV TEMP[65], STATE[61].zzzz; 65: (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccece5fbb0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x7fccece5eea0) )) MUL TEMP[66], STATE[6], INPUT[0].xxxx; 66: (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccece5fbb0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x7fccece5eea0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccece5fbb0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x7fccece5eea0) )) ) MAD TEMP[67], STATE[7], INPUT[0].yyyy, TEMP[66]; 67: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccece5fbb0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x7fccece5eea0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccece5fbb0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x7fccece5eea0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccece5fbb0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x7fccece5eea0) )) ) MAD TEMP[68], STATE[8], INPUT[0].zzzz, TEMP[67]; 68: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccece5fbb0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x7fccece5eea0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccece5fbb0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x7fccece5eea0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccece5fbb0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x7fccece5eea0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccece5fbb0) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x7fccece5eea0) )) ) MAD TEMP[69], STATE[9], INPUT[0].wwww, TEMP[68]; 69: (assign (constant bool (1)) (xyzw) (var_ref flattening_tmp@0x7fcced079540) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccece5fbb0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x7fccece5eea0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccece5fbb0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x7fccece5eea0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccece5fbb0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x7fccece5eea0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewMatrix@0x7fccece5fbb0) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x7fccece5eea0) )) ) ) MOV TEMP[70], TEMP[69]; 70: (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fcced014c50) (swiz xyz (var_ref flattening_tmp@0x7fcced079540) )) MOV TEMP[71].xyz, TEMP[70].xyzz; 71: (expression float dot (var_ref arg0@0x7fcced014c50) (var_ref arg0@0x7fcced014c50) ) DP3 TEMP[72].x, TEMP[71].xyzz, TEMP[71].xyzz; 72: (expression float rsq (expression float dot (var_ref arg0@0x7fcced014c50) (var_ref arg0@0x7fcced014c50) ) ) RSQ TEMP[73].x, TEMP[72].xxxx; 73: (expression vec3 * (var_ref arg0@0x7fcced014c50) (expression float rsq (expression float dot (var_ref arg0@0x7fcced014c50) (var_ref arg0@0x7fcced014c50) ) ) ) MUL TEMP[74].xyz, TEMP[71].xyzz, TEMP[73].xxxx; 74: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x7fcced014ba0) (expression vec3 * (var_ref arg0@0x7fcced014c50) (expression float rsq (expression float dot (var_ref arg0@0x7fcced014c50) (var_ref arg0@0x7fcced014c50) ) ) ) ) MOV TEMP[75].xyz, TEMP[74].xyzz; 75: (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x7fccece5fdc0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x7fccece5ef50) )) MUL TEMP[76].xyz, STATE[14].xyzz, INPUT[2].xxxx; 76: (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x7fccece5fdc0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x7fccece5ef50) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x7fccece5fdc0) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x7fccece5ef50) )) ) MAD TEMP[77], STATE[15].xyzz, INPUT[2].yyyy, TEMP[76].xyzz; 77: (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x7fccece5fdc0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x7fccece5ef50) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x7fccece5fdc0) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x7fccece5ef50) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x7fccece5fdc0) (constant int (2)) ) (swiz z (var_ref gl_Normal@0x7fccece5ef50) )) ) MAD TEMP[78], STATE[16].xyzz, INPUT[2].zzzz, TEMP[77].xyzz; 78: (assign (constant bool (1)) (xyz) (var_ref flattening_tmp@0x7fcced0785e0) (expression vec3 + (expression vec3 + (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x7fccece5fdc0) (constant int (0)) ) (swiz x (var_ref gl_Normal@0x7fccece5ef50) )) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x7fccece5fdc0) (constant int (1)) ) (swiz y (var_ref gl_Normal@0x7fccece5ef50) )) ) (expression vec3 * (array_ref (var_ref gl_NormalMatrix@0x7fccece5fdc0) (constant int (2)) ) (swiz z (var_ref gl_Normal@0x7fccece5ef50) )) ) ) MOV TEMP[79].xyz, TEMP[78].xyzz; 79: (expression float dot (var_ref flattening_tmp@0x7fcced0785e0) (var_ref flattening_tmp@0x7fcced0785e0) ) DP3 TEMP[80].x, TEMP[79].xyzz, TEMP[79].xyzz; 80: (expression float rsq (expression float dot (var_ref flattening_tmp@0x7fcced0785e0) (var_ref flattening_tmp@0x7fcced0785e0) ) ) RSQ TEMP[81].x, TEMP[80].xxxx; 81: (expression vec3 * (var_ref flattening_tmp@0x7fcced0785e0) (expression float rsq (expression float dot (var_ref flattening_tmp@0x7fcced0785e0) (var_ref flattening_tmp@0x7fcced0785e0) ) ) ) MUL TEMP[82].xyz, TEMP[79].xyzz, TEMP[81].xxxx; 82: (assign (constant bool (1)) (xyz) (var_ref _ret_val@0x7fcced0154a0) (expression vec3 * (var_ref flattening_tmp@0x7fcced0785e0) (expression float rsq (expression float dot (var_ref flattening_tmp@0x7fcced0785e0) (var_ref flattening_tmp@0x7fcced0785e0) ) ) ) ) MOV TEMP[83].xyz, TEMP[82].xyzz; 83: (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_TexCoord@0x7fccece62d30) (constant int (0)) ) (var_ref gl_MultiTexCoord0@0x7fccece5f160) ) MOV OUTPUT[4], INPUT[8]; 84: (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) DP3 TEMP[84].x, TEMP[83].xyzz, TEMP[75].xyzz; 85: (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) MUL TEMP[85].xyz, TEMP[84].xxxx, TEMP[83].xyzz; 86: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) MUL TEMP[86].xyz, CONST[69].xxxx, TEMP[85].xyzz; 87: (expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ADD TEMP[88].xyz, TEMP[75].xyzz, TEMP[86].-x-y-z-z; 88: (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x7fccece62d30) (constant int (1)) ) (swiz xyz (expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) )) MOV OUTPUT[5].xyz, TEMP[88].xyzz; 89: (assign (constant bool (1)) (xyz) (array_ref (var_ref gl_TexCoord@0x7fccece62d30) (constant int (2)) ) (swiz xyz (var_ref _ret_val@0x7fcced0154a0) )) MOV OUTPUT[6].xyz, TEMP[83].xyzz; 90: (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x7fccece624f0) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) emission) ) ADD TEMP[90], STATE[63], TEMP[1]; 91: (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x7fccece624f0) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) emission) ) (record_ref (var_ref gl_FrontLightModelProduct@0x7fccece62290) sceneColor) ) ADD TEMP[91], TEMP[90], STATE[62]; 92: (expression vec4 + (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x7fccece624f0) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) emission) ) (record_ref (var_ref gl_FrontLightModelProduct@0x7fccece62290) sceneColor) ) (expression vec4 * (expression float i2f (array_ref (var_ref light_enabled@0x7fccece5ec90) (constant int (1)) ) ) (record_ref (array_ref (var_ref gl_FrontLightProduct@0x7fccece624f0) (constant int (1)) ) ambient) ) ) MAD TEMP[92], UNIFORM[2].xxxx, STATE[66], TEMP[91]; 93: (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecf766b0) (expression vec4 + (expression vec4 + (expression vec4 + (record_ref (array_ref (var_ref gl_FrontLightProduct@0x7fccece624f0) (constant int (0)) ) ambient) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) emission) ) (record_ref (var_ref gl_FrontLightModelProduct@0x7fccece62290) sceneColor) ) (expression vec4 * (expression float i2f (array_ref (var_ref light_enabled@0x7fccece5ec90) (constant int (1)) ) ) (record_ref (array_ref (var_ref gl_FrontLightProduct@0x7fccece624f0) (constant int (1)) ) ambient) ) ) ) MOV TEMP[93], TEMP[92]; 94: (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecf76570) (constant vec4 (0.000000 0.000000 0.000000 0.000000)) ) MOV TEMP[94], CONST[70]; 95: (expression bool != (array_ref (var_ref light_enabled@0x7fccece5ec90) (constant int (0)) ) (constant int (0)) ) SNE.C TEMP[95].x, UNIFORM[1].xxxx, CONST[70].xxxx; 96: IF (NE.xxxx); # (if false, goto 150); 97: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fcced017e90) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (0)) ) position) ) MOV TEMP[96], TEMP[9]; 98: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fcced079540) )(swiz w (var_ref assignment_tmp@0x7fcced017e90) )) MUL TEMP[97].xyz, TEMP[70].xyzz, TEMP[96].wwww; 99: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fcced017e90) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fcced079540) )(swiz w (var_ref assignment_tmp@0x7fcced017e90) )) ) ) ADD TEMP[99].xyz, TEMP[96].xyzz, TEMP[97].-x-y-z-z; 100: (assign (constant bool (1)) (xyz) (var_ref rv@0x7fcced017de0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fcced017e90) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fcced079540) )(swiz w (var_ref assignment_tmp@0x7fcced017e90) )) ) ) )) MOV TEMP[100].xyz, TEMP[99].xyzz; 101: (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fcced018ed0) (swiz xyz (var_ref rv@0x7fcced017de0) )) MOV TEMP[101].xyz, TEMP[100].xyzz; 102: (expression float dot (var_ref arg0@0x7fcced018ed0) (var_ref arg0@0x7fcced018ed0) ) DP3 TEMP[102].x, TEMP[101].xyzz, TEMP[101].xyzz; 103: (expression float sqrt (expression float dot (var_ref arg0@0x7fcced018ed0) (var_ref arg0@0x7fcced018ed0) ) ) RSQ TEMP[103].x, TEMP[102].xxxx; 104: MUL TEMP[103].x, TEMP[103].xxxx, TEMP[102].xxxx; 105: CMP TEMP[103].x, TEMP[102].-x-x-x-x, TEMP[103].xxxx, CONST[70].xxxx; 106: (assign (constant bool (1)) (w) (var_ref rv@0x7fcced017de0) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x7fcced018ed0) (var_ref arg0@0x7fcced018ed0) ) ) )) MOV TEMP[100].w, TEMP[103].xxxx; 107: (expression float rcp (swiz w (var_ref rv@0x7fcced017de0) )) RCP TEMP[104].x, TEMP[100].wwww; 108: (expression vec3 * (swiz xyz (var_ref rv@0x7fcced017de0) )(expression float rcp (swiz w (var_ref rv@0x7fcced017de0) )) ) MUL TEMP[105].xyz, TEMP[100].xyzz, TEMP[104].xxxx; 109: (assign (constant bool (1)) (xyz) (var_ref rv@0x7fcced017de0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x7fcced017de0) )(expression float rcp (swiz w (var_ref rv@0x7fcced017de0) )) ) )) MOV TEMP[100].xyz, TEMP[105].xyzz; 110: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fcced01a060) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[106].x, CONST[71]; 111: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fcced01a060) (swiz www (var_ref rv@0x7fcced017de0) )) MOV TEMP[106].y, TEMP[100].wwww; 112: (expression float * (swiz w (var_ref rv@0x7fcced017de0) )(swiz w (var_ref rv@0x7fcced017de0) )) MUL TEMP[107].x, TEMP[100].wwww, TEMP[100].wwww; 113: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fcced01a060) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fcced017de0) )(swiz w (var_ref rv@0x7fcced017de0) )) )) MOV TEMP[106].z, TEMP[107].xxxx; 114: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fcced01aab0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (0)) ) constantAttenuation) )) MOV TEMP[108].x, TEMP[15].xxxx; 115: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fcced01aab0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (0)) ) linearAttenuation) )) MOV TEMP[108].y, TEMP[16].xxxx; 116: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fcced01aab0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (0)) ) quadraticAttenuation) )) MOV TEMP[108].z, TEMP[17].xxxx; 117: (expression float dot (var_ref vec_ctor@0x7fcced01a060) (var_ref vec_ctor@0x7fcced01aab0) ) DP3 TEMP[109].x, TEMP[106].xyzz, TEMP[108].xyzz; 118: (assign (constant bool (1)) (w) (var_ref rv@0x7fcced017de0) (swiz xxxx (expression float dot (var_ref vec_ctor@0x7fcced01a060) (var_ref vec_ctor@0x7fcced01aab0) ) )) MOV TEMP[100].w, TEMP[109].xxxx; 119: (expression float rcp (swiz w (var_ref rv@0x7fcced017de0) )) RCP TEMP[110].x, TEMP[100].wwww; 120: (assign (constant bool (1)) (w) (var_ref rv@0x7fcced017de0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fcced017de0) )) )) MOV TEMP[100].w, TEMP[110].xxxx; 121: (expression float dot (swiz xyz (var_ref rv@0x7fcced017de0) )(var_ref _ret_val@0x7fcced0154a0) ) DP3 TEMP[111].x, TEMP[100].xyzz, TEMP[83].xyzz; 122: (assign (constant bool (1)) (x) (var_ref _ret_val@0x7fcced01f0b0) (expression float dot (swiz xyz (var_ref rv@0x7fcced017de0) )(var_ref _ret_val@0x7fcced0154a0) ) ) MOV TEMP[112], TEMP[111].xxxx; 123: (expression float * (var_ref _ret_val@0x7fcced01f0b0) (constant float (4.000000)) ) MUL TEMP[113].x, TEMP[112].xxxx, CONST[69].yyyy; 124: (expression float min (expression float * (var_ref _ret_val@0x7fcced01f0b0) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[114].x, TEMP[113].xxxx, CONST[71].xxxx; 125: (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fcced01f0b0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[115].x, TEMP[114].xxxx, CONST[70].xxxx; 126: (assign (constant bool (1)) (x) (var_ref t@0x7fcced027b70) (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fcced01f0b0) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[116], TEMP[115].xxxx; 127: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced01f0b0) ) MAX TEMP[117].x, CONST[70].xxxx, TEMP[112].xxxx; 128: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced01f0b0) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (0)) ) diffuse) ) MUL TEMP[118], TEMP[117].xxxx, TEMP[7]; 129: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (0)) ) ambient) ) MUL TEMP[119], TEMP[2], TEMP[6]; 130: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (0)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced01f0b0) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (0)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) diffuse) ) ) MAD TEMP[120], TEMP[118], TEMP[3], TEMP[119]; 131: (expression vec4 + (var_ref pc@0x7fccecf766b0) (expression vec4 * (swiz w (var_ref rv@0x7fcced017de0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (0)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced01f0b0) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (0)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) diffuse) ) ) ) ) MAD TEMP[121], TEMP[100].wwww, TEMP[120], TEMP[93]; 132: (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecf766b0) (expression vec4 + (var_ref pc@0x7fccecf766b0) (expression vec4 * (swiz w (var_ref rv@0x7fcced017de0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (0)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced01f0b0) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (0)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) diffuse) ) ) ) ) ) MOV TEMP[93], TEMP[121]; 133: (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) DP3 TEMP[122].x, TEMP[83].xyzz, TEMP[75].xyzz; 134: (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) MUL TEMP[123].xyz, TEMP[122].xxxx, TEMP[83].xyzz; 135: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) MUL TEMP[124].xyz, CONST[69].xxxx, TEMP[123].xyzz; 136: (expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ADD TEMP[126].xyz, TEMP[75].xyzz, TEMP[124].-x-y-z-z; 137: (expression float dot (swiz xyz (var_ref rv@0x7fcced017de0) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) DP3 TEMP[127].x, TEMP[100].xyzz, TEMP[126].xyzz; 138: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced017de0) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) MAX TEMP[128].x, CONST[70].xxxx, TEMP[127].xxxx; 139: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) MAX TEMP[129].x, CONST[71].xxxx, TEMP[5].xxxx; 140: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced017de0) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) POW TEMP[130].x, TEMP[128].xxxx, TEMP[129].xxxx; 141: (expression float * (constant float (2.000000)) (var_ref t@0x7fcced027b70) ) MUL TEMP[131].x, CONST[69].xxxx, TEMP[116].xxxx; 142: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced027b70) ) ) ) ADD TEMP[133].x, CONST[69].zzzz, TEMP[131].-x-x-x-x; 143: (expression float * (var_ref t@0x7fcced027b70) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced027b70) ) ) ) ) MUL TEMP[134].x, TEMP[116].xxxx, TEMP[133].xxxx; 144: (expression float * (var_ref t@0x7fcced027b70) (expression float * (var_ref t@0x7fcced027b70) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced027b70) ) ) ) ) ) MUL TEMP[135].x, TEMP[116].xxxx, TEMP[134].xxxx; 145: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced017de0) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced027b70) (expression float * (var_ref t@0x7fcced027b70) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced027b70) ) ) ) ) ) ) MUL TEMP[136].x, TEMP[130].xxxx, TEMP[135].xxxx; 146: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced017de0) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced027b70) (expression float * (var_ref t@0x7fcced027b70) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced027b70) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (0)) ) specular) ) MUL TEMP[137], TEMP[136].xxxx, TEMP[8]; 147: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced017de0) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced027b70) (expression float * (var_ref t@0x7fcced027b70) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced027b70) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (0)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) specular) ) MUL TEMP[138], TEMP[137], TEMP[4]; 148: (expression vec4 * (swiz w (var_ref rv@0x7fcced017de0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced017de0) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced027b70) (expression float * (var_ref t@0x7fcced027b70) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced027b70) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (0)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) specular) ) ) MUL TEMP[139], TEMP[100].wwww, TEMP[138]; 149: (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecf76570) (expression vec4 * (swiz w (var_ref rv@0x7fcced017de0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced017de0) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced027b70) (expression float * (var_ref t@0x7fcced027b70) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced027b70) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (0)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) specular) ) ) ) MOV TEMP[94], TEMP[139]; 150: (expression bool != (array_ref (var_ref light_enabled@0x7fccece5ec90) (constant int (0)) ) (constant int (0)) ) ENDIF; 151: (expression bool != (array_ref (var_ref light_enabled@0x7fccece5ec90) (constant int (1)) ) (constant int (0)) ) SNE.C TEMP[140].x, UNIFORM[2].xxxx, CONST[70].xxxx; 152: IF (NE.xxxx); # (if false, goto 206); 153: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fcced02be80) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (1)) ) position) ) MOV TEMP[141], TEMP[21]; 154: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fcced079540) )(swiz w (var_ref assignment_tmp@0x7fcced02be80) )) MUL TEMP[142].xyz, TEMP[70].xyzz, TEMP[141].wwww; 155: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fcced02be80) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fcced079540) )(swiz w (var_ref assignment_tmp@0x7fcced02be80) )) ) ) ADD TEMP[144].xyz, TEMP[141].xyzz, TEMP[142].-x-y-z-z; 156: (assign (constant bool (1)) (xyz) (var_ref rv@0x7fcced02bd70) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fcced02be80) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fcced079540) )(swiz w (var_ref assignment_tmp@0x7fcced02be80) )) ) ) )) MOV TEMP[145].xyz, TEMP[144].xyzz; 157: (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fcced02ce30) (swiz xyz (var_ref rv@0x7fcced02bd70) )) MOV TEMP[146].xyz, TEMP[145].xyzz; 158: (expression float dot (var_ref arg0@0x7fcced02ce30) (var_ref arg0@0x7fcced02ce30) ) DP3 TEMP[147].x, TEMP[146].xyzz, TEMP[146].xyzz; 159: (expression float sqrt (expression float dot (var_ref arg0@0x7fcced02ce30) (var_ref arg0@0x7fcced02ce30) ) ) RSQ TEMP[148].x, TEMP[147].xxxx; 160: MUL TEMP[148].x, TEMP[148].xxxx, TEMP[147].xxxx; 161: CMP TEMP[148].x, TEMP[147].-x-x-x-x, TEMP[148].xxxx, CONST[70].xxxx; 162: (assign (constant bool (1)) (w) (var_ref rv@0x7fcced02bd70) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x7fcced02ce30) (var_ref arg0@0x7fcced02ce30) ) ) )) MOV TEMP[145].w, TEMP[148].xxxx; 163: (expression float rcp (swiz w (var_ref rv@0x7fcced02bd70) )) RCP TEMP[149].x, TEMP[145].wwww; 164: (expression vec3 * (swiz xyz (var_ref rv@0x7fcced02bd70) )(expression float rcp (swiz w (var_ref rv@0x7fcced02bd70) )) ) MUL TEMP[150].xyz, TEMP[145].xyzz, TEMP[149].xxxx; 165: (assign (constant bool (1)) (xyz) (var_ref rv@0x7fcced02bd70) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x7fcced02bd70) )(expression float rcp (swiz w (var_ref rv@0x7fcced02bd70) )) ) )) MOV TEMP[145].xyz, TEMP[150].xyzz; 166: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fcced02df90) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[151].x, CONST[71].xyzz; 167: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fcced02df90) (swiz www (var_ref rv@0x7fcced02bd70) )) MOV TEMP[151].y, TEMP[145].wwww; 168: (expression float * (swiz w (var_ref rv@0x7fcced02bd70) )(swiz w (var_ref rv@0x7fcced02bd70) )) MUL TEMP[152].x, TEMP[145].wwww, TEMP[145].wwww; 169: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fcced02df90) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fcced02bd70) )(swiz w (var_ref rv@0x7fcced02bd70) )) )) MOV TEMP[151].z, TEMP[152].xxxx; 170: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fcced02e9b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (1)) ) constantAttenuation) )) MOV TEMP[153].x, TEMP[27].xxxx; 171: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fcced02e9b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (1)) ) linearAttenuation) )) MOV TEMP[153].y, TEMP[28].xxxx; 172: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fcced02e9b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (1)) ) quadraticAttenuation) )) MOV TEMP[153].z, TEMP[29].xxxx; 173: (expression float dot (var_ref vec_ctor@0x7fcced02df90) (var_ref vec_ctor@0x7fcced02e9b0) ) DP3 TEMP[154].x, TEMP[151].xyzz, TEMP[153].xyzz; 174: (assign (constant bool (1)) (w) (var_ref rv@0x7fcced02bd70) (swiz xxxx (expression float dot (var_ref vec_ctor@0x7fcced02df90) (var_ref vec_ctor@0x7fcced02e9b0) ) )) MOV TEMP[145].w, TEMP[154].xxxx; 175: (expression float rcp (swiz w (var_ref rv@0x7fcced02bd70) )) RCP TEMP[155].x, TEMP[145].wwww; 176: (assign (constant bool (1)) (w) (var_ref rv@0x7fcced02bd70) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fcced02bd70) )) )) MOV TEMP[145].w, TEMP[155].xxxx; 177: (expression float dot (swiz xyz (var_ref rv@0x7fcced02bd70) )(var_ref _ret_val@0x7fcced0154a0) ) DP3 TEMP[156].x, TEMP[145].xyzz, TEMP[83].xyzz; 178: (assign (constant bool (1)) (x) (var_ref _ret_val@0x7fcced032d40) (expression float dot (swiz xyz (var_ref rv@0x7fcced02bd70) )(var_ref _ret_val@0x7fcced0154a0) ) ) MOV TEMP[157], TEMP[156].xxxx; 179: (expression float * (var_ref _ret_val@0x7fcced032d40) (constant float (4.000000)) ) MUL TEMP[158].x, TEMP[157].xxxx, CONST[69].yyyy; 180: (expression float min (expression float * (var_ref _ret_val@0x7fcced032d40) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[159].x, TEMP[158].xxxx, CONST[71].xxxx; 181: (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fcced032d40) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[160].x, TEMP[159].xxxx, CONST[70].xxxx; 182: (assign (constant bool (1)) (x) (var_ref t@0x7fcced03b230) (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fcced032d40) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[161], TEMP[160].xxxx; 183: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced032d40) ) MAX TEMP[162].x, CONST[70].xxxx, TEMP[157].xxxx; 184: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced032d40) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (1)) ) diffuse) ) MUL TEMP[163], TEMP[162].xxxx, TEMP[19]; 185: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (1)) ) ambient) ) MUL TEMP[164], TEMP[2], TEMP[18]; 186: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (1)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced032d40) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (1)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) diffuse) ) ) MAD TEMP[165], TEMP[163], TEMP[3], TEMP[164]; 187: (expression vec4 + (var_ref pc@0x7fccecf766b0) (expression vec4 * (swiz w (var_ref rv@0x7fcced02bd70) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (1)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced032d40) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (1)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) diffuse) ) ) ) ) MAD TEMP[166], TEMP[145].wwww, TEMP[165], TEMP[93]; 188: (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecf766b0) (expression vec4 + (var_ref pc@0x7fccecf766b0) (expression vec4 * (swiz w (var_ref rv@0x7fcced02bd70) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (1)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced032d40) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (1)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) diffuse) ) ) ) ) ) MOV TEMP[93], TEMP[166]; 189: (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) DP3 TEMP[167].x, TEMP[83].xyzz, TEMP[75].xyzz; 190: (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) MUL TEMP[168].xyz, TEMP[167].xxxx, TEMP[83].xyzz; 191: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) MUL TEMP[169].xyz, CONST[69].xxxx, TEMP[168].xyzz; 192: (expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ADD TEMP[171].xyz, TEMP[75].xyzz, TEMP[169].-x-y-z-z; 193: (expression float dot (swiz xyz (var_ref rv@0x7fcced02bd70) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) DP3 TEMP[172].x, TEMP[145].xyzz, TEMP[171].xyzz; 194: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced02bd70) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) MAX TEMP[173].x, CONST[70].xxxx, TEMP[172].xxxx; 195: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) MAX TEMP[174].x, CONST[71].xxxx, TEMP[5].xxxx; 196: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced02bd70) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) POW TEMP[175].x, TEMP[173].xxxx, TEMP[174].xxxx; 197: (expression float * (constant float (2.000000)) (var_ref t@0x7fcced03b230) ) MUL TEMP[176].x, CONST[69].xxxx, TEMP[161].xxxx; 198: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced03b230) ) ) ) ADD TEMP[178].x, CONST[69].zzzz, TEMP[176].-x-x-x-x; 199: (expression float * (var_ref t@0x7fcced03b230) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced03b230) ) ) ) ) MUL TEMP[179].x, TEMP[161].xxxx, TEMP[178].xxxx; 200: (expression float * (var_ref t@0x7fcced03b230) (expression float * (var_ref t@0x7fcced03b230) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced03b230) ) ) ) ) ) MUL TEMP[180].x, TEMP[161].xxxx, TEMP[179].xxxx; 201: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced02bd70) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced03b230) (expression float * (var_ref t@0x7fcced03b230) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced03b230) ) ) ) ) ) ) MUL TEMP[181].x, TEMP[175].xxxx, TEMP[180].xxxx; 202: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced02bd70) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced03b230) (expression float * (var_ref t@0x7fcced03b230) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced03b230) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (1)) ) specular) ) MUL TEMP[182], TEMP[181].xxxx, TEMP[20]; 203: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced02bd70) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced03b230) (expression float * (var_ref t@0x7fcced03b230) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced03b230) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (1)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) specular) ) MUL TEMP[183], TEMP[182], TEMP[4]; 204: (expression vec4 + (var_ref sc@0x7fccecf76570) (expression vec4 * (swiz w (var_ref rv@0x7fcced02bd70) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced02bd70) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced03b230) (expression float * (var_ref t@0x7fcced03b230) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced03b230) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (1)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) specular) ) ) ) MAD TEMP[184], TEMP[145].wwww, TEMP[183], TEMP[94]; 205: (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecf76570) (expression vec4 + (var_ref sc@0x7fccecf76570) (expression vec4 * (swiz w (var_ref rv@0x7fcced02bd70) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced02bd70) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced03b230) (expression float * (var_ref t@0x7fcced03b230) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced03b230) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (1)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) specular) ) ) ) ) MOV TEMP[94], TEMP[184]; 206: (expression bool != (array_ref (var_ref light_enabled@0x7fccece5ec90) (constant int (1)) ) (constant int (0)) ) ENDIF; 207: (expression bool >= (var_ref max_light_enabled@0x7fccece5ebe0) (constant int (2)) ) SGE.C TEMP[185].x, UNIFORM[0].xxxx, CONST[69].xxxx; 208: IF (NE.xxxx); # (if false, goto 377); 209: (expression bool != (array_ref (var_ref light_enabled@0x7fccece5ec90) (constant int (2)) ) (constant int (0)) ) SNE.C TEMP[186].x, UNIFORM[3].xxxx, CONST[70].xxxx; 210: IF (NE.xxxx); # (if false, goto 264); 211: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fcced03f6c0) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (2)) ) position) ) MOV TEMP[187], TEMP[33]; 212: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fcced079540) )(swiz w (var_ref assignment_tmp@0x7fcced03f6c0) )) MUL TEMP[188].xyz, TEMP[70].xyzz, TEMP[187].wwww; 213: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fcced03f6c0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fcced079540) )(swiz w (var_ref assignment_tmp@0x7fcced03f6c0) )) ) ) ADD TEMP[190].xyz, TEMP[187].xyzz, TEMP[188].-x-y-z-z; 214: (assign (constant bool (1)) (xyz) (var_ref rv@0x7fcced03f5b0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fcced03f6c0) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fcced079540) )(swiz w (var_ref assignment_tmp@0x7fcced03f6c0) )) ) ) )) MOV TEMP[191].xyz, TEMP[190].xyzz; 215: (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fcced040670) (swiz xyz (var_ref rv@0x7fcced03f5b0) )) MOV TEMP[192].xyz, TEMP[191].xyzz; 216: (expression float dot (var_ref arg0@0x7fcced040670) (var_ref arg0@0x7fcced040670) ) DP3 TEMP[193].x, TEMP[192].xyzz, TEMP[192].xyzz; 217: (expression float sqrt (expression float dot (var_ref arg0@0x7fcced040670) (var_ref arg0@0x7fcced040670) ) ) RSQ TEMP[194].x, TEMP[193].xxxx; 218: MUL TEMP[194].x, TEMP[194].xxxx, TEMP[193].xxxx; 219: CMP TEMP[194].x, TEMP[193].-x-x-x-x, TEMP[194].xxxx, CONST[70].xxxx; 220: (assign (constant bool (1)) (w) (var_ref rv@0x7fcced03f5b0) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x7fcced040670) (var_ref arg0@0x7fcced040670) ) ) )) MOV TEMP[191].w, TEMP[194].xxxx; 221: (expression float rcp (swiz w (var_ref rv@0x7fcced03f5b0) )) RCP TEMP[195].x, TEMP[191].wwww; 222: (expression vec3 * (swiz xyz (var_ref rv@0x7fcced03f5b0) )(expression float rcp (swiz w (var_ref rv@0x7fcced03f5b0) )) ) MUL TEMP[196].xyz, TEMP[191].xyzz, TEMP[195].xxxx; 223: (assign (constant bool (1)) (xyz) (var_ref rv@0x7fcced03f5b0) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x7fcced03f5b0) )(expression float rcp (swiz w (var_ref rv@0x7fcced03f5b0) )) ) )) MOV TEMP[191].xyz, TEMP[196].xyzz; 224: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fcced0417d0) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[197].x, CONST[71].xyzz; 225: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fcced0417d0) (swiz www (var_ref rv@0x7fcced03f5b0) )) MOV TEMP[197].y, TEMP[191].wwww; 226: (expression float * (swiz w (var_ref rv@0x7fcced03f5b0) )(swiz w (var_ref rv@0x7fcced03f5b0) )) MUL TEMP[198].x, TEMP[191].wwww, TEMP[191].wwww; 227: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fcced0417d0) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fcced03f5b0) )(swiz w (var_ref rv@0x7fcced03f5b0) )) )) MOV TEMP[197].z, TEMP[198].xxxx; 228: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fcced0421f0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (2)) ) constantAttenuation) )) MOV TEMP[199].x, TEMP[39].xxxx; 229: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fcced0421f0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (2)) ) linearAttenuation) )) MOV TEMP[199].y, TEMP[40].xxxx; 230: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fcced0421f0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (2)) ) quadraticAttenuation) )) MOV TEMP[199].z, TEMP[41].xxxx; 231: (expression float dot (var_ref vec_ctor@0x7fcced0417d0) (var_ref vec_ctor@0x7fcced0421f0) ) DP3 TEMP[200].x, TEMP[197].xyzz, TEMP[199].xyzz; 232: (assign (constant bool (1)) (w) (var_ref rv@0x7fcced03f5b0) (swiz xxxx (expression float dot (var_ref vec_ctor@0x7fcced0417d0) (var_ref vec_ctor@0x7fcced0421f0) ) )) MOV TEMP[191].w, TEMP[200].xxxx; 233: (expression float rcp (swiz w (var_ref rv@0x7fcced03f5b0) )) RCP TEMP[201].x, TEMP[191].wwww; 234: (assign (constant bool (1)) (w) (var_ref rv@0x7fcced03f5b0) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fcced03f5b0) )) )) MOV TEMP[191].w, TEMP[201].xxxx; 235: (expression float dot (swiz xyz (var_ref rv@0x7fcced03f5b0) )(var_ref _ret_val@0x7fcced0154a0) ) DP3 TEMP[202].x, TEMP[191].xyzz, TEMP[83].xyzz; 236: (assign (constant bool (1)) (x) (var_ref _ret_val@0x7fcced046580) (expression float dot (swiz xyz (var_ref rv@0x7fcced03f5b0) )(var_ref _ret_val@0x7fcced0154a0) ) ) MOV TEMP[203], TEMP[202].xxxx; 237: (expression float * (var_ref _ret_val@0x7fcced046580) (constant float (4.000000)) ) MUL TEMP[204].x, TEMP[203].xxxx, CONST[69].yyyy; 238: (expression float min (expression float * (var_ref _ret_val@0x7fcced046580) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[205].x, TEMP[204].xxxx, CONST[71].xxxx; 239: (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fcced046580) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[206].x, TEMP[205].xxxx, CONST[70].xxxx; 240: (assign (constant bool (1)) (x) (var_ref t@0x7fcced04e920) (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fcced046580) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[207], TEMP[206].xxxx; 241: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced046580) ) MAX TEMP[208].x, CONST[70].xxxx, TEMP[203].xxxx; 242: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced046580) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (2)) ) diffuse) ) MUL TEMP[209], TEMP[208].xxxx, TEMP[31]; 243: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (2)) ) ambient) ) MUL TEMP[210], TEMP[2], TEMP[30]; 244: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced046580) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) diffuse) ) ) MAD TEMP[211], TEMP[209], TEMP[3], TEMP[210]; 245: (expression vec4 + (var_ref pc@0x7fccecf766b0) (expression vec4 * (swiz w (var_ref rv@0x7fcced03f5b0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced046580) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) diffuse) ) ) ) ) MAD TEMP[212], TEMP[191].wwww, TEMP[211], TEMP[93]; 246: (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecf766b0) (expression vec4 + (var_ref pc@0x7fccecf766b0) (expression vec4 * (swiz w (var_ref rv@0x7fcced03f5b0) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (2)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced046580) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (2)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) diffuse) ) ) ) ) ) MOV TEMP[93], TEMP[212]; 247: (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) DP3 TEMP[213].x, TEMP[83].xyzz, TEMP[75].xyzz; 248: (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) MUL TEMP[214].xyz, TEMP[213].xxxx, TEMP[83].xyzz; 249: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) MUL TEMP[215].xyz, CONST[69].xxxx, TEMP[214].xyzz; 250: (expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ADD TEMP[217].xyz, TEMP[75].xyzz, TEMP[215].-x-y-z-z; 251: (expression float dot (swiz xyz (var_ref rv@0x7fcced03f5b0) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) DP3 TEMP[218].x, TEMP[191].xyzz, TEMP[217].xyzz; 252: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced03f5b0) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) MAX TEMP[219].x, CONST[70].xxxx, TEMP[218].xxxx; 253: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) MAX TEMP[220].x, CONST[71].xxxx, TEMP[5].xxxx; 254: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced03f5b0) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) POW TEMP[221].x, TEMP[219].xxxx, TEMP[220].xxxx; 255: (expression float * (constant float (2.000000)) (var_ref t@0x7fcced04e920) ) MUL TEMP[222].x, CONST[69].xxxx, TEMP[207].xxxx; 256: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced04e920) ) ) ) ADD TEMP[224].x, CONST[69].zzzz, TEMP[222].-x-x-x-x; 257: (expression float * (var_ref t@0x7fcced04e920) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced04e920) ) ) ) ) MUL TEMP[225].x, TEMP[207].xxxx, TEMP[224].xxxx; 258: (expression float * (var_ref t@0x7fcced04e920) (expression float * (var_ref t@0x7fcced04e920) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced04e920) ) ) ) ) ) MUL TEMP[226].x, TEMP[207].xxxx, TEMP[225].xxxx; 259: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced03f5b0) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced04e920) (expression float * (var_ref t@0x7fcced04e920) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced04e920) ) ) ) ) ) ) MUL TEMP[227].x, TEMP[221].xxxx, TEMP[226].xxxx; 260: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced03f5b0) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced04e920) (expression float * (var_ref t@0x7fcced04e920) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced04e920) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (2)) ) specular) ) MUL TEMP[228], TEMP[227].xxxx, TEMP[32]; 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@0x7fcced03f5b0) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced04e920) (expression float * (var_ref t@0x7fcced04e920) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced04e920) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) specular) ) MUL TEMP[229], TEMP[228], TEMP[4]; 262: (expression vec4 + (var_ref sc@0x7fccecf76570) (expression vec4 * (swiz w (var_ref rv@0x7fcced03f5b0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced03f5b0) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced04e920) (expression float * (var_ref t@0x7fcced04e920) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced04e920) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) specular) ) ) ) MAD TEMP[230], TEMP[191].wwww, TEMP[229], TEMP[94]; 263: (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecf76570) (expression vec4 + (var_ref sc@0x7fccecf76570) (expression vec4 * (swiz w (var_ref rv@0x7fcced03f5b0) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced03f5b0) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced04e920) (expression float * (var_ref t@0x7fcced04e920) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced04e920) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (2)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) specular) ) ) ) ) MOV TEMP[94], TEMP[230]; 264: (expression bool != (array_ref (var_ref light_enabled@0x7fccece5ec90) (constant int (2)) ) (constant int (0)) ) ENDIF; 265: (expression bool != (array_ref (var_ref light_enabled@0x7fccece5ec90) (constant int (3)) ) (constant int (0)) ) SNE.C TEMP[231].x, UNIFORM[4].xxxx, CONST[70].xxxx; 266: IF (NE.xxxx); # (if false, goto 320); 267: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fcced052d80) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (3)) ) position) ) MOV TEMP[232], TEMP[45]; 268: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fcced079540) )(swiz w (var_ref assignment_tmp@0x7fcced052d80) )) MUL TEMP[233].xyz, TEMP[70].xyzz, TEMP[232].wwww; 269: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fcced052d80) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fcced079540) )(swiz w (var_ref assignment_tmp@0x7fcced052d80) )) ) ) ADD TEMP[235].xyz, TEMP[232].xyzz, TEMP[233].-x-y-z-z; 270: (assign (constant bool (1)) (xyz) (var_ref rv@0x7fcced052c70) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fcced052d80) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fcced079540) )(swiz w (var_ref assignment_tmp@0x7fcced052d80) )) ) ) )) MOV TEMP[236].xyz, TEMP[235].xyzz; 271: (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fcced053d30) (swiz xyz (var_ref rv@0x7fcced052c70) )) MOV TEMP[237].xyz, TEMP[236].xyzz; 272: (expression float dot (var_ref arg0@0x7fcced053d30) (var_ref arg0@0x7fcced053d30) ) DP3 TEMP[238].x, TEMP[237].xyzz, TEMP[237].xyzz; 273: (expression float sqrt (expression float dot (var_ref arg0@0x7fcced053d30) (var_ref arg0@0x7fcced053d30) ) ) RSQ TEMP[239].x, TEMP[238].xxxx; 274: MUL TEMP[239].x, TEMP[239].xxxx, TEMP[238].xxxx; 275: CMP TEMP[239].x, TEMP[238].-x-x-x-x, TEMP[239].xxxx, CONST[70].xxxx; 276: (assign (constant bool (1)) (w) (var_ref rv@0x7fcced052c70) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x7fcced053d30) (var_ref arg0@0x7fcced053d30) ) ) )) MOV TEMP[236].w, TEMP[239].xxxx; 277: (expression float rcp (swiz w (var_ref rv@0x7fcced052c70) )) RCP TEMP[240].x, TEMP[236].wwww; 278: (expression vec3 * (swiz xyz (var_ref rv@0x7fcced052c70) )(expression float rcp (swiz w (var_ref rv@0x7fcced052c70) )) ) MUL TEMP[241].xyz, TEMP[236].xyzz, TEMP[240].xxxx; 279: (assign (constant bool (1)) (xyz) (var_ref rv@0x7fcced052c70) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x7fcced052c70) )(expression float rcp (swiz w (var_ref rv@0x7fcced052c70) )) ) )) MOV TEMP[236].xyz, TEMP[241].xyzz; 280: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fcced054e90) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[242].x, CONST[71].xyzz; 281: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fcced054e90) (swiz www (var_ref rv@0x7fcced052c70) )) MOV TEMP[242].y, TEMP[236].wwww; 282: (expression float * (swiz w (var_ref rv@0x7fcced052c70) )(swiz w (var_ref rv@0x7fcced052c70) )) MUL TEMP[243].x, TEMP[236].wwww, TEMP[236].wwww; 283: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fcced054e90) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fcced052c70) )(swiz w (var_ref rv@0x7fcced052c70) )) )) MOV TEMP[242].z, TEMP[243].xxxx; 284: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fcced0558b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (3)) ) constantAttenuation) )) MOV TEMP[244].x, TEMP[51].xxxx; 285: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fcced0558b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (3)) ) linearAttenuation) )) MOV TEMP[244].y, TEMP[52].xxxx; 286: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fcced0558b0) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (3)) ) quadraticAttenuation) )) MOV TEMP[244].z, TEMP[53].xxxx; 287: (expression float dot (var_ref vec_ctor@0x7fcced054e90) (var_ref vec_ctor@0x7fcced0558b0) ) DP3 TEMP[245].x, TEMP[242].xyzz, TEMP[244].xyzz; 288: (assign (constant bool (1)) (w) (var_ref rv@0x7fcced052c70) (swiz xxxx (expression float dot (var_ref vec_ctor@0x7fcced054e90) (var_ref vec_ctor@0x7fcced0558b0) ) )) MOV TEMP[236].w, TEMP[245].xxxx; 289: (expression float rcp (swiz w (var_ref rv@0x7fcced052c70) )) RCP TEMP[246].x, TEMP[236].wwww; 290: (assign (constant bool (1)) (w) (var_ref rv@0x7fcced052c70) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fcced052c70) )) )) MOV TEMP[236].w, TEMP[246].xxxx; 291: (expression float dot (swiz xyz (var_ref rv@0x7fcced052c70) )(var_ref _ret_val@0x7fcced0154a0) ) DP3 TEMP[247].x, TEMP[236].xyzz, TEMP[83].xyzz; 292: (assign (constant bool (1)) (x) (var_ref _ret_val@0x7fcced059c40) (expression float dot (swiz xyz (var_ref rv@0x7fcced052c70) )(var_ref _ret_val@0x7fcced0154a0) ) ) MOV TEMP[248], TEMP[247].xxxx; 293: (expression float * (var_ref _ret_val@0x7fcced059c40) (constant float (4.000000)) ) MUL TEMP[249].x, TEMP[248].xxxx, CONST[69].yyyy; 294: (expression float min (expression float * (var_ref _ret_val@0x7fcced059c40) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[250].x, TEMP[249].xxxx, CONST[71].xxxx; 295: (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fcced059c40) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[251].x, TEMP[250].xxxx, CONST[70].xxxx; 296: (assign (constant bool (1)) (x) (var_ref t@0x7fcced061fe0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fcced059c40) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[252], TEMP[251].xxxx; 297: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced059c40) ) MAX TEMP[253].x, CONST[70].xxxx, TEMP[248].xxxx; 298: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced059c40) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (3)) ) diffuse) ) MUL TEMP[254], TEMP[253].xxxx, TEMP[43]; 299: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (3)) ) ambient) ) MUL TEMP[255], TEMP[2], TEMP[42]; 300: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced059c40) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) diffuse) ) ) MAD TEMP[256], TEMP[254], TEMP[3], TEMP[255]; 301: (expression vec4 + (var_ref pc@0x7fccecf766b0) (expression vec4 * (swiz w (var_ref rv@0x7fcced052c70) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced059c40) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) diffuse) ) ) ) ) MAD TEMP[257], TEMP[236].wwww, TEMP[256], TEMP[93]; 302: (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecf766b0) (expression vec4 + (var_ref pc@0x7fccecf766b0) (expression vec4 * (swiz w (var_ref rv@0x7fcced052c70) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (3)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced059c40) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (3)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) diffuse) ) ) ) ) ) MOV TEMP[93], TEMP[257]; 303: (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) DP3 TEMP[258].x, TEMP[83].xyzz, TEMP[75].xyzz; 304: (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) MUL TEMP[259].xyz, TEMP[258].xxxx, TEMP[83].xyzz; 305: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) MUL TEMP[260].xyz, CONST[69].xxxx, TEMP[259].xyzz; 306: (expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ADD TEMP[262].xyz, TEMP[75].xyzz, TEMP[260].-x-y-z-z; 307: (expression float dot (swiz xyz (var_ref rv@0x7fcced052c70) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) DP3 TEMP[263].x, TEMP[236].xyzz, TEMP[262].xyzz; 308: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced052c70) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) MAX TEMP[264].x, CONST[70].xxxx, TEMP[263].xxxx; 309: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) MAX TEMP[265].x, CONST[71].xxxx, TEMP[5].xxxx; 310: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced052c70) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) POW TEMP[266].x, TEMP[264].xxxx, TEMP[265].xxxx; 311: (expression float * (constant float (2.000000)) (var_ref t@0x7fcced061fe0) ) MUL TEMP[267].x, CONST[69].xxxx, TEMP[252].xxxx; 312: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced061fe0) ) ) ) ADD TEMP[269].x, CONST[69].zzzz, TEMP[267].-x-x-x-x; 313: (expression float * (var_ref t@0x7fcced061fe0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced061fe0) ) ) ) ) MUL TEMP[270].x, TEMP[252].xxxx, TEMP[269].xxxx; 314: (expression float * (var_ref t@0x7fcced061fe0) (expression float * (var_ref t@0x7fcced061fe0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced061fe0) ) ) ) ) ) MUL TEMP[271].x, TEMP[252].xxxx, TEMP[270].xxxx; 315: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced052c70) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced061fe0) (expression float * (var_ref t@0x7fcced061fe0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced061fe0) ) ) ) ) ) ) MUL TEMP[272].x, TEMP[266].xxxx, TEMP[271].xxxx; 316: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced052c70) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced061fe0) (expression float * (var_ref t@0x7fcced061fe0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced061fe0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (3)) ) specular) ) MUL TEMP[273], TEMP[272].xxxx, TEMP[44]; 317: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced052c70) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced061fe0) (expression float * (var_ref t@0x7fcced061fe0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced061fe0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) specular) ) MUL TEMP[274], TEMP[273], TEMP[4]; 318: (expression vec4 + (var_ref sc@0x7fccecf76570) (expression vec4 * (swiz w (var_ref rv@0x7fcced052c70) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced052c70) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced061fe0) (expression float * (var_ref t@0x7fcced061fe0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced061fe0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) specular) ) ) ) MAD TEMP[275], TEMP[236].wwww, TEMP[274], TEMP[94]; 319: (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecf76570) (expression vec4 + (var_ref sc@0x7fccecf76570) (expression vec4 * (swiz w (var_ref rv@0x7fcced052c70) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced052c70) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced061fe0) (expression float * (var_ref t@0x7fcced061fe0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced061fe0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (3)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) specular) ) ) ) ) MOV TEMP[94], TEMP[275]; 320: (expression bool != (array_ref (var_ref light_enabled@0x7fccece5ec90) (constant int (3)) ) (constant int (0)) ) ENDIF; 321: (expression bool != (array_ref (var_ref light_enabled@0x7fccece5ec90) (constant int (4)) ) (constant int (0)) ) SNE.C TEMP[276].x, UNIFORM[5].xxxx, CONST[70].xxxx; 322: IF (NE.xxxx); # (if false, goto 376); 323: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fcced066440) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (4)) ) position) ) MOV TEMP[277], TEMP[57]; 324: (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fcced079540) )(swiz w (var_ref assignment_tmp@0x7fcced066440) )) MUL TEMP[278].xyz, TEMP[70].xyzz, TEMP[277].wwww; 325: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fcced066440) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fcced079540) )(swiz w (var_ref assignment_tmp@0x7fcced066440) )) ) ) ADD TEMP[280].xyz, TEMP[277].xyzz, TEMP[278].-x-y-z-z; 326: (assign (constant bool (1)) (xyz) (var_ref rv@0x7fcced066330) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fcced066440) )(expression vec3 neg (expression vec3 * (swiz xyz (var_ref flattening_tmp@0x7fcced079540) )(swiz w (var_ref assignment_tmp@0x7fcced066440) )) ) ) )) MOV TEMP[281].xyz, TEMP[280].xyzz; 327: (assign (constant bool (1)) (xyz) (var_ref arg0@0x7fcced0673f0) (swiz xyz (var_ref rv@0x7fcced066330) )) MOV TEMP[282].xyz, TEMP[281].xyzz; 328: (expression float dot (var_ref arg0@0x7fcced0673f0) (var_ref arg0@0x7fcced0673f0) ) DP3 TEMP[283].x, TEMP[282].xyzz, TEMP[282].xyzz; 329: (expression float sqrt (expression float dot (var_ref arg0@0x7fcced0673f0) (var_ref arg0@0x7fcced0673f0) ) ) RSQ TEMP[284].x, TEMP[283].xxxx; 330: MUL TEMP[284].x, TEMP[284].xxxx, TEMP[283].xxxx; 331: CMP TEMP[284].x, TEMP[283].-x-x-x-x, TEMP[284].xxxx, CONST[70].xxxx; 332: (assign (constant bool (1)) (w) (var_ref rv@0x7fcced066330) (swiz xxxx (expression float sqrt (expression float dot (var_ref arg0@0x7fcced0673f0) (var_ref arg0@0x7fcced0673f0) ) ) )) MOV TEMP[281].w, TEMP[284].xxxx; 333: (expression float rcp (swiz w (var_ref rv@0x7fcced066330) )) RCP TEMP[285].x, TEMP[281].wwww; 334: (expression vec3 * (swiz xyz (var_ref rv@0x7fcced066330) )(expression float rcp (swiz w (var_ref rv@0x7fcced066330) )) ) MUL TEMP[286].xyz, TEMP[281].xyzz, TEMP[285].xxxx; 335: (assign (constant bool (1)) (xyz) (var_ref rv@0x7fcced066330) (swiz xyz (expression vec3 * (swiz xyz (var_ref rv@0x7fcced066330) )(expression float rcp (swiz w (var_ref rv@0x7fcced066330) )) ) )) MOV TEMP[281].xyz, TEMP[286].xyzz; 336: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fcced068550) (constant vec3 (1.000000 0.000000 0.000000)) ) MOV TEMP[287].x, CONST[71].xyzz; 337: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fcced068550) (swiz www (var_ref rv@0x7fcced066330) )) MOV TEMP[287].y, TEMP[281].wwww; 338: (expression float * (swiz w (var_ref rv@0x7fcced066330) )(swiz w (var_ref rv@0x7fcced066330) )) MUL TEMP[288].x, TEMP[281].wwww, TEMP[281].wwww; 339: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fcced068550) (swiz xxx (expression float * (swiz w (var_ref rv@0x7fcced066330) )(swiz w (var_ref rv@0x7fcced066330) )) )) MOV TEMP[287].z, TEMP[288].xxxx; 340: (assign (constant bool (1)) (x) (var_ref vec_ctor@0x7fcced068f70) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (4)) ) constantAttenuation) )) MOV TEMP[289].x, TEMP[63].xxxx; 341: (assign (constant bool (1)) (y) (var_ref vec_ctor@0x7fcced068f70) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (4)) ) linearAttenuation) )) MOV TEMP[289].y, TEMP[64].xxxx; 342: (assign (constant bool (1)) (z) (var_ref vec_ctor@0x7fcced068f70) (swiz xxx (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (4)) ) quadraticAttenuation) )) MOV TEMP[289].z, TEMP[65].xxxx; 343: (expression float dot (var_ref vec_ctor@0x7fcced068550) (var_ref vec_ctor@0x7fcced068f70) ) DP3 TEMP[290].x, TEMP[287].xyzz, TEMP[289].xyzz; 344: (assign (constant bool (1)) (w) (var_ref rv@0x7fcced066330) (swiz xxxx (expression float dot (var_ref vec_ctor@0x7fcced068550) (var_ref vec_ctor@0x7fcced068f70) ) )) MOV TEMP[281].w, TEMP[290].xxxx; 345: (expression float rcp (swiz w (var_ref rv@0x7fcced066330) )) RCP TEMP[291].x, TEMP[281].wwww; 346: (assign (constant bool (1)) (w) (var_ref rv@0x7fcced066330) (swiz xxxx (expression float rcp (swiz w (var_ref rv@0x7fcced066330) )) )) MOV TEMP[281].w, TEMP[291].xxxx; 347: (expression float dot (swiz xyz (var_ref rv@0x7fcced066330) )(var_ref _ret_val@0x7fcced0154a0) ) DP3 TEMP[292].x, TEMP[281].xyzz, TEMP[83].xyzz; 348: (assign (constant bool (1)) (x) (var_ref _ret_val@0x7fcced06d300) (expression float dot (swiz xyz (var_ref rv@0x7fcced066330) )(var_ref _ret_val@0x7fcced0154a0) ) ) MOV TEMP[293], TEMP[292].xxxx; 349: (expression float * (var_ref _ret_val@0x7fcced06d300) (constant float (4.000000)) ) MUL TEMP[294].x, TEMP[293].xxxx, CONST[69].yyyy; 350: (expression float min (expression float * (var_ref _ret_val@0x7fcced06d300) (constant float (4.000000)) ) (constant float (1.000000)) ) MIN TEMP[295].x, TEMP[294].xxxx, CONST[71].xxxx; 351: (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fcced06d300) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) MAX TEMP[296].x, TEMP[295].xxxx, CONST[70].xxxx; 352: (assign (constant bool (1)) (x) (var_ref t@0x7fcced0756a0) (expression float max (expression float min (expression float * (var_ref _ret_val@0x7fcced06d300) (constant float (4.000000)) ) (constant float (1.000000)) ) (constant float (0.000000)) ) ) MOV TEMP[297], TEMP[296].xxxx; 353: (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced06d300) ) MAX TEMP[298].x, CONST[70].xxxx, TEMP[293].xxxx; 354: (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced06d300) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (4)) ) diffuse) ) MUL TEMP[299], TEMP[298].xxxx, TEMP[55]; 355: (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (4)) ) ambient) ) MUL TEMP[300], TEMP[2], TEMP[54]; 356: (expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced06d300) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) diffuse) ) ) MAD TEMP[301], TEMP[299], TEMP[3], TEMP[300]; 357: (expression vec4 + (var_ref pc@0x7fccecf766b0) (expression vec4 * (swiz w (var_ref rv@0x7fcced066330) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced06d300) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) diffuse) ) ) ) ) MAD TEMP[302], TEMP[281].wwww, TEMP[301], TEMP[93]; 358: (assign (constant bool (1)) (xyzw) (var_ref pc@0x7fccecf766b0) (expression vec4 + (var_ref pc@0x7fccecf766b0) (expression vec4 * (swiz w (var_ref rv@0x7fcced066330) )(expression vec4 + (expression vec4 * (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) ambient) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (4)) ) ambient) ) (expression vec4 * (expression vec4 * (expression float max (constant float (0.000000)) (var_ref _ret_val@0x7fcced06d300) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (4)) ) diffuse) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) diffuse) ) ) ) ) ) MOV TEMP[93], TEMP[302]; 359: (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) DP3 TEMP[303].x, TEMP[83].xyzz, TEMP[75].xyzz; 360: (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) MUL TEMP[304].xyz, TEMP[303].xxxx, TEMP[83].xyzz; 361: (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) MUL TEMP[305].xyz, CONST[69].xxxx, TEMP[304].xyzz; 362: (expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ADD TEMP[307].xyz, TEMP[75].xyzz, TEMP[305].-x-y-z-z; 363: (expression float dot (swiz xyz (var_ref rv@0x7fcced066330) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) DP3 TEMP[308].x, TEMP[281].xyzz, TEMP[307].xyzz; 364: (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced066330) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) MAX TEMP[309].x, CONST[70].xxxx, TEMP[308].xxxx; 365: (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) MAX TEMP[310].x, CONST[71].xxxx, TEMP[5].xxxx; 366: (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced066330) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) POW TEMP[311].x, TEMP[309].xxxx, TEMP[310].xxxx; 367: (expression float * (constant float (2.000000)) (var_ref t@0x7fcced0756a0) ) MUL TEMP[312].x, CONST[69].xxxx, TEMP[297].xxxx; 368: (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced0756a0) ) ) ) ADD TEMP[314].x, CONST[69].zzzz, TEMP[312].-x-x-x-x; 369: (expression float * (var_ref t@0x7fcced0756a0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced0756a0) ) ) ) ) MUL TEMP[315].x, TEMP[297].xxxx, TEMP[314].xxxx; 370: (expression float * (var_ref t@0x7fcced0756a0) (expression float * (var_ref t@0x7fcced0756a0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced0756a0) ) ) ) ) ) MUL TEMP[316].x, TEMP[297].xxxx, TEMP[315].xxxx; 371: (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced066330) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced0756a0) (expression float * (var_ref t@0x7fcced0756a0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced0756a0) ) ) ) ) ) ) MUL TEMP[317].x, TEMP[311].xxxx, TEMP[316].xxxx; 372: (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced066330) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced0756a0) (expression float * (var_ref t@0x7fcced0756a0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced0756a0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (4)) ) specular) ) MUL TEMP[318], TEMP[317].xxxx, TEMP[56]; 373: (expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced066330) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced0756a0) (expression float * (var_ref t@0x7fcced0756a0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced0756a0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) specular) ) MUL TEMP[319], TEMP[318], TEMP[4]; 374: (expression vec4 + (var_ref sc@0x7fccecf76570) (expression vec4 * (swiz w (var_ref rv@0x7fcced066330) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced066330) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced0756a0) (expression float * (var_ref t@0x7fcced0756a0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced0756a0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) specular) ) ) ) MAD TEMP[320], TEMP[281].wwww, TEMP[319], TEMP[94]; 375: (assign (constant bool (1)) (xyzw) (var_ref sc@0x7fccecf76570) (expression vec4 + (var_ref sc@0x7fccecf76570) (expression vec4 * (swiz w (var_ref rv@0x7fcced066330) )(expression vec4 * (expression vec4 * (expression float * (expression float pow (expression float max (constant float (0.000000)) (expression float dot (swiz xyz (var_ref rv@0x7fcced066330) )(expression vec3 + (var_ref _ret_val@0x7fcced014ba0) (expression vec3 neg (expression vec3 * (constant float (2.000000)) (expression vec3 * (expression float dot (var_ref _ret_val@0x7fcced0154a0) (var_ref _ret_val@0x7fcced014ba0) ) (var_ref _ret_val@0x7fcced0154a0) ) ) ) ) ) ) (expression float max (constant float (1.000000)) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) shininess) ) ) (expression float * (var_ref t@0x7fcced0756a0) (expression float * (var_ref t@0x7fcced0756a0) (expression float + (constant float (3.000000)) (expression float neg (expression float * (constant float (2.000000)) (var_ref t@0x7fcced0756a0) ) ) ) ) ) ) (record_ref (array_ref (var_ref gl_LightSource@0x7fccece621e0) (constant int (4)) ) specular) ) (record_ref (var_ref gl_FrontMaterial@0x7fccece62080) specular) ) ) ) ) MOV TEMP[94], TEMP[320]; 376: (expression bool != (array_ref (var_ref light_enabled@0x7fccece5ec90) (constant int (4)) ) (constant int (0)) ) ENDIF; 377: (expression bool >= (var_ref max_light_enabled@0x7fccece5ebe0) (constant int (2)) ) ENDIF; 378: (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccece5fd10) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x7fccece5eea0) )) MUL TEMP[321], STATE[10], INPUT[0].xxxx; 379: (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccece5fd10) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x7fccece5eea0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccece5fd10) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x7fccece5eea0) )) ) MAD TEMP[322], STATE[11], INPUT[0].yyyy, TEMP[321]; 380: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccece5fd10) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x7fccece5eea0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccece5fd10) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x7fccece5eea0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccece5fd10) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x7fccece5eea0) )) ) MAD TEMP[323], STATE[12], INPUT[0].zzzz, TEMP[322]; 381: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccece5fd10) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x7fccece5eea0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccece5fd10) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x7fccece5eea0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccece5fd10) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x7fccece5eea0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccece5fd10) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x7fccece5eea0) )) ) MAD TEMP[324], STATE[13], INPUT[0].wwww, TEMP[323]; 382: (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0x7fccece5ed40) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccece5fd10) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0x7fccece5eea0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccece5fd10) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0x7fccece5eea0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccece5fd10) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0x7fccece5eea0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0x7fccece5fd10) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0x7fccece5eea0) )) ) ) MOV OUTPUT[0], TEMP[324]; 383: (assign (constant bool (1)) (xyzw) (var_ref gl_BackColor@0x7fccece5f8f0) (var_ref pc@0x7fccecf766b0) ) MOV OUTPUT[13], TEMP[93]; 384: (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0x7fccece5f840) (var_ref pc@0x7fccecf766b0) ) MOV OUTPUT[1], TEMP[93]; 385: (assign (constant bool (1)) (xyzw) (var_ref gl_BackSecondaryColor@0x7fccece5fa50) (var_ref sc@0x7fccecf76570) ) MOV OUTPUT[14], TEMP[94]; 386: (assign (constant bool (1)) (xyzw) (var_ref gl_FrontSecondaryColor@0x7fccece5f9a0) (var_ref sc@0x7fccecf76570) ) MOV OUTPUT[2], TEMP[94]; 387: END GLSL IR for linked fragment program 10: ( (declare (uniform ) vec4 cloaking@0x7fccecf82bf0) (declare (uniform ) sampler2D diffuseMap@0x7fccecf82ca0) (declare (out ) vec4 gl_FragColor@0x7fccecf82eb0) (declare (in ) vec4 gl_Color@0x7fccecf83010) (declare (in ) vec4 gl_SecondaryColor@0x7fccecf830c0) (declare (in ) (array vec4 0) gl_TexCoord@0x7fccecf89850) (function main (signature void (parameters ) ( (declare (temporary ) vec4 assignment_tmp@0x7fccecfc1800) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecfc1800) (expression vec4 * (tex (var_ref diffuseMap@0x7fccecf82ca0) (swiz xy (array_ref (var_ref gl_TexCoord@0x7fccecf89850) (constant int (0)) ) ) (0 0 0) 1 () )(var_ref gl_Color@0x7fccecf83010) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x7fccecf82eb0) (var_ref assignment_tmp@0x7fccecfc1800) ) (assign (constant bool (1)) (xyz) (var_ref gl_FragColor@0x7fccecf82eb0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecfc1800) )(swiz xyz (var_ref gl_SecondaryColor@0x7fccecf830c0) )) )) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x7fccecf82eb0) (expression vec4 * (var_ref gl_FragColor@0x7fccecf82eb0) (swiz xxxy (var_ref cloaking@0x7fccecf82bf0) )) ) )) ) ) Mesa IR for linked fragment program 10: 0: (tex (var_ref diffuseMap@0x7fccecf82ca0) (swiz xy (array_ref (var_ref gl_TexCoord@0x7fccecf89850) (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@0x7fccecf82ca0) (swiz xy (array_ref (var_ref gl_TexCoord@0x7fccecf89850) (constant int (0)) ) ) (0 0 0) 1 () )(var_ref gl_Color@0x7fccecf83010) ) MUL TEMP[3], TEMP[2], INPUT[1]; 3: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0x7fccecfc1800) (expression vec4 * (tex (var_ref diffuseMap@0x7fccecf82ca0) (swiz xy (array_ref (var_ref gl_TexCoord@0x7fccecf89850) (constant int (0)) ) ) (0 0 0) 1 () )(var_ref gl_Color@0x7fccecf83010) ) ) MOV TEMP[4], TEMP[3]; 4: (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x7fccecf82eb0) (var_ref assignment_tmp@0x7fccecfc1800) ) MOV OUTPUT[1], TEMP[4]; 5: (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecfc1800) )(swiz xyz (var_ref gl_SecondaryColor@0x7fccecf830c0) )) ADD TEMP[5].xyz, TEMP[4].xyzz, INPUT[2].xyzz; 6: (assign (constant bool (1)) (xyz) (var_ref gl_FragColor@0x7fccecf82eb0) (swiz xyz (expression vec3 + (swiz xyz (var_ref assignment_tmp@0x7fccecfc1800) )(swiz xyz (var_ref gl_SecondaryColor@0x7fccecf830c0) )) )) MOV OUTPUT[1].xyz, TEMP[5].xyzz; 7: (expression vec4 * (var_ref gl_FragColor@0x7fccecf82eb0) (swiz xxxy (var_ref cloaking@0x7fccecf82bf0) )) MUL TEMP[6], OUTPUT[1], UNIFORM[0].xxxy; 8: (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0x7fccecf82eb0) (expression vec4 * (var_ref gl_FragColor@0x7fccecf82eb0) (swiz xxxy (var_ref cloaking@0x7fccecf82bf0) )) ) 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