Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(53)

Side by Side Diff: cc/trees/layer_tree_host_impl.cc

Issue 23475021: [cc] Consolidate UI resource destruction and recreation (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « cc/trees/layer_tree_host_impl.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/trees/layer_tree_host_impl.h" 5 #include "cc/trees/layer_tree_host_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/containers/hash_tables.h" 10 #include "base/containers/hash_tables.h"
(...skipping 1545 matching lines...) Expand 10 before | Expand all | Expand 10 after
1556 } 1556 }
1557 1557
1558 void LayerTreeHostImpl::ReleaseTreeResources() { 1558 void LayerTreeHostImpl::ReleaseTreeResources() {
1559 if (active_tree_->root_layer()) 1559 if (active_tree_->root_layer())
1560 SendReleaseResourcesRecursive(active_tree_->root_layer()); 1560 SendReleaseResourcesRecursive(active_tree_->root_layer());
1561 if (pending_tree_ && pending_tree_->root_layer()) 1561 if (pending_tree_ && pending_tree_->root_layer())
1562 SendReleaseResourcesRecursive(pending_tree_->root_layer()); 1562 SendReleaseResourcesRecursive(pending_tree_->root_layer());
1563 if (recycle_tree_ && recycle_tree_->root_layer()) 1563 if (recycle_tree_ && recycle_tree_->root_layer())
1564 SendReleaseResourcesRecursive(recycle_tree_->root_layer()); 1564 SendReleaseResourcesRecursive(recycle_tree_->root_layer());
1565 1565
1566 // Remove all existing maps from UIResourceId to ResourceId. 1566 DeleteAllUIResources();
1567 ui_resource_map_.clear();
1568 } 1567 }
1569 1568
1570 void LayerTreeHostImpl::CreateAndSetRenderer( 1569 void LayerTreeHostImpl::CreateAndSetRenderer(
1571 OutputSurface* output_surface, 1570 OutputSurface* output_surface,
1572 ResourceProvider* resource_provider, 1571 ResourceProvider* resource_provider,
1573 bool skip_gl_renderer) { 1572 bool skip_gl_renderer) {
1574 DCHECK(!renderer_); 1573 DCHECK(!renderer_);
1575 if (output_surface->capabilities().delegated_rendering) { 1574 if (output_surface->capabilities().delegated_rendering) {
1576 renderer_ = 1575 renderer_ =
1577 DelegatingRenderer::Create(this, output_surface, resource_provider); 1576 DelegatingRenderer::Create(this, output_surface, resource_provider);
(...skipping 990 matching lines...) Expand 10 before | Expand all | Expand 10 after
2568 } 2567 }
2569 2568
2570 void LayerTreeHostImpl::DeleteUIResource(UIResourceId uid) { 2569 void LayerTreeHostImpl::DeleteUIResource(UIResourceId uid) {
2571 ResourceProvider::ResourceId id = ResourceIdForUIResource(uid); 2570 ResourceProvider::ResourceId id = ResourceIdForUIResource(uid);
2572 if (id) { 2571 if (id) {
2573 resource_provider_->DeleteResource(id); 2572 resource_provider_->DeleteResource(id);
2574 ui_resource_map_.erase(uid); 2573 ui_resource_map_.erase(uid);
2575 } 2574 }
2576 } 2575 }
2577 2576
2577 void LayerTreeHostImpl::DeleteAllUIResources() {
2578 for (UIResourceMap::const_iterator iter = ui_resource_map_.begin();
2579 iter != ui_resource_map_.end();
2580 ++iter) {
2581 resource_provider_->DeleteResource(iter->second);
2582 }
2583 ui_resource_map_.clear();
2584 }
2585
2578 ResourceProvider::ResourceId LayerTreeHostImpl::ResourceIdForUIResource( 2586 ResourceProvider::ResourceId LayerTreeHostImpl::ResourceIdForUIResource(
2579 UIResourceId uid) const { 2587 UIResourceId uid) const {
2580 UIResourceMap::const_iterator iter = ui_resource_map_.find(uid); 2588 UIResourceMap::const_iterator iter = ui_resource_map_.find(uid);
2581 if (iter != ui_resource_map_.end()) 2589 if (iter != ui_resource_map_.end())
2582 return iter->second; 2590 return iter->second;
2583 return 0; 2591 return 0;
2584 } 2592 }
2585 2593
2586 } // namespace cc 2594 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698