mirror of
https://github.com/scratchfoundation/bgfx.git
synced 2024-11-25 17:18:12 -05:00
144 lines
3.7 KiB
Text
144 lines
3.7 KiB
Text
|
#include <metal_stdlib>
|
||
|
using namespace metal;
|
||
|
struct xlatMtlShaderInput {
|
||
|
float4 xlv_TEXCOORD0;
|
||
|
};
|
||
|
struct xlatMtlShaderOutput {
|
||
|
half4 _fragData [[color(0)]];
|
||
|
};
|
||
|
struct xlatMtlShaderUniform {
|
||
|
};
|
||
|
fragment xlatMtlShaderOutput xlatMtlMain (xlatMtlShaderInput _mtl_i [[stage_in]], constant xlatMtlShaderUniform& _mtl_u [[buffer(0)]])
|
||
|
{
|
||
|
xlatMtlShaderOutput _mtl_o;
|
||
|
half4 c_1;
|
||
|
c_1 = half4(float4(0.0, 0.0, 0.0, 0.0));
|
||
|
float tmpvar_2;
|
||
|
tmpvar_2 = (_mtl_i.xlv_TEXCOORD0.x / 2.0);
|
||
|
float tmpvar_3;
|
||
|
tmpvar_3 = (fract(abs(tmpvar_2)) * 2.0);
|
||
|
float tmpvar_4;
|
||
|
if ((tmpvar_2 >= 0.0)) {
|
||
|
tmpvar_4 = tmpvar_3;
|
||
|
} else {
|
||
|
tmpvar_4 = -(tmpvar_3);
|
||
|
};
|
||
|
c_1.x = half(tmpvar_4);
|
||
|
float2 tmpvar_5;
|
||
|
tmpvar_5 = (_mtl_i.xlv_TEXCOORD0.xy / float2(2.0, 2.0));
|
||
|
float2 tmpvar_6;
|
||
|
tmpvar_6 = (fract(abs(tmpvar_5)) * float2(2.0, 2.0));
|
||
|
float tmpvar_7;
|
||
|
if ((tmpvar_5.x >= 0.0)) {
|
||
|
tmpvar_7 = tmpvar_6.x;
|
||
|
} else {
|
||
|
tmpvar_7 = -(tmpvar_6.x);
|
||
|
};
|
||
|
float tmpvar_8;
|
||
|
if ((tmpvar_5.y >= 0.0)) {
|
||
|
tmpvar_8 = tmpvar_6.y;
|
||
|
} else {
|
||
|
tmpvar_8 = -(tmpvar_6.y);
|
||
|
};
|
||
|
float2 tmpvar_9;
|
||
|
tmpvar_9.x = tmpvar_7;
|
||
|
tmpvar_9.y = tmpvar_8;
|
||
|
c_1.xy = ((half2)((float2)c_1.xy + tmpvar_9));
|
||
|
float3 tmpvar_10;
|
||
|
tmpvar_10 = (_mtl_i.xlv_TEXCOORD0.xyz / float3(2.0, 2.0, 2.0));
|
||
|
float3 tmpvar_11;
|
||
|
tmpvar_11 = (fract(abs(tmpvar_10)) * float3(2.0, 2.0, 2.0));
|
||
|
float tmpvar_12;
|
||
|
if ((tmpvar_10.x >= 0.0)) {
|
||
|
tmpvar_12 = tmpvar_11.x;
|
||
|
} else {
|
||
|
tmpvar_12 = -(tmpvar_11.x);
|
||
|
};
|
||
|
float tmpvar_13;
|
||
|
if ((tmpvar_10.y >= 0.0)) {
|
||
|
tmpvar_13 = tmpvar_11.y;
|
||
|
} else {
|
||
|
tmpvar_13 = -(tmpvar_11.y);
|
||
|
};
|
||
|
float tmpvar_14;
|
||
|
if ((tmpvar_10.z >= 0.0)) {
|
||
|
tmpvar_14 = tmpvar_11.z;
|
||
|
} else {
|
||
|
tmpvar_14 = -(tmpvar_11.z);
|
||
|
};
|
||
|
float3 tmpvar_15;
|
||
|
tmpvar_15.x = tmpvar_12;
|
||
|
tmpvar_15.y = tmpvar_13;
|
||
|
tmpvar_15.z = tmpvar_14;
|
||
|
c_1.xyz = ((half3)((float3)c_1.xyz + tmpvar_15));
|
||
|
float4 tmpvar_16;
|
||
|
tmpvar_16 = (_mtl_i.xlv_TEXCOORD0 / float4(2.0, 2.0, 2.0, 2.0));
|
||
|
float4 tmpvar_17;
|
||
|
tmpvar_17 = (fract(abs(tmpvar_16)) * float4(2.0, 2.0, 2.0, 2.0));
|
||
|
float tmpvar_18;
|
||
|
if ((tmpvar_16.x >= 0.0)) {
|
||
|
tmpvar_18 = tmpvar_17.x;
|
||
|
} else {
|
||
|
tmpvar_18 = -(tmpvar_17.x);
|
||
|
};
|
||
|
float tmpvar_19;
|
||
|
if ((tmpvar_16.y >= 0.0)) {
|
||
|
tmpvar_19 = tmpvar_17.y;
|
||
|
} else {
|
||
|
tmpvar_19 = -(tmpvar_17.y);
|
||
|
};
|
||
|
float tmpvar_20;
|
||
|
if ((tmpvar_16.z >= 0.0)) {
|
||
|
tmpvar_20 = tmpvar_17.z;
|
||
|
} else {
|
||
|
tmpvar_20 = -(tmpvar_17.z);
|
||
|
};
|
||
|
float tmpvar_21;
|
||
|
if ((tmpvar_16.w >= 0.0)) {
|
||
|
tmpvar_21 = tmpvar_17.w;
|
||
|
} else {
|
||
|
tmpvar_21 = -(tmpvar_17.w);
|
||
|
};
|
||
|
float4 tmpvar_22;
|
||
|
tmpvar_22.x = tmpvar_18;
|
||
|
tmpvar_22.y = tmpvar_19;
|
||
|
tmpvar_22.z = tmpvar_20;
|
||
|
tmpvar_22.w = tmpvar_21;
|
||
|
c_1 = ((half4)((float4)c_1 + tmpvar_22));
|
||
|
float tmpvar_23;
|
||
|
half ip_24;
|
||
|
int tmpvar_25;
|
||
|
tmpvar_25 = int(_mtl_i.xlv_TEXCOORD0.x);
|
||
|
ip_24 = half(float(tmpvar_25));
|
||
|
tmpvar_23 = (_mtl_i.xlv_TEXCOORD0.x - (float)ip_24);
|
||
|
c_1.x = ((half)((float)c_1.x + tmpvar_23));
|
||
|
float2 tmpvar_26;
|
||
|
half2 ip_27;
|
||
|
float2 tmpvar_28;
|
||
|
tmpvar_28 = float2(int2(_mtl_i.xlv_TEXCOORD0.xy));
|
||
|
ip_27 = half2(tmpvar_28);
|
||
|
tmpvar_26 = (_mtl_i.xlv_TEXCOORD0.xy - (float2)ip_27);
|
||
|
c_1.xy = ((half2)((float2)c_1.xy + tmpvar_26));
|
||
|
float3 tmpvar_29;
|
||
|
half3 ip_30;
|
||
|
float3 tmpvar_31;
|
||
|
tmpvar_31 = float3(int3(_mtl_i.xlv_TEXCOORD0.xyz));
|
||
|
ip_30 = half3(tmpvar_31);
|
||
|
tmpvar_29 = (_mtl_i.xlv_TEXCOORD0.xyz - (float3)ip_30);
|
||
|
c_1.xyz = ((half3)((float3)c_1.xyz + tmpvar_29));
|
||
|
float4 tmpvar_32;
|
||
|
half4 ip_33;
|
||
|
float4 tmpvar_34;
|
||
|
tmpvar_34 = float4(int4(_mtl_i.xlv_TEXCOORD0));
|
||
|
ip_33 = half4(tmpvar_34);
|
||
|
tmpvar_32 = (_mtl_i.xlv_TEXCOORD0 - (float4)ip_33);
|
||
|
c_1 = ((half4)((float4)c_1 + tmpvar_32));
|
||
|
_mtl_o._fragData = c_1;
|
||
|
return _mtl_o;
|
||
|
}
|
||
|
|
||
|
|
||
|
// stats: 56 alu 0 tex 10 flow
|
||
|
// inputs: 1
|
||
|
// #0: xlv_TEXCOORD0 (high float) 4x1 [-1]
|