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

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

Issue 749393005: Translate the overscroll elasticity layer by the overscroll amount (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@aelias
Patch Set: Created 6 years 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_common.h ('k') | cc/trees/layer_tree_host_common_perftest.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_common.h" 5 #include "cc/trees/layer_tree_host_common.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/debug/trace_event.h" 9 #include "base/debug/trace_event.h"
10 #include "cc/base/math_util.h" 10 #include "cc/base/math_util.h"
(...skipping 1249 matching lines...) Expand 10 before | Expand all | Expand 10 after
1260 transform->matrix().set(1, 3, MathUtil::Round(transform->matrix().get(1, 3))); 1260 transform->matrix().set(1, 3, MathUtil::Round(transform->matrix().get(1, 3)));
1261 } 1261 }
1262 1262
1263 template <typename LayerType> 1263 template <typename LayerType>
1264 struct SubtreeGlobals { 1264 struct SubtreeGlobals {
1265 LayerSorter* layer_sorter; 1265 LayerSorter* layer_sorter;
1266 int max_texture_size; 1266 int max_texture_size;
1267 float device_scale_factor; 1267 float device_scale_factor;
1268 float page_scale_factor; 1268 float page_scale_factor;
1269 const LayerType* page_scale_application_layer; 1269 const LayerType* page_scale_application_layer;
1270 gfx::Vector2dF elastic_overscroll;
1271 const LayerType* elastic_overscroll_application_layer;
1270 bool can_adjust_raster_scales; 1272 bool can_adjust_raster_scales;
1271 bool can_render_to_separate_surface; 1273 bool can_render_to_separate_surface;
1272 bool layers_always_allowed_lcd_text; 1274 bool layers_always_allowed_lcd_text;
1273 }; 1275 };
1274 1276
1275 template<typename LayerType> 1277 template<typename LayerType>
1276 struct DataForRecursion { 1278 struct DataForRecursion {
1277 // The accumulated sequence of transforms a layer will use to determine its 1279 // The accumulated sequence of transforms a layer will use to determine its
1278 // own draw transform. 1280 // own draw transform.
1279 gfx::Transform parent_matrix; 1281 gfx::Transform parent_matrix;
(...skipping 813 matching lines...) Expand 10 before | Expand all | Expand 10 after
2093 render_surface_layer_list->size(); 2095 render_surface_layer_list->size();
2094 size_t layer_list_child_sorting_start_index = descendants.size(); 2096 size_t layer_list_child_sorting_start_index = descendants.size();
2095 2097
2096 if (!layer->children().empty()) { 2098 if (!layer->children().empty()) {
2097 if (layer == globals.page_scale_application_layer) { 2099 if (layer == globals.page_scale_application_layer) {
2098 data_for_children.parent_matrix.Scale( 2100 data_for_children.parent_matrix.Scale(
2099 globals.page_scale_factor, 2101 globals.page_scale_factor,
2100 globals.page_scale_factor); 2102 globals.page_scale_factor);
2101 data_for_children.in_subtree_of_page_scale_application_layer = true; 2103 data_for_children.in_subtree_of_page_scale_application_layer = true;
2102 } 2104 }
2105 if (layer == globals.elastic_overscroll_application_layer) {
2106 data_for_children.parent_matrix.Translate(globals.elastic_overscroll.x(),
2107 globals.elastic_overscroll.y());
2108 }
2103 2109
2104 // Flatten to 2D if the layer doesn't preserve 3D. 2110 // Flatten to 2D if the layer doesn't preserve 3D.
2105 if (layer->should_flatten_transform()) 2111 if (layer->should_flatten_transform())
2106 data_for_children.parent_matrix.FlattenTo2d(); 2112 data_for_children.parent_matrix.FlattenTo2d();
2107 2113
2108 data_for_children.scroll_compensation_matrix = 2114 data_for_children.scroll_compensation_matrix =
2109 ComputeScrollCompensationMatrixForChildren( 2115 ComputeScrollCompensationMatrixForChildren(
2110 layer, 2116 layer,
2111 data_from_ancestor.parent_matrix, 2117 data_from_ancestor.parent_matrix,
2112 data_from_ancestor.scroll_compensation_matrix, 2118 data_from_ancestor.scroll_compensation_matrix,
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
2371 gfx::Transform scaled_device_transform = inputs.device_transform; 2377 gfx::Transform scaled_device_transform = inputs.device_transform;
2372 scaled_device_transform.Scale(inputs.device_scale_factor, 2378 scaled_device_transform.Scale(inputs.device_scale_factor,
2373 inputs.device_scale_factor); 2379 inputs.device_scale_factor);
2374 2380
2375 globals->layer_sorter = NULL; 2381 globals->layer_sorter = NULL;
2376 globals->max_texture_size = inputs.max_texture_size; 2382 globals->max_texture_size = inputs.max_texture_size;
2377 globals->device_scale_factor = 2383 globals->device_scale_factor =
2378 inputs.device_scale_factor * device_transform_scale; 2384 inputs.device_scale_factor * device_transform_scale;
2379 globals->page_scale_factor = inputs.page_scale_factor; 2385 globals->page_scale_factor = inputs.page_scale_factor;
2380 globals->page_scale_application_layer = inputs.page_scale_application_layer; 2386 globals->page_scale_application_layer = inputs.page_scale_application_layer;
2387 globals->elastic_overscroll = inputs.elastic_overscroll;
2388 globals->elastic_overscroll_application_layer =
2389 inputs.elastic_overscroll_application_layer;
2381 globals->can_render_to_separate_surface = 2390 globals->can_render_to_separate_surface =
2382 inputs.can_render_to_separate_surface; 2391 inputs.can_render_to_separate_surface;
2383 globals->can_adjust_raster_scales = inputs.can_adjust_raster_scales; 2392 globals->can_adjust_raster_scales = inputs.can_adjust_raster_scales;
2384 globals->layers_always_allowed_lcd_text = 2393 globals->layers_always_allowed_lcd_text =
2385 inputs.layers_always_allowed_lcd_text; 2394 inputs.layers_always_allowed_lcd_text;
2386 2395
2387 data_for_recursion->parent_matrix = scaled_device_transform; 2396 data_for_recursion->parent_matrix = scaled_device_transform;
2388 data_for_recursion->full_hierarchy_matrix = identity_matrix; 2397 data_for_recursion->full_hierarchy_matrix = identity_matrix;
2389 data_for_recursion->scroll_compensation_matrix = identity_matrix; 2398 data_for_recursion->scroll_compensation_matrix = identity_matrix;
2390 data_for_recursion->fixed_container = inputs.root_layer; 2399 data_for_recursion->fixed_container = inputs.root_layer;
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
2449 inputs->current_render_surface_layer_list_id); 2458 inputs->current_render_surface_layer_list_id);
2450 2459
2451 // The dummy layer list should not have been used. 2460 // The dummy layer list should not have been used.
2452 DCHECK_EQ(0u, dummy_layer_list.size()); 2461 DCHECK_EQ(0u, dummy_layer_list.size());
2453 // A root layer render_surface should always exist after 2462 // A root layer render_surface should always exist after
2454 // CalculateDrawProperties. 2463 // CalculateDrawProperties.
2455 DCHECK(inputs->root_layer->render_surface()); 2464 DCHECK(inputs->root_layer->render_surface());
2456 } 2465 }
2457 2466
2458 } // namespace cc 2467 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_common.h ('k') | cc/trees/layer_tree_host_common_perftest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698