summaryrefslogtreecommitdiffstats
path: root/services/surfaceflinger/LayerDim.cpp
diff options
context:
space:
mode:
authorMathias Agopian <mathias@google.com>2011-10-18 14:49:27 -0700
committerMathias Agopian <mathias@google.com>2011-10-18 15:32:57 -0700
commit9044ef05d542a4f99b4be7ecefbe5e676bd3ea7f (patch)
treebdd0b1be4d282566ab3232943f15a9ed2dc3ec8a /services/surfaceflinger/LayerDim.cpp
parentf522e095e69406a5c6039b406237e9b30781a355 (diff)
downloadframeworks_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.cpp11
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);
}
// ---------------------------------------------------------------------------