bgfx/3rdparty/glsl-optimizer/tests/fragment/z-unity-spot-outES3Metal.txt

81 lines
2.6 KiB
Text
Raw Normal View History

2014-10-11 15:32:43 -04:00
#include <metal_stdlib>
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<half> _LightTexture0 [[texture(0)]], sampler _mtlsmp__LightTexture0 [[sampler(0)]]
, texture2d<half> _LightTextureB0 [[texture(1)]], sampler _mtlsmp__LightTextureB0 [[sampler(1)]]
, texture2d<half> _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