bgfx/3rdparty/glsl-optimizer/tests/fragment/z-alphabumpspec-outES3Metal.txt
2016-09-21 21:01:52 -07:00

80 lines
2.5 KiB
Plaintext

#include <metal_stdlib>
#pragma clang diagnostic ignored "-Wparentheses-equality"
using namespace metal;
struct xlatMtlShaderInput {
float4 _uv0;
half3 _uv1;
half3 _uv2;
half3 _uv3;
};
struct xlatMtlShaderOutput {
half4 _fragData [[color(0)]];
};
struct xlatMtlShaderUniform {
half4 _Color;
half4 _LightColor0;
float _Shininess;
half4 _SpecColor;
};
fragment xlatMtlShaderOutput xlatMtlMain (xlatMtlShaderInput _mtl_i [[stage_in]], constant xlatMtlShaderUniform& _mtl_u [[buffer(0)]]
, texture2d<half> _BumpMap [[texture(0)]], sampler _mtlsmp__BumpMap [[sampler(0)]]
, texture2d<half> _MainTex [[texture(1)]], sampler _mtlsmp__MainTex [[sampler(1)]])
{
xlatMtlShaderOutput _mtl_o;
half4 c_1 = 0;
half3 tmpvar_2 = 0;
half tmpvar_3 = 0;
half4 tmpvar_4 = 0;
tmpvar_4 = _MainTex.sample(_mtlsmp__MainTex, (float2)(_mtl_i._uv0.xy));
tmpvar_2 = (tmpvar_4.xyz * _mtl_u._Color.xyz);
tmpvar_3 = (tmpvar_4.w * _mtl_u._Color.w);
half4 tmpvar_5 = 0;
tmpvar_5 = _BumpMap.sample(_mtlsmp__BumpMap, (float2)(_mtl_i._uv0.zw));
half4 packednormal_6 = 0;
packednormal_6 = tmpvar_5;
half4 normal_7 = 0;
normal_7.xy = ((packednormal_6.wy * (half)(2.0)) - (half)(1.0));
normal_7.z = sqrt((((half)(1.0) -
(normal_7.x * normal_7.x)
) - (normal_7.y * normal_7.y)));
half4 c_8 = 0;
half spec_9 = 0;
half tmpvar_10 = 0;
float y_11 = 0;
y_11 = (_mtl_u._Shininess * 128.0);
tmpvar_10 = ((half)pow ((float)max ((half)0.0, dot (normal_7.xyz,
normalize((_mtl_i._uv2 + normalize(_mtl_i._uv1)))
)), y_11));
spec_9 = (tmpvar_10 * tmpvar_4.w);
c_8.xyz = (((
(tmpvar_2 * _mtl_u._LightColor0.xyz)
*
max ((half)0.0, dot (normal_7.xyz, _mtl_i._uv2))
) + (
(_mtl_u._LightColor0.xyz * _mtl_u._SpecColor.xyz)
* spec_9)) * (half)(2.0));
c_8.w = (tmpvar_3 + ((_mtl_u._LightColor0.w * _mtl_u._SpecColor.w) * spec_9));
c_1.xyz = (c_8.xyz + (tmpvar_2 * _mtl_i._uv3));
c_1.w = tmpvar_3;
half4 tmpvar_12 = 0;
tmpvar_12 = c_1;
_mtl_o._fragData = tmpvar_12;
return _mtl_o;
}
// stats: 30 alu 2 tex 0 flow
// inputs: 4
// #0: _uv0 (high float) 4x1 [-1]
// #1: _uv1 (medium float) 3x1 [-1]
// #2: _uv2 (medium float) 3x1 [-1]
// #3: _uv3 (medium float) 3x1 [-1]
// uniforms: 4 (total size: 32)
// #0: _Color (medium float) 4x1 [-1] loc 0
// #1: _LightColor0 (medium float) 4x1 [-1] loc 8
// #2: _Shininess (high float) 1x1 [-1] loc 16
// #3: _SpecColor (medium float) 4x1 [-1] loc 24
// textures: 2
// #0: _BumpMap (low 2d) 0x0 [-1] loc 0
// #1: _MainTex (low 2d) 0x0 [-1] loc 1