diff options
author | Jesse Hall <jessehall@google.com> | 2012-10-10 21:37:22 -0700 |
---|---|---|
committer | Jesse Hall <jessehall@google.com> | 2012-10-10 21:40:26 -0700 |
commit | b763d5fffa2f942a6ae3637fab17439dd32dbebc (patch) | |
tree | ccb0559ee7ded219e0be48c8297a938c57534502 /services | |
parent | f0c89b28be2e74c26d74b2a21b7228516f8c236f (diff) | |
download | frameworks_native-b763d5fffa2f942a6ae3637fab17439dd32dbebc.zip frameworks_native-b763d5fffa2f942a6ae3637fab17439dd32dbebc.tar.gz frameworks_native-b763d5fffa2f942a6ae3637fab17439dd32dbebc.tar.bz2 |
Assume LayerScreenshot has pre-multiplied alpha
Bug: 7300129
Change-Id: Ie9114adc4b5c9a8cc3c65bfe6d9478b2cba4e0d8
Diffstat (limited to 'services')
-rw-r--r-- | services/surfaceflinger/LayerScreenshot.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/services/surfaceflinger/LayerScreenshot.cpp b/services/surfaceflinger/LayerScreenshot.cpp index 5c18ebd..1aa8c09 100644 --- a/services/surfaceflinger/LayerScreenshot.cpp +++ b/services/surfaceflinger/LayerScreenshot.cpp @@ -118,21 +118,21 @@ void LayerScreenshot::onDraw(const sp<const DisplayDevice>& 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); |