Backlog/depot/content/_shaders/msl/rect.frag.msl

260 lines
6.5 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(0)]], texture2d<float> 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;
}