summaryrefslogtreecommitdiffstats
path: root/libs/hwui
diff options
context:
space:
mode:
authorChris Craik <ccraik@google.com>2013-03-20 16:57:09 -0700
committerChris Craik <ccraik@google.com>2013-03-20 17:24:36 -0700
commite83569ca76308bfe945efcfef5a12c64b8fb8849 (patch)
tree84df4515004ed6715daf870885950d586d5c8962 /libs/hwui
parentafd10322f598abfda973ad78117dd297e09de212 (diff)
downloadframeworks_base-e83569ca76308bfe945efcfef5a12c64b8fb8849.zip
frameworks_base-e83569ca76308bfe945efcfef5a12c64b8fb8849.tar.gz
frameworks_base-e83569ca76308bfe945efcfef5a12c64b8fb8849.tar.bz2
Use snapshot alpha in all layer drawing
Change-Id: Icc093390da2fc36b2b6693d0e5e4357b2f730bf9
Diffstat (limited to 'libs/hwui')
-rw-r--r--libs/hwui/OpenGLRenderer.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index 8030d66..ea4e73b 100644
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -900,7 +900,7 @@ void OpenGLRenderer::composeLayer(sp<Snapshot> current, sp<Snapshot> previous) {
}
void OpenGLRenderer::drawTextureLayer(Layer* layer, const Rect& rect) {
- float alpha = layer->getAlpha() / 255.0f;
+ float alpha = layer->getAlpha() / 255.0f * mSnapshot->alpha;
setupDraw();
if (layer->getRenderTarget() == GL_TEXTURE_2D) {
@@ -964,9 +964,10 @@ void OpenGLRenderer::composeLayerRect(Layer* layer, const Rect& rect, bool swap)
layer->setFilter(GL_LINEAR, true);
}
+ float alpha = layer->getAlpha() / 255.0f * mSnapshot->alpha;
+ bool blend = layer->isBlend() || alpha < 1.0f;
drawTextureMesh(x, y, x + rect.getWidth(), y + rect.getHeight(),
- layer->getTexture(), layer->getAlpha() / 255.0f,
- layer->getMode(), layer->isBlend(),
+ layer->getTexture(), alpha, layer->getMode(), blend,
&mMeshVertices[0].position[0], &mMeshVertices[0].texture[0],
GL_TRIANGLE_STRIP, gMeshCount, swap, swap || simpleTransform);
@@ -1001,7 +1002,7 @@ void OpenGLRenderer::composeLayerRegion(Layer* layer, const Rect& rect) {
rects = safeRegion.getArray(&count);
}
- const float alpha = layer->getAlpha() / 255.0f;
+ const float alpha = layer->getAlpha() / 255.0f * mSnapshot->alpha;
const float texX = 1.0f / float(layer->getWidth());
const float texY = 1.0f / float(layer->getHeight());
const float height = rect.getHeight();