Chromium Code Reviews| Index: cc/trees/layer_tree_host.cc |
| diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc |
| index f18e3b865409bd20d0c17468d03396cca14c09b0..837488b35dcf5a9fa01a73dd762c3b89b4e9156b 100644 |
| --- a/cc/trees/layer_tree_host.cc |
| +++ b/cc/trees/layer_tree_host.cc |
| @@ -1141,8 +1141,8 @@ UIResourceId LayerTreeHost::CreateUIResource(UIResourceClient* client) { |
| // Deletes a UI resource. May safely be called more than once. |
| void LayerTreeHost::DeleteUIResource(UIResourceId uid) { |
| - UIResourceClientMap::iterator iter = ui_resource_client_map_.find(uid); |
| - if (iter == ui_resource_client_map_.end()) |
| + UIResourceClientMap::iterator it = ui_resource_client_map_.find(uid); |
| + if (it == ui_resource_client_map_.end()) |
| return; |
| UIResourceRequest request; |
| @@ -1152,26 +1152,44 @@ void LayerTreeHost::DeleteUIResource(UIResourceId uid) { |
| ui_resource_client_map_.erase(uid); |
| } |
| +// Returns the size of a resource given its id. |
| +gfx::Size LayerTreeHost::GetUIResourceSize(UIResourceId uid) { |
| + UIResourceClientMap::iterator it = ui_resource_client_map_.find(uid); |
| + if (it == ui_resource_client_map_.end()) |
| + return gfx::Size(); |
| + |
| + DCHECK(it->second); |
| + |
| + bool resource_lost = false; |
| + UIResourceClient* client = it->second; |
| + scoped_refptr<UIResourceBitmap> bitmap = |
| + client->GetBitmap(uid, resource_lost); |
|
aelias_OOO_until_Jul13
2013/08/30 06:20:41
This operation may be expensive, I don't think we
powei
2013/09/03 23:36:05
Done.
|
| + |
| + DCHECK(bitmap.get()); |
| + |
| + return bitmap->GetSize(); |
| +} |
| + |
| void LayerTreeHost::UIResourceLost(UIResourceId uid) { |
| - UIResourceClientMap::iterator iter = ui_resource_client_map_.find(uid); |
| - if (iter == ui_resource_client_map_.end()) |
| + UIResourceClientMap::iterator it = ui_resource_client_map_.find(uid); |
| + if (it == ui_resource_client_map_.end()) |
| return; |
| UIResourceRequest request; |
| bool resource_lost = true; |
| request.type = UIResourceRequest::UIResourceCreate; |
| request.id = uid; |
| - request.bitmap = iter->second->GetBitmap(uid, resource_lost); |
| + request.bitmap = it->second->GetBitmap(uid, resource_lost); |
| DCHECK(request.bitmap.get()); |
| ui_resource_request_queue_.push_back(request); |
| } |
| void LayerTreeHost::DidLoseUIResources() { |
| // When output surface is lost, we need to recreate the resource. |
| - for (UIResourceClientMap::iterator iter = ui_resource_client_map_.begin(); |
| - iter != ui_resource_client_map_.end(); |
| - ++iter) { |
| - UIResourceLost(iter->first); |
| + for (UIResourceClientMap::iterator it = ui_resource_client_map_.begin(); |
| + it != ui_resource_client_map_.end(); |
| + ++it) { |
| + UIResourceLost(it->first); |
| } |
| } |