Use mediump in distance field shaders for the alpha threshold.
authorYoann Lopes <yoann.lopes@nokia.com>
Thu, 12 Jan 2012 15:13:49 +0000 (16:13 +0100)
committerQt by Nokia <qt-info@nokia.com>
Wed, 18 Jan 2012 12:49:10 +0000 (13:49 +0100)
lowp or highp cause some problems depending on the hardware.

Change-Id: I2762c04548656de8fdb34711f52e5cf05d8c2ac5
Reviewed-by: Yoann Lopes <yoann.lopes@nokia.com>
src/quick/scenegraph/qsgdistancefieldglyphnode_p.cpp

index eef60d2..f4e85c6 100644 (file)
@@ -90,8 +90,8 @@ const char *QSGDistanceFieldTextMaterialShader::fragmentShader() const {
         "varying highp vec2 sampleCoord;                                             \n"
         "uniform sampler2D texture;                                                  \n"
         "uniform lowp vec4 color;                                                    \n"
-        "uniform lowp float alphaMin;                                               \n"
-        "uniform lowp float alphaMax;                                               \n"
+        "uniform mediump float alphaMin;                                             \n"
+        "uniform mediump float alphaMax;                                             \n"
         "void main() {                                                               \n"
         "    gl_FragColor = color * smoothstep(alphaMin,                             \n"
         "                                      alphaMax,                             \n"
@@ -324,10 +324,10 @@ const char *DistanceFieldOutlineTextMaterialShader::fragmentShader() const {
             "uniform sampler2D texture;                                                           \n"
             "uniform lowp vec4 color;                                                             \n"
             "uniform lowp vec4 styleColor;                                                        \n"
-            "uniform lowp float alphaMin;                                                         \n"
-            "uniform lowp float alphaMax;                                                         \n"
-            "uniform lowp float outlineAlphaMax0;                                                 \n"
-            "uniform lowp float outlineAlphaMax1;                                                 \n"
+            "uniform mediump float alphaMin;                                                      \n"
+            "uniform mediump float alphaMax;                                                      \n"
+            "uniform mediump float outlineAlphaMax0;                                              \n"
+            "uniform mediump float outlineAlphaMax1;                                              \n"
             "void main() {                                                                        \n"
             "    mediump float d = texture2D(texture, sampleCoord).a;                             \n"
             "    gl_FragColor = mix(styleColor, color, smoothstep(alphaMin, alphaMax, d))         \n"
@@ -468,8 +468,8 @@ const char *DistanceFieldShiftedStyleTextMaterialShader::fragmentShader() const
             "uniform sampler2D texture;                                                            \n"
             "uniform lowp vec4 color;                                                              \n"
             "uniform lowp vec4 styleColor;                                                         \n"
-            "uniform lowp float alphaMin;                                                          \n"
-            "uniform lowp float alphaMax;                                                          \n"
+            "uniform mediump float alphaMin;                                                       \n"
+            "uniform mediump float alphaMax;                                                       \n"
             "void main() {                                                                         \n"
             "    highp float a = smoothstep(alphaMin, alphaMax, texture2D(texture, sampleCoord).a);\n"
             "    highp vec4 shifted = styleColor * smoothstep(alphaMin,                            \n"
@@ -558,8 +558,8 @@ const char *QSGHiQSubPixelDistanceFieldTextMaterialShader::fragmentShader() cons
         "varying highp vec3 sampleFarRight;                                     \n"
         "uniform sampler2D texture;                                             \n"
         "uniform lowp vec4 color;                                               \n"
-        "uniform lowp float alphaMin;                                           \n"
-        "uniform lowp float alphaMax;                                           \n"
+        "uniform mediump float alphaMin;                                        \n"
+        "uniform mediump float alphaMax;                                        \n"
         "void main() {                                                          \n"
         "    highp vec4 n;                                                      \n"
         "    n.x = texture2DProj(texture, sampleFarLeft).a;                     \n"
@@ -697,8 +697,8 @@ const char *QSGLoQSubPixelDistanceFieldTextMaterialShader::fragmentShader() cons
         "varying highp vec3 sampleNearRight;                                    \n"
         "uniform sampler2D texture;                                             \n"
         "uniform lowp vec4 color;                                               \n"
-        "uniform lowp float alphaMin;                                           \n"
-        "uniform lowp float alphaMax;                                           \n"
+        "uniform mediump float alphaMin;                                        \n"
+        "uniform mediump float alphaMax;                                        \n"
         "void main() {                                                          \n"
         "    highp vec2 n;                                                      \n"
         "    n.x = texture2DProj(texture, sampleNearLeft).a;                    \n"