#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; float2 tmpvar_1; tmpvar_1 = _mtl_i._glesMultiTexCoord0.xy; float4 tmpvar_2; tmpvar_2.xyz = normalize(_mtl_i._glesTANGENT.xyz); tmpvar_2.w = _mtl_i._glesTANGENT.w; half2 uv_3; uv_3 = half2(tmpvar_1); half4 tmpvar_4; tmpvar_4.xy = ((half2)(_mtl_i._glesMultiTexCoord0.xy * 0.3)); tmpvar_4.xyz = half3(((float3)tmpvar_4.xyz + ((tmpvar_2.xyz * 0.5) + 0.5))); tmpvar_4.w = half(0.0); _mtl_o.gl_Position = (_mtl_u.glstate_matrix_mvp * _mtl_i._glesVertex); _mtl_o.xlv_TEXCOORD0 = uv_3; _mtl_o.xlv_TEXCOORD1 = tmpvar_4; 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