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_host.h" | 5 #include "cc/trees/layer_tree_host.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <stack> | 8 #include <stack> |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 22 matching lines...) Expand all Loading... | |
33 #include "cc/resources/prioritized_resource_manager.h" | 33 #include "cc/resources/prioritized_resource_manager.h" |
34 #include "cc/resources/ui_resource_request.h" | 34 #include "cc/resources/ui_resource_request.h" |
35 #include "cc/trees/layer_tree_host_client.h" | 35 #include "cc/trees/layer_tree_host_client.h" |
36 #include "cc/trees/layer_tree_host_common.h" | 36 #include "cc/trees/layer_tree_host_common.h" |
37 #include "cc/trees/layer_tree_host_impl.h" | 37 #include "cc/trees/layer_tree_host_impl.h" |
38 #include "cc/trees/layer_tree_impl.h" | 38 #include "cc/trees/layer_tree_impl.h" |
39 #include "cc/trees/occlusion_tracker.h" | 39 #include "cc/trees/occlusion_tracker.h" |
40 #include "cc/trees/single_thread_proxy.h" | 40 #include "cc/trees/single_thread_proxy.h" |
41 #include "cc/trees/thread_proxy.h" | 41 #include "cc/trees/thread_proxy.h" |
42 #include "cc/trees/tree_synchronizer.h" | 42 #include "cc/trees/tree_synchronizer.h" |
43 #include "ui/gfx/geometry/vector2d_conversions.h" | |
danakj
2014/09/27 00:00:44
unused?
Yufeng Shen (Slow to review)
2014/09/29 19:27:33
Done.
| |
43 #include "ui/gfx/size_conversions.h" | 44 #include "ui/gfx/size_conversions.h" |
44 | 45 |
45 namespace { | 46 namespace { |
46 static base::StaticAtomicSequenceNumber s_layer_tree_host_sequence_number; | 47 static base::StaticAtomicSequenceNumber s_layer_tree_host_sequence_number; |
47 } | 48 } |
48 | 49 |
49 namespace cc { | 50 namespace cc { |
50 | 51 |
51 RendererCapabilities::RendererCapabilities(ResourceFormat best_texture_format, | 52 RendererCapabilities::RendererCapabilities(ResourceFormat best_texture_format, |
52 bool allow_partial_texture_updates, | 53 bool allow_partial_texture_updates, |
(...skipping 1019 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1072 for (size_t i = 0; i < info->scrolls.size(); ++i) { | 1073 for (size_t i = 0; i < info->scrolls.size(); ++i) { |
1073 Layer* layer = LayerTreeHostCommon::FindLayerInSubtree( | 1074 Layer* layer = LayerTreeHostCommon::FindLayerInSubtree( |
1074 root_layer_.get(), info->scrolls[i].layer_id); | 1075 root_layer_.get(), info->scrolls[i].layer_id); |
1075 if (!layer) | 1076 if (!layer) |
1076 continue; | 1077 continue; |
1077 if (layer == outer_viewport_scroll_layer_.get()) { | 1078 if (layer == outer_viewport_scroll_layer_.get()) { |
1078 outer_viewport_scroll_delta += info->scrolls[i].scroll_delta; | 1079 outer_viewport_scroll_delta += info->scrolls[i].scroll_delta; |
1079 } else if (layer == inner_viewport_scroll_layer_.get()) { | 1080 } else if (layer == inner_viewport_scroll_layer_.get()) { |
1080 inner_viewport_scroll_delta += info->scrolls[i].scroll_delta; | 1081 inner_viewport_scroll_delta += info->scrolls[i].scroll_delta; |
1081 } else { | 1082 } else { |
1082 layer->SetScrollOffsetFromImplSide(layer->scroll_offset() + | 1083 layer->SetScrollOffsetFromImplSide( |
1083 info->scrolls[i].scroll_delta); | 1084 layer->scroll_offset() + |
danakj
2014/09/27 00:00:44
ScrollOffsetWithDelta
Yufeng Shen (Slow to review)
2014/09/29 19:27:33
Done.
| |
1085 gfx::ScrollOffset(info->scrolls[i].scroll_delta)); | |
1084 } | 1086 } |
1085 } | 1087 } |
1086 | 1088 |
1087 if (!inner_viewport_scroll_delta.IsZero() || | 1089 if (!inner_viewport_scroll_delta.IsZero() || |
1088 !outer_viewport_scroll_delta.IsZero() || | 1090 !outer_viewport_scroll_delta.IsZero() || |
1089 info->page_scale_delta != 1.f || | 1091 info->page_scale_delta != 1.f || |
1090 info->top_controls_delta) { | 1092 info->top_controls_delta) { |
1091 // SetScrollOffsetFromImplSide above could have destroyed the tree, | 1093 // SetScrollOffsetFromImplSide above could have destroyed the tree, |
1092 // so re-get this layer before doing anything to it. | 1094 // so re-get this layer before doing anything to it. |
1093 | 1095 |
1094 // Preemptively apply the scroll offset and scale delta here before sending | 1096 // Preemptively apply the scroll offset and scale delta here before sending |
1095 // it to the client. If the client comes back and sets it to the same | 1097 // it to the client. If the client comes back and sets it to the same |
1096 // value, then the layer can early out without needing a full commit. | 1098 // value, then the layer can early out without needing a full commit. |
1097 DCHECK(inner_viewport_scroll_layer_.get()); // We should always have this. | 1099 DCHECK(inner_viewport_scroll_layer_.get()); // We should always have this. |
1098 | 1100 |
1099 inner_viewport_scroll_layer_->SetScrollOffsetFromImplSide( | 1101 inner_viewport_scroll_layer_->SetScrollOffsetFromImplSide( |
1100 inner_viewport_scroll_layer_->scroll_offset() + | 1102 gfx::ScrollOffsetWithDelta( |
1101 inner_viewport_scroll_delta); | 1103 inner_viewport_scroll_layer_->scroll_offset(), |
1104 inner_viewport_scroll_delta)); | |
1102 if (outer_viewport_scroll_layer_.get()) { | 1105 if (outer_viewport_scroll_layer_.get()) { |
1103 outer_viewport_scroll_layer_->SetScrollOffsetFromImplSide( | 1106 outer_viewport_scroll_layer_->SetScrollOffsetFromImplSide( |
1104 outer_viewport_scroll_layer_->scroll_offset() + | 1107 gfx::ScrollOffsetWithDelta( |
1105 outer_viewport_scroll_delta); | 1108 outer_viewport_scroll_layer_->scroll_offset(), |
1109 outer_viewport_scroll_delta)); | |
1106 } | 1110 } |
1107 ApplyPageScaleDeltaFromImplSide(info->page_scale_delta); | 1111 ApplyPageScaleDeltaFromImplSide(info->page_scale_delta); |
1108 | 1112 |
1109 client_->ApplyViewportDeltas( | 1113 client_->ApplyViewportDeltas( |
1110 inner_viewport_scroll_delta + outer_viewport_scroll_delta, | 1114 inner_viewport_scroll_delta + outer_viewport_scroll_delta, |
1111 info->page_scale_delta, | 1115 info->page_scale_delta, |
1112 info->top_controls_delta); | 1116 info->top_controls_delta); |
1113 } | 1117 } |
1114 } | 1118 } |
1115 | 1119 |
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1317 swap_promise_list_.push_back(swap_promise.Pass()); | 1321 swap_promise_list_.push_back(swap_promise.Pass()); |
1318 } | 1322 } |
1319 | 1323 |
1320 void LayerTreeHost::BreakSwapPromises(SwapPromise::DidNotSwapReason reason) { | 1324 void LayerTreeHost::BreakSwapPromises(SwapPromise::DidNotSwapReason reason) { |
1321 for (size_t i = 0; i < swap_promise_list_.size(); i++) | 1325 for (size_t i = 0; i < swap_promise_list_.size(); i++) |
1322 swap_promise_list_[i]->DidNotSwap(reason); | 1326 swap_promise_list_[i]->DidNotSwap(reason); |
1323 swap_promise_list_.clear(); | 1327 swap_promise_list_.clear(); |
1324 } | 1328 } |
1325 | 1329 |
1326 } // namespace cc | 1330 } // namespace cc |
OLD | NEW |