diff options
author | Romain Guy <romainguy@google.com> | 2010-09-16 14:40:17 -0700 |
---|---|---|
committer | Romain Guy <romainguy@google.com> | 2010-09-16 14:40:17 -0700 |
commit | bf434114cbf55b216fdc76fc8d65a75e84c9dab5 (patch) | |
tree | 5ad5f0411e6b804c264bed8927a9786a1942719c /libs/hwui | |
parent | b025b9c8b4efefadb01937db61a1f8ee7d2452bf (diff) | |
download | frameworks_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/hwui')
-rw-r--r-- | libs/hwui/OpenGLRenderer.cpp | 2 | ||||
-rw-r--r-- | libs/hwui/Rect.h | 7 |
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); } |