diff options
author | Jere Tuliniemi <jere.tuliniemi@qt.io> | 2019-05-20 13:12:37 +0300 |
---|---|---|
committer | Jere Tuliniemi <jere.tuliniemi@qt.io> | 2019-05-20 14:12:47 +0300 |
commit | d7bbf9d82e9f129877e6d304b527071155348c59 (patch) | |
tree | 361b362deb1752274112f63890d04c9ae8a0b6d0 /src/Runtime/res/effectlib/distancefieldtext_dropshadow_core.frag | |
parent | 52092eb06cb659f661d757ae6c2351e58ebbdc1b (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.frag | 26 |
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); |