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

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

Issue 937883002: cc: Change CallFunctionForSubtree to use lambdas. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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
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.h" 5 #include "cc/trees/layer_tree_host.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <stack> 8 #include <stack>
9 #include <string> 9 #include <string>
10 10
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 // made a contract with our animation controllers that the registrar 205 // made a contract with our animation controllers that the registrar
206 // will outlive them, and we must make good. 206 // will outlive them, and we must make good.
207 root_layer_ = NULL; 207 root_layer_ = NULL;
208 } 208 }
209 } 209 }
210 210
211 void LayerTreeHost::SetLayerTreeHostClientReady() { 211 void LayerTreeHost::SetLayerTreeHostClientReady() {
212 proxy_->SetLayerTreeHostClientReady(); 212 proxy_->SetLayerTreeHostClientReady();
213 } 213 }
214 214
215 static void LayerTreeHostOnOutputSurfaceCreatedCallback(Layer* layer) {
216 layer->OnOutputSurfaceCreated();
217 }
218
219 void LayerTreeHost::DeleteContentsTexturesOnImplThread( 215 void LayerTreeHost::DeleteContentsTexturesOnImplThread(
220 ResourceProvider* resource_provider) { 216 ResourceProvider* resource_provider) {
221 DCHECK(proxy_->IsImplThread()); 217 DCHECK(proxy_->IsImplThread());
222 if (contents_texture_manager_) 218 if (contents_texture_manager_)
223 contents_texture_manager_->ClearAllMemory(resource_provider); 219 contents_texture_manager_->ClearAllMemory(resource_provider);
224 } 220 }
225 221
226 void LayerTreeHost::WillBeginMainFrame() { 222 void LayerTreeHost::WillBeginMainFrame() {
227 devtools_instrumentation::WillBeginMainThreadFrame(id(), 223 devtools_instrumentation::WillBeginMainThreadFrame(id(),
228 source_frame_number()); 224 source_frame_number());
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
417 413
418 if (!contents_texture_manager_ && !settings_.impl_side_painting) { 414 if (!contents_texture_manager_ && !settings_.impl_side_painting) {
419 contents_texture_manager_ = 415 contents_texture_manager_ =
420 PrioritizedResourceManager::Create(proxy_.get()); 416 PrioritizedResourceManager::Create(proxy_.get());
421 surface_memory_placeholder_ = 417 surface_memory_placeholder_ =
422 contents_texture_manager_->CreateTexture(gfx::Size(), RGBA_8888); 418 contents_texture_manager_->CreateTexture(gfx::Size(), RGBA_8888);
423 } 419 }
424 420
425 if (root_layer()) { 421 if (root_layer()) {
426 LayerTreeHostCommon::CallFunctionForSubtree( 422 LayerTreeHostCommon::CallFunctionForSubtree(
427 root_layer(), base::Bind(&LayerTreeHostOnOutputSurfaceCreatedCallback)); 423 root_layer(), [](Layer* layer) { layer->OnOutputSurfaceCreated(); });
428 } 424 }
429 425
430 client_->DidInitializeOutputSurface(); 426 client_->DidInitializeOutputSurface();
431 } 427 }
432 428
433 void LayerTreeHost::DidFailToInitializeOutputSurface() { 429 void LayerTreeHost::DidFailToInitializeOutputSurface() {
434 DCHECK(output_surface_lost_); 430 DCHECK(output_surface_lost_);
435 client_->DidFailToInitializeOutputSurface(); 431 client_->DidFailToInitializeOutputSurface();
436 } 432 }
437 433
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after
859 can_render_to_separate_surface, 855 can_render_to_separate_surface,
860 settings_.layer_transforms_should_scale_layer_contents, 856 settings_.layer_transforms_should_scale_layer_contents,
861 settings_.verify_property_trees, &update_list, 857 settings_.verify_property_trees, &update_list,
862 render_surface_layer_list_id); 858 render_surface_layer_list_id);
863 LayerTreeHostCommon::CalculateDrawProperties(&inputs); 859 LayerTreeHostCommon::CalculateDrawProperties(&inputs);
864 860
865 if (total_frames_used_for_lcd_text_metrics_ <= 861 if (total_frames_used_for_lcd_text_metrics_ <=
866 kTotalFramesToUseForLCDTextMetrics) { 862 kTotalFramesToUseForLCDTextMetrics) {
867 LayerTreeHostCommon::CallFunctionForSubtree( 863 LayerTreeHostCommon::CallFunctionForSubtree(
868 root_layer, 864 root_layer,
869 base::Bind(&LayerTreeHost::CalculateLCDTextMetricsCallback, 865 [this](Layer* layer) { CalculateLCDTextMetricsCallback(layer); });
870 base::Unretained(this)));
871 total_frames_used_for_lcd_text_metrics_++; 866 total_frames_used_for_lcd_text_metrics_++;
872 } 867 }
873 868
874 if (total_frames_used_for_lcd_text_metrics_ == 869 if (total_frames_used_for_lcd_text_metrics_ ==
875 kTotalFramesToUseForLCDTextMetrics) { 870 kTotalFramesToUseForLCDTextMetrics) {
876 total_frames_used_for_lcd_text_metrics_++; 871 total_frames_used_for_lcd_text_metrics_++;
877 872
878 UMA_HISTOGRAM_PERCENTAGE( 873 UMA_HISTOGRAM_PERCENTAGE(
879 "Renderer4.LCDText.PercentageOfCandidateLayers", 874 "Renderer4.LCDText.PercentageOfCandidateLayers",
880 lcd_text_metrics_.total_num_cc_layers_can_use_lcd_text * 100.0 / 875 lcd_text_metrics_.total_num_cc_layers_can_use_lcd_text * 100.0 /
(...skipping 24 matching lines...) Expand all
905 900
906 return did_paint_content; 901 return did_paint_content;
907 } 902 }
908 903
909 void LayerTreeHost::TriggerPrepaint() { 904 void LayerTreeHost::TriggerPrepaint() {
910 prepaint_callback_.Cancel(); 905 prepaint_callback_.Cancel();
911 TRACE_EVENT0("cc", "LayerTreeHost::TriggerPrepaint"); 906 TRACE_EVENT0("cc", "LayerTreeHost::TriggerPrepaint");
912 SetNeedsCommit(); 907 SetNeedsCommit();
913 } 908 }
914 909
915 static void LayerTreeHostReduceMemoryCallback(Layer* layer) {
916 layer->ReduceMemoryUsage();
917 }
918
919 void LayerTreeHost::ReduceMemoryUsage() { 910 void LayerTreeHost::ReduceMemoryUsage() {
920 if (!root_layer()) 911 if (!root_layer())
921 return; 912 return;
922 913
923 LayerTreeHostCommon::CallFunctionForSubtree( 914 LayerTreeHostCommon::CallFunctionForSubtree(
924 root_layer(), 915 root_layer(), [](Layer* layer) { layer->ReduceMemoryUsage(); });
925 base::Bind(&LayerTreeHostReduceMemoryCallback));
926 } 916 }
927 917
928 void LayerTreeHost::SetPrioritiesForSurfaces(size_t surface_memory_bytes) { 918 void LayerTreeHost::SetPrioritiesForSurfaces(size_t surface_memory_bytes) {
929 DCHECK(surface_memory_placeholder_); 919 DCHECK(surface_memory_placeholder_);
930 920
931 // Surfaces have a place holder for their memory since they are managed 921 // Surfaces have a place holder for their memory since they are managed
932 // independantly but should still be tracked and reduce other memory usage. 922 // independantly but should still be tracked and reduce other memory usage.
933 surface_memory_placeholder_->SetTextureManager( 923 surface_memory_placeholder_->SetTextureManager(
934 contents_texture_manager_.get()); 924 contents_texture_manager_.get());
935 surface_memory_placeholder_->set_request_priority( 925 surface_memory_placeholder_->set_request_priority(
(...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after
1370 bool children_need_begin_frames) const { 1360 bool children_need_begin_frames) const {
1371 proxy_->SetChildrenNeedBeginFrames(children_need_begin_frames); 1361 proxy_->SetChildrenNeedBeginFrames(children_need_begin_frames);
1372 } 1362 }
1373 1363
1374 void LayerTreeHost::SendBeginFramesToChildren( 1364 void LayerTreeHost::SendBeginFramesToChildren(
1375 const BeginFrameArgs& args) const { 1365 const BeginFrameArgs& args) const {
1376 client_->SendBeginFramesToChildren(args); 1366 client_->SendBeginFramesToChildren(args);
1377 } 1367 }
1378 1368
1379 } // namespace cc 1369 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698