| 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/json/json_reader.h" | 7 #include "base/json/json_reader.h" |
| 8 #include "base/strings/stringprintf.h" | 8 #include "base/strings/stringprintf.h" |
| 9 #include "base/trace_event/trace_event.h" | 9 #include "base/trace_event/trace_event.h" |
| 10 #include "base/trace_event/trace_event_argument.h" | 10 #include "base/trace_event/trace_event_argument.h" |
| (...skipping 1119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1130 } | 1130 } |
| 1131 | 1131 |
| 1132 void LayerImpl::PushScrollOffsetFromMainThreadAndClobberActiveValue( | 1132 void LayerImpl::PushScrollOffsetFromMainThreadAndClobberActiveValue( |
| 1133 const gfx::ScrollOffset& scroll_offset) { | 1133 const gfx::ScrollOffset& scroll_offset) { |
| 1134 scroll_offset_->set_clobber_active_value(); | 1134 scroll_offset_->set_clobber_active_value(); |
| 1135 PushScrollOffset(&scroll_offset); | 1135 PushScrollOffset(&scroll_offset); |
| 1136 } | 1136 } |
| 1137 | 1137 |
| 1138 gfx::ScrollOffset LayerImpl::PullDeltaForMainThread() { | 1138 gfx::ScrollOffset LayerImpl::PullDeltaForMainThread() { |
| 1139 RefreshFromScrollDelegate(); | 1139 RefreshFromScrollDelegate(); |
| 1140 return scroll_offset_->PullDeltaForMainThread(); | 1140 |
| 1141 // TODO(miletus): Remove all this temporary flooring machinery when |
| 1142 // Blink fully supports fractional scrolls. |
| 1143 gfx::ScrollOffset current_offset = CurrentScrollOffset(); |
| 1144 gfx::Vector2dF current_delta = ScrollDelta(); |
| 1145 gfx::Vector2dF floored_delta(floor(current_delta.x()), |
| 1146 floor(current_delta.y())); |
| 1147 gfx::Vector2dF diff_delta = floored_delta - current_delta; |
| 1148 gfx::ScrollOffset tmp_offset = ScrollOffsetWithDelta(current_offset, |
| 1149 diff_delta); |
| 1150 scroll_offset_->SetCurrent(tmp_offset); |
| 1151 gfx::ScrollOffset delta = scroll_offset_->PullDeltaForMainThread(); |
| 1152 scroll_offset_->SetCurrent(current_offset); |
| 1153 return delta; |
| 1141 } | 1154 } |
| 1142 | 1155 |
| 1143 void LayerImpl::RefreshFromScrollDelegate() { | 1156 void LayerImpl::RefreshFromScrollDelegate() { |
| 1144 if (scroll_offset_delegate_) { | 1157 if (scroll_offset_delegate_) { |
| 1145 SetCurrentScrollOffset( | 1158 SetCurrentScrollOffset( |
| 1146 gfx::ScrollOffset(scroll_offset_delegate_->GetCurrentScrollOffset())); | 1159 gfx::ScrollOffset(scroll_offset_delegate_->GetCurrentScrollOffset())); |
| 1147 } | 1160 } |
| 1148 } | 1161 } |
| 1149 | 1162 |
| 1150 gfx::ScrollOffset LayerImpl::CurrentScrollOffset() const { | 1163 gfx::ScrollOffset LayerImpl::CurrentScrollOffset() const { |
| (...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1604 gfx::Transform scaled_draw_transform = | 1617 gfx::Transform scaled_draw_transform = |
| 1605 draw_properties_.target_space_transform; | 1618 draw_properties_.target_space_transform; |
| 1606 scaled_draw_transform.Scale(SK_MScalar1 / scale, SK_MScalar1 / scale); | 1619 scaled_draw_transform.Scale(SK_MScalar1 / scale, SK_MScalar1 / scale); |
| 1607 gfx::Size scaled_content_bounds = | 1620 gfx::Size scaled_content_bounds = |
| 1608 gfx::ToCeiledSize(gfx::ScaleSize(content_bounds(), scale)); | 1621 gfx::ToCeiledSize(gfx::ScaleSize(content_bounds(), scale)); |
| 1609 return MathUtil::MapEnclosingClippedRect(scaled_draw_transform, | 1622 return MathUtil::MapEnclosingClippedRect(scaled_draw_transform, |
| 1610 gfx::Rect(scaled_content_bounds)); | 1623 gfx::Rect(scaled_content_bounds)); |
| 1611 } | 1624 } |
| 1612 | 1625 |
| 1613 } // namespace cc | 1626 } // namespace cc |
| OLD | NEW |