// Automatically generated from files in pathfinder/shaders/. Do not edit! #pragma clang diagnostic ignored "-Wmissing-prototypes" #include #include using namespace metal; struct spvDescriptorSetBuffer0 { texture2d uStencilTexture [[id(0)]]; sampler uStencilTextureSmplr [[id(1)]]; texture2d uPaintTexture [[id(2)]]; sampler uPaintTextureSmplr [[id(3)]]; }; struct main0_out { float4 oFragColor [[color(0)]]; }; struct main0_in { float2 vColorTexCoord [[user(locn0)]]; float2 vMaskTexCoord [[user(locn1)]]; float vOpacity [[user(locn2)]]; }; float4 sampleSrcColor(thread texture2d uStencilTexture, thread const sampler uStencilTextureSmplr, thread float2& vMaskTexCoord, thread texture2d uPaintTexture, thread const sampler uPaintTextureSmplr, thread float2& vColorTexCoord, thread float& vOpacity) { float coverage = uStencilTexture.sample(uStencilTextureSmplr, vMaskTexCoord).x; float4 srcRGBA = uPaintTexture.sample(uPaintTextureSmplr, vColorTexCoord); return float4(srcRGBA.xyz, (srcRGBA.w * coverage) * vOpacity); } fragment main0_out main0(main0_in in [[stage_in]], constant spvDescriptorSetBuffer0& spvDescriptorSet0 [[buffer(0)]]) { main0_out out = {}; float4 srcRGBA = sampleSrcColor(spvDescriptorSet0.uStencilTexture, spvDescriptorSet0.uStencilTextureSmplr, in.vMaskTexCoord, spvDescriptorSet0.uPaintTexture, spvDescriptorSet0.uPaintTextureSmplr, in.vColorTexCoord, in.vOpacity); out.oFragColor = float4(srcRGBA.xyz * srcRGBA.w, srcRGBA.w); return out; }