2019-06-05 17:35:46 -04:00
|
|
|
// Automatically generated from files in pathfinder/shaders/. Do not edit!
|
2020-02-24 22:42:32 -05:00
|
|
|
#pragma clang diagnostic ignored "-Wmissing-prototypes"
|
|
|
|
|
2019-06-05 20:20:12 -04:00
|
|
|
#include <metal_stdlib>
|
|
|
|
#include <simd/simd.h>
|
|
|
|
|
|
|
|
using namespace metal;
|
|
|
|
|
2019-06-05 17:35:46 -04:00
|
|
|
struct spvDescriptorSetBuffer0
|
|
|
|
{
|
|
|
|
texture2d<float> uStencilTexture [[id(0)]];
|
|
|
|
sampler uStencilTextureSmplr [[id(1)]];
|
2020-02-05 00:50:13 -05:00
|
|
|
texture2d<float> uPaintTexture [[id(2)]];
|
|
|
|
sampler uPaintTextureSmplr [[id(3)]];
|
2019-06-05 17:35:46 -04:00
|
|
|
};
|
|
|
|
|
2019-06-05 20:20:12 -04:00
|
|
|
struct main0_out
|
|
|
|
{
|
|
|
|
float4 oFragColor [[color(0)]];
|
|
|
|
};
|
|
|
|
|
|
|
|
struct main0_in
|
|
|
|
{
|
2020-02-07 14:46:20 -05:00
|
|
|
float2 vColorTexCoord [[user(locn0)]];
|
|
|
|
float2 vMaskTexCoord [[user(locn1)]];
|
2020-02-26 15:43:07 -05:00
|
|
|
float vOpacity [[user(locn2)]];
|
2019-06-05 20:20:12 -04:00
|
|
|
};
|
|
|
|
|
2020-02-26 15:43:07 -05:00
|
|
|
float4 sampleSrcColor(thread texture2d<float> uStencilTexture, thread const sampler uStencilTextureSmplr, thread float2& vMaskTexCoord, thread texture2d<float> uPaintTexture, thread const sampler uPaintTextureSmplr, thread float2& vColorTexCoord, thread float& vOpacity)
|
2020-02-24 22:42:32 -05:00
|
|
|
{
|
|
|
|
float coverage = uStencilTexture.sample(uStencilTextureSmplr, vMaskTexCoord).x;
|
|
|
|
float4 srcRGBA = uPaintTexture.sample(uPaintTextureSmplr, vColorTexCoord);
|
2020-02-26 15:43:07 -05:00
|
|
|
return float4(srcRGBA.xyz, (srcRGBA.w * coverage) * vOpacity);
|
2020-02-24 22:42:32 -05:00
|
|
|
}
|
|
|
|
|
2019-06-05 17:35:46 -04:00
|
|
|
fragment main0_out main0(main0_in in [[stage_in]], constant spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]])
|
2019-06-05 20:20:12 -04:00
|
|
|
{
|
|
|
|
main0_out out = {};
|
2020-02-26 15:43:07 -05:00
|
|
|
float4 srcRGBA = sampleSrcColor(spvDescriptorSet0.uStencilTexture, spvDescriptorSet0.uStencilTextureSmplr, in.vMaskTexCoord, spvDescriptorSet0.uPaintTexture, spvDescriptorSet0.uPaintTextureSmplr, in.vColorTexCoord, in.vOpacity);
|
2020-02-24 22:42:32 -05:00
|
|
|
out.oFragColor = float4(srcRGBA.xyz * srcRGBA.w, srcRGBA.w);
|
2019-06-05 20:20:12 -04:00
|
|
|
return out;
|
|
|
|
}
|
|
|
|
|