| OLD | NEW |
| 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 <algorithm> | 7 #include <algorithm> |
| 8 #include <limits> | 8 #include <limits> |
| 9 #include <set> | 9 #include <set> |
| 10 | 10 |
| (...skipping 1074 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1085 for (auto* swap_promise : swap_promise_list_) | 1085 for (auto* swap_promise : swap_promise_list_) |
| 1086 state->AppendDouble(swap_promise->TraceId()); | 1086 state->AppendDouble(swap_promise->TraceId()); |
| 1087 state->EndArray(); | 1087 state->EndArray(); |
| 1088 | 1088 |
| 1089 state->BeginArray("pinned_swap_promise_trace_ids"); | 1089 state->BeginArray("pinned_swap_promise_trace_ids"); |
| 1090 for (auto* swap_promise : pinned_swap_promise_list_) | 1090 for (auto* swap_promise : pinned_swap_promise_list_) |
| 1091 state->AppendDouble(swap_promise->TraceId()); | 1091 state->AppendDouble(swap_promise->TraceId()); |
| 1092 state->EndArray(); | 1092 state->EndArray(); |
| 1093 } | 1093 } |
| 1094 | 1094 |
| 1095 void LayerTreeImpl::DistributeRootScrollOffset( | 1095 bool LayerTreeImpl::DistributeRootScrollOffset( |
| 1096 const gfx::ScrollOffset& root_offset) { | 1096 const gfx::ScrollOffset& root_offset) { |
| 1097 if (!InnerViewportScrollLayer()) | 1097 if (!InnerViewportScrollLayer()) |
| 1098 return; | 1098 return false; |
| 1099 | 1099 |
| 1100 DCHECK(OuterViewportScrollLayer()); | 1100 DCHECK(OuterViewportScrollLayer()); |
| 1101 | 1101 |
| 1102 // If we get here, we have both inner/outer viewports, and need to distribute | 1102 // If we get here, we have both inner/outer viewports, and need to distribute |
| 1103 // the scroll offset between them. | 1103 // the scroll offset between them. |
| 1104 gfx::ScrollOffset inner_viewport_offset = | 1104 gfx::ScrollOffset inner_viewport_offset = |
| 1105 InnerViewportScrollLayer()->CurrentScrollOffset(); | 1105 InnerViewportScrollLayer()->CurrentScrollOffset(); |
| 1106 gfx::ScrollOffset outer_viewport_offset = | 1106 gfx::ScrollOffset outer_viewport_offset = |
| 1107 OuterViewportScrollLayer()->CurrentScrollOffset(); | 1107 OuterViewportScrollLayer()->CurrentScrollOffset(); |
| 1108 | 1108 |
| 1109 // It may be nothing has changed. | 1109 // It may be nothing has changed. |
| 1110 DCHECK(inner_viewport_offset + outer_viewport_offset == TotalScrollOffset()); | 1110 DCHECK(inner_viewport_offset + outer_viewport_offset == TotalScrollOffset()); |
| 1111 if (inner_viewport_offset + outer_viewport_offset == root_offset) | 1111 if (inner_viewport_offset + outer_viewport_offset == root_offset) |
| 1112 return; | 1112 return false; |
| 1113 | 1113 |
| 1114 gfx::ScrollOffset max_outer_viewport_scroll_offset = | 1114 gfx::ScrollOffset max_outer_viewport_scroll_offset = |
| 1115 OuterViewportScrollLayer()->MaxScrollOffset(); | 1115 OuterViewportScrollLayer()->MaxScrollOffset(); |
| 1116 | 1116 |
| 1117 outer_viewport_offset = root_offset - inner_viewport_offset; | 1117 outer_viewport_offset = root_offset - inner_viewport_offset; |
| 1118 outer_viewport_offset.SetToMin(max_outer_viewport_scroll_offset); | 1118 outer_viewport_offset.SetToMin(max_outer_viewport_scroll_offset); |
| 1119 outer_viewport_offset.SetToMax(gfx::ScrollOffset()); | 1119 outer_viewport_offset.SetToMax(gfx::ScrollOffset()); |
| 1120 | 1120 |
| 1121 OuterViewportScrollLayer()->SetCurrentScrollOffset(outer_viewport_offset); | 1121 OuterViewportScrollLayer()->SetCurrentScrollOffset(outer_viewport_offset); |
| 1122 inner_viewport_offset = root_offset - outer_viewport_offset; | 1122 inner_viewport_offset = root_offset - outer_viewport_offset; |
| 1123 InnerViewportScrollLayer()->SetCurrentScrollOffset(inner_viewport_offset); | 1123 InnerViewportScrollLayer()->SetCurrentScrollOffset(inner_viewport_offset); |
| 1124 return true; |
| 1124 } | 1125 } |
| 1125 | 1126 |
| 1126 void LayerTreeImpl::QueueSwapPromise(scoped_ptr<SwapPromise> swap_promise) { | 1127 void LayerTreeImpl::QueueSwapPromise(scoped_ptr<SwapPromise> swap_promise) { |
| 1127 DCHECK(swap_promise); | 1128 DCHECK(swap_promise); |
| 1128 swap_promise_list_.push_back(swap_promise.Pass()); | 1129 swap_promise_list_.push_back(swap_promise.Pass()); |
| 1129 } | 1130 } |
| 1130 | 1131 |
| 1131 void LayerTreeImpl::QueuePinnedSwapPromise( | 1132 void LayerTreeImpl::QueuePinnedSwapPromise( |
| 1132 scoped_ptr<SwapPromise> swap_promise) { | 1133 scoped_ptr<SwapPromise> swap_promise) { |
| 1133 DCHECK(IsActiveTree()); | 1134 DCHECK(IsActiveTree()); |
| (...skipping 718 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1852 const gfx::BoxF& box, | 1853 const gfx::BoxF& box, |
| 1853 gfx::BoxF* bounds) const { | 1854 gfx::BoxF* bounds) const { |
| 1854 *bounds = gfx::BoxF(); | 1855 *bounds = gfx::BoxF(); |
| 1855 return layer_tree_host_impl_->animation_host() | 1856 return layer_tree_host_impl_->animation_host() |
| 1856 ? layer_tree_host_impl_->animation_host() | 1857 ? layer_tree_host_impl_->animation_host() |
| 1857 ->TransformAnimationBoundsForBox(layer->id(), box, bounds) | 1858 ->TransformAnimationBoundsForBox(layer->id(), box, bounds) |
| 1858 : true; | 1859 : true; |
| 1859 } | 1860 } |
| 1860 | 1861 |
| 1861 } // namespace cc | 1862 } // namespace cc |
| OLD | NEW |