Enable linear filter when scaling bitmaps
Bug #5205673
Change-Id: I8b0f90877df6b6c6757d35dcf6cd14e79e840b96
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index e89d6ec..04f3c58 100644
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -1493,7 +1493,8 @@
const float y = (int) floorf(dstTop + mSnapshot->transform->getTranslateY() + 0.5f);
GLenum filter = GL_NEAREST;
- if (u1 > 0.0f || u2 < 1.0f || v1 > 0.0f || v2 < 1.0f) {
+ // Enable linear filtering if the source rectangle is scaled
+ if (srcRight - srcLeft != dstRight - dstLeft || srcBottom - srcTop != dstBottom - dstTop) {
filter = GL_LINEAR;
}
texture->setFilter(filter, filter, true);