#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(4294967295)]], texture2d Texture0 [[texture(0)]], sampler Sampler0 [[sampler(0)]]) { main0_out out = {}; bool _73 = in.in_var_TEXCOORD2.x < scene._m0[in.in_var_TEXCOORD3].rounding.x; bool _80; if (_73) { _80 = in.in_var_TEXCOORD2.y < scene._m0[in.in_var_TEXCOORD3].rounding.y; } else { _80 = false; } float _97; float3 _98; if (_80) { float _84 = distance(in.in_var_TEXCOORD2, float2(scene._m0[in.in_var_TEXCOORD3].rounding.x)); float _95; float3 _96; if (_84 > scene._m0[in.in_var_TEXCOORD3].rounding.x) { discard_fragment(); } else { if (abs(_84 - scene._m0[in.in_var_TEXCOORD3].rounding.x) < 1.0) { _95 = scene._m0[in.in_var_TEXCOORD3].edgeColor.w; _96 = scene._m0[in.in_var_TEXCOORD3].edgeColor.xyz; } else { _95 = scene._m0[in.in_var_TEXCOORD3].alpha; _96 = in.in_var_TEXCOORD0.xyz; } } _97 = _95; _98 = _96; } else { _97 = scene._m0[in.in_var_TEXCOORD3].alpha; _98 = in.in_var_TEXCOORD0.xyz; } float _101 = scene._m0[in.in_var_TEXCOORD3]._imageSize.x - scene._m0[in.in_var_TEXCOORD3].rounding.y; bool _108; if (in.in_var_TEXCOORD2.x > _101) { _108 = in.in_var_TEXCOORD2.y < scene._m0[in.in_var_TEXCOORD3].rounding.y; } else { _108 = false; } float _125; float3 _126; if (_108) { float _112 = distance(in.in_var_TEXCOORD2, float2(_101, scene._m0[in.in_var_TEXCOORD3].rounding.y)); float _123; float3 _124; if (_112 > scene._m0[in.in_var_TEXCOORD3].rounding.y) { discard_fragment(); } else { if (abs(_112 - scene._m0[in.in_var_TEXCOORD3].rounding.y) < 1.0) { _123 = scene._m0[in.in_var_TEXCOORD3].edgeColor.w; _124 = scene._m0[in.in_var_TEXCOORD3].edgeColor.xyz; } else { _123 = _97; _124 = _98; } } _125 = _123; _126 = _124; } else { _125 = _97; _126 = _98; } bool _134; if (_73) { _134 = in.in_var_TEXCOORD2.y > (scene._m0[in.in_var_TEXCOORD3]._imageSize.y - scene._m0[in.in_var_TEXCOORD3].rounding.y); } else { _134 = false; } float _153; float3 _154; if (_134) { float _140 = 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 _151; float3 _152; if (_140 > scene._m0[in.in_var_TEXCOORD3].rounding.y) { discard_fragment(); } else { if (abs(_140 - scene._m0[in.in_var_TEXCOORD3].rounding.y) < 1.0) { _151 = scene._m0[in.in_var_TEXCOORD3].edgeColor.w; _152 = scene._m0[in.in_var_TEXCOORD3].edgeColor.xyz; } else { _151 = _125; _152 = _126; } } _153 = _151; _154 = _152; } else { _153 = _125; _154 = _126; } bool _165; if (in.in_var_TEXCOORD2.x > (scene._m0[in.in_var_TEXCOORD3]._imageSize.x - scene._m0[in.in_var_TEXCOORD3].rounding.w)) { _165 = (scene._m0[in.in_var_TEXCOORD3]._imageSize.y - in.in_var_TEXCOORD2.y) < scene._m0[in.in_var_TEXCOORD3].rounding.w; } else { _165 = false; } float _185; float3 _186; if (_165) { float _172 = 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 _183; float3 _184; if (_172 > scene._m0[in.in_var_TEXCOORD3].rounding.y) { discard_fragment(); } else { if (abs(_172 - scene._m0[in.in_var_TEXCOORD3].rounding.y) < 1.0) { _183 = scene._m0[in.in_var_TEXCOORD3].edgeColor.w; _184 = scene._m0[in.in_var_TEXCOORD3].edgeColor.xyz; } else { _183 = _153; _184 = _154; } } _185 = _183; _186 = _184; } else { _185 = _153; _186 = _154; } bool _193; if (!(in.in_var_TEXCOORD2.x < scene._m0[in.in_var_TEXCOORD3].borderWidth)) { _193 = in.in_var_TEXCOORD2.x > (scene._m0[in.in_var_TEXCOORD3]._imageSize.x - scene._m0[in.in_var_TEXCOORD3].borderWidth); } else { _193 = true; } bool _200; if (!_193) { _200 = in.in_var_TEXCOORD2.y < scene._m0[in.in_var_TEXCOORD3].borderWidth; } else { _200 = true; } bool _209; if (!_200) { _209 = in.in_var_TEXCOORD2.y > (scene._m0[in.in_var_TEXCOORD3]._imageSize.y - scene._m0[in.in_var_TEXCOORD3].borderWidth); } else { _209 = true; } float _214; float3 _215; if (_209) { _214 = scene._m0[in.in_var_TEXCOORD3].edgeColor.w; _215 = scene._m0[in.in_var_TEXCOORD3].edgeColor.xyz; } else { _214 = _185; _215 = _186; } float4 _241; if ((scene._m0[in.in_var_TEXCOORD3].flags & 1u) > 0u) { float4 _229 = Texture0.sample(Sampler0, float2(in.in_var_TEXCOORD1.x, 1.0 - in.in_var_TEXCOORD1.y)); _241 = float4(_229.xyz, _229.w * _214); } else { _241 = float4(powr(_215, float3(2.2000000476837158203125)), _214); } out.out_var_SV_Target0 = _241; return out; }