diff options
| author | 2019-04-24 16:41:11 +0000 | |
|---|---|---|
| committer | 2019-04-24 16:41:11 +0000 | |
| commit | 61daef82d9a88b24ea6b6b5900a9798bd2165980 (patch) | |
| tree | 591fa686b4bd647f4b5771f569f513423dbfa57f | |
| parent | 7178a9178672657fc633c6c15bccd2299b982e13 (diff) | |
| parent | 4346189ae473119cdeeb470c02f5d204837772fb (diff) | |
Merge "Increase precision in rounded corner shader" into qt-dev
| -rw-r--r-- | libs/renderengine/gl/ProgramCache.cpp | 4 |
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); } |