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

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

Issue 2770293003: Feed ScrollableArea::showOverlayScrollbars into ScrollbarAnimationController. (Closed)
Patch Set: rebase Created 3 years, 8 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.h ('k') | cc/layers/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 2010 The Chromium Authors. All rights reserved. 1 // Copyright 2010 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.h" 5 #include "cc/layers/layer.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 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 scroll_tree_index_(ScrollTree::kInvalidNodeId), 85 scroll_tree_index_(ScrollTree::kInvalidNodeId),
86 property_tree_sequence_number_(-1), 86 property_tree_sequence_number_(-1),
87 should_flatten_transform_from_property_tree_(false), 87 should_flatten_transform_from_property_tree_(false),
88 draws_content_(false), 88 draws_content_(false),
89 use_local_transform_for_backface_visibility_(false), 89 use_local_transform_for_backface_visibility_(false),
90 should_check_backface_visibility_(false), 90 should_check_backface_visibility_(false),
91 force_render_surface_for_testing_(false), 91 force_render_surface_for_testing_(false),
92 subtree_property_changed_(false), 92 subtree_property_changed_(false),
93 may_contain_video_(false), 93 may_contain_video_(false),
94 is_scroll_clip_layer_(false), 94 is_scroll_clip_layer_(false),
95 needs_show_scrollbars_(false),
95 safe_opaque_background_color_(0), 96 safe_opaque_background_color_(0),
96 draw_blend_mode_(SkBlendMode::kSrcOver), 97 draw_blend_mode_(SkBlendMode::kSrcOver),
97 num_unclipped_descendants_(0) {} 98 num_unclipped_descendants_(0) {}
98 99
99 Layer::~Layer() { 100 Layer::~Layer() {
100 // Our parent should be holding a reference to us so there should be no 101 // Our parent should be holding a reference to us so there should be no
101 // way for us to be destroyed while we still have a parent. 102 // way for us to be destroyed while we still have a parent.
102 DCHECK(!parent()); 103 DCHECK(!parent());
103 // Similarly we shouldn't have a layer tree host since it also keeps a 104 // Similarly we shouldn't have a layer tree host since it also keeps a
104 // reference to us. 105 // reference to us.
(...skipping 1073 matching lines...) Expand 10 before | Expand all | Expand 10 after
1178 1179
1179 // When a scroll offset animation is interrupted the new scroll position on 1180 // When a scroll offset animation is interrupted the new scroll position on
1180 // the pending tree will clobber any impl-side scrolling occuring on the 1181 // the pending tree will clobber any impl-side scrolling occuring on the
1181 // active tree. To do so, avoid scrolling the pending tree along with it 1182 // active tree. To do so, avoid scrolling the pending tree along with it
1182 // instead of trying to undo that scrolling later. 1183 // instead of trying to undo that scrolling later.
1183 if (ScrollOffsetAnimationWasInterrupted()) 1184 if (ScrollOffsetAnimationWasInterrupted())
1184 layer->layer_tree_impl() 1185 layer->layer_tree_impl()
1185 ->property_trees() 1186 ->property_trees()
1186 ->scroll_tree.SetScrollOffsetClobberActiveValue(layer->id()); 1187 ->scroll_tree.SetScrollOffsetClobberActiveValue(layer->id());
1187 1188
1189 if (needs_show_scrollbars_)
1190 layer->set_needs_show_scrollbars(true);
1191
1188 // If the main thread commits multiple times before the impl thread actually 1192 // If the main thread commits multiple times before the impl thread actually
1189 // draws, then damage tracking will become incorrect if we simply clobber the 1193 // draws, then damage tracking will become incorrect if we simply clobber the
1190 // update_rect here. The LayerImpl's update_rect needs to accumulate (i.e. 1194 // update_rect here. The LayerImpl's update_rect needs to accumulate (i.e.
1191 // union) any update changes that have occurred on the main thread. 1195 // union) any update changes that have occurred on the main thread.
1192 inputs_.update_rect.Union(layer->update_rect()); 1196 inputs_.update_rect.Union(layer->update_rect());
1193 layer->SetUpdateRect(inputs_.update_rect); 1197 layer->SetUpdateRect(inputs_.update_rect);
1194 1198
1195 layer->SetHasWillChangeTransformHint(has_will_change_transform_hint()); 1199 layer->SetHasWillChangeTransformHint(has_will_change_transform_hint());
1196 layer->SetNeedsPushProperties(); 1200 layer->SetNeedsPushProperties();
1197 1201
1198 // Reset any state that should be cleared for the next update. 1202 // Reset any state that should be cleared for the next update.
1203 needs_show_scrollbars_ = false;
1199 subtree_property_changed_ = false; 1204 subtree_property_changed_ = false;
1200 inputs_.update_rect = gfx::Rect(); 1205 inputs_.update_rect = gfx::Rect();
1201 1206
1202 layer_tree_host_->RemoveLayerShouldPushProperties(this); 1207 layer_tree_host_->RemoveLayerShouldPushProperties(this);
1203 } 1208 }
1204 1209
1205 void Layer::TakeCopyRequests( 1210 void Layer::TakeCopyRequests(
1206 std::vector<std::unique_ptr<CopyOutputRequest>>* requests) { 1211 std::vector<std::unique_ptr<CopyOutputRequest>>* requests) {
1207 for (auto& it : inputs_.copy_requests) { 1212 for (auto& it : inputs_.copy_requests) {
1208 scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner = 1213 scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner =
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
1442 ->num_copy_requests_in_subtree; 1447 ->num_copy_requests_in_subtree;
1443 } 1448 }
1444 1449
1445 gfx::Transform Layer::screen_space_transform() const { 1450 gfx::Transform Layer::screen_space_transform() const {
1446 DCHECK_NE(transform_tree_index_, TransformTree::kInvalidNodeId); 1451 DCHECK_NE(transform_tree_index_, TransformTree::kInvalidNodeId);
1447 return draw_property_utils::ScreenSpaceTransform( 1452 return draw_property_utils::ScreenSpaceTransform(
1448 this, layer_tree_host_->property_trees()->transform_tree); 1453 this, layer_tree_host_->property_trees()->transform_tree);
1449 } 1454 }
1450 1455
1451 } // namespace cc 1456 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/layer.h ('k') | cc/layers/layer_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698