summaryrefslogtreecommitdiffstats
path: root/libs/hwui/PathCache.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/hwui/PathCache.cpp')
-rw-r--r--libs/hwui/PathCache.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/libs/hwui/PathCache.cpp b/libs/hwui/PathCache.cpp
index 377727b..b58785a 100644
--- a/libs/hwui/PathCache.cpp
+++ b/libs/hwui/PathCache.cpp
@@ -173,9 +173,15 @@ PathTexture* PathCache::addTexture(const PathCacheEntry& entry,
bitmap.allocPixels();
bitmap.eraseColor(0);
+ SkPaint pathPaint(*paint);
+ if (!pathPaint.getXfermode()) {
+ SkXfermode* mode = SkXfermode::Create(SkXfermode::kSrc_Mode);
+ pathPaint.setXfermode(mode)->safeUnref();
+ }
+
SkCanvas canvas(bitmap);
canvas.translate(-bounds.fLeft + offset, -bounds.fTop + offset);
- canvas.drawPath(*path, *paint);
+ canvas.drawPath(*path, pathPaint);
generateTexture(bitmap, texture);