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

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

Issue 640203002: [C++11 Allowed Features] Declares a type-safe null pointer converting from NULL to nullptr [part-… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: format fix. Created 6 years, 2 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 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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/trees/layer_tree_impl.h" 5 #include "cc/trees/layer_tree_impl.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <set> 8 #include <set>
9 9
10 #include "base/debug/trace_event.h" 10 #include "base/debug/trace_event.h"
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 LayerImpl* layer_; 67 LayerImpl* layer_;
68 LayerScrollOffsetDelegate* delegate_; 68 LayerScrollOffsetDelegate* delegate_;
69 LayerTreeImpl* layer_tree_impl_; 69 LayerTreeImpl* layer_tree_impl_;
70 gfx::ScrollOffset last_set_scroll_offset_; 70 gfx::ScrollOffset last_set_scroll_offset_;
71 }; 71 };
72 72
73 LayerTreeImpl::LayerTreeImpl(LayerTreeHostImpl* layer_tree_host_impl) 73 LayerTreeImpl::LayerTreeImpl(LayerTreeHostImpl* layer_tree_host_impl)
74 : layer_tree_host_impl_(layer_tree_host_impl), 74 : layer_tree_host_impl_(layer_tree_host_impl),
75 source_frame_number_(-1), 75 source_frame_number_(-1),
76 hud_layer_(0), 76 hud_layer_(0),
77 currently_scrolling_layer_(NULL), 77 currently_scrolling_layer_(nullptr),
78 root_layer_scroll_offset_delegate_(NULL), 78 root_layer_scroll_offset_delegate_(nullptr),
79 background_color_(0), 79 background_color_(0),
80 has_transparent_background_(false), 80 has_transparent_background_(false),
81 page_scale_layer_(NULL), 81 page_scale_layer_(nullptr),
82 inner_viewport_scroll_layer_(NULL), 82 inner_viewport_scroll_layer_(nullptr),
83 outer_viewport_scroll_layer_(NULL), 83 outer_viewport_scroll_layer_(nullptr),
84 page_scale_factor_(1), 84 page_scale_factor_(1),
85 page_scale_delta_(1), 85 page_scale_delta_(1),
86 sent_page_scale_delta_(1), 86 sent_page_scale_delta_(1),
87 min_page_scale_factor_(0), 87 min_page_scale_factor_(0),
88 max_page_scale_factor_(0), 88 max_page_scale_factor_(0),
89 scrolling_layer_id_from_previous_tree_(0), 89 scrolling_layer_id_from_previous_tree_(0),
90 contents_textures_purged_(false), 90 contents_textures_purged_(false),
91 viewport_size_invalid_(false), 91 viewport_size_invalid_(false),
92 needs_update_draw_properties_(true), 92 needs_update_draw_properties_(true),
93 needs_full_tree_sync_(true), 93 needs_full_tree_sync_(true),
(...skipping 19 matching lines...) Expand all
113 root_layer_ = nullptr; 113 root_layer_ = nullptr;
114 } 114 }
115 115
116 void LayerTreeImpl::ReleaseResources() { 116 void LayerTreeImpl::ReleaseResources() {
117 if (root_layer_) 117 if (root_layer_)
118 ReleaseResourcesRecursive(root_layer_.get()); 118 ReleaseResourcesRecursive(root_layer_.get());
119 } 119 }
120 120
121 void LayerTreeImpl::SetRootLayer(scoped_ptr<LayerImpl> layer) { 121 void LayerTreeImpl::SetRootLayer(scoped_ptr<LayerImpl> layer) {
122 if (inner_viewport_scroll_layer_) 122 if (inner_viewport_scroll_layer_)
123 inner_viewport_scroll_layer_->SetScrollOffsetDelegate(NULL); 123 inner_viewport_scroll_layer_->SetScrollOffsetDelegate(nullptr);
124 if (outer_viewport_scroll_layer_) 124 if (outer_viewport_scroll_layer_)
125 outer_viewport_scroll_layer_->SetScrollOffsetDelegate(NULL); 125 outer_viewport_scroll_layer_->SetScrollOffsetDelegate(nullptr);
126 inner_viewport_scroll_delegate_proxy_ = nullptr; 126 inner_viewport_scroll_delegate_proxy_ = nullptr;
127 outer_viewport_scroll_delegate_proxy_ = nullptr; 127 outer_viewport_scroll_delegate_proxy_ = nullptr;
128 128
129 root_layer_ = layer.Pass(); 129 root_layer_ = layer.Pass();
130 currently_scrolling_layer_ = NULL; 130 currently_scrolling_layer_ = nullptr;
131 inner_viewport_scroll_layer_ = NULL; 131 inner_viewport_scroll_layer_ = nullptr;
132 outer_viewport_scroll_layer_ = NULL; 132 outer_viewport_scroll_layer_ = nullptr;
133 page_scale_layer_ = NULL; 133 page_scale_layer_ = nullptr;
134 134
135 layer_tree_host_impl_->OnCanDrawStateChangedForTree(); 135 layer_tree_host_impl_->OnCanDrawStateChangedForTree();
136 } 136 }
137 137
138 LayerImpl* LayerTreeImpl::InnerViewportScrollLayer() const { 138 LayerImpl* LayerTreeImpl::InnerViewportScrollLayer() const {
139 return inner_viewport_scroll_layer_; 139 return inner_viewport_scroll_layer_;
140 } 140 }
141 141
142 LayerImpl* LayerTreeImpl::OuterViewportScrollLayer() const { 142 LayerImpl* LayerTreeImpl::OuterViewportScrollLayer() const {
143 return outer_viewport_scroll_layer_; 143 return outer_viewport_scroll_layer_;
(...skipping 30 matching lines...) Expand all
174 delta += outer_viewport_scroll_layer_->ScrollDelta(); 174 delta += outer_viewport_scroll_layer_->ScrollDelta();
175 175
176 return delta; 176 return delta;
177 } 177 }
178 178
179 scoped_ptr<LayerImpl> LayerTreeImpl::DetachLayerTree() { 179 scoped_ptr<LayerImpl> LayerTreeImpl::DetachLayerTree() {
180 // Clear all data structures that have direct references to the layer tree. 180 // Clear all data structures that have direct references to the layer tree.
181 scrolling_layer_id_from_previous_tree_ = 181 scrolling_layer_id_from_previous_tree_ =
182 currently_scrolling_layer_ ? currently_scrolling_layer_->id() : 0; 182 currently_scrolling_layer_ ? currently_scrolling_layer_->id() : 0;
183 if (inner_viewport_scroll_layer_) 183 if (inner_viewport_scroll_layer_)
184 inner_viewport_scroll_layer_->SetScrollOffsetDelegate(NULL); 184 inner_viewport_scroll_layer_->SetScrollOffsetDelegate(nullptr);
185 if (outer_viewport_scroll_layer_) 185 if (outer_viewport_scroll_layer_)
186 outer_viewport_scroll_layer_->SetScrollOffsetDelegate(NULL); 186 outer_viewport_scroll_layer_->SetScrollOffsetDelegate(nullptr);
187 inner_viewport_scroll_delegate_proxy_ = nullptr; 187 inner_viewport_scroll_delegate_proxy_ = nullptr;
188 outer_viewport_scroll_delegate_proxy_ = nullptr; 188 outer_viewport_scroll_delegate_proxy_ = nullptr;
189 inner_viewport_scroll_layer_ = NULL; 189 inner_viewport_scroll_layer_ = nullptr;
190 outer_viewport_scroll_layer_ = NULL; 190 outer_viewport_scroll_layer_ = nullptr;
191 page_scale_layer_ = NULL; 191 page_scale_layer_ = nullptr;
192 currently_scrolling_layer_ = NULL; 192 currently_scrolling_layer_ = nullptr;
193 193
194 render_surface_layer_list_.clear(); 194 render_surface_layer_list_.clear();
195 set_needs_update_draw_properties(); 195 set_needs_update_draw_properties();
196 return root_layer_.Pass(); 196 return root_layer_.Pass();
197 } 197 }
198 198
199 void LayerTreeImpl::PushPropertiesTo(LayerTreeImpl* target_tree) { 199 void LayerTreeImpl::PushPropertiesTo(LayerTreeImpl* target_tree) {
200 // The request queue should have been processed and does not require a push. 200 // The request queue should have been processed and does not require a push.
201 DCHECK_EQ(ui_resource_request_queue_.size(), 0u); 201 DCHECK_EQ(ui_resource_request_queue_.size(), 0u);
202 202
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 if (ViewportSizeInvalid()) 247 if (ViewportSizeInvalid())
248 target_tree->SetViewportSizeInvalid(); 248 target_tree->SetViewportSizeInvalid();
249 else 249 else
250 target_tree->ResetViewportSizeInvalid(); 250 target_tree->ResetViewportSizeInvalid();
251 251
252 if (hud_layer()) 252 if (hud_layer())
253 target_tree->set_hud_layer(static_cast<HeadsUpDisplayLayerImpl*>( 253 target_tree->set_hud_layer(static_cast<HeadsUpDisplayLayerImpl*>(
254 LayerTreeHostCommon::FindLayerInSubtree( 254 LayerTreeHostCommon::FindLayerInSubtree(
255 target_tree->root_layer(), hud_layer()->id()))); 255 target_tree->root_layer(), hud_layer()->id())));
256 else 256 else
257 target_tree->set_hud_layer(NULL); 257 target_tree->set_hud_layer(nullptr);
258 258
259 target_tree->has_ever_been_drawn_ = false; 259 target_tree->has_ever_been_drawn_ = false;
260 } 260 }
261 261
262 LayerImpl* LayerTreeImpl::InnerViewportContainerLayer() const { 262 LayerImpl* LayerTreeImpl::InnerViewportContainerLayer() const {
263 return inner_viewport_scroll_layer_ 263 return inner_viewport_scroll_layer_
264 ? inner_viewport_scroll_layer_->scroll_clip_layer() 264 ? inner_viewport_scroll_layer_->scroll_clip_layer()
265 : NULL; 265 : nullptr;
266 } 266 }
267 267
268 LayerImpl* LayerTreeImpl::CurrentlyScrollingLayer() const { 268 LayerImpl* LayerTreeImpl::CurrentlyScrollingLayer() const {
269 DCHECK(IsActiveTree()); 269 DCHECK(IsActiveTree());
270 return currently_scrolling_layer_; 270 return currently_scrolling_layer_;
271 } 271 }
272 272
273 void LayerTreeImpl::SetCurrentlyScrollingLayer(LayerImpl* layer) { 273 void LayerTreeImpl::SetCurrentlyScrollingLayer(LayerImpl* layer) {
274 if (currently_scrolling_layer_ == layer) 274 if (currently_scrolling_layer_ == layer)
275 return; 275 return;
276 276
277 if (currently_scrolling_layer_ && 277 if (currently_scrolling_layer_ &&
278 currently_scrolling_layer_->scrollbar_animation_controller()) 278 currently_scrolling_layer_->scrollbar_animation_controller())
279 currently_scrolling_layer_->scrollbar_animation_controller() 279 currently_scrolling_layer_->scrollbar_animation_controller()
280 ->DidScrollEnd(); 280 ->DidScrollEnd();
281 currently_scrolling_layer_ = layer; 281 currently_scrolling_layer_ = layer;
282 if (layer && layer->scrollbar_animation_controller()) 282 if (layer && layer->scrollbar_animation_controller())
283 layer->scrollbar_animation_controller()->DidScrollBegin(); 283 layer->scrollbar_animation_controller()->DidScrollBegin();
284 } 284 }
285 285
286 void LayerTreeImpl::ClearCurrentlyScrollingLayer() { 286 void LayerTreeImpl::ClearCurrentlyScrollingLayer() {
287 SetCurrentlyScrollingLayer(NULL); 287 SetCurrentlyScrollingLayer(nullptr);
288 scrolling_layer_id_from_previous_tree_ = 0; 288 scrolling_layer_id_from_previous_tree_ = 0;
289 } 289 }
290 290
291 namespace { 291 namespace {
292 292
293 void ForceScrollbarParameterUpdateAfterScaleChange(LayerImpl* current_layer) { 293 void ForceScrollbarParameterUpdateAfterScaleChange(LayerImpl* current_layer) {
294 if (!current_layer) 294 if (!current_layer)
295 return; 295 return;
296 296
297 while (current_layer) { 297 while (current_layer) {
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
441 this)); 441 this));
442 442
443 if (outer_viewport_scroll_layer_) 443 if (outer_viewport_scroll_layer_)
444 outer_viewport_scroll_delegate_proxy_ = make_scoped_ptr( 444 outer_viewport_scroll_delegate_proxy_ = make_scoped_ptr(
445 new LayerScrollOffsetDelegateProxy(outer_viewport_scroll_layer_, 445 new LayerScrollOffsetDelegateProxy(outer_viewport_scroll_layer_,
446 root_layer_scroll_offset_delegate_, 446 root_layer_scroll_offset_delegate_,
447 this)); 447 this));
448 } 448 }
449 449
450 void LayerTreeImpl::ClearViewportLayers() { 450 void LayerTreeImpl::ClearViewportLayers() {
451 page_scale_layer_ = NULL; 451 page_scale_layer_ = nullptr;
452 inner_viewport_scroll_layer_ = NULL; 452 inner_viewport_scroll_layer_ = nullptr;
453 outer_viewport_scroll_layer_ = NULL; 453 outer_viewport_scroll_layer_ = nullptr;
454 } 454 }
455 455
456 bool LayerTreeImpl::UpdateDrawProperties() { 456 bool LayerTreeImpl::UpdateDrawProperties() {
457 if (!needs_update_draw_properties_) 457 if (!needs_update_draw_properties_)
458 return true; 458 return true;
459 459
460 // For max_texture_size. 460 // For max_texture_size.
461 if (!layer_tree_host_impl_->renderer()) 461 if (!layer_tree_host_impl_->renderer())
462 return false; 462 return false;
463 463
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
573 LayerImpl* root_scroll_layer = OuterViewportScrollLayer() 573 LayerImpl* root_scroll_layer = OuterViewportScrollLayer()
574 ? OuterViewportScrollLayer() 574 ? OuterViewportScrollLayer()
575 : InnerViewportScrollLayer(); 575 : InnerViewportScrollLayer();
576 if (!root_scroll_layer || root_scroll_layer->children().empty()) 576 if (!root_scroll_layer || root_scroll_layer->children().empty())
577 return gfx::Size(); 577 return gfx::Size();
578 return root_scroll_layer->children()[0]->bounds(); 578 return root_scroll_layer->children()[0]->bounds();
579 } 579 }
580 580
581 LayerImpl* LayerTreeImpl::LayerById(int id) { 581 LayerImpl* LayerTreeImpl::LayerById(int id) {
582 LayerIdMap::iterator iter = layer_id_map_.find(id); 582 LayerIdMap::iterator iter = layer_id_map_.find(id);
583 return iter != layer_id_map_.end() ? iter->second : NULL; 583 return iter != layer_id_map_.end() ? iter->second : nullptr;
584 } 584 }
585 585
586 void LayerTreeImpl::RegisterLayer(LayerImpl* layer) { 586 void LayerTreeImpl::RegisterLayer(LayerImpl* layer) {
587 DCHECK(!LayerById(layer->id())); 587 DCHECK(!LayerById(layer->id()));
588 layer_id_map_[layer->id()] = layer; 588 layer_id_map_[layer->id()] = layer;
589 } 589 }
590 590
591 void LayerTreeImpl::UnregisterLayer(LayerImpl* layer) { 591 void LayerTreeImpl::UnregisterLayer(LayerImpl* layer) {
592 DCHECK(LayerById(layer->id())); 592 DCHECK(LayerById(layer->id()));
593 layer_id_map_.erase(layer->id()); 593 layer_id_map_.erase(layer->id());
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
724 return layer_tree_host_impl_->pending_tree() == this; 724 return layer_tree_host_impl_->pending_tree() == this;
725 } 725 }
726 726
727 bool LayerTreeImpl::IsRecycleTree() const { 727 bool LayerTreeImpl::IsRecycleTree() const {
728 return layer_tree_host_impl_->recycle_tree() == this; 728 return layer_tree_host_impl_->recycle_tree() == this;
729 } 729 }
730 730
731 LayerImpl* LayerTreeImpl::FindActiveTreeLayerById(int id) { 731 LayerImpl* LayerTreeImpl::FindActiveTreeLayerById(int id) {
732 LayerTreeImpl* tree = layer_tree_host_impl_->active_tree(); 732 LayerTreeImpl* tree = layer_tree_host_impl_->active_tree();
733 if (!tree) 733 if (!tree)
734 return NULL; 734 return nullptr;
735 return tree->LayerById(id); 735 return tree->LayerById(id);
736 } 736 }
737 737
738 LayerImpl* LayerTreeImpl::FindPendingTreeLayerById(int id) { 738 LayerImpl* LayerTreeImpl::FindPendingTreeLayerById(int id) {
739 LayerTreeImpl* tree = layer_tree_host_impl_->pending_tree(); 739 LayerTreeImpl* tree = layer_tree_host_impl_->pending_tree();
740 if (!tree) 740 if (!tree)
741 return NULL; 741 return nullptr;
742 return tree->LayerById(id); 742 return tree->LayerById(id);
743 } 743 }
744 744
745 LayerImpl* LayerTreeImpl::FindRecycleTreeLayerById(int id) { 745 LayerImpl* LayerTreeImpl::FindRecycleTreeLayerById(int id) {
746 LayerTreeImpl* tree = layer_tree_host_impl_->recycle_tree(); 746 LayerTreeImpl* tree = layer_tree_host_impl_->recycle_tree();
747 if (!tree) 747 if (!tree)
748 return NULL; 748 return nullptr;
749 return tree->LayerById(id); 749 return tree->LayerById(id);
750 } 750 }
751 751
752 bool LayerTreeImpl::PinchGestureActive() const { 752 bool LayerTreeImpl::PinchGestureActive() const {
753 return layer_tree_host_impl_->pinch_gesture_active(); 753 return layer_tree_host_impl_->pinch_gesture_active();
754 } 754 }
755 755
756 BeginFrameArgs LayerTreeImpl::CurrentBeginFrameArgs() const { 756 BeginFrameArgs LayerTreeImpl::CurrentBeginFrameArgs() const {
757 return layer_tree_host_impl_->CurrentBeginFrameArgs(); 757 return layer_tree_host_impl_->CurrentBeginFrameArgs();
758 } 758 }
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
883 883
884 void LayerTreeImpl::SetRootLayerScrollOffsetDelegate( 884 void LayerTreeImpl::SetRootLayerScrollOffsetDelegate(
885 LayerScrollOffsetDelegate* root_layer_scroll_offset_delegate) { 885 LayerScrollOffsetDelegate* root_layer_scroll_offset_delegate) {
886 if (root_layer_scroll_offset_delegate_ == root_layer_scroll_offset_delegate) 886 if (root_layer_scroll_offset_delegate_ == root_layer_scroll_offset_delegate)
887 return; 887 return;
888 888
889 if (!root_layer_scroll_offset_delegate) { 889 if (!root_layer_scroll_offset_delegate) {
890 // Make sure we remove the proxies from their layers before 890 // Make sure we remove the proxies from their layers before
891 // releasing them. 891 // releasing them.
892 if (InnerViewportScrollLayer()) 892 if (InnerViewportScrollLayer())
893 InnerViewportScrollLayer()->SetScrollOffsetDelegate(NULL); 893 InnerViewportScrollLayer()->SetScrollOffsetDelegate(nullptr);
894 if (OuterViewportScrollLayer()) 894 if (OuterViewportScrollLayer())
895 OuterViewportScrollLayer()->SetScrollOffsetDelegate(NULL); 895 OuterViewportScrollLayer()->SetScrollOffsetDelegate(nullptr);
896 inner_viewport_scroll_delegate_proxy_ = nullptr; 896 inner_viewport_scroll_delegate_proxy_ = nullptr;
897 outer_viewport_scroll_delegate_proxy_ = nullptr; 897 outer_viewport_scroll_delegate_proxy_ = nullptr;
898 } 898 }
899 899
900 root_layer_scroll_offset_delegate_ = root_layer_scroll_offset_delegate; 900 root_layer_scroll_offset_delegate_ = root_layer_scroll_offset_delegate;
901 901
902 if (root_layer_scroll_offset_delegate_) { 902 if (root_layer_scroll_offset_delegate_) {
903 root_layer_scroll_offset_delegate_->UpdateRootLayerState( 903 root_layer_scroll_offset_delegate_->UpdateRootLayerState(
904 TotalScrollOffset(), 904 TotalScrollOffset(),
905 TotalMaxScrollOffset(), 905 TotalMaxScrollOffset(),
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after
1197 static bool PointIsClippedBySurfaceOrClipRect( 1197 static bool PointIsClippedBySurfaceOrClipRect(
1198 const gfx::PointF& screen_space_point, 1198 const gfx::PointF& screen_space_point,
1199 const LayerImpl* layer) { 1199 const LayerImpl* layer) {
1200 // Walk up the layer tree and hit-test any render_surfaces and any layer 1200 // Walk up the layer tree and hit-test any render_surfaces and any layer
1201 // clip rects that are active. 1201 // clip rects that are active.
1202 for (; layer; layer = GetNextClippingLayer(layer)) { 1202 for (; layer; layer = GetNextClippingLayer(layer)) {
1203 if (layer->render_surface() && 1203 if (layer->render_surface() &&
1204 !PointHitsRect(screen_space_point, 1204 !PointHitsRect(screen_space_point,
1205 layer->render_surface()->screen_space_transform(), 1205 layer->render_surface()->screen_space_transform(),
1206 layer->render_surface()->content_rect(), 1206 layer->render_surface()->content_rect(),
1207 NULL)) 1207 nullptr))
1208 return true; 1208 return true;
1209 1209
1210 if (LayerClipsSubtree(layer) && 1210 if (LayerClipsSubtree(layer) &&
1211 !PointHitsRect(screen_space_point, 1211 !PointHitsRect(screen_space_point,
1212 layer->screen_space_transform(), 1212 layer->screen_space_transform(),
1213 gfx::Rect(layer->content_bounds()), 1213 gfx::Rect(layer->content_bounds()),
1214 NULL)) 1214 nullptr))
1215 return true; 1215 return true;
1216 } 1216 }
1217 1217
1218 // If we have finished walking all ancestors without having already exited, 1218 // If we have finished walking all ancestors without having already exited,
1219 // then the point is not clipped by any ancestors. 1219 // then the point is not clipped by any ancestors.
1220 return false; 1220 return false;
1221 } 1221 }
1222 1222
1223 static bool PointHitsLayer(const LayerImpl* layer, 1223 static bool PointHitsLayer(const LayerImpl* layer,
1224 const gfx::PointF& screen_space_point, 1224 const gfx::PointF& screen_space_point,
(...skipping 13 matching lines...) Expand all
1238 1238
1239 // Skip the HUD layer. 1239 // Skip the HUD layer.
1240 if (layer == layer->layer_tree_impl()->hud_layer()) 1240 if (layer == layer->layer_tree_impl()->hud_layer())
1241 return false; 1241 return false;
1242 1242
1243 return true; 1243 return true;
1244 } 1244 }
1245 1245
1246 struct FindClosestMatchingLayerDataForRecursion { 1246 struct FindClosestMatchingLayerDataForRecursion {
1247 FindClosestMatchingLayerDataForRecursion() 1247 FindClosestMatchingLayerDataForRecursion()
1248 : closest_match(NULL), 1248 : closest_match(nullptr),
1249 closest_distance(-std::numeric_limits<float>::infinity()) {} 1249 closest_distance(-std::numeric_limits<float>::infinity()) {}
1250 LayerImpl* closest_match; 1250 LayerImpl* closest_match;
1251 // Note that the positive z-axis points towards the camera, so bigger means 1251 // Note that the positive z-axis points towards the camera, so bigger means
1252 // closer in this case, counterintuitively. 1252 // closer in this case, counterintuitively.
1253 float closest_distance; 1253 float closest_distance;
1254 }; 1254 };
1255 1255
1256 template <typename Functor> 1256 template <typename Functor>
1257 static void FindClosestMatchingLayer( 1257 static void FindClosestMatchingLayer(
1258 const gfx::PointF& screen_space_point, 1258 const gfx::PointF& screen_space_point,
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
1312 return layer->IsDrawnRenderSurfaceLayerListMember() || 1312 return layer->IsDrawnRenderSurfaceLayerListMember() ||
1313 ScrollsAnyDrawnRenderSurfaceLayerListMember(layer) || 1313 ScrollsAnyDrawnRenderSurfaceLayerListMember(layer) ||
1314 !layer->touch_event_handler_region().IsEmpty() || 1314 !layer->touch_event_handler_region().IsEmpty() ||
1315 layer->have_wheel_event_handlers(); 1315 layer->have_wheel_event_handlers();
1316 } 1316 }
1317 }; 1317 };
1318 1318
1319 LayerImpl* LayerTreeImpl::FindLayerThatIsHitByPoint( 1319 LayerImpl* LayerTreeImpl::FindLayerThatIsHitByPoint(
1320 const gfx::PointF& screen_space_point) { 1320 const gfx::PointF& screen_space_point) {
1321 if (!root_layer()) 1321 if (!root_layer())
1322 return NULL; 1322 return nullptr;
1323 if (!UpdateDrawProperties()) 1323 if (!UpdateDrawProperties())
1324 return NULL; 1324 return nullptr;
1325 FindClosestMatchingLayerDataForRecursion data_for_recursion; 1325 FindClosestMatchingLayerDataForRecursion data_for_recursion;
1326 FindClosestMatchingLayer(screen_space_point, 1326 FindClosestMatchingLayer(screen_space_point,
1327 root_layer(), 1327 root_layer(),
1328 HitTestVisibleScrollableOrTouchableFunctor(), 1328 HitTestVisibleScrollableOrTouchableFunctor(),
1329 &data_for_recursion); 1329 &data_for_recursion);
1330 return data_for_recursion.closest_match; 1330 return data_for_recursion.closest_match;
1331 } 1331 }
1332 1332
1333 static bool LayerHasTouchEventHandlersAt(const gfx::PointF& screen_space_point, 1333 static bool LayerHasTouchEventHandlersAt(const gfx::PointF& screen_space_point,
1334 LayerImpl* layer_impl) { 1334 LayerImpl* layer_impl) {
(...skipping 20 matching lines...) Expand all
1355 struct FindTouchEventLayerFunctor { 1355 struct FindTouchEventLayerFunctor {
1356 bool operator()(LayerImpl* layer) const { 1356 bool operator()(LayerImpl* layer) const {
1357 return LayerHasTouchEventHandlersAt(screen_space_point, layer); 1357 return LayerHasTouchEventHandlersAt(screen_space_point, layer);
1358 } 1358 }
1359 const gfx::PointF screen_space_point; 1359 const gfx::PointF screen_space_point;
1360 }; 1360 };
1361 1361
1362 LayerImpl* LayerTreeImpl::FindLayerThatIsHitByPointInTouchHandlerRegion( 1362 LayerImpl* LayerTreeImpl::FindLayerThatIsHitByPointInTouchHandlerRegion(
1363 const gfx::PointF& screen_space_point) { 1363 const gfx::PointF& screen_space_point) {
1364 if (!root_layer()) 1364 if (!root_layer())
1365 return NULL; 1365 return nullptr;
1366 if (!UpdateDrawProperties()) 1366 if (!UpdateDrawProperties())
1367 return NULL; 1367 return nullptr;
1368 FindTouchEventLayerFunctor func = {screen_space_point}; 1368 FindTouchEventLayerFunctor func = {screen_space_point};
1369 FindClosestMatchingLayerDataForRecursion data_for_recursion; 1369 FindClosestMatchingLayerDataForRecursion data_for_recursion;
1370 FindClosestMatchingLayer( 1370 FindClosestMatchingLayer(
1371 screen_space_point, root_layer(), func, &data_for_recursion); 1371 screen_space_point, root_layer(), func, &data_for_recursion);
1372 return data_for_recursion.closest_match; 1372 return data_for_recursion.closest_match;
1373 } 1373 }
1374 1374
1375 void LayerTreeImpl::RegisterSelection(const LayerSelectionBound& start, 1375 void LayerTreeImpl::RegisterSelection(const LayerSelectionBound& start,
1376 const LayerSelectionBound& end) { 1376 const LayerSelectionBound& end) {
1377 selection_start_ = start; 1377 selection_start_ = start;
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1423 PointHitsLayer(layer, visibility_point, &intersect_distance); 1423 PointHitsLayer(layer, visibility_point, &intersect_distance);
1424 1424
1425 return viewport_bound; 1425 return viewport_bound;
1426 } 1426 }
1427 1427
1428 void LayerTreeImpl::GetViewportSelection(ViewportSelectionBound* start, 1428 void LayerTreeImpl::GetViewportSelection(ViewportSelectionBound* start,
1429 ViewportSelectionBound* end) { 1429 ViewportSelectionBound* end) {
1430 DCHECK(start); 1430 DCHECK(start);
1431 DCHECK(end); 1431 DCHECK(end);
1432 1432
1433 *start = ComputeViewportSelection( 1433 *start = ComputeViewportSelection(selection_start_,
1434 selection_start_, 1434 selection_start_.layer_id
1435 selection_start_.layer_id ? LayerById(selection_start_.layer_id) : NULL, 1435 ? LayerById(selection_start_.layer_id)
1436 device_scale_factor()); 1436 : nullptr,
1437 device_scale_factor());
1437 if (start->type == SELECTION_BOUND_CENTER || 1438 if (start->type == SELECTION_BOUND_CENTER ||
1438 start->type == SELECTION_BOUND_EMPTY) { 1439 start->type == SELECTION_BOUND_EMPTY) {
1439 *end = *start; 1440 *end = *start;
1440 } else { 1441 } else {
1441 *end = ComputeViewportSelection( 1442 *end = ComputeViewportSelection(
1442 selection_end_, 1443 selection_end_,
1443 selection_end_.layer_id ? LayerById(selection_end_.layer_id) : NULL, 1444 selection_end_.layer_id ? LayerById(selection_end_.layer_id) : nullptr,
1444 device_scale_factor()); 1445 device_scale_factor());
1445 } 1446 }
1446 } 1447 }
1447 1448
1448 void LayerTreeImpl::RegisterPictureLayerImpl(PictureLayerImpl* layer) { 1449 void LayerTreeImpl::RegisterPictureLayerImpl(PictureLayerImpl* layer) {
1449 layer_tree_host_impl_->RegisterPictureLayerImpl(layer); 1450 layer_tree_host_impl_->RegisterPictureLayerImpl(layer);
1450 } 1451 }
1451 1452
1452 void LayerTreeImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) { 1453 void LayerTreeImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) {
1453 layer_tree_host_impl_->UnregisterPictureLayerImpl(layer); 1454 layer_tree_host_impl_->UnregisterPictureLayerImpl(layer);
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1500 page_scale, 1501 page_scale,
1501 duration.InSecondsF()); 1502 duration.InSecondsF());
1502 } 1503 }
1503 } 1504 }
1504 1505
1505 scoped_ptr<PageScaleAnimation> LayerTreeImpl::TakePageScaleAnimation() { 1506 scoped_ptr<PageScaleAnimation> LayerTreeImpl::TakePageScaleAnimation() {
1506 return page_scale_animation_.Pass(); 1507 return page_scale_animation_.Pass();
1507 } 1508 }
1508 1509
1509 } // namespace cc 1510 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698