Chromium Code Reviews| 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( |