Chromium Code Reviews| Index: cc/layers/picture_layer.cc |
| diff --git a/cc/layers/picture_layer.cc b/cc/layers/picture_layer.cc |
| index ae823a6cec4f0cc8d251e86845c385559cd25777..489c30c3b20fe346d6fd6d37941dfb8999427fea 100644 |
| --- a/cc/layers/picture_layer.cc |
| +++ b/cc/layers/picture_layer.cc |
| @@ -21,7 +21,9 @@ PictureLayer::PictureLayer(ContentLayerClient* client) |
| pile_(make_scoped_refptr(new PicturePile())), |
| instrumentation_object_tracker_(id()), |
| is_mask_(false), |
| - update_source_frame_number_(-1) {} |
| + use_lcd_text_(true), |
| + update_source_frame_number_(-1) { |
| +} |
| PictureLayer::~PictureLayer() { |
| } |
| @@ -88,6 +90,8 @@ bool PictureLayer::Update(ResourceUpdateQueue* queue, |
| update_source_frame_number_ = layer_tree_host()->source_frame_number(); |
| bool updated = Layer::Update(queue, occlusion); |
| + UpdateUseLCDText(); |
| + |
| gfx::Rect visible_layer_rect = gfx::ScaleToEnclosingRect( |
| visible_content_rect(), 1.f / contents_scale_x()); |
| @@ -120,6 +124,7 @@ bool PictureLayer::Update(ResourceUpdateQueue* queue, |
| SafeOpaqueBackgroundColor(), |
| contents_opaque(), |
| client_->FillsBoundsCompletely(), |
| + use_lcd_text_, |
| pile_invalidation_, |
| visible_layer_rect, |
| update_source_frame_number_, |
| @@ -172,6 +177,7 @@ skia::RefPtr<SkPicture> PictureLayer::GetPicture() const { |
| SkCanvas* canvas = recorder.beginRecording(width, height, NULL, 0); |
| client_->PaintContents(canvas, |
| gfx::Rect(width, height), |
| + use_lcd_text_, |
| &opaque, |
| ContentLayerClient::GRAPHICS_CONTEXT_ENABLED); |
| skia::RefPtr<SkPicture> picture = skia::AdoptRef(recorder.endRecording()); |
| @@ -186,4 +192,17 @@ void PictureLayer::RunMicroBenchmark(MicroBenchmark* benchmark) { |
| benchmark->RunOnLayer(this); |
| } |
| +void PictureLayer::UpdateUseLCDText() { |
| + if (use_lcd_text_ == can_use_lcd_text()) |
| + return; |
| + |
| + // LCD text starts out enabled and can only be disabled. |
| + if (!use_lcd_text_) |
| + return; |
| + |
| + use_lcd_text_ = can_use_lcd_text(); |
| + if (client_->PaintsLCDText()) |
| + SetNeedsDisplay(); |
|
enne (OOO)
2014/06/10 18:46:09
Re: "The ui::layer will still not be invalidated"
alokp
2014/06/10 20:54:43
Not if PaintsLCDText returns false.
|
| +} |
| + |
| } // namespace cc |