summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorJesse Hall <jessehall@google.com>2012-10-10 21:37:22 -0700
committerJesse Hall <jessehall@google.com>2012-10-10 21:40:26 -0700
commitb763d5fffa2f942a6ae3637fab17439dd32dbebc (patch)
treeccb0559ee7ded219e0be48c8297a938c57534502 /services
parentf0c89b28be2e74c26d74b2a21b7228516f8c236f (diff)
downloadframeworks_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.cpp8
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);