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

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

Issue 2144303002: Made layout viewport scroll updates from compositor work like ordinary layers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@rootScrollerOnCompositor
Patch Set: Initialize ScrollUpdateInfo's layer id in constructor Created 4 years, 5 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/property_tree.h ('k') | cc/trees/tree_synchronizer_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 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 1271 matching lines...) Expand 10 before | Expand all | Expand 10 after
1282 gfx::ScrollOffset floored_delta(floor(current_delta.x()), 1282 gfx::ScrollOffset floored_delta(floor(current_delta.x()),
1283 floor(current_delta.y())); 1283 floor(current_delta.y()));
1284 gfx::ScrollOffset diff_delta = floored_delta - current_delta; 1284 gfx::ScrollOffset diff_delta = floored_delta - current_delta;
1285 gfx::ScrollOffset tmp_offset = current_offset + diff_delta; 1285 gfx::ScrollOffset tmp_offset = current_offset + diff_delta;
1286 scroll_offset->SetCurrent(tmp_offset); 1286 scroll_offset->SetCurrent(tmp_offset);
1287 gfx::ScrollOffset delta = scroll_offset->PullDeltaForMainThread(); 1287 gfx::ScrollOffset delta = scroll_offset->PullDeltaForMainThread();
1288 scroll_offset->SetCurrent(current_offset); 1288 scroll_offset->SetCurrent(current_offset);
1289 return delta; 1289 return delta;
1290 } 1290 }
1291 1291
1292 void ScrollTree::CollectScrollDeltas(ScrollAndScaleSet* scroll_info) { 1292 void ScrollTree::CollectScrollDeltas(ScrollAndScaleSet* scroll_info,
1293 int inner_viewport_layer_id) {
1293 for (auto map_entry : layer_id_to_scroll_offset_map_) { 1294 for (auto map_entry : layer_id_to_scroll_offset_map_) {
1294 gfx::ScrollOffset scroll_delta = 1295 gfx::ScrollOffset scroll_delta =
1295 PullDeltaForMainThread(map_entry.second.get()); 1296 PullDeltaForMainThread(map_entry.second.get());
1296 1297
1298 gfx::Vector2d scroll_delta_vector(scroll_delta.x(), scroll_delta.y());
1299 int layer_id = map_entry.first;
1300
1297 if (!scroll_delta.IsZero()) { 1301 if (!scroll_delta.IsZero()) {
1298 LayerTreeHostCommon::ScrollUpdateInfo scroll; 1302 if (layer_id == inner_viewport_layer_id) {
1299 scroll.layer_id = map_entry.first; 1303 // Inner (visual) viewport is stored separately.
1300 scroll.scroll_delta = gfx::Vector2d(scroll_delta.x(), scroll_delta.y()); 1304 scroll_info->inner_viewport_scroll.layer_id = layer_id;
1301 scroll_info->scrolls.push_back(scroll); 1305 scroll_info->inner_viewport_scroll.scroll_delta = scroll_delta_vector;
1306 } else {
1307 LayerTreeHostCommon::ScrollUpdateInfo scroll;
1308 scroll.layer_id = layer_id;
1309 scroll.scroll_delta = scroll_delta_vector;
1310 scroll_info->scrolls.push_back(scroll);
1311 }
1302 } 1312 }
1303 } 1313 }
1304 } 1314 }
1305 1315
1306 void ScrollTree::CollectScrollDeltasForTesting() { 1316 void ScrollTree::CollectScrollDeltasForTesting() {
1307 for (auto map_entry : layer_id_to_scroll_offset_map_) { 1317 for (auto map_entry : layer_id_to_scroll_offset_map_) {
1308 PullDeltaForMainThread(map_entry.second.get()); 1318 PullDeltaForMainThread(map_entry.second.get());
1309 } 1319 }
1310 } 1320 }
1311 1321
(...skipping 572 matching lines...) Expand 10 before | Expand all | Expand 10 after
1884 cached_data_.property_tree_update_number = 0; 1894 cached_data_.property_tree_update_number = 0;
1885 cached_data_.animation_scales = std::vector<AnimationScaleData>( 1895 cached_data_.animation_scales = std::vector<AnimationScaleData>(
1886 transform_tree.nodes().size(), AnimationScaleData()); 1896 transform_tree.nodes().size(), AnimationScaleData());
1887 } 1897 }
1888 1898
1889 void PropertyTrees::UpdateCachedNumber() { 1899 void PropertyTrees::UpdateCachedNumber() {
1890 cached_data_.property_tree_update_number++; 1900 cached_data_.property_tree_update_number++;
1891 } 1901 }
1892 1902
1893 } // namespace cc 1903 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/property_tree.h ('k') | cc/trees/tree_synchronizer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698