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.vert | |
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.vert')
-rw-r--r-- | src/Runtime/res/effectlib/distancefieldtext_dropshadow.vert | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/Runtime/res/effectlib/distancefieldtext_dropshadow.vert b/src/Runtime/res/effectlib/distancefieldtext_dropshadow.vert index f633aaa5..835d34dd 100644 --- a/src/Runtime/res/effectlib/distancefieldtext_dropshadow.vert +++ b/src/Runtime/res/effectlib/distancefieldtext_dropshadow.vert @@ -1,3 +1,9 @@ +#ifdef GL_OES_standard_derivatives +# extension GL_OES_standard_derivatives : enable +#else +# define use_fallback +#endif + uniform highp mat4 mvp; uniform highp float fontScale; uniform int textureWidth; @@ -10,9 +16,11 @@ attribute highp vec4 textureBounds; varying highp vec2 sampleCoord; varying highp vec2 shadowSampleCoord; -varying highp vec2 alphas; varying highp vec4 normalizedTextureBounds; +#ifdef use_fallback +varying highp vec2 alphas; + highp float thresholdFunc(highp float scale) { highp float base = 0.5; @@ -59,11 +67,14 @@ highp float determinant(highp mat4 m) det -= m[3][0] * determinantOfSubmatrix(m, 0, 1, 2, 1, 2, 3); return det; } +#endif void main() { - highp float scale = fontScale * sqrt(abs(determinant(mvp))); +#ifdef use_fallback + highp float scale = fontScale * pow(abs(determinant(mvp)), 1.0 / 3.0); alphas = alphaRange(scale); +#endif highp vec2 textureSizeMultiplier = vec2(1.0 / highp float(textureWidth), 1.0 / float(textureHeight)); |