From 421458aad764cd9d1403d2540ab979b336b02341 Mon Sep 17 00:00:00 2001 From: Romain Guy Date: Mon, 21 Nov 2011 15:14:37 -0800 Subject: Draw in the correct FBO after invoking a GL functor Bug #5650514 After invoking a GL functor, libhwui restores a few OpenGL states including the current FBO. The renderer was however making the wrong assumption that the FBO to restore to was the base layer instead of the FBO associated with the current canvas state. Change-Id: Ie565500832ebffd673f6a43b83422d6cc05470a0 --- libs/hwui/OpenGLRenderer.cpp | 2 +- libs/hwui/Snapshot.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'libs/hwui') diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index 32595e4..7561a47 100644 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -208,7 +208,7 @@ void OpenGLRenderer::resume() { glDisable(GL_DITHER); - glBindFramebuffer(GL_FRAMEBUFFER, getTargetFbo()); + glBindFramebuffer(GL_FRAMEBUFFER, mSnapshot->fbo); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); mCaches.blend = true; diff --git a/libs/hwui/Snapshot.h b/libs/hwui/Snapshot.h index d51154d..aff7b93 100644 --- a/libs/hwui/Snapshot.h +++ b/libs/hwui/Snapshot.h @@ -213,7 +213,8 @@ public: Layer* layer; /** - * Only set when the flag kFlagIsFboLayer is set. + * Target FBO used for rendering. Set to 0 when rendering directly + * into the framebuffer. */ GLuint fbo; -- cgit v1.1