Index: cc/playback/compositing_display_item.cc |
diff --git a/cc/playback/compositing_display_item.cc b/cc/playback/compositing_display_item.cc |
index b9cd395e62fae475ff7e017ef7a37bbf2f1886a1..34c06502f4e298bef211190dde3b2c3c9afe6fe0 100644 |
--- a/cc/playback/compositing_display_item.cc |
+++ b/cc/playback/compositing_display_item.cc |
@@ -22,8 +22,9 @@ namespace cc { |
CompositingDisplayItem::CompositingDisplayItem(uint8_t alpha, |
SkXfermode::Mode xfermode, |
SkRect* bounds, |
- skia::RefPtr<SkColorFilter> cf) { |
- SetNew(alpha, xfermode, bounds, std::move(cf)); |
+ skia::RefPtr<SkColorFilter> cf, |
+ bool allow_lcd_text) { |
+ SetNew(alpha, xfermode, bounds, std::move(cf), allow_lcd_text); |
} |
CompositingDisplayItem::CompositingDisplayItem( |
@@ -47,7 +48,7 @@ CompositingDisplayItem::CompositingDisplayItem( |
filter = skia::AdoptRef(static_cast<SkColorFilter*>(flattenable)); |
} |
- SetNew(alpha, xfermode, bounds.get(), std::move(filter)); |
+ SetNew(alpha, xfermode, bounds.get(), std::move(filter), false); |
danakj
2015/12/11 19:07:00
Can you add this flag to the proto?
|
} |
CompositingDisplayItem::~CompositingDisplayItem() { |
@@ -56,13 +57,15 @@ CompositingDisplayItem::~CompositingDisplayItem() { |
void CompositingDisplayItem::SetNew(uint8_t alpha, |
SkXfermode::Mode xfermode, |
SkRect* bounds, |
- skia::RefPtr<SkColorFilter> cf) { |
+ skia::RefPtr<SkColorFilter> cf, |
+ bool allow_lcd_text) { |
alpha_ = alpha; |
xfermode_ = xfermode; |
has_bounds_ = !!bounds; |
if (bounds) |
bounds_ = SkRect(*bounds); |
color_filter_ = std::move(cf); |
+ allow_lcd_text_ = allow_lcd_text; |
} |
void CompositingDisplayItem::ToProtobuf(proto::DisplayItem* proto) const { |
@@ -90,7 +93,11 @@ void CompositingDisplayItem::Raster( |
paint.setXfermodeMode(xfermode_); |
paint.setAlpha(alpha_); |
paint.setColorFilter(color_filter_.get()); |
- canvas->saveLayer(has_bounds_ ? &bounds_ : nullptr, &paint); |
+ const SkRect* bounds = has_bounds_ ? &bounds_ : nullptr; |
+ if (allow_lcd_text_) |
+ canvas->saveLayerPreserveLCDTextRequests(bounds, &paint); |
+ else |
+ canvas->saveLayer(bounds, &paint); |
} |
void CompositingDisplayItem::AsValueInto( |