#include using namespace metal; struct xlatMtlShaderInput { float4 _glesVertex [[attribute(0)]]; float4 _glesMultiTexCoord0 [[attribute(1)]]; float4 _glesTANGENT [[attribute(2)]]; }; struct xlatMtlShaderOutput { float4 gl_Position [[position]]; half2 xlv_TEXCOORD0; half4 xlv_TEXCOORD1; }; struct xlatMtlShaderUniform { float4x4 glstate_matrix_mvp; }; vertex xlatMtlShaderOutput xlatMtlMain (xlatMtlShaderInput _mtl_i [[stage_in]], constant xlatMtlShaderUniform& _mtl_u [[buffer(0)]]) { xlatMtlShaderOutput _mtl_o; half2 tmpvar_1; tmpvar_1 = half2(_mtl_i._glesMultiTexCoord0.xy); float4 tmpvar_2; tmpvar_2.xyz = normalize(_mtl_i._glesTANGENT.xyz); tmpvar_2.w = _mtl_i._glesTANGENT.w; half4 tmpvar_3; tmpvar_3.xy = (tmpvar_1 * (half)0.3); tmpvar_3.xyz = half3(((float3)tmpvar_3.xyz + ((tmpvar_2.xyz * 0.5) + 0.5))); tmpvar_3.w = half(0.0); _mtl_o.gl_Position = (_mtl_u.glstate_matrix_mvp * _mtl_i._glesVertex); _mtl_o.xlv_TEXCOORD0 = tmpvar_1; _mtl_o.xlv_TEXCOORD1 = tmpvar_3; return _mtl_o; } // stats: 7 alu 0 tex 0 flow // inputs: 3 // #0: _glesVertex (high float) 4x1 [-1] loc 0 // #1: _glesMultiTexCoord0 (high float) 4x1 [-1] loc 1 // #2: _glesTANGENT (high float) 4x1 [-1] loc 2 // uniforms: 1 (total size: 64) // #0: glstate_matrix_mvp (high float) 4x4 [-1] loc 0