// pathfinder/shaders/gles2/xcaa-multi-bg-direct-curve.fs.glsl // // Copyright (c) 2017 The Pathfinder Project Developers. // // Licensed under the Apache License, Version 2.0 or the MIT license // , at your // option. This file may not be copied, modified, or distributed // except according to those terms. // This shader implements the quadratic Loop-Blinn formulation. precision highp float; uniform ivec2 uFramebufferSize; uniform sampler2D uEdgeDepth; varying vec4 vColor; varying vec2 vTexCoord; varying float vSign; void main() { vec2 center = floor(gl_FragCoord.xy); float depth = gl_FragCoord.z; vec2 texCoord = floor(center) / vec2(uFramebufferSize); // TODO(pcwalton): Remove this if possible? if (depth >= texture2D(uEdgeDepth, texCoord).r) discard; float side = vTexCoord.x * vTexCoord.x - vTexCoord.y; float alpha = float(sign(side) == sign(vSign)); gl_FragColor = vec4(vColor.rgb, vColor.a * alpha); }