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

Side by Side Diff: cc/layers/layer_impl.cc

Issue 1946403003: Add fixed raster scale use counter histograms. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase+fix Created 4 years, 7 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
« no previous file with comments | « cc/layers/layer_impl.h ('k') | cc/layers/picture_layer_impl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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/layers/layer_impl.h" 5 #include "cc/layers/layer_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 draw_blend_mode_(SkXfermode::kSrcOver_Mode), 75 draw_blend_mode_(SkXfermode::kSrcOver_Mode),
76 transform_tree_index_(-1), 76 transform_tree_index_(-1),
77 effect_tree_index_(-1), 77 effect_tree_index_(-1),
78 clip_tree_index_(-1), 78 clip_tree_index_(-1),
79 scroll_tree_index_(-1), 79 scroll_tree_index_(-1),
80 sorting_context_id_(0), 80 sorting_context_id_(0),
81 current_draw_mode_(DRAW_MODE_NONE), 81 current_draw_mode_(DRAW_MODE_NONE),
82 element_id_(0), 82 element_id_(0),
83 mutable_properties_(MutableProperty::kNone), 83 mutable_properties_(MutableProperty::kNone),
84 debug_info_(nullptr), 84 debug_info_(nullptr),
85 scrolls_drawn_descendant_(false) { 85 scrolls_drawn_descendant_(false),
86 has_will_change_transform_hint_(false) {
86 DCHECK_GT(layer_id_, 0); 87 DCHECK_GT(layer_id_, 0);
87 88
88 DCHECK(layer_tree_impl_); 89 DCHECK(layer_tree_impl_);
89 layer_tree_impl_->RegisterLayer(this); 90 layer_tree_impl_->RegisterLayer(this);
90 layer_tree_impl_->AddToElementMap(this); 91 layer_tree_impl_->AddToElementMap(this);
91 92
92 SetNeedsPushProperties(); 93 SetNeedsPushProperties();
93 } 94 }
94 95
95 LayerImpl::~LayerImpl() { 96 LayerImpl::~LayerImpl() {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 layer_tree_impl_->RemoveLayer(child->id()); 139 layer_tree_impl_->RemoveLayer(child->id());
139 children_.clear(); 140 children_.clear();
140 } 141 }
141 142
142 void LayerImpl::ClearLinksToOtherLayers() { 143 void LayerImpl::ClearLinksToOtherLayers() {
143 children_.clear(); 144 children_.clear();
144 mask_layer_ = nullptr; 145 mask_layer_ = nullptr;
145 replica_layer_ = nullptr; 146 replica_layer_ = nullptr;
146 } 147 }
147 148
149 void LayerImpl::SetHasWillChangeTransformHint(bool has_will_change) {
150 if (has_will_change_transform_hint_ == has_will_change)
151 return;
152 has_will_change_transform_hint_ = has_will_change;
153 SetNeedsPushProperties();
154 }
155
148 void LayerImpl::SetDebugInfo( 156 void LayerImpl::SetDebugInfo(
149 std::unique_ptr<base::trace_event::ConvertableToTraceFormat> debug_info) { 157 std::unique_ptr<base::trace_event::ConvertableToTraceFormat> debug_info) {
150 owned_debug_info_ = std::move(debug_info); 158 owned_debug_info_ = std::move(debug_info);
151 debug_info_ = owned_debug_info_.get(); 159 debug_info_ = owned_debug_info_.get();
152 SetNeedsPushProperties(); 160 SetNeedsPushProperties();
153 } 161 }
154 162
155 void LayerImpl::DistributeScroll(ScrollState* scroll_state) { 163 void LayerImpl::DistributeScroll(ScrollState* scroll_state) {
156 DCHECK(scroll_state); 164 DCHECK(scroll_state);
157 if (scroll_state->FullyConsumed()) 165 if (scroll_state->FullyConsumed())
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after
485 // If the main thread commits multiple times before the impl thread actually 493 // If the main thread commits multiple times before the impl thread actually
486 // draws, then damage tracking will become incorrect if we simply clobber the 494 // draws, then damage tracking will become incorrect if we simply clobber the
487 // update_rect here. The LayerImpl's update_rect needs to accumulate (i.e. 495 // update_rect here. The LayerImpl's update_rect needs to accumulate (i.e.
488 // union) any update changes that have occurred on the main thread. 496 // union) any update changes that have occurred on the main thread.
489 update_rect_.Union(layer->update_rect()); 497 update_rect_.Union(layer->update_rect());
490 layer->SetUpdateRect(update_rect_); 498 layer->SetUpdateRect(update_rect_);
491 499
492 if (owned_debug_info_) 500 if (owned_debug_info_)
493 layer->SetDebugInfo(std::move(owned_debug_info_)); 501 layer->SetDebugInfo(std::move(owned_debug_info_));
494 502
503 layer->SetHasWillChangeTransformHint(has_will_change_transform_hint());
504
495 // Reset any state that should be cleared for the next update. 505 // Reset any state that should be cleared for the next update.
496 layer_property_changed_ = false; 506 layer_property_changed_ = false;
497 update_rect_ = gfx::Rect(); 507 update_rect_ = gfx::Rect();
498 layer_tree_impl()->RemoveLayerShouldPushProperties(this); 508 layer_tree_impl()->RemoveLayerShouldPushProperties(this);
499 } 509 }
500 510
501 bool LayerImpl::IsAffectedByPageScale() const { 511 bool LayerImpl::IsAffectedByPageScale() const {
502 TransformTree& transform_tree = 512 TransformTree& transform_tree =
503 layer_tree_impl()->property_trees()->transform_tree; 513 layer_tree_impl()->property_trees()->transform_tree;
504 return transform_tree.Node(transform_tree_index()) 514 return transform_tree.Node(transform_tree_index())
(...skipping 746 matching lines...) Expand 10 before | Expand all | Expand 10 after
1251 replica_layer_->AsValueInto(state); 1261 replica_layer_->AsValueInto(state);
1252 state->EndDictionary(); 1262 state->EndDictionary();
1253 } 1263 }
1254 1264
1255 state->SetBoolean("can_use_lcd_text", can_use_lcd_text()); 1265 state->SetBoolean("can_use_lcd_text", can_use_lcd_text());
1256 state->SetBoolean("contents_opaque", contents_opaque()); 1266 state->SetBoolean("contents_opaque", contents_opaque());
1257 1267
1258 state->SetBoolean("has_animation_bounds", 1268 state->SetBoolean("has_animation_bounds",
1259 layer_tree_impl_->HasAnimationThatInflatesBounds(this)); 1269 layer_tree_impl_->HasAnimationThatInflatesBounds(this));
1260 1270
1271 state->SetBoolean("has_will_change_transform_hint",
1272 has_will_change_transform_hint());
1273
1261 gfx::BoxF box; 1274 gfx::BoxF box;
1262 if (LayerUtils::GetAnimationBounds(*this, &box)) 1275 if (LayerUtils::GetAnimationBounds(*this, &box))
1263 MathUtil::AddToTracedValue("animation_bounds", box, state); 1276 MathUtil::AddToTracedValue("animation_bounds", box, state);
1264 1277
1265 if (debug_info_) { 1278 if (debug_info_) {
1266 std::string str; 1279 std::string str;
1267 debug_info_->AppendAsTraceFormat(&str); 1280 debug_info_->AppendAsTraceFormat(&str);
1268 base::JSONReader json_reader; 1281 base::JSONReader json_reader;
1269 std::unique_ptr<base::Value> debug_info_value(json_reader.ReadToValue(str)); 1282 std::unique_ptr<base::Value> debug_info_value(json_reader.ReadToValue(str));
1270 1283
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
1398 .layer_transforms_should_scale_layer_contents) { 1411 .layer_transforms_should_scale_layer_contents) {
1399 return default_scale; 1412 return default_scale;
1400 } 1413 }
1401 1414
1402 gfx::Vector2dF transform_scales = MathUtil::ComputeTransform2dScaleComponents( 1415 gfx::Vector2dF transform_scales = MathUtil::ComputeTransform2dScaleComponents(
1403 DrawTransform(), default_scale); 1416 DrawTransform(), default_scale);
1404 return std::max(transform_scales.x(), transform_scales.y()); 1417 return std::max(transform_scales.x(), transform_scales.y());
1405 } 1418 }
1406 1419
1407 } // namespace cc 1420 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/layer_impl.h ('k') | cc/layers/picture_layer_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698