diff options
author | 2011-01-11 15:02:21 -0800 | |
---|---|---|
committer | 2011-01-11 15:02:21 -0800 | |
commit | 32228288a957f3823df92365bc709ad6f42b012e (patch) | |
tree | 03784344779e34bd5008bb787919fe9f5a82b178 /libs/hwui/PathCache.cpp | |
parent | 50cf2106b77d4009e1cefe11c57c42fe4584345f (diff) |
Solve translucency issue when drawing paths.
Change-Id: I68ae0e2ccddaca2f76b5b2dd3e3cf1277fddaad6
Diffstat (limited to 'libs/hwui/PathCache.cpp')
-rw-r--r-- | libs/hwui/PathCache.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/libs/hwui/PathCache.cpp b/libs/hwui/PathCache.cpp index 8740a64601ae..3184598d48c4 100644 --- a/libs/hwui/PathCache.cpp +++ b/libs/hwui/PathCache.cpp @@ -197,10 +197,16 @@ PathTexture* PathCache::addTexture(const PathCacheEntry& entry, bitmap.eraseColor(0); SkPaint pathPaint(*paint); - if (!pathPaint.getXfermode()) { - SkXfermode* mode = SkXfermode::Create(SkXfermode::kSrc_Mode); - pathPaint.setXfermode(mode)->safeUnref(); - } + + // Make sure the paint is opaque, color, alpha, filter, etc. + // will be applied later when compositing the alpha8 texture + pathPaint.setColor(0xff000000); + pathPaint.setAlpha(255); + pathPaint.setColorFilter(NULL); + pathPaint.setMaskFilter(NULL); + pathPaint.setShader(NULL); + SkXfermode* mode = SkXfermode::Create(SkXfermode::kSrc_Mode); + pathPaint.setXfermode(mode)->safeUnref(); SkCanvas canvas(bitmap); canvas.translate(-bounds.fLeft + offset, -bounds.fTop + offset); |