diff options
Diffstat (limited to 'src/quick/scenegraph/shaders_ng/distancefieldoutlinetext_a.frag')
-rw-r--r-- | src/quick/scenegraph/shaders_ng/distancefieldoutlinetext_a.frag | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/quick/scenegraph/shaders_ng/distancefieldoutlinetext_a.frag b/src/quick/scenegraph/shaders_ng/distancefieldoutlinetext_a.frag index 70fb80852d..68dc4a2867 100644 --- a/src/quick/scenegraph/shaders_ng/distancefieldoutlinetext_a.frag +++ b/src/quick/scenegraph/shaders_ng/distancefieldoutlinetext_a.frag @@ -19,7 +19,8 @@ layout(std140, binding = 0) uniform buf { void main() { - float d = texture(_qt_texture, sampleCoord).a; - fragColor = mix(ubuf.styleColor, ubuf.color, smoothstep(ubuf.alphaMin, ubuf.alphaMax, d)) - * smoothstep(ubuf.outlineAlphaMax0, ubuf.outlineAlphaMax1, d); + float distance = texture(_qt_texture, sampleCoord).a; + float f = fwidth(distance); + fragColor = mix(ubuf.styleColor, ubuf.color, smoothstep(0.5 - f, 0.5 + f, distance)) + * smoothstep(ubuf.outlineAlphaMax0, ubuf.outlineAlphaMax1, distance); } |