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

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

Issue 139233002: [#4] Pass gfx structs by const ref (gfx::PointF) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Corrected as per review comments! Created 6 years, 11 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/trees/layer_tree_host_impl.h ('k') | cc/trees/layer_tree_host_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 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_host_impl.h" 5 #include "cc/trees/layer_tree_host_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 1963 matching lines...) Expand 10 before | Expand all | Expand 10 after
1974 input_handler_client_ = client; 1974 input_handler_client_ = client;
1975 } 1975 }
1976 1976
1977 static LayerImpl* NextScrollLayer(LayerImpl* layer) { 1977 static LayerImpl* NextScrollLayer(LayerImpl* layer) {
1978 if (LayerImpl* scroll_parent = layer->scroll_parent()) 1978 if (LayerImpl* scroll_parent = layer->scroll_parent())
1979 return scroll_parent; 1979 return scroll_parent;
1980 return layer->parent(); 1980 return layer->parent();
1981 } 1981 }
1982 1982
1983 LayerImpl* LayerTreeHostImpl::FindScrollLayerForDeviceViewportPoint( 1983 LayerImpl* LayerTreeHostImpl::FindScrollLayerForDeviceViewportPoint(
1984 gfx::PointF device_viewport_point, InputHandler::ScrollInputType type, 1984 const gfx::PointF& device_viewport_point,
1985 InputHandler::ScrollInputType type,
1985 LayerImpl* layer_impl, bool* scroll_on_main_thread) const { 1986 LayerImpl* layer_impl, bool* scroll_on_main_thread) const {
1986 DCHECK(scroll_on_main_thread); 1987 DCHECK(scroll_on_main_thread);
1987 1988
1988 // Walk up the hierarchy and look for a scrollable layer. 1989 // Walk up the hierarchy and look for a scrollable layer.
1989 LayerImpl* potentially_scrolling_layer_impl = 0; 1990 LayerImpl* potentially_scrolling_layer_impl = 0;
1990 for (; layer_impl; layer_impl = NextScrollLayer(layer_impl)) { 1991 for (; layer_impl; layer_impl = NextScrollLayer(layer_impl)) {
1991 // The content layer can also block attempts to scroll outside the main 1992 // The content layer can also block attempts to scroll outside the main
1992 // thread. 1993 // thread.
1993 ScrollStatus status = layer_impl->TryScroll(device_viewport_point, type); 1994 ScrollStatus status = layer_impl->TryScroll(device_viewport_point, type);
1994 if (status == ScrollOnMainThread) { 1995 if (status == ScrollOnMainThread) {
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
2053 client_->RenewTreePriority(); 2054 client_->RenewTreePriority();
2054 UMA_HISTOGRAM_BOOLEAN("TryScroll.SlowScroll", false); 2055 UMA_HISTOGRAM_BOOLEAN("TryScroll.SlowScroll", false);
2055 return ScrollStarted; 2056 return ScrollStarted;
2056 } 2057 }
2057 return ScrollIgnored; 2058 return ScrollIgnored;
2058 } 2059 }
2059 2060
2060 gfx::Vector2dF LayerTreeHostImpl::ScrollLayerWithViewportSpaceDelta( 2061 gfx::Vector2dF LayerTreeHostImpl::ScrollLayerWithViewportSpaceDelta(
2061 LayerImpl* layer_impl, 2062 LayerImpl* layer_impl,
2062 float scale_from_viewport_to_screen_space, 2063 float scale_from_viewport_to_screen_space,
2063 gfx::PointF viewport_point, 2064 const gfx::PointF& viewport_point,
2064 gfx::Vector2dF viewport_delta) { 2065 gfx::Vector2dF viewport_delta) {
2065 // Layers with non-invertible screen space transforms should not have passed 2066 // Layers with non-invertible screen space transforms should not have passed
2066 // the scroll hit test in the first place. 2067 // the scroll hit test in the first place.
2067 DCHECK(layer_impl->screen_space_transform().IsInvertible()); 2068 DCHECK(layer_impl->screen_space_transform().IsInvertible());
2068 gfx::Transform inverse_screen_space_transform( 2069 gfx::Transform inverse_screen_space_transform(
2069 gfx::Transform::kSkipInitialization); 2070 gfx::Transform::kSkipInitialization);
2070 bool did_invert = layer_impl->screen_space_transform().GetInverse( 2071 bool did_invert = layer_impl->screen_space_transform().GetInverse(
2071 &inverse_screen_space_transform); 2072 &inverse_screen_space_transform);
2072 // TODO(shawnsingh): With the advent of impl-side crolling for non-root 2073 // TODO(shawnsingh): With the advent of impl-side crolling for non-root
2073 // layers, we may need to explicitly handle uninvertible transforms here. 2074 // layers, we may need to explicitly handle uninvertible transforms here.
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after
2340 } 2341 }
2341 2342
2342 return ScrollStarted; 2343 return ScrollStarted;
2343 } 2344 }
2344 2345
2345 void LayerTreeHostImpl::NotifyCurrentFlingVelocity(gfx::Vector2dF velocity) { 2346 void LayerTreeHostImpl::NotifyCurrentFlingVelocity(gfx::Vector2dF velocity) {
2346 current_fling_velocity_ = velocity; 2347 current_fling_velocity_ = velocity;
2347 } 2348 }
2348 2349
2349 float LayerTreeHostImpl::DeviceSpaceDistanceToLayer( 2350 float LayerTreeHostImpl::DeviceSpaceDistanceToLayer(
2350 gfx::PointF device_viewport_point, 2351 const gfx::PointF& device_viewport_point,
2351 LayerImpl* layer_impl) { 2352 LayerImpl* layer_impl) {
2352 if (!layer_impl) 2353 if (!layer_impl)
2353 return std::numeric_limits<float>::max(); 2354 return std::numeric_limits<float>::max();
2354 2355
2355 gfx::Rect layer_impl_bounds( 2356 gfx::Rect layer_impl_bounds(
2356 layer_impl->content_bounds()); 2357 layer_impl->content_bounds());
2357 2358
2358 gfx::RectF device_viewport_layer_impl_bounds = MathUtil::MapClippedRect( 2359 gfx::RectF device_viewport_layer_impl_bounds = MathUtil::MapClippedRect(
2359 layer_impl->screen_space_transform(), 2360 layer_impl->screen_space_transform(),
2360 layer_impl_bounds); 2361 layer_impl_bounds);
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
2408 DeviceSpaceDistanceToLayer(device_viewport_point, 2409 DeviceSpaceDistanceToLayer(device_viewport_point,
2409 scroll_layer_impl->vertical_scrollbar_layer())); 2410 scroll_layer_impl->vertical_scrollbar_layer()));
2410 2411
2411 bool should_animate = animation_controller->DidMouseMoveNear( 2412 bool should_animate = animation_controller->DidMouseMoveNear(
2412 CurrentPhysicalTimeTicks(), distance_to_scrollbar / device_scale_factor_); 2413 CurrentPhysicalTimeTicks(), distance_to_scrollbar / device_scale_factor_);
2413 if (should_animate) 2414 if (should_animate)
2414 StartScrollbarAnimation(); 2415 StartScrollbarAnimation();
2415 } 2416 }
2416 2417
2417 bool LayerTreeHostImpl::HandleMouseOverScrollbar(LayerImpl* layer_impl, 2418 bool LayerTreeHostImpl::HandleMouseOverScrollbar(LayerImpl* layer_impl,
2418 gfx::PointF device_viewport_point) { 2419 const gfx::PointF& device_viewport_point) {
2419 if (layer_impl && layer_impl->ToScrollbarLayer()) { 2420 if (layer_impl && layer_impl->ToScrollbarLayer()) {
2420 int scroll_layer_id = layer_impl->ToScrollbarLayer()->ScrollLayerId(); 2421 int scroll_layer_id = layer_impl->ToScrollbarLayer()->ScrollLayerId();
2421 layer_impl = active_tree_->LayerById(scroll_layer_id); 2422 layer_impl = active_tree_->LayerById(scroll_layer_id);
2422 if (layer_impl && layer_impl->scrollbar_animation_controller()) { 2423 if (layer_impl && layer_impl->scrollbar_animation_controller()) {
2423 scroll_layer_id_when_mouse_over_scrollbar_ = scroll_layer_id; 2424 scroll_layer_id_when_mouse_over_scrollbar_ = scroll_layer_id;
2424 bool should_animate = 2425 bool should_animate =
2425 layer_impl->scrollbar_animation_controller()->DidMouseMoveNear( 2426 layer_impl->scrollbar_animation_controller()->DidMouseMoveNear(
2426 CurrentPhysicalTimeTicks(), 0); 2427 CurrentPhysicalTimeTicks(), 0);
2427 if (should_animate) 2428 if (should_animate)
2428 StartScrollbarAnimation(); 2429 StartScrollbarAnimation();
(...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after
2908 swap_promise_monitor_.erase(monitor); 2909 swap_promise_monitor_.erase(monitor);
2909 } 2910 }
2910 2911
2911 void LayerTreeHostImpl::NotifySwapPromiseMonitorsOfSetNeedsRedraw() { 2912 void LayerTreeHostImpl::NotifySwapPromiseMonitorsOfSetNeedsRedraw() {
2912 std::set<SwapPromiseMonitor*>::iterator it = swap_promise_monitor_.begin(); 2913 std::set<SwapPromiseMonitor*>::iterator it = swap_promise_monitor_.begin();
2913 for (; it != swap_promise_monitor_.end(); it++) 2914 for (; it != swap_promise_monitor_.end(); it++)
2914 (*it)->OnSetNeedsRedrawOnImpl(); 2915 (*it)->OnSetNeedsRedrawOnImpl();
2915 } 2916 }
2916 2917
2917 } // namespace cc 2918 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl.h ('k') | cc/trees/layer_tree_host_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698