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_impl.h" | 5 #include "cc/trees/layer_tree_host_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/debug/trace_event.h" | 10 #include "base/debug/trace_event.h" |
(...skipping 1142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1153 void LayerTreeHostImpl::OnSwapBuffersComplete() { | 1153 void LayerTreeHostImpl::OnSwapBuffersComplete() { |
1154 client_->OnSwapBuffersCompleteOnImplThread(); | 1154 client_->OnSwapBuffersCompleteOnImplThread(); |
1155 } | 1155 } |
1156 | 1156 |
1157 void LayerTreeHostImpl::Readback(void* pixels, | 1157 void LayerTreeHostImpl::Readback(void* pixels, |
1158 gfx::Rect rect_in_device_viewport) { | 1158 gfx::Rect rect_in_device_viewport) { |
1159 DCHECK(renderer_); | 1159 DCHECK(renderer_); |
1160 renderer_->GetFramebufferPixels(pixels, rect_in_device_viewport); | 1160 renderer_->GetFramebufferPixels(pixels, rect_in_device_viewport); |
1161 } | 1161 } |
1162 | 1162 |
1163 bool LayerTreeHostImpl::haveRootScrollLayer() const { | 1163 bool LayerTreeHostImpl::HaveRootScrollLayer() const { |
1164 return !!RootScrollLayer(); | 1164 return !!RootScrollLayer(); |
1165 } | 1165 } |
1166 | 1166 |
1167 LayerImpl* LayerTreeHostImpl::RootLayer() const { | 1167 LayerImpl* LayerTreeHostImpl::RootLayer() const { |
1168 return active_tree_->root_layer(); | 1168 return active_tree_->root_layer(); |
1169 } | 1169 } |
1170 | 1170 |
1171 LayerImpl* LayerTreeHostImpl::RootScrollLayer() const { | 1171 LayerImpl* LayerTreeHostImpl::RootScrollLayer() const { |
1172 return active_tree_->RootScrollLayer(); | 1172 return active_tree_->RootScrollLayer(); |
1173 } | 1173 } |
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1376 | 1376 |
1377 layout_viewport_size_ = layout_viewport_size; | 1377 layout_viewport_size_ = layout_viewport_size; |
1378 device_viewport_size_ = device_viewport_size; | 1378 device_viewport_size_ = device_viewport_size; |
1379 | 1379 |
1380 UpdateMaxScrollOffset(); | 1380 UpdateMaxScrollOffset(); |
1381 | 1381 |
1382 if (renderer_) | 1382 if (renderer_) |
1383 renderer_->ViewportChanged(); | 1383 renderer_->ViewportChanged(); |
1384 | 1384 |
1385 client_->OnCanDrawStateChanged(CanDraw()); | 1385 client_->OnCanDrawStateChanged(CanDraw()); |
| 1386 SetFullRootLayerDamage(); |
1386 } | 1387 } |
1387 | 1388 |
1388 static void AdjustScrollsForPageScaleChange(LayerImpl* layer_impl, | 1389 static void AdjustScrollsForPageScaleChange(LayerImpl* layer_impl, |
1389 float page_scale_change) { | 1390 float page_scale_change) { |
1390 if (!layer_impl) | 1391 if (!layer_impl) |
1391 return; | 1392 return; |
1392 | 1393 |
1393 if (layer_impl->scrollable()) { | 1394 if (layer_impl->scrollable()) { |
1394 // We need to convert impl-side scroll deltas to page_scale space. | 1395 // We need to convert impl-side scroll deltas to page_scale space. |
1395 gfx::Vector2dF scroll_delta = layer_impl->scroll_delta(); | 1396 gfx::Vector2dF scroll_delta = layer_impl->scroll_delta(); |
1396 scroll_delta.Scale(page_scale_change); | 1397 scroll_delta.Scale(page_scale_change); |
1397 layer_impl->SetScrollDelta(scroll_delta); | 1398 layer_impl->SetScrollDelta(scroll_delta); |
1398 } | 1399 } |
1399 | 1400 |
1400 for (size_t i = 0; i < layer_impl->children().size(); ++i) | 1401 for (size_t i = 0; i < layer_impl->children().size(); ++i) |
1401 AdjustScrollsForPageScaleChange(layer_impl->children()[i], | 1402 AdjustScrollsForPageScaleChange(layer_impl->children()[i], |
1402 page_scale_change); | 1403 page_scale_change); |
1403 } | 1404 } |
1404 | 1405 |
1405 void LayerTreeHostImpl::SetOverdrawBottomHeight(float overdraw_bottom_height) { | 1406 void LayerTreeHostImpl::SetOverdrawBottomHeight(float overdraw_bottom_height) { |
1406 if (overdraw_bottom_height == overdraw_bottom_height_) | 1407 if (overdraw_bottom_height == overdraw_bottom_height_) |
1407 return; | 1408 return; |
1408 overdraw_bottom_height_ = overdraw_bottom_height; | 1409 overdraw_bottom_height_ = overdraw_bottom_height; |
1409 | 1410 |
1410 UpdateMaxScrollOffset(); | 1411 UpdateMaxScrollOffset(); |
| 1412 SetFullRootLayerDamage(); |
1411 } | 1413 } |
1412 | 1414 |
1413 void LayerTreeHostImpl::SetDeviceScaleFactor(float device_scale_factor) { | 1415 void LayerTreeHostImpl::SetDeviceScaleFactor(float device_scale_factor) { |
1414 if (device_scale_factor == device_scale_factor_) | 1416 if (device_scale_factor == device_scale_factor_) |
1415 return; | 1417 return; |
1416 device_scale_factor_ = device_scale_factor; | 1418 device_scale_factor_ = device_scale_factor; |
1417 | 1419 |
1418 UpdateMaxScrollOffset(); | 1420 UpdateMaxScrollOffset(); |
| 1421 SetFullRootLayerDamage(); |
1419 } | 1422 } |
1420 | 1423 |
1421 void LayerTreeHostImpl::UpdateMaxScrollOffset() { | 1424 void LayerTreeHostImpl::UpdateMaxScrollOffset() { |
1422 active_tree_->UpdateMaxScrollOffset(); | 1425 active_tree_->UpdateMaxScrollOffset(); |
1423 } | 1426 } |
1424 | 1427 |
1425 void LayerTreeHostImpl::setActiveTreeNeedsUpdateDrawProperties() { | 1428 void LayerTreeHostImpl::DidChangeTopControlsPosition() { |
| 1429 client_->SetNeedsRedrawOnImplThread(); |
1426 active_tree_->set_needs_update_draw_properties(); | 1430 active_tree_->set_needs_update_draw_properties(); |
1427 } | 1431 SetFullRootLayerDamage(); |
1428 | |
1429 void LayerTreeHostImpl::setNeedsRedraw() { | |
1430 client_->SetNeedsRedrawOnImplThread(); | |
1431 } | 1432 } |
1432 | 1433 |
1433 bool LayerTreeHostImpl::EnsureRenderSurfaceLayerList() { | 1434 bool LayerTreeHostImpl::EnsureRenderSurfaceLayerList() { |
1434 active_tree_->UpdateDrawProperties(LayerTreeImpl::UPDATE_ACTIVE_TREE); | 1435 active_tree_->UpdateDrawProperties(LayerTreeImpl::UPDATE_ACTIVE_TREE); |
1435 return !active_tree_->RenderSurfaceLayerList().empty(); | 1436 return !active_tree_->RenderSurfaceLayerList().empty(); |
1436 } | 1437 } |
1437 | 1438 |
1438 InputHandlerClient::ScrollStatus LayerTreeHostImpl::ScrollBegin( | 1439 InputHandlerClient::ScrollStatus LayerTreeHostImpl::ScrollBegin( |
1439 gfx::Point viewport_point, InputHandlerClient::ScrollInputType type) { | 1440 gfx::Point viewport_point, InputHandlerClient::ScrollInputType type) { |
1440 TRACE_EVENT0("cc", "LayerTreeHostImpl::ScrollBegin"); | 1441 TRACE_EVENT0("cc", "LayerTreeHostImpl::ScrollBegin"); |
(...skipping 646 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2087 } | 2088 } |
2088 | 2089 |
2089 void LayerTreeHostImpl::SetDebugState(const LayerTreeDebugState& debug_state) { | 2090 void LayerTreeHostImpl::SetDebugState(const LayerTreeDebugState& debug_state) { |
2090 if (debug_state_.continuous_painting != debug_state.continuous_painting) | 2091 if (debug_state_.continuous_painting != debug_state.continuous_painting) |
2091 paint_time_counter_->ClearHistory(); | 2092 paint_time_counter_->ClearHistory(); |
2092 | 2093 |
2093 debug_state_ = debug_state; | 2094 debug_state_ = debug_state; |
2094 } | 2095 } |
2095 | 2096 |
2096 } // namespace cc | 2097 } // namespace cc |
OLD | NEW |