Backlog/projects/archive/minimal/content/_shaders/msl/rect.frag.msl

260 lines
6.6 KiB
Plaintext

#include <metal_stdlib>
#include <simd/simd.h>
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<float> 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;
}