| 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/json/json_reader.h" | 8 #include "base/json/json_reader.h" |
| 9 #include "base/strings/stringprintf.h" | 9 #include "base/strings/stringprintf.h" |
| 10 #include "cc/animation/animation_registrar.h" | 10 #include "cc/animation/animation_registrar.h" |
| (...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 369 void LayerImpl::SetSentScrollDelta(gfx::Vector2d sent_scroll_delta) { | 369 void LayerImpl::SetSentScrollDelta(gfx::Vector2d sent_scroll_delta) { |
| 370 // Pending tree never has sent scroll deltas | 370 // Pending tree never has sent scroll deltas |
| 371 DCHECK(layer_tree_impl()->IsActiveTree()); | 371 DCHECK(layer_tree_impl()->IsActiveTree()); |
| 372 | 372 |
| 373 if (sent_scroll_delta_ == sent_scroll_delta) | 373 if (sent_scroll_delta_ == sent_scroll_delta) |
| 374 return; | 374 return; |
| 375 | 375 |
| 376 sent_scroll_delta_ = sent_scroll_delta; | 376 sent_scroll_delta_ = sent_scroll_delta; |
| 377 } | 377 } |
| 378 | 378 |
| 379 gfx::Vector2dF LayerImpl::ScrollBy(gfx::Vector2dF scroll) { | 379 gfx::Vector2dF LayerImpl::ScrollBy(const gfx::Vector2dF& scroll) { |
| 380 DCHECK(scrollable()); | 380 DCHECK(scrollable()); |
| 381 gfx::Vector2dF min_delta = -scroll_offset_; | 381 gfx::Vector2dF min_delta = -scroll_offset_; |
| 382 gfx::Vector2dF max_delta = max_scroll_offset_ - scroll_offset_; | 382 gfx::Vector2dF max_delta = max_scroll_offset_ - scroll_offset_; |
| 383 // Clamp new_delta so that position + delta stays within scroll bounds. | 383 // Clamp new_delta so that position + delta stays within scroll bounds. |
| 384 gfx::Vector2dF new_delta = (ScrollDelta() + scroll); | 384 gfx::Vector2dF new_delta = (ScrollDelta() + scroll); |
| 385 new_delta.SetToMax(min_delta); | 385 new_delta.SetToMax(min_delta); |
| 386 new_delta.SetToMin(max_delta); | 386 new_delta.SetToMin(max_delta); |
| 387 gfx::Vector2dF unscrolled = | 387 gfx::Vector2dF unscrolled = |
| 388 ScrollDelta() + scroll - new_delta; | 388 ScrollDelta() + scroll - new_delta; |
| 389 SetScrollDelta(new_delta); | 389 SetScrollDelta(new_delta); |
| (...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 724 } | 724 } |
| 725 | 725 |
| 726 void LayerImpl::OnOpacityAnimated(float opacity) { | 726 void LayerImpl::OnOpacityAnimated(float opacity) { |
| 727 SetOpacity(opacity); | 727 SetOpacity(opacity); |
| 728 } | 728 } |
| 729 | 729 |
| 730 void LayerImpl::OnTransformAnimated(const gfx::Transform& transform) { | 730 void LayerImpl::OnTransformAnimated(const gfx::Transform& transform) { |
| 731 SetTransform(transform); | 731 SetTransform(transform); |
| 732 } | 732 } |
| 733 | 733 |
| 734 void LayerImpl::OnScrollOffsetAnimated(gfx::Vector2dF scroll_offset) { | 734 void LayerImpl::OnScrollOffsetAnimated(const gfx::Vector2dF& scroll_offset) { |
| 735 // Only layers in the active tree should need to do anything here, since | 735 // Only layers in the active tree should need to do anything here, since |
| 736 // layers in the pending tree will find out about these changes as a | 736 // layers in the pending tree will find out about these changes as a |
| 737 // result of the call to SetScrollDelta. | 737 // result of the call to SetScrollDelta. |
| 738 if (!IsActive()) | 738 if (!IsActive()) |
| 739 return; | 739 return; |
| 740 | 740 |
| 741 SetScrollDelta(scroll_offset - scroll_offset_); | 741 SetScrollDelta(scroll_offset - scroll_offset_); |
| 742 | 742 |
| 743 layer_tree_impl_->DidAnimateScrollOffset(); | 743 layer_tree_impl_->DidAnimateScrollOffset(); |
| 744 } | 744 } |
| (...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1085 bool LayerImpl::IsExternalFlingActive() const { | 1085 bool LayerImpl::IsExternalFlingActive() const { |
| 1086 return scroll_offset_delegate_ && | 1086 return scroll_offset_delegate_ && |
| 1087 scroll_offset_delegate_->IsExternalFlingActive(); | 1087 scroll_offset_delegate_->IsExternalFlingActive(); |
| 1088 } | 1088 } |
| 1089 | 1089 |
| 1090 void LayerImpl::SetScrollOffset(gfx::Vector2d scroll_offset) { | 1090 void LayerImpl::SetScrollOffset(gfx::Vector2d scroll_offset) { |
| 1091 SetScrollOffsetAndDelta(scroll_offset, ScrollDelta()); | 1091 SetScrollOffsetAndDelta(scroll_offset, ScrollDelta()); |
| 1092 } | 1092 } |
| 1093 | 1093 |
| 1094 void LayerImpl::SetScrollOffsetAndDelta(gfx::Vector2d scroll_offset, | 1094 void LayerImpl::SetScrollOffsetAndDelta(gfx::Vector2d scroll_offset, |
| 1095 gfx::Vector2dF scroll_delta) { | 1095 const gfx::Vector2dF& scroll_delta) { |
| 1096 bool changed = false; | 1096 bool changed = false; |
| 1097 | 1097 |
| 1098 if (scroll_offset_ != scroll_offset) { | 1098 if (scroll_offset_ != scroll_offset) { |
| 1099 changed = true; | 1099 changed = true; |
| 1100 scroll_offset_ = scroll_offset; | 1100 scroll_offset_ = scroll_offset; |
| 1101 | 1101 |
| 1102 if (scroll_offset_delegate_) | 1102 if (scroll_offset_delegate_) |
| 1103 scroll_offset_delegate_->SetTotalScrollOffset(TotalScrollOffset()); | 1103 scroll_offset_delegate_->SetTotalScrollOffset(TotalScrollOffset()); |
| 1104 } | 1104 } |
| 1105 | 1105 |
| (...skipping 26 matching lines...) Expand all Loading... |
| 1132 UpdateScrollbarPositions(); | 1132 UpdateScrollbarPositions(); |
| 1133 } | 1133 } |
| 1134 } | 1134 } |
| 1135 | 1135 |
| 1136 gfx::Vector2dF LayerImpl::ScrollDelta() const { | 1136 gfx::Vector2dF LayerImpl::ScrollDelta() const { |
| 1137 if (scroll_offset_delegate_) | 1137 if (scroll_offset_delegate_) |
| 1138 return scroll_offset_delegate_->GetTotalScrollOffset() - scroll_offset_; | 1138 return scroll_offset_delegate_->GetTotalScrollOffset() - scroll_offset_; |
| 1139 return scroll_delta_; | 1139 return scroll_delta_; |
| 1140 } | 1140 } |
| 1141 | 1141 |
| 1142 void LayerImpl::SetScrollDelta(gfx::Vector2dF scroll_delta) { | 1142 void LayerImpl::SetScrollDelta(const gfx::Vector2dF& scroll_delta) { |
| 1143 SetScrollOffsetAndDelta(scroll_offset_, scroll_delta); | 1143 SetScrollOffsetAndDelta(scroll_offset_, scroll_delta); |
| 1144 } | 1144 } |
| 1145 | 1145 |
| 1146 gfx::Vector2dF LayerImpl::TotalScrollOffset() const { | 1146 gfx::Vector2dF LayerImpl::TotalScrollOffset() const { |
| 1147 return scroll_offset_ + ScrollDelta(); | 1147 return scroll_offset_ + ScrollDelta(); |
| 1148 } | 1148 } |
| 1149 | 1149 |
| 1150 void LayerImpl::SetDoubleSided(bool double_sided) { | 1150 void LayerImpl::SetDoubleSided(bool double_sided) { |
| 1151 if (double_sided_ == double_sided) | 1151 if (double_sided_ == double_sided) |
| 1152 return; | 1152 return; |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1337 scoped_ptr<base::DictionaryValue> state(new base::DictionaryValue()); | 1337 scoped_ptr<base::DictionaryValue> state(new base::DictionaryValue()); |
| 1338 AsValueInto(state.get()); | 1338 AsValueInto(state.get()); |
| 1339 return state.PassAs<base::Value>(); | 1339 return state.PassAs<base::Value>(); |
| 1340 } | 1340 } |
| 1341 | 1341 |
| 1342 void LayerImpl::RunMicroBenchmark(MicroBenchmarkImpl* benchmark) { | 1342 void LayerImpl::RunMicroBenchmark(MicroBenchmarkImpl* benchmark) { |
| 1343 benchmark->RunOnLayer(this); | 1343 benchmark->RunOnLayer(this); |
| 1344 } | 1344 } |
| 1345 | 1345 |
| 1346 } // namespace cc | 1346 } // namespace cc |
| OLD | NEW |