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

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

Issue 20994007: Add impl/comp scrolling instrumentation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 4 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
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 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 947 matching lines...) Expand 10 before | Expand all | Expand 10 after
958 958
959 in_paint_layer_contents_ = false; 959 in_paint_layer_contents_ = false;
960 960
961 occlusion_tracker.overdraw_metrics()->RecordMetrics(this); 961 occlusion_tracker.overdraw_metrics()->RecordMetrics(this);
962 } 962 }
963 963
964 void LayerTreeHost::ApplyScrollAndScale(const ScrollAndScaleSet& info) { 964 void LayerTreeHost::ApplyScrollAndScale(const ScrollAndScaleSet& info) {
965 if (!root_layer_.get()) 965 if (!root_layer_.get())
966 return; 966 return;
967 967
968 const bool has_scrolls = !info.scrolls.empty();
enne (OOO) 2013/07/29 17:46:31 ...or page scale delta != 1?
969 if (has_scrolls) {
970 // We use async events here because we want to conditionally trace. This
971 // is too spammy otherwise.
972 TRACE_EVENT_ASYNC_BEGIN0(
973 "impl-scroll",
974 "LayerTreeHost::ApplyScrollAndScale",
975 this);
976 }
977
968 Layer* root_scroll_layer = FindFirstScrollableLayer(root_layer_.get()); 978 Layer* root_scroll_layer = FindFirstScrollableLayer(root_layer_.get());
969 gfx::Vector2d root_scroll_delta; 979 gfx::Vector2d root_scroll_delta;
970 980
971 for (size_t i = 0; i < info.scrolls.size(); ++i) { 981 for (size_t i = 0; i < info.scrolls.size(); ++i) {
972 Layer* layer = 982 Layer* layer =
973 LayerTreeHostCommon::FindLayerInSubtree(root_layer_.get(), 983 LayerTreeHostCommon::FindLayerInSubtree(root_layer_.get(),
974 info.scrolls[i].layer_id); 984 info.scrolls[i].layer_id);
975 if (!layer) 985 if (!layer)
976 continue; 986 continue;
977 if (layer == root_scroll_layer) { 987 if (layer == root_scroll_layer) {
978 root_scroll_delta += info.scrolls[i].scroll_delta; 988 root_scroll_delta += info.scrolls[i].scroll_delta;
979 } else { 989 } else {
980 layer->SetScrollOffsetFromImplSide(layer->scroll_offset() + 990 layer->SetScrollOffsetFromImplSide(layer->scroll_offset() +
981 info.scrolls[i].scroll_delta); 991 info.scrolls[i].scroll_delta);
982 } 992 }
983 } 993 }
984 if (!root_scroll_delta.IsZero() || info.page_scale_delta != 1.f) 994 if (!root_scroll_delta.IsZero() || info.page_scale_delta != 1.f)
985 client_->ApplyScrollAndScale(root_scroll_delta, info.page_scale_delta); 995 client_->ApplyScrollAndScale(root_scroll_delta, info.page_scale_delta);
996
997 if (has_scrolls) {
998 TRACE_EVENT_ASYNC_END0(
999 "impl-scroll",
1000 "LayerTreeHost::ApplyScrollAndScale",
1001 this);
1002 }
986 } 1003 }
987 1004
988 void LayerTreeHost::StartRateLimiter(WebKit::WebGraphicsContext3D* context3d) { 1005 void LayerTreeHost::StartRateLimiter(WebKit::WebGraphicsContext3D* context3d) {
989 if (animating_) 1006 if (animating_)
990 return; 1007 return;
991 1008
992 DCHECK(context3d); 1009 DCHECK(context3d);
993 RateLimiterMap::iterator it = rate_limiters_.find(context3d); 1010 RateLimiterMap::iterator it = rate_limiters_.find(context3d);
994 if (it != rate_limiters_.end()) { 1011 if (it != rate_limiters_.end()) {
995 it->second->Start(); 1012 it->second->Start();
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
1075 for (AnimationRegistrar::AnimationControllerMap::iterator iter = copy.begin(); 1092 for (AnimationRegistrar::AnimationControllerMap::iterator iter = copy.begin();
1076 iter != copy.end(); 1093 iter != copy.end();
1077 ++iter) { 1094 ++iter) {
1078 (*iter).second->Animate(monotonic_time); 1095 (*iter).second->Animate(monotonic_time);
1079 bool start_ready_animations = true; 1096 bool start_ready_animations = true;
1080 (*iter).second->UpdateState(start_ready_animations, NULL); 1097 (*iter).second->UpdateState(start_ready_animations, NULL);
1081 } 1098 }
1082 } 1099 }
1083 1100
1084 } // namespace cc 1101 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698