| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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/layers/layer_impl.h" | 5 #include "cc/layers/layer_impl.h" |
| 6 | 6 |
| 7 #include "base/debug/trace_event.h" | 7 #include "base/debug/trace_event.h" |
| 8 #include "base/strings/stringprintf.h" | 8 #include "base/strings/stringprintf.h" |
| 9 #include "cc/animation/animation_registrar.h" | 9 #include "cc/animation/animation_registrar.h" |
| 10 #include "cc/animation/scrollbar_animation_controller.h" | 10 #include "cc/animation/scrollbar_animation_controller.h" |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 67 current_draw_mode_(DRAW_MODE_NONE), | 67 current_draw_mode_(DRAW_MODE_NONE), |
| 68 horizontal_scrollbar_layer_(NULL), | 68 horizontal_scrollbar_layer_(NULL), |
| 69 vertical_scrollbar_layer_(NULL) { | 69 vertical_scrollbar_layer_(NULL) { |
| 70 DCHECK_GT(layer_id_, 0); | 70 DCHECK_GT(layer_id_, 0); |
| 71 DCHECK(layer_tree_impl_); | 71 DCHECK(layer_tree_impl_); |
| 72 layer_tree_impl_->RegisterLayer(this); | 72 layer_tree_impl_->RegisterLayer(this); |
| 73 AnimationRegistrar* registrar = layer_tree_impl_->animationRegistrar(); | 73 AnimationRegistrar* registrar = layer_tree_impl_->animationRegistrar(); |
| 74 layer_animation_controller_ = | 74 layer_animation_controller_ = |
| 75 registrar->GetAnimationControllerForId(layer_id_); | 75 registrar->GetAnimationControllerForId(layer_id_); |
| 76 layer_animation_controller_->AddValueObserver(this); | 76 layer_animation_controller_->AddValueObserver(this); |
| 77 if (IsActive()) |
| 78 layer_animation_controller_->set_value_provider(this); |
| 77 } | 79 } |
| 78 | 80 |
| 79 LayerImpl::~LayerImpl() { | 81 LayerImpl::~LayerImpl() { |
| 80 DCHECK_EQ(DRAW_MODE_NONE, current_draw_mode_); | 82 DCHECK_EQ(DRAW_MODE_NONE, current_draw_mode_); |
| 81 | 83 |
| 84 layer_animation_controller_->RemoveValueObserver(this); |
| 85 layer_animation_controller_->remove_value_provider(this); |
| 86 |
| 82 layer_tree_impl_->UnregisterLayer(this); | 87 layer_tree_impl_->UnregisterLayer(this); |
| 83 layer_animation_controller_->RemoveValueObserver(this); | |
| 84 | 88 |
| 85 if (scroll_children_) { | 89 if (scroll_children_) { |
| 86 for (std::set<LayerImpl*>::iterator it = scroll_children_->begin(); | 90 for (std::set<LayerImpl*>::iterator it = scroll_children_->begin(); |
| 87 it != scroll_children_->end(); ++it) | 91 it != scroll_children_->end(); ++it) |
| 88 (*it)->scroll_parent_ = NULL; | 92 (*it)->scroll_parent_ = NULL; |
| 89 } | 93 } |
| 90 | 94 |
| 91 if (scroll_parent_) | 95 if (scroll_parent_) |
| 92 scroll_parent_->RemoveScrollChild(this); | 96 scroll_parent_->RemoveScrollChild(this); |
| 93 | 97 |
| (...skipping 586 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 680 } | 684 } |
| 681 | 685 |
| 682 for (size_t i = 0; i < children_.size(); ++i) | 686 for (size_t i = 0; i < children_.size(); ++i) |
| 683 children_[i]->ResetAllChangeTrackingForSubtree(); | 687 children_[i]->ResetAllChangeTrackingForSubtree(); |
| 684 } | 688 } |
| 685 | 689 |
| 686 bool LayerImpl::LayerIsAlwaysDamaged() const { | 690 bool LayerImpl::LayerIsAlwaysDamaged() const { |
| 687 return false; | 691 return false; |
| 688 } | 692 } |
| 689 | 693 |
| 694 gfx::Vector2dF LayerImpl::ScrollOffsetForAnimation() const { |
| 695 return TotalScrollOffset(); |
| 696 } |
| 697 |
| 690 void LayerImpl::OnFilterAnimated(const FilterOperations& filters) { | 698 void LayerImpl::OnFilterAnimated(const FilterOperations& filters) { |
| 691 SetFilters(filters); | 699 SetFilters(filters); |
| 692 } | 700 } |
| 693 | 701 |
| 694 void LayerImpl::OnOpacityAnimated(float opacity) { | 702 void LayerImpl::OnOpacityAnimated(float opacity) { |
| 695 SetOpacity(opacity); | 703 SetOpacity(opacity); |
| 696 } | 704 } |
| 697 | 705 |
| 698 void LayerImpl::OnTransformAnimated(const gfx::Transform& transform) { | 706 void LayerImpl::OnTransformAnimated(const gfx::Transform& transform) { |
| 699 SetTransform(transform); | 707 SetTransform(transform); |
| 700 } | 708 } |
| 701 | 709 |
| 710 void LayerImpl::OnScrollOffsetAnimated(gfx::Vector2dF scroll_offset) { |
| 711 // Only layers in the active tree should need to do anything here, since |
| 712 // layers in the pending tree will find out about these changes as a |
| 713 // result of the call to SetScrollDelta. |
| 714 if (!IsActive()) |
| 715 return; |
| 716 |
| 717 SetScrollDelta(scroll_offset - scroll_offset_); |
| 718 |
| 719 layer_tree_impl_->DidAnimateScrollOffset(); |
| 720 } |
| 721 |
| 702 void LayerImpl::OnAnimationWaitingForDeletion() {} | 722 void LayerImpl::OnAnimationWaitingForDeletion() {} |
| 703 | 723 |
| 704 bool LayerImpl::IsActive() const { | 724 bool LayerImpl::IsActive() const { |
| 705 return layer_tree_impl_->IsActiveTree(); | 725 return layer_tree_impl_->IsActiveTree(); |
| 706 } | 726 } |
| 707 | 727 |
| 708 void LayerImpl::SetBounds(gfx::Size bounds) { | 728 void LayerImpl::SetBounds(gfx::Size bounds) { |
| 709 if (bounds_ == bounds) | 729 if (bounds_ == bounds) |
| 710 return; | 730 return; |
| 711 | 731 |
| (...skipping 660 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1372 scoped_ptr<base::DictionaryValue> state(new base::DictionaryValue()); | 1392 scoped_ptr<base::DictionaryValue> state(new base::DictionaryValue()); |
| 1373 AsValueInto(state.get()); | 1393 AsValueInto(state.get()); |
| 1374 return state.PassAs<base::Value>(); | 1394 return state.PassAs<base::Value>(); |
| 1375 } | 1395 } |
| 1376 | 1396 |
| 1377 void LayerImpl::RunMicroBenchmark(MicroBenchmarkImpl* benchmark) { | 1397 void LayerImpl::RunMicroBenchmark(MicroBenchmarkImpl* benchmark) { |
| 1378 benchmark->RunOnLayer(this); | 1398 benchmark->RunOnLayer(this); |
| 1379 } | 1399 } |
| 1380 | 1400 |
| 1381 } // namespace cc | 1401 } // namespace cc |
| OLD | NEW |