summaryrefslogtreecommitdiffstats
path: root/libs/hwui/TextureCache.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/hwui/TextureCache.cpp')
-rw-r--r--libs/hwui/TextureCache.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/libs/hwui/TextureCache.cpp b/libs/hwui/TextureCache.cpp
index e560b8f..3752874 100644
--- a/libs/hwui/TextureCache.cpp
+++ b/libs/hwui/TextureCache.cpp
@@ -209,13 +209,10 @@ void TextureCache::generateTexture(SkBitmap* bitmap, Texture* texture, bool rege
// decoding happened
texture->blend = !bitmap->isOpaque();
break;
- case SkBitmap::kIndex8_Config:
- uploadLoFiTexture(resize, bitmap, texture->width, texture->height);
- texture->blend = false;
- break;
case SkBitmap::kARGB_4444_Config:
+ case SkBitmap::kIndex8_Config:
uploadLoFiTexture(resize, bitmap, texture->width, texture->height);
- texture->blend = true;
+ texture->blend = !bitmap->isOpaque();
break;
default:
LOGW("Unsupported bitmap config: %d", bitmap->getConfig());
@@ -235,6 +232,7 @@ void TextureCache::uploadLoFiTexture(bool resize, SkBitmap* bitmap,
rgbaBitmap.setConfig(SkBitmap::kARGB_8888_Config, width, height);
rgbaBitmap.allocPixels();
rgbaBitmap.eraseColor(0);
+ rgbaBitmap.setIsOpaque(bitmap->isOpaque());
SkCanvas canvas(rgbaBitmap);
canvas.drawBitmap(*bitmap, 0.0f, 0.0f, NULL);