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 1200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1211 } | 1211 } |
1212 if (IsActive()) { | 1212 if (IsActive()) { |
1213 changed |= scroll_offset_->PushPendingToActive(); | 1213 changed |= scroll_offset_->PushPendingToActive(); |
1214 } | 1214 } |
1215 | 1215 |
1216 if (changed) | 1216 if (changed) |
1217 DidUpdateScrollOffset(false); | 1217 DidUpdateScrollOffset(false); |
1218 } | 1218 } |
1219 | 1219 |
1220 void LayerImpl::DidUpdateScrollOffset(bool is_from_root_delegate) { | 1220 void LayerImpl::DidUpdateScrollOffset(bool is_from_root_delegate) { |
| 1221 DCHECK(scroll_offset_); |
| 1222 |
1221 if (!is_from_root_delegate) | 1223 if (!is_from_root_delegate) |
1222 layer_tree_impl()->DidUpdateScrollOffset(id()); | 1224 layer_tree_impl()->DidUpdateScrollOffset(id()); |
1223 NoteLayerPropertyChangedForSubtree(); | 1225 NoteLayerPropertyChangedForSubtree(); |
1224 ScrollbarParametersDidChange(false); | 1226 ScrollbarParametersDidChange(false); |
| 1227 |
| 1228 // TODO(enne): in the future, scrolling should update the scroll tree |
| 1229 // directly instead of going through layers. |
| 1230 if (transform_tree_index_ != -1) { |
| 1231 TransformTree& transform_tree = |
| 1232 layer_tree_impl()->property_trees()->transform_tree; |
| 1233 TransformNode* node = transform_tree.Node(transform_tree_index_); |
| 1234 node->data.scroll_offset = scroll_offset_->Current(IsActive()); |
| 1235 node->data.needs_local_transform_update = true; |
| 1236 transform_tree.set_needs_update(true); |
| 1237 } |
| 1238 |
1225 // Inform the pending twin that a property changed. | 1239 // Inform the pending twin that a property changed. |
1226 if (layer_tree_impl()->IsActiveTree()) { | 1240 if (layer_tree_impl()->IsActiveTree()) { |
1227 LayerImpl* pending_twin = layer_tree_impl()->FindPendingTreeLayerById(id()); | 1241 LayerImpl* pending_twin = layer_tree_impl()->FindPendingTreeLayerById(id()); |
1228 if (pending_twin) | 1242 if (pending_twin) |
1229 pending_twin->NoteLayerPropertyChangedForSubtree(); | 1243 pending_twin->DidUpdateScrollOffset(is_from_root_delegate); |
1230 } | 1244 } |
1231 } | 1245 } |
1232 | 1246 |
1233 void LayerImpl::SetDoubleSided(bool double_sided) { | 1247 void LayerImpl::SetDoubleSided(bool double_sided) { |
1234 if (double_sided_ == double_sided) | 1248 if (double_sided_ == double_sided) |
1235 return; | 1249 return; |
1236 | 1250 |
1237 double_sided_ = double_sided; | 1251 double_sided_ = double_sided; |
1238 NoteLayerPropertyChangedForSubtree(); | 1252 NoteLayerPropertyChangedForSubtree(); |
1239 } | 1253 } |
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1642 gfx::Transform scaled_draw_transform = | 1656 gfx::Transform scaled_draw_transform = |
1643 draw_properties_.target_space_transform; | 1657 draw_properties_.target_space_transform; |
1644 scaled_draw_transform.Scale(SK_MScalar1 / scale, SK_MScalar1 / scale); | 1658 scaled_draw_transform.Scale(SK_MScalar1 / scale, SK_MScalar1 / scale); |
1645 gfx::Size scaled_content_bounds = | 1659 gfx::Size scaled_content_bounds = |
1646 gfx::ToCeiledSize(gfx::ScaleSize(content_bounds(), scale)); | 1660 gfx::ToCeiledSize(gfx::ScaleSize(content_bounds(), scale)); |
1647 return MathUtil::MapEnclosingClippedRect(scaled_draw_transform, | 1661 return MathUtil::MapEnclosingClippedRect(scaled_draw_transform, |
1648 gfx::Rect(scaled_content_bounds)); | 1662 gfx::Rect(scaled_content_bounds)); |
1649 } | 1663 } |
1650 | 1664 |
1651 } // namespace cc | 1665 } // namespace cc |
OLD | NEW |