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/picture_layer_impl.h" | 5 #include "cc/layers/picture_layer_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <limits> | 8 #include <limits> |
9 | 9 |
10 #include "base/debug/trace_event_argument.h" | 10 #include "base/debug/trace_event_argument.h" |
(...skipping 925 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
936 return twin_had_missing_tile; | 936 return twin_had_missing_tile; |
937 } | 937 } |
938 | 938 |
939 void PictureLayerImpl::DoPostCommitInitialization() { | 939 void PictureLayerImpl::DoPostCommitInitialization() { |
940 DCHECK(needs_post_commit_initialization_); | 940 DCHECK(needs_post_commit_initialization_); |
941 DCHECK(layer_tree_impl()->IsPendingTree()); | 941 DCHECK(layer_tree_impl()->IsPendingTree()); |
942 | 942 |
943 if (!tilings_) | 943 if (!tilings_) |
944 tilings_.reset(new PictureLayerTilingSet(this, bounds())); | 944 tilings_.reset(new PictureLayerTilingSet(this, bounds())); |
945 | 945 |
946 DCHECK(!twin_layer_); | |
947 twin_layer_ = static_cast<PictureLayerImpl*>( | |
948 layer_tree_impl()->FindActiveTreeLayerById(id())); | |
949 if (twin_layer_) { | 946 if (twin_layer_) { |
950 DCHECK(!twin_layer_->twin_layer_); | |
951 twin_layer_->twin_layer_ = this; | |
952 // If the twin has never been pushed to, do not sync from it. | 947 // If the twin has never been pushed to, do not sync from it. |
953 // This can happen if this function is called during activation. | 948 // This can happen if this function is called during activation. |
954 if (!twin_layer_->needs_post_commit_initialization_) | 949 if (!twin_layer_->needs_post_commit_initialization_) |
955 SyncFromActiveLayer(twin_layer_); | 950 SyncFromActiveLayer(twin_layer_); |
956 } | 951 } |
957 | 952 |
958 needs_post_commit_initialization_ = false; | 953 needs_post_commit_initialization_ = false; |
959 } | 954 } |
960 | 955 |
| 956 void PictureLayerImpl::UpdateTwinRelationship() { |
| 957 DCHECK(!twin_layer_); |
| 958 twin_layer_ = static_cast<PictureLayerImpl*>( |
| 959 layer_tree_impl()->FindActiveTreeLayerById(id())); |
| 960 if (twin_layer_) { |
| 961 DCHECK(!twin_layer_->twin_layer_); |
| 962 twin_layer_->twin_layer_ = this; |
| 963 } |
| 964 } |
| 965 |
961 PictureLayerTiling* PictureLayerImpl::AddTiling(float contents_scale) { | 966 PictureLayerTiling* PictureLayerImpl::AddTiling(float contents_scale) { |
962 DCHECK(CanHaveTilingWithScale(contents_scale)) << | 967 DCHECK(CanHaveTilingWithScale(contents_scale)) << |
963 "contents_scale: " << contents_scale; | 968 "contents_scale: " << contents_scale; |
964 | 969 |
965 PictureLayerTiling* tiling = tilings_->AddTiling(contents_scale); | 970 PictureLayerTiling* tiling = tilings_->AddTiling(contents_scale); |
966 | 971 |
967 DCHECK(pile_->HasRecordings()); | 972 DCHECK(pile_->HasRecordings()); |
968 | 973 |
969 if (twin_layer_) | 974 if (twin_layer_) |
970 twin_layer_->SyncTiling(tiling); | 975 twin_layer_->SyncTiling(tiling); |
(...skipping 780 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1751 PictureLayerTilingSet::TilingRange tiling_range = CurrentTilingRange(); | 1756 PictureLayerTilingSet::TilingRange tiling_range = CurrentTilingRange(); |
1752 size_t current_tiling_range_offset = current_tiling_ - tiling_range.start; | 1757 size_t current_tiling_range_offset = current_tiling_ - tiling_range.start; |
1753 return tiling_range.end - 1 - current_tiling_range_offset; | 1758 return tiling_range.end - 1 - current_tiling_range_offset; |
1754 } | 1759 } |
1755 } | 1760 } |
1756 NOTREACHED(); | 1761 NOTREACHED(); |
1757 return 0; | 1762 return 0; |
1758 } | 1763 } |
1759 | 1764 |
1760 } // namespace cc | 1765 } // namespace cc |
OLD | NEW |