diff options
author | Mathias Agopian <mathias@google.com> | 2011-10-18 14:49:27 -0700 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2011-10-18 15:32:57 -0700 |
commit | 9044ef05d542a4f99b4be7ecefbe5e676bd3ea7f (patch) | |
tree | bdd0b1be4d282566ab3232943f15a9ed2dc3ec8a /services/surfaceflinger/LayerDim.cpp | |
parent | f522e095e69406a5c6039b406237e9b30781a355 (diff) | |
download | frameworks_base-9044ef05d542a4f99b4be7ecefbe5e676bd3ea7f.zip frameworks_base-9044ef05d542a4f99b4be7ecefbe5e676bd3ea7f.tar.gz frameworks_base-9044ef05d542a4f99b4be7ecefbe5e676bd3ea7f.tar.bz2 |
Make sure set GL state properly
when taking a screenshot, in particular, we could end up
with stale GL state when drawing LayerDim which resulted
in incortect rendering.
Bug: 5467587
Change-Id: Id9fbed2843481d31063620f3662b364c7e3ac781
Diffstat (limited to 'services/surfaceflinger/LayerDim.cpp')
-rw-r--r-- | services/surfaceflinger/LayerDim.cpp | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/services/surfaceflinger/LayerDim.cpp b/services/surfaceflinger/LayerDim.cpp index 654817d..e665d7a 100644 --- a/services/surfaceflinger/LayerDim.cpp +++ b/services/surfaceflinger/LayerDim.cpp @@ -49,7 +49,8 @@ void LayerDim::onDraw(const Region& clip) const const DisplayHardware& hw(graphicPlane(0).displayHardware()); const GLfloat alpha = s.alpha/255.0f; const uint32_t fbHeight = hw.getHeight(); - glDisable(GL_DITHER); + glDisable(GL_TEXTURE_EXTERNAL_OES); + glDisable(GL_TEXTURE_2D); if (s.alpha == 0xFF) { glDisable(GL_BLEND); @@ -60,11 +61,6 @@ void LayerDim::onDraw(const Region& clip) const glColor4f(0, 0, 0, alpha); -#if defined(GL_OES_EGL_image_external) - if (GLExtensions::getInstance().haveTextureExternal()) { - glDisable(GL_TEXTURE_EXTERNAL_OES); - } -#endif glVertexPointer(2, GL_FLOAT, 0, mVertices); while (it != end) { @@ -73,8 +69,9 @@ void LayerDim::onDraw(const Region& clip) const glScissor(r.left, sy, r.width(), r.height()); glDrawArrays(GL_TRIANGLE_FAN, 0, 4); } + glDisable(GL_BLEND); + glDisableClientState(GL_TEXTURE_COORD_ARRAY); } - glDisableClientState(GL_TEXTURE_COORD_ARRAY); } // --------------------------------------------------------------------------- |