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

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: +will-change 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
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 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 transform_tree_index_(-1), 77 transform_tree_index_(-1),
78 effect_tree_index_(-1), 78 effect_tree_index_(-1),
79 clip_tree_index_(-1), 79 clip_tree_index_(-1),
80 scroll_tree_index_(-1), 80 scroll_tree_index_(-1),
81 sorting_context_id_(0), 81 sorting_context_id_(0),
82 current_draw_mode_(DRAW_MODE_NONE), 82 current_draw_mode_(DRAW_MODE_NONE),
83 element_id_(0), 83 element_id_(0),
84 mutable_properties_(MutableProperty::kNone), 84 mutable_properties_(MutableProperty::kNone),
85 debug_info_(nullptr), 85 debug_info_(nullptr),
86 scrolls_drawn_descendant_(false), 86 scrolls_drawn_descendant_(false),
87 layer_or_descendant_has_touch_handler_(false) { 87 layer_or_descendant_has_touch_handler_(false),
88 has_will_change_transform_hint_(false) {
88 DCHECK_GT(layer_id_, 0); 89 DCHECK_GT(layer_id_, 0);
89 90
90 DCHECK(layer_tree_impl_); 91 DCHECK(layer_tree_impl_);
91 layer_tree_impl_->RegisterLayer(this); 92 layer_tree_impl_->RegisterLayer(this);
92 layer_tree_impl_->AddToElementMap(this); 93 layer_tree_impl_->AddToElementMap(this);
93 94
94 SetNeedsPushProperties(); 95 SetNeedsPushProperties();
95 } 96 }
96 97
97 LayerImpl::~LayerImpl() { 98 LayerImpl::~LayerImpl() {
(...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after
488 // If the main thread commits multiple times before the impl thread actually 489 // If the main thread commits multiple times before the impl thread actually
489 // draws, then damage tracking will become incorrect if we simply clobber the 490 // draws, then damage tracking will become incorrect if we simply clobber the
490 // update_rect here. The LayerImpl's update_rect needs to accumulate (i.e. 491 // update_rect here. The LayerImpl's update_rect needs to accumulate (i.e.
491 // union) any update changes that have occurred on the main thread. 492 // union) any update changes that have occurred on the main thread.
492 update_rect_.Union(layer->update_rect()); 493 update_rect_.Union(layer->update_rect());
493 layer->SetUpdateRect(update_rect_); 494 layer->SetUpdateRect(update_rect_);
494 495
495 if (owned_debug_info_) 496 if (owned_debug_info_)
496 layer->SetDebugInfo(std::move(owned_debug_info_)); 497 layer->SetDebugInfo(std::move(owned_debug_info_));
497 498
499 layer->set_has_will_change_transform_hint(has_will_change_transform_hint());
500
498 // Reset any state that should be cleared for the next update. 501 // Reset any state that should be cleared for the next update.
499 layer_property_changed_ = false; 502 layer_property_changed_ = false;
500 update_rect_ = gfx::Rect(); 503 update_rect_ = gfx::Rect();
501 layer_tree_impl()->RemoveLayerShouldPushProperties(this); 504 layer_tree_impl()->RemoveLayerShouldPushProperties(this);
502 } 505 }
503 506
504 bool LayerImpl::IsAffectedByPageScale() const { 507 bool LayerImpl::IsAffectedByPageScale() const {
505 TransformTree& transform_tree = 508 TransformTree& transform_tree =
506 layer_tree_impl()->property_trees()->transform_tree; 509 layer_tree_impl()->property_trees()->transform_tree;
507 return transform_tree.Node(transform_tree_index()) 510 return transform_tree.Node(transform_tree_index())
(...skipping 755 matching lines...) Expand 10 before | Expand all | Expand 10 after
1263 replica_layer_->AsValueInto(state); 1266 replica_layer_->AsValueInto(state);
1264 state->EndDictionary(); 1267 state->EndDictionary();
1265 } 1268 }
1266 1269
1267 state->SetBoolean("can_use_lcd_text", can_use_lcd_text()); 1270 state->SetBoolean("can_use_lcd_text", can_use_lcd_text());
1268 state->SetBoolean("contents_opaque", contents_opaque()); 1271 state->SetBoolean("contents_opaque", contents_opaque());
1269 1272
1270 state->SetBoolean("has_animation_bounds", 1273 state->SetBoolean("has_animation_bounds",
1271 layer_tree_impl_->HasAnimationThatInflatesBounds(this)); 1274 layer_tree_impl_->HasAnimationThatInflatesBounds(this));
1272 1275
1276 state->SetBoolean("has_will_change_transform_hint",
1277 has_will_change_transform_hint());
1278
1273 gfx::BoxF box; 1279 gfx::BoxF box;
1274 if (LayerUtils::GetAnimationBounds(*this, &box)) 1280 if (LayerUtils::GetAnimationBounds(*this, &box))
1275 MathUtil::AddToTracedValue("animation_bounds", box, state); 1281 MathUtil::AddToTracedValue("animation_bounds", box, state);
1276 1282
1277 if (debug_info_) { 1283 if (debug_info_) {
1278 std::string str; 1284 std::string str;
1279 debug_info_->AppendAsTraceFormat(&str); 1285 debug_info_->AppendAsTraceFormat(&str);
1280 base::JSONReader json_reader; 1286 base::JSONReader json_reader;
1281 std::unique_ptr<base::Value> debug_info_value(json_reader.ReadToValue(str)); 1287 std::unique_ptr<base::Value> debug_info_value(json_reader.ReadToValue(str));
1282 1288
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
1410 .layer_transforms_should_scale_layer_contents) { 1416 .layer_transforms_should_scale_layer_contents) {
1411 return default_scale; 1417 return default_scale;
1412 } 1418 }
1413 1419
1414 gfx::Vector2dF transform_scales = MathUtil::ComputeTransform2dScaleComponents( 1420 gfx::Vector2dF transform_scales = MathUtil::ComputeTransform2dScaleComponents(
1415 DrawTransform(), default_scale); 1421 DrawTransform(), default_scale);
1416 return std::max(transform_scales.x(), transform_scales.y()); 1422 return std::max(transform_scales.x(), transform_scales.y());
1417 } 1423 }
1418 1424
1419 } // namespace cc 1425 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698