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

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

Issue 1715973002: cc: Move tracking of layer_property_changed to main thread (3) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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
« no previous file with comments | « cc/layers/layer_impl.h ('k') | cc/layers/layer_proto_converter_unittest.cc » ('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 <utility> 10 #include <utility>
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 mask_layer_id_(-1), 55 mask_layer_id_(-1),
56 replica_layer_id_(-1), 56 replica_layer_id_(-1),
57 layer_id_(id), 57 layer_id_(id),
58 layer_tree_impl_(tree_impl), 58 layer_tree_impl_(tree_impl),
59 scroll_offset_(scroll_offset), 59 scroll_offset_(scroll_offset),
60 scroll_clip_layer_id_(Layer::INVALID_ID), 60 scroll_clip_layer_id_(Layer::INVALID_ID),
61 main_thread_scrolling_reasons_( 61 main_thread_scrolling_reasons_(
62 MainThreadScrollingReason::kNotScrollingOnMain), 62 MainThreadScrollingReason::kNotScrollingOnMain),
63 user_scrollable_horizontal_(true), 63 user_scrollable_horizontal_(true),
64 user_scrollable_vertical_(true), 64 user_scrollable_vertical_(true),
65 stacking_order_changed_(false),
66 double_sided_(true), 65 double_sided_(true),
67 should_flatten_transform_(true), 66 should_flatten_transform_(true),
68 should_flatten_transform_from_property_tree_(false), 67 should_flatten_transform_from_property_tree_(false),
69 layer_property_changed_(false), 68 layer_property_changed_(false),
70 masks_to_bounds_(false), 69 masks_to_bounds_(false),
71 contents_opaque_(false), 70 contents_opaque_(false),
72 is_root_for_isolated_group_(false), 71 is_root_for_isolated_group_(false),
73 use_parent_backface_visibility_(false), 72 use_parent_backface_visibility_(false),
74 use_local_transform_for_backface_visibility_(false), 73 use_local_transform_for_backface_visibility_(false),
75 should_check_backface_visibility_(false), 74 should_check_backface_visibility_(false),
(...skipping 527 matching lines...) Expand 10 before | Expand all | Expand 10 after
603 602
604 layer->PassCopyRequests(&copy_requests_); 603 layer->PassCopyRequests(&copy_requests_);
605 604
606 // If the main thread commits multiple times before the impl thread actually 605 // If the main thread commits multiple times before the impl thread actually
607 // draws, then damage tracking will become incorrect if we simply clobber the 606 // draws, then damage tracking will become incorrect if we simply clobber the
608 // update_rect here. The LayerImpl's update_rect needs to accumulate (i.e. 607 // update_rect here. The LayerImpl's update_rect needs to accumulate (i.e.
609 // union) any update changes that have occurred on the main thread. 608 // union) any update changes that have occurred on the main thread.
610 update_rect_.Union(layer->update_rect()); 609 update_rect_.Union(layer->update_rect());
611 layer->SetUpdateRect(update_rect_); 610 layer->SetUpdateRect(update_rect_);
612 611
613 layer->SetStackingOrderChanged(stacking_order_changed_);
614 layer->SetDebugInfo(debug_info_); 612 layer->SetDebugInfo(debug_info_);
615 613
616 if (frame_timing_requests_dirty_) { 614 if (frame_timing_requests_dirty_) {
617 layer->SetFrameTimingRequests(frame_timing_requests_); 615 layer->SetFrameTimingRequests(frame_timing_requests_);
618 frame_timing_requests_dirty_ = false; 616 frame_timing_requests_dirty_ = false;
619 } 617 }
620 618
621 // Reset any state that should be cleared for the next update. 619 // Reset any state that should be cleared for the next update.
622 stacking_order_changed_ = false;
623 layer_property_changed_ = false; 620 layer_property_changed_ = false;
624 update_rect_ = gfx::Rect(); 621 update_rect_ = gfx::Rect();
625 needs_push_properties_ = false; 622 needs_push_properties_ = false;
626 num_dependents_need_push_properties_ = 0; 623 num_dependents_need_push_properties_ = 0;
627 } 624 }
628 625
629 bool LayerImpl::IsAffectedByPageScale() const { 626 bool LayerImpl::IsAffectedByPageScale() const {
630 TransformTree& transform_tree = 627 TransformTree& transform_tree =
631 layer_tree_impl()->property_trees()->transform_tree; 628 layer_tree_impl()->property_trees()->transform_tree;
632 return transform_tree.Node(transform_tree_index()) 629 return transform_tree.Node(transform_tree_index())
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
679 } 676 }
680 677
681 list = new base::ListValue; 678 list = new base::ListValue;
682 for (size_t i = 0; i < children_.size(); ++i) 679 for (size_t i = 0; i < children_.size(); ++i)
683 list->Append(children_[i]->LayerTreeAsJson()); 680 list->Append(children_[i]->LayerTreeAsJson());
684 result->Set("Children", list); 681 result->Set("Children", list);
685 682
686 return result; 683 return result;
687 } 684 }
688 685
689 void LayerImpl::SetStackingOrderChanged(bool stacking_order_changed) {
690 if (stacking_order_changed) {
691 stacking_order_changed_ = true;
692 NoteLayerPropertyChangedForSubtree();
693 }
694 }
695
696 bool LayerImpl::LayerPropertyChanged() const { 686 bool LayerImpl::LayerPropertyChanged() const {
697 if (layer_property_changed_) 687 if (layer_property_changed_)
698 return true; 688 return true;
699 TransformNode* node = 689 TransformNode* node =
700 layer_tree_impl()->property_trees()->transform_tree.Node( 690 layer_tree_impl()->property_trees()->transform_tree.Node(
701 transform_tree_index()); 691 transform_tree_index());
702 if (node && node->data.transform_changed) 692 if (node && node->data.transform_changed)
703 return true; 693 return true;
704 return false; 694 return false;
705 } 695 }
(...skipping 556 matching lines...) Expand 10 before | Expand all | Expand 10 after
1262 1252
1263 void LayerImpl::SetTransformAndInvertibility(const gfx::Transform& transform, 1253 void LayerImpl::SetTransformAndInvertibility(const gfx::Transform& transform,
1264 bool transform_is_invertible) { 1254 bool transform_is_invertible) {
1265 if (transform_ == transform) { 1255 if (transform_ == transform) {
1266 DCHECK(transform_is_invertible_ == transform_is_invertible) 1256 DCHECK(transform_is_invertible_ == transform_is_invertible)
1267 << "Can't change invertibility if transform is unchanged"; 1257 << "Can't change invertibility if transform is unchanged";
1268 return; 1258 return;
1269 } 1259 }
1270 transform_ = transform; 1260 transform_ = transform;
1271 transform_is_invertible_ = transform_is_invertible; 1261 transform_is_invertible_ = transform_is_invertible;
1272 NoteLayerPropertyChangedForSubtree();
1273 } 1262 }
1274 1263
1275 bool LayerImpl::TransformIsAnimating() const { 1264 bool LayerImpl::TransformIsAnimating() const {
1276 LayerAnimationController::ObserverType observer_type = 1265 LayerAnimationController::ObserverType observer_type =
1277 IsActive() ? LayerAnimationController::ObserverType::ACTIVE 1266 IsActive() ? LayerAnimationController::ObserverType::ACTIVE
1278 : LayerAnimationController::ObserverType::PENDING; 1267 : LayerAnimationController::ObserverType::PENDING;
1279 return layer_animation_controller_ 1268 return layer_animation_controller_
1280 ? layer_animation_controller_->IsCurrentlyAnimatingProperty( 1269 ? layer_animation_controller_->IsCurrentlyAnimatingProperty(
1281 Animation::TRANSFORM, observer_type) 1270 Animation::TRANSFORM, observer_type)
1282 : layer_tree_impl_->IsAnimatingTransformProperty(this); 1271 : layer_tree_impl_->IsAnimatingTransformProperty(this);
(...skipping 515 matching lines...) Expand 10 before | Expand all | Expand 10 after
1798 .layer_transforms_should_scale_layer_contents) { 1787 .layer_transforms_should_scale_layer_contents) {
1799 return default_scale; 1788 return default_scale;
1800 } 1789 }
1801 1790
1802 gfx::Vector2dF transform_scales = MathUtil::ComputeTransform2dScaleComponents( 1791 gfx::Vector2dF transform_scales = MathUtil::ComputeTransform2dScaleComponents(
1803 DrawTransform(), default_scale); 1792 DrawTransform(), default_scale);
1804 return std::max(transform_scales.x(), transform_scales.y()); 1793 return std::max(transform_scales.x(), transform_scales.y());
1805 } 1794 }
1806 1795
1807 } // namespace cc 1796 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/layer_impl.h ('k') | cc/layers/layer_proto_converter_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698