diff options
-rw-r--r-- | src/quick/scenegraph/qsgdefaultimagenode.cpp | 16 | ||||
-rw-r--r-- | src/quick/scenegraph/qsgdefaultrectanglenode.cpp | 16 |
2 files changed, 24 insertions, 8 deletions
diff --git a/src/quick/scenegraph/qsgdefaultimagenode.cpp b/src/quick/scenegraph/qsgdefaultimagenode.cpp index b165b2db12..d9c04e1959 100644 --- a/src/quick/scenegraph/qsgdefaultimagenode.cpp +++ b/src/quick/scenegraph/qsgdefaultimagenode.cpp @@ -159,8 +159,12 @@ const char *SmoothTextureMaterialShader::vertexShader() const " highp vec2 dir = delta.xy * pos.w - pos.xy * delta.w; \n" " highp vec2 ndir = .5 * pixelSize * normalize(dir / pixelSize); \n" " dir -= ndir * delta.w * pos.w; \n" - " highp float scale = min(1., dot(dir, ndir * pos.w * pos.w) / dot(dir, dir)); \n" - " if (scale < 0.) scale = 1.; \n" + " highp float numerator = dot(dir, ndir * pos.w * pos.w); \n" + " highp float scale = 0.0; \n" + " if (numerator < 0.0) \n" + " scale = 1.0; \n" + " else \n" + " scale = min(1.0, numerator / dot(dir, dir)); \n" " gl_Position += scale * delta; \n" " texCoord.x += scale * texCoordOffset.x; \n" " } \n" @@ -170,8 +174,12 @@ const char *SmoothTextureMaterialShader::vertexShader() const " highp vec2 dir = delta.xy * pos.w - pos.xy * delta.w; \n" " highp vec2 ndir = .5 * pixelSize * normalize(dir / pixelSize); \n" " dir -= ndir * delta.w * pos.w; \n" - " highp float scale = min(1., dot(dir, ndir * pos.w * pos.w) / dot(dir, dir)); \n" - " if (scale < 0.) scale = 1.; \n" + " highp float numerator = dot(dir, ndir * pos.w * pos.w); \n" + " highp float scale = 0.0; \n" + " if (numerator < 0.0) \n" + " scale = 1.0; \n" + " else \n" + " scale = min(1.0, numerator / dot(dir, dir)); \n" " gl_Position += scale * delta; \n" " texCoord.y += scale * texCoordOffset.y; \n" " } \n" diff --git a/src/quick/scenegraph/qsgdefaultrectanglenode.cpp b/src/quick/scenegraph/qsgdefaultrectanglenode.cpp index 2da8e3cd83..dab855064e 100644 --- a/src/quick/scenegraph/qsgdefaultrectanglenode.cpp +++ b/src/quick/scenegraph/qsgdefaultrectanglenode.cpp @@ -175,8 +175,12 @@ const char *SmoothColorMaterialShader::vertexShader() const " highp vec2 dir = delta.xy * pos.w - pos.xy * delta.w; \n" " highp vec2 ndir = .5 * pixelSize * normalize(dir / pixelSize); \n" " dir -= ndir * delta.w * pos.w; \n" - " highp float scale = min(1., dot(dir, ndir * pos.w * pos.w) / dot(dir, dir)); \n" - " if (scale < 0.) scale = 1.; \n" + " highp float numerator = dot(dir, ndir * pos.w * pos.w); \n" + " highp float scale = 0.0; \n" + " if (numerator < 0.0) \n" + " scale = 1.0; \n" + " else \n" + " scale = min(1.0, numerator / dot(dir, dir)); \n" " gl_Position += scale * delta; \n" " } \n" @@ -185,8 +189,12 @@ const char *SmoothColorMaterialShader::vertexShader() const " highp vec2 dir = delta.xy * pos.w - pos.xy * delta.w; \n" " highp vec2 ndir = .5 * pixelSize * normalize(dir / pixelSize); \n" " dir -= ndir * delta.w * pos.w; \n" - " highp float scale = min(1., dot(dir, ndir * pos.w * pos.w) / dot(dir, dir)); \n" - " if (scale < 0.) scale = 1.; \n" + " highp float numerator = dot(dir, ndir * pos.w * pos.w); \n" + " highp float scale = 0.0; \n" + " if (numerator < 0.0) \n" + " scale = 1.0; \n" + " else \n" + " scale = min(1.0, numerator / dot(dir, dir)); \n" " gl_Position += scale * delta; \n" " } \n" |