#include #include using namespace metal; struct Scene { float2 imagePosition; float2 _imageSize; float2 anchorPoint; float2 scale; float alpha; float borderWidth; uint flags; float4 baseColor; float4 rounding; float4 edgeColor; }; struct type_StructuredBuffer_Scene { Scene _m0[1]; }; struct main0_out { float4 out_var_SV_Target0 [[color(0)]]; }; struct main0_in { float4 in_var_TEXCOORD0 [[user(locn0)]]; float2 in_var_TEXCOORD1 [[user(locn1)]]; float2 in_var_TEXCOORD2 [[user(locn2)]]; uint in_var_TEXCOORD3 [[user(locn3)]]; }; fragment main0_out main0(main0_in in [[stage_in]], const device type_StructuredBuffer_Scene& scene [[buffer(0)]], texture2d Texture0 [[texture(0)]], sampler Sampler0 [[sampler(0)]]) { main0_out out = {}; bool _71 = in.in_var_TEXCOORD2.x < scene._m0[in.in_var_TEXCOORD3].rounding.x; bool _78; if (_71) { _78 = in.in_var_TEXCOORD2.y < scene._m0[in.in_var_TEXCOORD3].rounding.y; } else { _78 = false; } float _95; float3 _96; if (_78) { float _82 = distance(in.in_var_TEXCOORD2, float2(scene._m0[in.in_var_TEXCOORD3].rounding.x)); float _93; float3 _94; if (_82 > scene._m0[in.in_var_TEXCOORD3].rounding.x) { discard_fragment(); } else { if (abs(_82 - scene._m0[in.in_var_TEXCOORD3].rounding.x) < 1.0) { _93 = scene._m0[in.in_var_TEXCOORD3].edgeColor.w; _94 = scene._m0[in.in_var_TEXCOORD3].edgeColor.xyz; } else { _93 = scene._m0[in.in_var_TEXCOORD3].alpha; _94 = in.in_var_TEXCOORD0.xyz; } } _95 = _93; _96 = _94; } else { _95 = scene._m0[in.in_var_TEXCOORD3].alpha; _96 = in.in_var_TEXCOORD0.xyz; } float _99 = scene._m0[in.in_var_TEXCOORD3]._imageSize.x - scene._m0[in.in_var_TEXCOORD3].rounding.y; bool _106; if (in.in_var_TEXCOORD2.x > _99) { _106 = in.in_var_TEXCOORD2.y < scene._m0[in.in_var_TEXCOORD3].rounding.y; } else { _106 = false; } float _123; float3 _124; if (_106) { float _110 = distance(in.in_var_TEXCOORD2, float2(_99, scene._m0[in.in_var_TEXCOORD3].rounding.y)); float _121; float3 _122; if (_110 > scene._m0[in.in_var_TEXCOORD3].rounding.y) { discard_fragment(); } else { if (abs(_110 - scene._m0[in.in_var_TEXCOORD3].rounding.y) < 1.0) { _121 = scene._m0[in.in_var_TEXCOORD3].edgeColor.w; _122 = scene._m0[in.in_var_TEXCOORD3].edgeColor.xyz; } else { _121 = _95; _122 = _96; } } _123 = _121; _124 = _122; } else { _123 = _95; _124 = _96; } bool _132; if (_71) { _132 = in.in_var_TEXCOORD2.y > (scene._m0[in.in_var_TEXCOORD3]._imageSize.y - scene._m0[in.in_var_TEXCOORD3].rounding.y); } else { _132 = false; } float _151; float3 _152; if (_132) { float _138 = distance(in.in_var_TEXCOORD2, float2(scene._m0[in.in_var_TEXCOORD3].rounding.x, scene._m0[in.in_var_TEXCOORD3]._imageSize.y - scene._m0[in.in_var_TEXCOORD3].rounding.y)); float _149; float3 _150; if (_138 > scene._m0[in.in_var_TEXCOORD3].rounding.y) { discard_fragment(); } else { if (abs(_138 - scene._m0[in.in_var_TEXCOORD3].rounding.y) < 1.0) { _149 = scene._m0[in.in_var_TEXCOORD3].edgeColor.w; _150 = scene._m0[in.in_var_TEXCOORD3].edgeColor.xyz; } else { _149 = _123; _150 = _124; } } _151 = _149; _152 = _150; } else { _151 = _123; _152 = _124; } bool _163; if (in.in_var_TEXCOORD2.x > (scene._m0[in.in_var_TEXCOORD3]._imageSize.x - scene._m0[in.in_var_TEXCOORD3].rounding.w)) { _163 = (scene._m0[in.in_var_TEXCOORD3]._imageSize.y - in.in_var_TEXCOORD2.y) < scene._m0[in.in_var_TEXCOORD3].rounding.w; } else { _163 = false; } float _183; float3 _184; if (_163) { float _170 = distance(in.in_var_TEXCOORD2, float2(scene._m0[in.in_var_TEXCOORD3]._imageSize.x - scene._m0[in.in_var_TEXCOORD3].rounding.x, scene._m0[in.in_var_TEXCOORD3]._imageSize.y - scene._m0[in.in_var_TEXCOORD3].rounding.y)); float _181; float3 _182; if (_170 > scene._m0[in.in_var_TEXCOORD3].rounding.y) { discard_fragment(); } else { if (abs(_170 - scene._m0[in.in_var_TEXCOORD3].rounding.y) < 1.0) { _181 = scene._m0[in.in_var_TEXCOORD3].edgeColor.w; _182 = scene._m0[in.in_var_TEXCOORD3].edgeColor.xyz; } else { _181 = _151; _182 = _152; } } _183 = _181; _184 = _182; } else { _183 = _151; _184 = _152; } bool _191; if (!(in.in_var_TEXCOORD2.x < scene._m0[in.in_var_TEXCOORD3].borderWidth)) { _191 = in.in_var_TEXCOORD2.x > (scene._m0[in.in_var_TEXCOORD3]._imageSize.x - scene._m0[in.in_var_TEXCOORD3].borderWidth); } else { _191 = true; } bool _198; if (!_191) { _198 = in.in_var_TEXCOORD2.y < scene._m0[in.in_var_TEXCOORD3].borderWidth; } else { _198 = true; } bool _207; if (!_198) { _207 = in.in_var_TEXCOORD2.y > (scene._m0[in.in_var_TEXCOORD3]._imageSize.y - scene._m0[in.in_var_TEXCOORD3].borderWidth); } else { _207 = true; } float _212; float3 _213; if (_207) { _212 = scene._m0[in.in_var_TEXCOORD3].edgeColor.w; _213 = scene._m0[in.in_var_TEXCOORD3].edgeColor.xyz; } else { _212 = _183; _213 = _184; } float4 _238; if ((scene._m0[in.in_var_TEXCOORD3].flags & 1u) > 0u) { float4 _227 = Texture0.sample(Sampler0, float2(in.in_var_TEXCOORD1.x, 1.0 - in.in_var_TEXCOORD1.y)); _238 = float4(_227.xyz, _227.w * _212); } else { _238 = float4(_213, _212); } out.out_var_SV_Target0 = _238; return out; }