summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Lucas Dupin <dupin@google.com> 2019-04-24 16:41:11 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2019-04-24 16:41:11 +0000
commit61daef82d9a88b24ea6b6b5900a9798bd2165980 (patch)
tree591fa686b4bd647f4b5771f569f513423dbfa57f
parent7178a9178672657fc633c6c15bccd2299b982e13 (diff)
parent4346189ae473119cdeeb470c02f5d204837772fb (diff)
Merge "Increase precision in rounded corner shader" into qt-dev
-rw-r--r--libs/renderengine/gl/ProgramCache.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/libs/renderengine/gl/ProgramCache.cpp b/libs/renderengine/gl/ProgramCache.cpp
index cd1182c89a..086a324999 100644
--- a/libs/renderengine/gl/ProgramCache.cpp
+++ b/libs/renderengine/gl/ProgramCache.cpp
@@ -575,7 +575,9 @@ String8 ProgramCache::generateFragmentShader(const Key& needs) {
float applyCornerRadius(vec2 cropCoords)
{
vec2 position = cropCoords - cropCenter;
- vec2 dist = abs(position) + vec2(cornerRadius) - cropCenter;
+ // Increase precision here so that a large corner radius doesn't
+ // cause floating point error
+ highp vec2 dist = abs(position) + vec2(cornerRadius) - cropCenter;
float plane = length(max(dist, vec2(0.0)));
return 1.0 - clamp(plane - cornerRadius, 0.0, 1.0);
}