| 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 "base/debug/trace_event.h" | 7 #include "base/debug/trace_event.h" |
| 8 #include "cc/animation/keyframed_animation_curve.h" | 8 #include "cc/animation/keyframed_animation_curve.h" |
| 9 #include "cc/animation/scrollbar_animation_controller.h" | 9 #include "cc/animation/scrollbar_animation_controller.h" |
| 10 #include "cc/debug/traced_value.h" | 10 #include "cc/debug/traced_value.h" |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 | 104 |
| 105 void LayerTreeImpl::PushPropertiesTo(LayerTreeImpl* target_tree) { | 105 void LayerTreeImpl::PushPropertiesTo(LayerTreeImpl* target_tree) { |
| 106 target_tree->SetLatencyInfo(latency_info_); | 106 target_tree->SetLatencyInfo(latency_info_); |
| 107 latency_info_.Clear(); | 107 latency_info_.Clear(); |
| 108 target_tree->SetPageScaleFactorAndLimits( | 108 target_tree->SetPageScaleFactorAndLimits( |
| 109 page_scale_factor(), min_page_scale_factor(), max_page_scale_factor()); | 109 page_scale_factor(), min_page_scale_factor(), max_page_scale_factor()); |
| 110 target_tree->SetPageScaleDelta( | 110 target_tree->SetPageScaleDelta( |
| 111 target_tree->page_scale_delta() / target_tree->sent_page_scale_delta()); | 111 target_tree->page_scale_delta() / target_tree->sent_page_scale_delta()); |
| 112 target_tree->set_sent_page_scale_delta(1); | 112 target_tree->set_sent_page_scale_delta(1); |
| 113 | 113 |
| 114 if (settings().use_pinch_virtual_viewport) |
| 115 target_tree->SetPinchViewportLayerIds(page_scale_layer_->id(), |
| 116 inner_viewport_scroll_layer_->id(), |
| 117 outer_viewport_scroll_layer_->id()); |
| 118 |
| 114 // This should match the property synchronization in | 119 // This should match the property synchronization in |
| 115 // LayerTreeHost::finishCommitOnImplThread(). | 120 // LayerTreeHost::finishCommitOnImplThread(). |
| 116 target_tree->set_source_frame_number(source_frame_number()); | 121 target_tree->set_source_frame_number(source_frame_number()); |
| 117 target_tree->set_background_color(background_color()); | 122 target_tree->set_background_color(background_color()); |
| 118 target_tree->set_has_transparent_background(has_transparent_background()); | 123 target_tree->set_has_transparent_background(has_transparent_background()); |
| 119 | 124 |
| 120 if (ContentsTexturesPurged()) | 125 if (ContentsTexturesPurged()) |
| 121 target_tree->SetContentsTexturesPurged(); | 126 target_tree->SetContentsTexturesPurged(); |
| 122 else | 127 else |
| 123 target_tree->ResetContentsTexturesPurged(); | 128 target_tree->ResetContentsTexturesPurged(); |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 215 gfx::Vector2dF max_scroll = gfx::Rect(ScrollableSize()).bottom_right() - | 220 gfx::Vector2dF max_scroll = gfx::Rect(ScrollableSize()).bottom_right() - |
| 216 gfx::RectF(ScrollableViewportSize()).bottom_right(); | 221 gfx::RectF(ScrollableViewportSize()).bottom_right(); |
| 217 | 222 |
| 218 // The viewport may be larger than the contents in some cases, such as | 223 // The viewport may be larger than the contents in some cases, such as |
| 219 // having a vertical scrollbar but no horizontal overflow. | 224 // having a vertical scrollbar but no horizontal overflow. |
| 220 max_scroll.SetToMax(gfx::Vector2dF()); | 225 max_scroll.SetToMax(gfx::Vector2dF()); |
| 221 | 226 |
| 222 root_scroll_layer_->SetMaxScrollOffset(gfx::ToFlooredVector2d(max_scroll)); | 227 root_scroll_layer_->SetMaxScrollOffset(gfx::ToFlooredVector2d(max_scroll)); |
| 223 } | 228 } |
| 224 | 229 |
| 230 void LayerTreeImpl::SetPinchViewportLayerIds( |
| 231 int page_scale_layer_id, |
| 232 int inner_viewport_scroll_layer_id, |
| 233 int outer_viewport_scroll_layer_id) { |
| 234 page_scale_layer_ = FindPendingTreeLayerById(page_scale_layer_id); |
| 235 inner_viewport_scroll_layer_ = |
| 236 FindPendingTreeLayerById(inner_viewport_scroll_layer_id); |
| 237 outer_viewport_scroll_layer_ = |
| 238 FindPendingTreeLayerById(outer_viewport_scroll_layer_id); |
| 239 } |
| 240 |
| 225 void LayerTreeImpl::UpdateSolidColorScrollbars() { | 241 void LayerTreeImpl::UpdateSolidColorScrollbars() { |
| 226 DCHECK(settings().solid_color_scrollbars); | 242 DCHECK(settings().solid_color_scrollbars); |
| 227 | 243 |
| 228 LayerImpl* root_scroll = RootScrollLayer(); | 244 LayerImpl* root_scroll = RootScrollLayer(); |
| 229 DCHECK(root_scroll); | 245 DCHECK(root_scroll); |
| 230 DCHECK(IsActiveTree()); | 246 DCHECK(IsActiveTree()); |
| 231 | 247 |
| 232 gfx::RectF scrollable_viewport( | 248 gfx::RectF scrollable_viewport( |
| 233 gfx::PointAtOffsetFromOrigin(root_scroll->TotalScrollOffset()), | 249 gfx::PointAtOffsetFromOrigin(root_scroll->TotalScrollOffset()), |
| 234 ScrollableViewportSize()); | 250 ScrollableViewportSize()); |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 273 return; | 289 return; |
| 274 | 290 |
| 275 if (!root_layer()) | 291 if (!root_layer()) |
| 276 return; | 292 return; |
| 277 | 293 |
| 278 { | 294 { |
| 279 TRACE_EVENT1("cc", | 295 TRACE_EVENT1("cc", |
| 280 "LayerTreeImpl::UpdateDrawProperties", | 296 "LayerTreeImpl::UpdateDrawProperties", |
| 281 "IsActive", | 297 "IsActive", |
| 282 IsActiveTree()); | 298 IsActiveTree()); |
| 299 |
| 283 LayerTreeHostCommon::CalculateDrawProperties( | 300 LayerTreeHostCommon::CalculateDrawProperties( |
| 284 root_layer(), | 301 root_layer(), |
| 285 layer_tree_host_impl_->DeviceViewport().size(), | 302 layer_tree_host_impl_->DeviceViewport().size(), |
| 286 layer_tree_host_impl_->DeviceTransform(), | 303 layer_tree_host_impl_->DeviceTransform(), |
| 287 device_scale_factor(), | 304 device_scale_factor(), |
| 288 total_page_scale_factor(), | 305 total_page_scale_factor(), |
| 289 root_scroll_layer_, | 306 page_scale_layer_ ? page_scale_layer_ : root_scroll_layer_, |
| 290 MaxTextureSize(), | 307 MaxTextureSize(), |
| 291 settings().can_use_lcd_text, | 308 settings().can_use_lcd_text, |
| 292 settings().layer_transforms_should_scale_layer_contents, | 309 settings().layer_transforms_should_scale_layer_contents, |
| 293 &render_surface_layer_list_); | 310 &render_surface_layer_list_); |
| 294 } | 311 } |
| 295 | 312 |
| 296 DCHECK(!needs_update_draw_properties_) << | 313 DCHECK(!needs_update_draw_properties_) << |
| 297 "CalcDrawProperties should not set_needs_update_draw_properties()"; | 314 "CalcDrawProperties should not set_needs_update_draw_properties()"; |
| 298 } | 315 } |
| 299 | 316 |
| (...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 571 | 588 |
| 572 void LayerTreeImpl::ClearLatencyInfo() { | 589 void LayerTreeImpl::ClearLatencyInfo() { |
| 573 latency_info_.Clear(); | 590 latency_info_.Clear(); |
| 574 } | 591 } |
| 575 | 592 |
| 576 void LayerTreeImpl::WillModifyTilePriorities() { | 593 void LayerTreeImpl::WillModifyTilePriorities() { |
| 577 layer_tree_host_impl_->SetNeedsManageTiles(); | 594 layer_tree_host_impl_->SetNeedsManageTiles(); |
| 578 } | 595 } |
| 579 | 596 |
| 580 } // namespace cc | 597 } // namespace cc |
| OLD | NEW |