bgfx/3rdparty/glsl-optimizer/tests/vertex/inputs-outES3Metal.txt
2015-04-02 23:30:48 -07:00

41 lines
1.3 KiB
Text

#include <metal_stdlib>
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