diff options
author | Romain Guy <romainguy@android.com> | 2010-10-22 10:40:27 -0700 |
---|---|---|
committer | Romain Guy <romainguy@android.com> | 2010-10-22 10:40:27 -0700 |
commit | ae517591d96be39f5f18a1716c856ade13a8bcc7 (patch) | |
tree | 05fbd13d7ea9d793455da764d6852e12429dd8dd /libs/hwui | |
parent | 477d9b2ddc9515e0df088c448ddfb6f9145edce1 (diff) | |
download | frameworks_base-ae517591d96be39f5f18a1716c856ade13a8bcc7.zip frameworks_base-ae517591d96be39f5f18a1716c856ade13a8bcc7.tar.gz frameworks_base-ae517591d96be39f5f18a1716c856ade13a8bcc7.tar.bz2 |
Don't perform glCopyTextImage with coordinates outside the buffer.
Bug #3122179
Change-Id: I91ed397e9e553a8eeb69d82d0c5b1e49a3cdd5ff
Diffstat (limited to 'libs/hwui')
-rw-r--r-- | libs/hwui/OpenGLRenderer.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index 17ef598..38e153f 100644 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -355,8 +355,16 @@ bool OpenGLRenderer::createLayer(sp<Snapshot> snapshot, float left, float top, Rect bounds(left, top, right, bottom); if (!fboLayer) { mSnapshot->transform->mapRect(bounds); + // Layers only make sense if they are in the framebuffer's bounds bounds.intersect(*mSnapshot->clipRect); + + // When the layer is not an FBO, we may use glCopyTexImage so we + // need to make sure the layer does not extend outside the bounds + // of the framebuffer + bounds.intersect(snapshot->previous->viewport); + + // We cannot work with sub-pixels in this case bounds.snapToPixelBoundaries(); } |