#include using namespace metal; struct xlatMtlShaderInput { float4 _glesVertex [[attribute(0)]]; float3 _glesNormal [[attribute(1)]]; }; struct xlatMtlShaderOutput { float4 gl_Position [[position]]; half4 xlv_COLOR0; }; struct xlatMtlShaderUniform { half4 unity_LightColor[8]; float4 unity_LightPosition[8]; int4 unity_VertexLightParams; }; vertex xlatMtlShaderOutput xlatMtlMain (xlatMtlShaderInput _mtl_i [[stage_in]], constant xlatMtlShaderUniform& _mtl_u [[buffer(0)]]) { xlatMtlShaderOutput _mtl_o; float3 tmpvar_1; tmpvar_1 = _mtl_i._glesVertex.xyz; int j_2; int j_3; int il_4; half3 lcolor_5; half3 eyeNormal_6; half4 color_7; half4 tmpvar_8; color_7 = half4(float4(0.0, 0.0, 0.0, 1.1)); eyeNormal_6 = half3(_mtl_i._glesNormal); lcolor_5 = half3(float3(0.0, 0.0, 0.0)); il_4 = 0; while (true) { float tmpvar_9; tmpvar_9 = min (8.0, float(_mtl_u.unity_VertexLightParams.x)); if ((float(il_4) >= tmpvar_9)) { break; }; float3 tmpvar_10; tmpvar_10 = _mtl_u.unity_LightPosition[il_4].xyz; half3 dirToLight_11; dirToLight_11 = half3(tmpvar_10); lcolor_5 = (lcolor_5 + min (( (max (dot (eyeNormal_6, dirToLight_11), (half)0.0) * _mtl_u.unity_LightColor[il_4].xyz) * (half)0.5), (half3)float3(1.0, 1.0, 1.0))); il_4++; }; color_7.xyz = lcolor_5; j_3 = 0; while (true) { float tmpvar_12; tmpvar_12 = min (float(_mtl_u.unity_VertexLightParams.y), 4.0); if ((j_3 >= int(tmpvar_12))) { break; }; color_7.xyz = (color_7.xyz + _mtl_u.unity_LightColor[j_3].xyz); j_3++; }; j_2 = 0; while (true) { int tmpvar_13; tmpvar_13 = min (_mtl_u.unity_VertexLightParams.y, 4); if ((j_2 >= tmpvar_13)) { break; }; color_7.xyz = (color_7.xyz * _mtl_u.unity_LightColor[j_2].xyz); j_2++; }; tmpvar_8 = color_7; float4 tmpvar_14; tmpvar_14.w = 1.0; tmpvar_14.xyz = tmpvar_1; _mtl_o.xlv_COLOR0 = tmpvar_8; _mtl_o.gl_Position = tmpvar_14; return _mtl_o; } // stats: 27 alu 0 tex 6 flow // inputs: 2 // #0: _glesVertex (high float) 4x1 [-1] loc 0 // #1: _glesNormal (high float) 3x1 [-1] loc 1 // uniforms: 3 (total size: 208) // #0: unity_LightColor (medium float) 4x1 [8] loc 0 // #1: unity_LightPosition (high float) 4x1 [8] loc 64 // #2: unity_VertexLightParams (high int) 4x1 [-1] loc 192