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

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

Issue 1973083002: Use element id's for animations (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: respond to reviewer feedback. Created 4 years, 6 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 <stddef.h> 5 #include <stddef.h>
6 6
7 #include <set> 7 #include <set>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 590 matching lines...) Expand 10 before | Expand all | Expand 10 after
601 : scrollable(false), 601 : scrollable(false),
602 main_thread_scrolling_reasons( 602 main_thread_scrolling_reasons(
603 MainThreadScrollingReason::kNotScrollingOnMain), 603 MainThreadScrollingReason::kNotScrollingOnMain),
604 contains_non_fast_scrollable_region(false), 604 contains_non_fast_scrollable_region(false),
605 max_scroll_offset_affected_by_page_scale(false), 605 max_scroll_offset_affected_by_page_scale(false),
606 is_inner_viewport_scroll_layer(false), 606 is_inner_viewport_scroll_layer(false),
607 is_outer_viewport_scroll_layer(false), 607 is_outer_viewport_scroll_layer(false),
608 should_flatten(false), 608 should_flatten(false),
609 user_scrollable_horizontal(false), 609 user_scrollable_horizontal(false),
610 user_scrollable_vertical(false), 610 user_scrollable_vertical(false),
611 element_id(0),
612 transform_id(0), 611 transform_id(0),
613 num_drawn_descendants(0) {} 612 num_drawn_descendants(0) {}
614 613
615 ScrollNodeData::ScrollNodeData(const ScrollNodeData& other) = default; 614 ScrollNodeData::ScrollNodeData(const ScrollNodeData& other) = default;
616 615
617 bool ScrollNodeData::operator==(const ScrollNodeData& other) const { 616 bool ScrollNodeData::operator==(const ScrollNodeData& other) const {
618 return scrollable == other.scrollable && 617 return scrollable == other.scrollable &&
619 main_thread_scrolling_reasons == other.main_thread_scrolling_reasons && 618 main_thread_scrolling_reasons == other.main_thread_scrolling_reasons &&
620 contains_non_fast_scrollable_region == 619 contains_non_fast_scrollable_region ==
621 other.contains_non_fast_scrollable_region && 620 other.contains_non_fast_scrollable_region &&
(...skipping 24 matching lines...) Expand all
646 SizeToProto(bounds, data->mutable_bounds()); 645 SizeToProto(bounds, data->mutable_bounds());
647 data->set_max_scroll_offset_affected_by_page_scale( 646 data->set_max_scroll_offset_affected_by_page_scale(
648 max_scroll_offset_affected_by_page_scale); 647 max_scroll_offset_affected_by_page_scale);
649 data->set_is_inner_viewport_scroll_layer(is_inner_viewport_scroll_layer); 648 data->set_is_inner_viewport_scroll_layer(is_inner_viewport_scroll_layer);
650 data->set_is_outer_viewport_scroll_layer(is_outer_viewport_scroll_layer); 649 data->set_is_outer_viewport_scroll_layer(is_outer_viewport_scroll_layer);
651 Vector2dFToProto(offset_to_transform_parent, 650 Vector2dFToProto(offset_to_transform_parent,
652 data->mutable_offset_to_transform_parent()); 651 data->mutable_offset_to_transform_parent());
653 data->set_should_flatten(should_flatten); 652 data->set_should_flatten(should_flatten);
654 data->set_user_scrollable_horizontal(user_scrollable_horizontal); 653 data->set_user_scrollable_horizontal(user_scrollable_horizontal);
655 data->set_user_scrollable_vertical(user_scrollable_vertical); 654 data->set_user_scrollable_vertical(user_scrollable_vertical);
656 data->set_element_id(element_id); 655 element_id.ToProtobuf(data->mutable_element_id());
657 data->set_transform_id(transform_id); 656 data->set_transform_id(transform_id);
658 } 657 }
659 658
660 void ScrollNodeData::FromProtobuf(const proto::TreeNode& proto) { 659 void ScrollNodeData::FromProtobuf(const proto::TreeNode& proto) {
661 DCHECK(proto.has_scroll_node_data()); 660 DCHECK(proto.has_scroll_node_data());
662 const proto::ScrollNodeData& data = proto.scroll_node_data(); 661 const proto::ScrollNodeData& data = proto.scroll_node_data();
663 662
664 scrollable = data.scrollable(); 663 scrollable = data.scrollable();
665 main_thread_scrolling_reasons = data.main_thread_scrolling_reasons(); 664 main_thread_scrolling_reasons = data.main_thread_scrolling_reasons();
666 contains_non_fast_scrollable_region = 665 contains_non_fast_scrollable_region =
667 data.contains_non_fast_scrollable_region(); 666 data.contains_non_fast_scrollable_region();
668 scroll_clip_layer_bounds = ProtoToSize(data.scroll_clip_layer_bounds()); 667 scroll_clip_layer_bounds = ProtoToSize(data.scroll_clip_layer_bounds());
669 bounds = ProtoToSize(data.bounds()); 668 bounds = ProtoToSize(data.bounds());
670 max_scroll_offset_affected_by_page_scale = 669 max_scroll_offset_affected_by_page_scale =
671 data.max_scroll_offset_affected_by_page_scale(); 670 data.max_scroll_offset_affected_by_page_scale();
672 is_inner_viewport_scroll_layer = data.is_inner_viewport_scroll_layer(); 671 is_inner_viewport_scroll_layer = data.is_inner_viewport_scroll_layer();
673 is_outer_viewport_scroll_layer = data.is_outer_viewport_scroll_layer(); 672 is_outer_viewport_scroll_layer = data.is_outer_viewport_scroll_layer();
674 offset_to_transform_parent = 673 offset_to_transform_parent =
675 ProtoToVector2dF(data.offset_to_transform_parent()); 674 ProtoToVector2dF(data.offset_to_transform_parent());
676 should_flatten = data.should_flatten(); 675 should_flatten = data.should_flatten();
677 user_scrollable_horizontal = data.user_scrollable_horizontal(); 676 user_scrollable_horizontal = data.user_scrollable_horizontal();
678 user_scrollable_vertical = data.user_scrollable_vertical(); 677 user_scrollable_vertical = data.user_scrollable_vertical();
679 element_id = data.element_id(); 678 element_id.FromProtobuf(data.element_id());
680 transform_id = data.transform_id(); 679 transform_id = data.transform_id();
681 } 680 }
682 681
683 void ScrollNodeData::AsValueInto(base::trace_event::TracedValue* value) const { 682 void ScrollNodeData::AsValueInto(base::trace_event::TracedValue* value) const {
684 value->SetBoolean("scrollable", scrollable); 683 value->SetBoolean("scrollable", scrollable);
685 MathUtil::AddToTracedValue("scroll_clip_layer_bounds", 684 MathUtil::AddToTracedValue("scroll_clip_layer_bounds",
686 scroll_clip_layer_bounds, value); 685 scroll_clip_layer_bounds, value);
687 MathUtil::AddToTracedValue("bounds", bounds, value); 686 MathUtil::AddToTracedValue("bounds", bounds, value);
688 MathUtil::AddToTracedValue("offset_to_transform_parent", 687 MathUtil::AddToTracedValue("offset_to_transform_parent",
689 offset_to_transform_parent, value); 688 offset_to_transform_parent, value);
690 value->SetBoolean("should_flatten", should_flatten); 689 value->SetBoolean("should_flatten", should_flatten);
691 value->SetBoolean("user_scrollable_horizontal", user_scrollable_horizontal); 690 value->SetBoolean("user_scrollable_horizontal", user_scrollable_horizontal);
692 value->SetBoolean("user_scrollable_vertical", user_scrollable_vertical); 691 value->SetBoolean("user_scrollable_vertical", user_scrollable_vertical);
693 value->SetInteger("element_id", element_id); 692
693 element_id.AddToTracedValue(value);
694 value->SetInteger("transform_id", transform_id); 694 value->SetInteger("transform_id", transform_id);
695 } 695 }
696 696
697 void TransformTree::clear() { 697 void TransformTree::clear() {
698 PropertyTree<TransformNode>::clear(); 698 PropertyTree<TransformNode>::clear();
699 699
700 nodes_affected_by_inner_viewport_bounds_delta_.clear(); 700 nodes_affected_by_inner_viewport_bounds_delta_.clear();
701 nodes_affected_by_outer_viewport_bounds_delta_.clear(); 701 nodes_affected_by_outer_viewport_bounds_delta_.clear();
702 } 702 }
703 703
(...skipping 1524 matching lines...) Expand 10 before | Expand all | Expand 10 after
2228 value->EndDictionary(); 2228 value->EndDictionary();
2229 2229
2230 value->BeginDictionary("scroll_tree"); 2230 value->BeginDictionary("scroll_tree");
2231 scroll_tree.AsValueInto(value.get()); 2231 scroll_tree.AsValueInto(value.get());
2232 value->EndDictionary(); 2232 value->EndDictionary();
2233 2233
2234 return value; 2234 return value;
2235 } 2235 }
2236 2236
2237 } // namespace cc 2237 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698