Chromium Code Reviews| Index: cc/layers/ui_resource_layer.cc |
| diff --git a/cc/layers/ui_resource_layer.cc b/cc/layers/ui_resource_layer.cc |
| index 944cf7d54844c7016feb32eacfc401fb590146ab..8d6f8590dedada5b52dbeb8aa7ae1a8f4cfa0014 100644 |
| --- a/cc/layers/ui_resource_layer.cc |
| +++ b/cc/layers/ui_resource_layer.cc |
| @@ -25,6 +25,8 @@ class ScopedUIResourceHolder : public UIResourceLayer::UIResourceHolder { |
| } |
| UIResourceId id() override { return resource_->id(); } |
| + bool NeedsRecreation() override { return false; } |
| + |
| private: |
| ScopedUIResourceHolder(LayerTreeHost* host, const SkBitmap& skbitmap) { |
| resource_ = ScopedUIResource::Create(host, UIResourceBitmap(skbitmap)); |
| @@ -41,6 +43,8 @@ class SharedUIResourceHolder : public UIResourceLayer::UIResourceHolder { |
| UIResourceId id() override { return id_; } |
| + bool NeedsRecreation() override { return true; } |
| + |
| private: |
| explicit SharedUIResourceHolder(UIResourceId id) : id_(id) {} |
| @@ -112,10 +116,11 @@ void UIResourceLayer::SetLayerTreeHost(LayerTreeHost* host) { |
| } |
| void UIResourceLayer::RecreateUIResourceHolder() { |
| - ui_resource_holder_ = nullptr; |
| if (layer_tree_host() && !bitmap_.empty()) { |
| ui_resource_holder_ = |
| ScopedUIResourceHolder::Create(layer_tree_host(), bitmap_); |
| + } else if (ui_resource_holder_ && !ui_resource_holder_->NeedsRecreation()) { |
|
danakj
2014/11/20 16:38:08
I think we could possibly make this simpler to fol
Changwan Ryu
2014/11/20 20:52:26
I'm not sure I'm following you correctly, but I'm
danakj
2014/11/20 20:56:04
You only have a bitmap_ != null if you called SetB
Changwan Ryu
2014/11/20 21:29:40
How about now?
|
| + ui_resource_holder_ = nullptr; |
| } |
| UpdateDrawsContent(HasDrawableContent()); |
| } |
| @@ -140,6 +145,12 @@ void UIResourceLayer::SetUIResourceId(UIResourceId resource_id) { |
| SetNeedsCommit(); |
| } |
| +UIResourceId UIResourceLayer::GetUIResourceId() { |
| + if (ui_resource_holder_) |
| + return ui_resource_holder_->id(); |
| + return 0; |
| +} |
| + |
| bool UIResourceLayer::HasDrawableContent() const { |
| return ui_resource_holder_ && ui_resource_holder_->id() && |
| Layer::HasDrawableContent(); |