#include using namespace metal; struct xlatMtlShaderInput { float2 xlv_TEXCOORD0; half3 xlv_TEXCOORD1; float3 xlv_TEXCOORD2; }; struct xlatMtlShaderOutput { half4 _glesFragData_0 [[color(0)]]; }; struct xlatMtlShaderUniform { float4 _WorldSpaceLightPos0; half4 _LightColor0; half4x4 _LightMatrix0; }; fragment xlatMtlShaderOutput xlatMtlMain (xlatMtlShaderInput _mtl_i [[stage_in]], constant xlatMtlShaderUniform& _mtl_u [[buffer(0)]] , texture2d _LightTexture0 [[texture(0)]], sampler _mtlsmp__LightTexture0 [[sampler(0)]] , texture2d _LightTextureB0 [[texture(1)]], sampler _mtlsmp__LightTextureB0 [[sampler(1)]] , texture2d _MainTex [[texture(2)]], sampler _mtlsmp__MainTex [[sampler(2)]]) { xlatMtlShaderOutput _mtl_o; half4 c_1; half atten_2; half4 lightCoord_3; float3 tmpvar_4; tmpvar_4 = normalize((_mtl_u._WorldSpaceLightPos0.xyz - _mtl_i.xlv_TEXCOORD2)); half3 tmpvar_5; half tmpvar_6; half4 c_7; half4 tmpvar_8; tmpvar_8 = _MainTex.sample(_mtlsmp__MainTex, (float2)(_mtl_i.xlv_TEXCOORD0)); c_7 = tmpvar_8; tmpvar_5 = c_7.xyz; tmpvar_6 = c_7.w; float4 tmpvar_9; tmpvar_9.w = 1.0; tmpvar_9.xyz = _mtl_i.xlv_TEXCOORD2; float4 tmpvar_10; tmpvar_10 = ((float4)(_mtl_u._LightMatrix0 * (half4)tmpvar_9)); lightCoord_3 = half4(tmpvar_10); half4 tmpvar_11; half2 P_12; P_12 = ((lightCoord_3.xy / lightCoord_3.w) + (half)0.5); tmpvar_11 = _LightTexture0.sample(_mtlsmp__LightTexture0, (float2)(P_12)); half tmpvar_13; tmpvar_13 = dot (lightCoord_3.xyz, lightCoord_3.xyz); half4 tmpvar_14; tmpvar_14 = _LightTextureB0.sample(_mtlsmp__LightTextureB0, (float2)(half2(tmpvar_13))); half tmpvar_15; tmpvar_15 = ((half( (lightCoord_3.z > (half)0.0) ) * tmpvar_11.w) * tmpvar_14.w); atten_2 = tmpvar_15; half3 lightDir_16; lightDir_16 = half3(tmpvar_4); half4 c_17; c_17.xyz = ((tmpvar_5 * _mtl_u._LightColor0.xyz) * (( max ((half)0.0, dot (_mtl_i.xlv_TEXCOORD1, lightDir_16)) * atten_2) * (half)2.0)); c_17.w = tmpvar_6; c_1.xyz = c_17.xyz; c_1.w = half(0.0); _mtl_o._glesFragData_0 = c_1; return _mtl_o; } // stats: 18 alu 3 tex 0 flow // inputs: 3 // #0: xlv_TEXCOORD0 (high float) 2x1 [-1] // #1: xlv_TEXCOORD1 (low float) 3x1 [-1] // #2: xlv_TEXCOORD2 (high float) 3x1 [-1] // uniforms: 3 (total size: 56) // #0: _WorldSpaceLightPos0 (high float) 4x1 [-1] loc 0 // #1: _LightColor0 (low float) 4x1 [-1] loc 16 // #2: _LightMatrix0 (medium float) 4x4 [-1] loc 24 // textures: 3 // #0: _LightTexture0 (low 2d) 0x0 [-1] loc 0 // #1: _LightTextureB0 (low 2d) 0x0 [-1] loc 1 // #2: _MainTex (low 2d) 0x0 [-1] loc 2