summaryrefslogtreecommitdiffstats
path: root/src/Runtime/res/effectlib/distancefieldtext_dropshadow_core.frag
diff options
context:
space:
mode:
authorJere Tuliniemi <jere.tuliniemi@qt.io>2019-05-20 13:12:37 +0300
committerJere Tuliniemi <jere.tuliniemi@qt.io>2019-05-20 14:12:47 +0300
commitd7bbf9d82e9f129877e6d304b527071155348c59 (patch)
tree361b362deb1752274112f63890d04c9ae8a0b6d0 /src/Runtime/res/effectlib/distancefieldtext_dropshadow_core.frag
parent52092eb06cb659f661d757ae6c2351e58ebbdc1b (diff)
Copy distance field shader changes to OpenGL runtime
Also fixes the OpenGL runtime to use alpha channel for the glyph texture when using ES2. Task-number: QT3DS-3343 Change-Id: Ia37c341802e504da21ebeaff6f3f1f5b50bd1bfe Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Antti Määttä <antti.maatta@qt.io>
Diffstat (limited to 'src/Runtime/res/effectlib/distancefieldtext_dropshadow_core.frag')
-rw-r--r--src/Runtime/res/effectlib/distancefieldtext_dropshadow_core.frag26
1 files changed, 12 insertions, 14 deletions
diff --git a/src/Runtime/res/effectlib/distancefieldtext_dropshadow_core.frag b/src/Runtime/res/effectlib/distancefieldtext_dropshadow_core.frag
index 4e46bd5f..51aae5a7 100644
--- a/src/Runtime/res/effectlib/distancefieldtext_dropshadow_core.frag
+++ b/src/Runtime/res/effectlib/distancefieldtext_dropshadow_core.frag
@@ -8,24 +8,22 @@ uniform sampler2D _qt_texture;
uniform vec4 color;
uniform vec4 shadowColor;
-in vec2 alphas;
-
void main()
{
- float shadowAlpha = smoothstep(alphas.x,
- alphas.y,
- texture(_qt_texture,
- clamp(shadowSampleCoord,
- normalizedTextureBounds.xy,
- normalizedTextureBounds.zw)).r);
+ float shadowDistance = texture(_qt_texture,
+ clamp(shadowSampleCoord,
+ normalizedTextureBounds.xy,
+ normalizedTextureBounds.zw)).r;
+ float shadowDistanceD = fwidth(shadowDistance);
+ float shadowAlpha = smoothstep(0.5 - shadowDistanceD, 0.5, shadowDistance);
vec4 shadowPixel = color * shadowColor * shadowAlpha;
- float textAlpha = smoothstep(alphas.x,
- alphas.y,
- texture(_qt_texture,
- clamp(sampleCoord,
- normalizedTextureBounds.xy,
- normalizedTextureBounds.zw)).r);
+ float textDistance = texture(_qt_texture,
+ clamp(sampleCoord,
+ normalizedTextureBounds.xy,
+ normalizedTextureBounds.zw)).r;
+ float textDistanceD = fwidth(textDistance);
+ float textAlpha = smoothstep(0.5 - textDistanceD, 0.5, textDistance);
vec4 textPixel = color * textAlpha;
fragColor = mix(shadowPixel, textPixel, textPixel.a);