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(); |