From b763d5fffa2f942a6ae3637fab17439dd32dbebc Mon Sep 17 00:00:00 2001 From: Jesse Hall Date: Wed, 10 Oct 2012 21:37:22 -0700 Subject: [PATCH] Assume LayerScreenshot has pre-multiplied alpha Bug: 7300129 Change-Id: Ie9114adc4b5c9a8cc3c65bfe6d9478b2cba4e0d8 --- services/surfaceflinger/LayerScreenshot.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/services/surfaceflinger/LayerScreenshot.cpp b/services/surfaceflinger/LayerScreenshot.cpp index 5c18ebd53..1aa8c099d 100644 --- a/services/surfaceflinger/LayerScreenshot.cpp +++ b/services/surfaceflinger/LayerScreenshot.cpp @@ -118,21 +118,21 @@ void LayerScreenshot::onDraw(const sp& hw, const Region& cl if (s.alpha == 0xFF) { glDisable(GL_BLEND); + glTexEnvx(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); } else { glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + 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(0, 0, 0, alpha); - glDisable(GL_TEXTURE_EXTERNAL_OES); glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, mTextureName); - glTexEnvx(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); glMatrixMode(GL_TEXTURE); glLoadIdentity(); glMatrixMode(GL_MODELVIEW);