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 |