| 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 <limits> | 7 #include <limits> |
| 8 #include <set> | 8 #include <set> |
| 9 | 9 |
| 10 #include "base/debug/trace_event.h" | 10 #include "base/debug/trace_event.h" |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 68 | 68 |
| 69 private: | 69 private: |
| 70 LayerImpl* layer_; | 70 LayerImpl* layer_; |
| 71 LayerScrollOffsetDelegate* delegate_; | 71 LayerScrollOffsetDelegate* delegate_; |
| 72 LayerTreeImpl* layer_tree_impl_; | 72 LayerTreeImpl* layer_tree_impl_; |
| 73 gfx::ScrollOffset last_set_scroll_offset_; | 73 gfx::ScrollOffset last_set_scroll_offset_; |
| 74 }; | 74 }; |
| 75 | 75 |
| 76 LayerTreeImpl::LayerTreeImpl( | 76 LayerTreeImpl::LayerTreeImpl( |
| 77 LayerTreeHostImpl* layer_tree_host_impl, | 77 LayerTreeHostImpl* layer_tree_host_impl, |
| 78 scoped_refptr<SyncedProperty<ScaleGroup>> page_scale_factor) | 78 scoped_refptr<SyncedProperty<ScaleGroup>> page_scale_factor, |
| 79 scoped_refptr<SyncedElasticOverscroll> elastic_overscroll) |
| 79 : layer_tree_host_impl_(layer_tree_host_impl), | 80 : layer_tree_host_impl_(layer_tree_host_impl), |
| 80 source_frame_number_(-1), | 81 source_frame_number_(-1), |
| 81 hud_layer_(0), | 82 hud_layer_(0), |
| 82 currently_scrolling_layer_(NULL), | 83 currently_scrolling_layer_(NULL), |
| 83 root_layer_scroll_offset_delegate_(NULL), | 84 root_layer_scroll_offset_delegate_(NULL), |
| 84 background_color_(0), | 85 background_color_(0), |
| 85 has_transparent_background_(false), | 86 has_transparent_background_(false), |
| 87 overscroll_elasticity_layer_(NULL), |
| 86 page_scale_layer_(NULL), | 88 page_scale_layer_(NULL), |
| 87 inner_viewport_scroll_layer_(NULL), | 89 inner_viewport_scroll_layer_(NULL), |
| 88 outer_viewport_scroll_layer_(NULL), | 90 outer_viewport_scroll_layer_(NULL), |
| 89 page_scale_factor_(page_scale_factor), | 91 page_scale_factor_(page_scale_factor), |
| 90 min_page_scale_factor_(0), | 92 min_page_scale_factor_(0), |
| 91 max_page_scale_factor_(0), | 93 max_page_scale_factor_(0), |
| 94 elastic_overscroll_(elastic_overscroll), |
| 92 scrolling_layer_id_from_previous_tree_(0), | 95 scrolling_layer_id_from_previous_tree_(0), |
| 93 contents_textures_purged_(false), | 96 contents_textures_purged_(false), |
| 94 viewport_size_invalid_(false), | 97 viewport_size_invalid_(false), |
| 95 needs_update_draw_properties_(true), | 98 needs_update_draw_properties_(true), |
| 96 needs_full_tree_sync_(true), | 99 needs_full_tree_sync_(true), |
| 97 next_activation_forces_redraw_(false), | 100 next_activation_forces_redraw_(false), |
| 98 has_ever_been_drawn_(false), | 101 has_ever_been_drawn_(false), |
| 99 render_surface_layer_list_id_(0), | 102 render_surface_layer_list_id_(0), |
| 100 top_controls_shrink_blink_size_(false), | 103 top_controls_shrink_blink_size_(false), |
| 101 top_controls_height_(0), | 104 top_controls_height_(0), |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 223 target_tree->top_controls_content_offset_ = top_controls_content_offset_; | 226 target_tree->top_controls_content_offset_ = top_controls_content_offset_; |
| 224 target_tree->top_controls_delta_ = target_tree->top_controls_delta_ - | 227 target_tree->top_controls_delta_ = target_tree->top_controls_delta_ - |
| 225 target_tree->sent_top_controls_delta_ - | 228 target_tree->sent_top_controls_delta_ - |
| 226 top_controls_height_delta; | 229 top_controls_height_delta; |
| 227 target_tree->sent_top_controls_delta_ = 0.f; | 230 target_tree->sent_top_controls_delta_ = 0.f; |
| 228 | 231 |
| 229 // Active tree already shares the page_scale_factor object with pending | 232 // Active tree already shares the page_scale_factor object with pending |
| 230 // tree so only the limits need to be provided. | 233 // tree so only the limits need to be provided. |
| 231 target_tree->PushPageScaleFactorAndLimits(nullptr, min_page_scale_factor(), | 234 target_tree->PushPageScaleFactorAndLimits(nullptr, min_page_scale_factor(), |
| 232 max_page_scale_factor()); | 235 max_page_scale_factor()); |
| 236 target_tree->elastic_overscroll()->PushPendingToActive(); |
| 233 | 237 |
| 234 target_tree->pending_page_scale_animation_ = | 238 target_tree->pending_page_scale_animation_ = |
| 235 pending_page_scale_animation_.Pass(); | 239 pending_page_scale_animation_.Pass(); |
| 236 | 240 |
| 237 if (page_scale_layer_ && inner_viewport_scroll_layer_) { | 241 if (page_scale_layer_ && inner_viewport_scroll_layer_) { |
| 238 target_tree->SetViewportLayersFromIds( | 242 target_tree->SetViewportLayersFromIds( |
| 239 overscroll_elasticity_layer_ ? overscroll_elasticity_layer_->id() | 243 overscroll_elasticity_layer_ ? overscroll_elasticity_layer_->id() |
| 240 : Layer::INVALID_ID, | 244 : Layer::INVALID_ID, |
| 241 page_scale_layer_->id(), inner_viewport_scroll_layer_->id(), | 245 page_scale_layer_->id(), inner_viewport_scroll_layer_->id(), |
| 242 outer_viewport_scroll_layer_ ? outer_viewport_scroll_layer_->id() | 246 outer_viewport_scroll_layer_ ? outer_viewport_scroll_layer_->id() |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 421 } | 425 } |
| 422 | 426 |
| 423 static void ApplySentScrollDeltasFromAbortedCommitTo(LayerImpl* layer) { | 427 static void ApplySentScrollDeltasFromAbortedCommitTo(LayerImpl* layer) { |
| 424 layer->ApplySentScrollDeltasFromAbortedCommit(); | 428 layer->ApplySentScrollDeltasFromAbortedCommit(); |
| 425 } | 429 } |
| 426 | 430 |
| 427 void LayerTreeImpl::ApplySentScrollAndScaleDeltasFromAbortedCommit() { | 431 void LayerTreeImpl::ApplySentScrollAndScaleDeltasFromAbortedCommit() { |
| 428 DCHECK(IsActiveTree()); | 432 DCHECK(IsActiveTree()); |
| 429 | 433 |
| 430 page_scale_factor()->AbortCommit(); | 434 page_scale_factor()->AbortCommit(); |
| 435 elastic_overscroll()->AbortCommit(); |
| 431 | 436 |
| 432 top_controls_content_offset_ += sent_top_controls_delta_; | 437 top_controls_content_offset_ += sent_top_controls_delta_; |
| 433 top_controls_delta_ -= sent_top_controls_delta_; | 438 top_controls_delta_ -= sent_top_controls_delta_; |
| 434 sent_top_controls_delta_ = 0.f; | 439 sent_top_controls_delta_ = 0.f; |
| 435 | 440 |
| 436 if (!root_layer()) | 441 if (!root_layer()) |
| 437 return; | 442 return; |
| 438 | 443 |
| 439 LayerTreeHostCommon::CallFunctionForSubtree( | 444 LayerTreeHostCommon::CallFunctionForSubtree( |
| 440 root_layer(), base::Bind(&ApplySentScrollDeltasFromAbortedCommitTo)); | 445 root_layer(), base::Bind(&ApplySentScrollDeltasFromAbortedCommitTo)); |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 517 page_scale_layer_ ? page_scale_layer_ : InnerViewportContainerLayer(); | 522 page_scale_layer_ ? page_scale_layer_ : InnerViewportContainerLayer(); |
| 518 bool can_render_to_separate_surface = | 523 bool can_render_to_separate_surface = |
| 519 (layer_tree_host_impl_->GetDrawMode() != | 524 (layer_tree_host_impl_->GetDrawMode() != |
| 520 DRAW_MODE_RESOURCELESS_SOFTWARE); | 525 DRAW_MODE_RESOURCELESS_SOFTWARE); |
| 521 | 526 |
| 522 ++render_surface_layer_list_id_; | 527 ++render_surface_layer_list_id_; |
| 523 LayerTreeHostCommon::CalcDrawPropsImplInputs inputs( | 528 LayerTreeHostCommon::CalcDrawPropsImplInputs inputs( |
| 524 root_layer(), DrawViewportSize(), | 529 root_layer(), DrawViewportSize(), |
| 525 layer_tree_host_impl_->DrawTransform(), device_scale_factor(), | 530 layer_tree_host_impl_->DrawTransform(), device_scale_factor(), |
| 526 current_page_scale_factor(), page_scale_layer, | 531 current_page_scale_factor(), page_scale_layer, |
| 527 resource_provider()->max_texture_size(), settings().can_use_lcd_text, | 532 elastic_overscroll()->Current(IsActiveTree()), |
| 528 settings().layers_always_allowed_lcd_text, | 533 overscroll_elasticity_layer_, resource_provider()->max_texture_size(), |
| 534 settings().can_use_lcd_text, settings().layers_always_allowed_lcd_text, |
| 529 can_render_to_separate_surface, | 535 can_render_to_separate_surface, |
| 530 settings().layer_transforms_should_scale_layer_contents, | 536 settings().layer_transforms_should_scale_layer_contents, |
| 531 &render_surface_layer_list_, render_surface_layer_list_id_); | 537 &render_surface_layer_list_, render_surface_layer_list_id_); |
| 532 LayerTreeHostCommon::CalculateDrawProperties(&inputs); | 538 LayerTreeHostCommon::CalculateDrawProperties(&inputs); |
| 533 } | 539 } |
| 534 | 540 |
| 535 { | 541 { |
| 536 TRACE_EVENT_BEGIN2("cc", "LayerTreeImpl::UpdateTilePriorities", "IsActive", | 542 TRACE_EVENT_BEGIN2("cc", "LayerTreeImpl::UpdateTilePriorities", "IsActive", |
| 537 IsActiveTree(), "SourceFrameNumber", | 543 IsActiveTree(), "SourceFrameNumber", |
| 538 source_frame_number_); | 544 source_frame_number_); |
| (...skipping 974 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1513 scoped_ptr<PendingPageScaleAnimation> pending_animation) { | 1519 scoped_ptr<PendingPageScaleAnimation> pending_animation) { |
| 1514 pending_page_scale_animation_ = pending_animation.Pass(); | 1520 pending_page_scale_animation_ = pending_animation.Pass(); |
| 1515 } | 1521 } |
| 1516 | 1522 |
| 1517 scoped_ptr<PendingPageScaleAnimation> | 1523 scoped_ptr<PendingPageScaleAnimation> |
| 1518 LayerTreeImpl::TakePendingPageScaleAnimation() { | 1524 LayerTreeImpl::TakePendingPageScaleAnimation() { |
| 1519 return pending_page_scale_animation_.Pass(); | 1525 return pending_page_scale_animation_.Pass(); |
| 1520 } | 1526 } |
| 1521 | 1527 |
| 1522 } // namespace cc | 1528 } // namespace cc |
| OLD | NEW |