#include #pragma clang diagnostic ignored "-Wparentheses-equality" using namespace metal; inline float4x4 _xlcast_float4x4(half4x4 v) { return float4x4(float4(v[0]), float4(v[1]), float4(v[2]), float4(v[3])); } inline float3x3 _xlcast_float3x3(half3x3 v) { return float3x3(float3(v[0]), float3(v[1]), float3(v[2])); } inline float2x2 _xlcast_float2x2(half2x2 v) { return float2x2(float2(v[0]), float2(v[1])); } inline half4x4 _xlcast_half4x4(float4x4 v) { return half4x4(half4(v[0]), half4(v[1]), half4(v[2]), half4(v[3])); } inline half3x3 _xlcast_half3x3(float3x3 v) { return half3x3(half3(v[0]), half3(v[1]), half3(v[2])); } inline half2x2 _xlcast_half2x2(float2x2 v) { return half2x2(half2(v[0]), half2(v[1])); } struct xlatMtlShaderInput { float4 xlv_TEXCOORD0; float4 xlv_TEXCOORD1; float4 xlv_TEXCOORD2; float4 xlv_TEXCOORD3; }; struct xlatMtlShaderOutput { half4 _fragData [[color(0)]]; }; struct xlatMtlShaderUniform { }; fragment xlatMtlShaderOutput xlatMtlMain (xlatMtlShaderInput _mtl_i [[stage_in]], constant xlatMtlShaderUniform& _mtl_u [[buffer(0)]] , texture2d _PanelNorm [[texture(0)]], sampler _mtlsmp__PanelNorm [[sampler(0)]] , texture2d _DecalNorm [[texture(1)]], sampler _mtlsmp__DecalNorm [[sampler(1)]]) { xlatMtlShaderOutput _mtl_o; half4 res_1 = 0; half3 worldN_2 = 0; half3 combinedNormal_3 = 0; half3 tmpvar_4 = 0; tmpvar_4 = ((_DecalNorm.sample(_mtlsmp__DecalNorm, (float2)(_mtl_i.xlv_TEXCOORD0.zw)).xyz * (half)(2.0)) - (half)(1.0)); half3 tmpvar_5 = 0; tmpvar_5 = ((_PanelNorm.sample(_mtlsmp__PanelNorm, (float2)(_mtl_i.xlv_TEXCOORD0.xy)).xyz * (half)(2.0)) - (half)(1.0)); half3 tmpvar_6 = 0; tmpvar_6.x = tmpvar_4.z; tmpvar_6.y = tmpvar_4.y; tmpvar_6.z = -(tmpvar_4.x); half3 tmpvar_7 = 0; tmpvar_7.x = tmpvar_4.x; tmpvar_7.y = tmpvar_4.z; tmpvar_7.z = -(tmpvar_4.y); float3x3 tmpvar_8; half3x3 tmpvar_9; tmpvar_9[0].x = tmpvar_6.x; tmpvar_9[0].y = tmpvar_7.x; tmpvar_9[0].z = tmpvar_4.x; tmpvar_9[1].x = tmpvar_6.y; tmpvar_9[1].y = tmpvar_7.y; tmpvar_9[1].z = tmpvar_4.y; tmpvar_9[2].x = tmpvar_6.z; tmpvar_9[2].y = tmpvar_7.z; tmpvar_9[2].z = tmpvar_4.z; tmpvar_8 = _xlcast_float3x3(tmpvar_9); float3 v_10 = 0; v_10.x = tmpvar_8[0].x; v_10.y = tmpvar_8[1].x; v_10.z = tmpvar_8[2].x; float3 v_11 = 0; v_11.x = tmpvar_8[0].y; v_11.y = tmpvar_8[1].y; v_11.z = tmpvar_8[2].y; float3 v_12 = 0; v_12.x = tmpvar_8[0].z; v_12.y = tmpvar_8[1].z; v_12.z = tmpvar_8[2].z; combinedNormal_3 = normalize((( ((half3)((float)(tmpvar_5.x) * v_10)) + ((half3)((float)(tmpvar_5.y) * v_11)) ) + ((half3)((float)(tmpvar_5.z) * v_12)))); float tmpvar_13 = 0; tmpvar_13 = dot (_mtl_i.xlv_TEXCOORD1.xyz, (float3)combinedNormal_3); worldN_2.x = half(tmpvar_13); float tmpvar_14 = 0; tmpvar_14 = dot (_mtl_i.xlv_TEXCOORD2.xyz, (float3)combinedNormal_3); worldN_2.y = half(tmpvar_14); float tmpvar_15 = 0; tmpvar_15 = dot (_mtl_i.xlv_TEXCOORD3.xyz, (float3)combinedNormal_3); worldN_2.z = half(tmpvar_15); res_1.xyz = ((worldN_2 * (half)(0.5)) + (half)(0.5)); res_1.w = half(0.0); _mtl_o._fragData = res_1; return _mtl_o; } // stats: 18 alu 2 tex 0 flow // inputs: 4 // #0: xlv_TEXCOORD0 (high float) 4x1 [-1] // #1: xlv_TEXCOORD1 (high float) 4x1 [-1] // #2: xlv_TEXCOORD2 (high float) 4x1 [-1] // #3: xlv_TEXCOORD3 (high float) 4x1 [-1] // textures: 2 // #0: _PanelNorm (low 2d) 0x0 [-1] loc 0 // #1: _DecalNorm (low 2d) 0x0 [-1] loc 1