From 837d2f9e83e7d8625ef482d9c9d9afa852c8dbaa Mon Sep 17 00:00:00 2001 From: Jesse Hall Date: Mon, 15 Oct 2012 12:38:33 -0700 Subject: [PATCH] Always set vertex alpha when drawing screenshot layers The screenshot is a GL_RGB texture, and the GL_REPLACE texture env mode uses vertex alpha for GL_RGB textures instead of alpha=1.0. Bug: 7340077 Change-Id: I6fbb907023e48f9c422b15a33da79757d6726840 --- services/surfaceflinger/LayerScreenshot.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/surfaceflinger/LayerScreenshot.cpp b/services/surfaceflinger/LayerScreenshot.cpp index 1aa8c099d..0fd744fdd 100644 --- a/services/surfaceflinger/LayerScreenshot.cpp +++ b/services/surfaceflinger/LayerScreenshot.cpp @@ -122,13 +122,14 @@ void LayerScreenshot::onDraw(const sp& hw, const Region& cl } else { glEnable(GL_BLEND); glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); - glColor4f(alpha, alpha, alpha, alpha); glTexEnvx(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); } LayerMesh mesh; computeGeometry(hw, &mesh); + glColor4f(alpha, alpha, alpha, alpha); + glDisable(GL_TEXTURE_EXTERNAL_OES); glEnable(GL_TEXTURE_2D);