summaryrefslogtreecommitdiffstats
path: root/libs
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2010-09-16 14:40:17 -0700
committerRomain Guy <romainguy@google.com>2010-09-16 14:40:17 -0700
commitbf434114cbf55b216fdc76fc8d65a75e84c9dab5 (patch)
tree5ad5f0411e6b804c264bed8927a9786a1942719c /libs
parentb025b9c8b4efefadb01937db61a1f8ee7d2452bf (diff)
downloadframeworks_base-bf434114cbf55b216fdc76fc8d65a75e84c9dab5.zip
frameworks_base-bf434114cbf55b216fdc76fc8d65a75e84c9dab5.tar.gz
frameworks_base-bf434114cbf55b216fdc76fc8d65a75e84c9dab5.tar.bz2
Snap layer bounds to pixel boundaries.
Change-Id: I272ceebf469a119f01ea9d73cdd68519afdffa99
Diffstat (limited to 'libs')
-rw-r--r--libs/hwui/OpenGLRenderer.cpp2
-rw-r--r--libs/hwui/Rect.h7
2 files changed, 9 insertions, 0 deletions
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index 670d049..d6c0053 100644
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -353,6 +353,8 @@ bool OpenGLRenderer::createLayer(sp<Snapshot> snapshot, float left, float top,
// Layers only make sense if they are in the framebuffer's bounds
bounds.intersect(*mSnapshot->clipRect);
+ bounds.snapToPixelBoundaries();
+
if (bounds.isEmpty() || bounds.getWidth() > mMaxTextureSize ||
bounds.getHeight() > mMaxTextureSize) {
return false;
diff --git a/libs/hwui/Rect.h b/libs/hwui/Rect.h
index 6b22c2b..5166ee9 100644
--- a/libs/hwui/Rect.h
+++ b/libs/hwui/Rect.h
@@ -148,6 +148,13 @@ struct Rect {
return false;
}
+ void snapToPixelBoundaries() {
+ left = floor(left);
+ top = floor(top);
+ right = ceil(right);
+ bottom = ceil(bottom);
+ }
+
void dump() const {
LOGD("Rect[l=%f t=%f r=%f b=%f]", left, top, right, bottom);
}