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

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

Issue 1394263004: android webview: allow cc to fail hardware draw (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: tests compile but crash Created 5 years, 2 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
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_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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698