| OLD | NEW |
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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/trees/layer_tree_host_impl.h" | 5 #include "cc/trees/layer_tree_host_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <cmath> | 8 #include <cmath> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 8020 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8031 EXPECT_EQ(scrolling_layer, host_impl_->CurrentlyScrollingLayer()); | 8031 EXPECT_EQ(scrolling_layer, host_impl_->CurrentlyScrollingLayer()); |
| 8032 | 8032 |
| 8033 host_impl_->Animate(start_time + base::TimeDelta::FromMilliseconds(250)); | 8033 host_impl_->Animate(start_time + base::TimeDelta::FromMilliseconds(250)); |
| 8034 host_impl_->UpdateAnimationState(true); | 8034 host_impl_->UpdateAnimationState(true); |
| 8035 | 8035 |
| 8036 EXPECT_VECTOR_EQ(gfx::ScrollOffset(0, 100), | 8036 EXPECT_VECTOR_EQ(gfx::ScrollOffset(0, 100), |
| 8037 scrolling_layer->CurrentScrollOffset()); | 8037 scrolling_layer->CurrentScrollOffset()); |
| 8038 EXPECT_EQ(NULL, host_impl_->CurrentlyScrollingLayer()); | 8038 EXPECT_EQ(NULL, host_impl_->CurrentlyScrollingLayer()); |
| 8039 } | 8039 } |
| 8040 | 8040 |
| 8041 TEST_F(LayerTreeHostImplTest, GetPictureLayerImplPairs) { | |
| 8042 host_impl_->CreatePendingTree(); | |
| 8043 | |
| 8044 scoped_ptr<PictureLayerImpl> layer = | |
| 8045 FakePictureLayerImpl::Create(host_impl_->pending_tree(), 10); | |
| 8046 layer->SetBounds(gfx::Size(10, 10)); | |
| 8047 | |
| 8048 scoped_refptr<RasterSource> pile(FakePicturePileImpl::CreateEmptyPile( | |
| 8049 gfx::Size(10, 10), gfx::Size(10, 10))); | |
| 8050 Region empty_invalidation; | |
| 8051 const PictureLayerTilingSet* null_tiling_set = nullptr; | |
| 8052 layer->UpdateRasterSource(pile, &empty_invalidation, null_tiling_set); | |
| 8053 | |
| 8054 host_impl_->pending_tree()->SetRootLayer(layer.Pass()); | |
| 8055 | |
| 8056 LayerTreeImpl* pending_tree = host_impl_->pending_tree(); | |
| 8057 LayerImpl* pending_layer = pending_tree->root_layer(); | |
| 8058 | |
| 8059 std::vector<PictureLayerImpl::Pair> layer_pairs; | |
| 8060 host_impl_->GetPictureLayerImplPairs(&layer_pairs, true); | |
| 8061 EXPECT_EQ(1u, layer_pairs.size()); | |
| 8062 EXPECT_EQ(pending_layer, layer_pairs[0].pending); | |
| 8063 EXPECT_EQ(nullptr, layer_pairs[0].active); | |
| 8064 | |
| 8065 host_impl_->ActivateSyncTree(); | |
| 8066 | |
| 8067 LayerTreeImpl* active_tree = host_impl_->active_tree(); | |
| 8068 LayerImpl* active_layer = active_tree->root_layer(); | |
| 8069 EXPECT_NE(active_tree, pending_tree); | |
| 8070 EXPECT_NE(active_layer, pending_layer); | |
| 8071 EXPECT_NE(nullptr, active_tree); | |
| 8072 EXPECT_NE(nullptr, active_layer); | |
| 8073 | |
| 8074 host_impl_->CreatePendingTree(); | |
| 8075 | |
| 8076 layer_pairs.clear(); | |
| 8077 host_impl_->GetPictureLayerImplPairs(&layer_pairs, true); | |
| 8078 EXPECT_EQ(1u, layer_pairs.size()); | |
| 8079 EXPECT_EQ(active_layer, layer_pairs[0].active); | |
| 8080 EXPECT_EQ(pending_layer, layer_pairs[0].pending); | |
| 8081 | |
| 8082 // Activate, the active layer has no twin now. | |
| 8083 host_impl_->ActivateSyncTree(); | |
| 8084 | |
| 8085 layer_pairs.clear(); | |
| 8086 host_impl_->GetPictureLayerImplPairs(&layer_pairs, true); | |
| 8087 EXPECT_EQ(1u, layer_pairs.size()); | |
| 8088 EXPECT_EQ(active_layer, layer_pairs[0].active); | |
| 8089 EXPECT_EQ(nullptr, layer_pairs[0].pending); | |
| 8090 | |
| 8091 // Create another layer in the pending tree that's not in the active tree. We | |
| 8092 // should get two pairs. | |
| 8093 host_impl_->CreatePendingTree(); | |
| 8094 host_impl_->pending_tree()->root_layer()->AddChild( | |
| 8095 FakePictureLayerImpl::Create(host_impl_->pending_tree(), 11)); | |
| 8096 | |
| 8097 LayerImpl* new_pending_layer = pending_tree->root_layer()->children()[0]; | |
| 8098 | |
| 8099 layer_pairs.clear(); | |
| 8100 host_impl_->GetPictureLayerImplPairs(&layer_pairs, true); | |
| 8101 EXPECT_EQ(2u, layer_pairs.size()); | |
| 8102 | |
| 8103 // The pair ordering is flaky, so make it consistent. | |
| 8104 if (layer_pairs[0].active != active_layer) | |
| 8105 std::swap(layer_pairs[0], layer_pairs[1]); | |
| 8106 | |
| 8107 EXPECT_EQ(active_layer, layer_pairs[0].active); | |
| 8108 EXPECT_EQ(pending_layer, layer_pairs[0].pending); | |
| 8109 EXPECT_EQ(new_pending_layer, layer_pairs[1].pending); | |
| 8110 EXPECT_EQ(nullptr, layer_pairs[1].active); | |
| 8111 } | |
| 8112 | |
| 8113 TEST_F(LayerTreeHostImplTest, DidBecomeActive) { | 8041 TEST_F(LayerTreeHostImplTest, DidBecomeActive) { |
| 8114 host_impl_->CreatePendingTree(); | 8042 host_impl_->CreatePendingTree(); |
| 8115 host_impl_->ActivateSyncTree(); | 8043 host_impl_->ActivateSyncTree(); |
| 8116 host_impl_->CreatePendingTree(); | 8044 host_impl_->CreatePendingTree(); |
| 8117 | 8045 |
| 8118 LayerTreeImpl* pending_tree = host_impl_->pending_tree(); | 8046 LayerTreeImpl* pending_tree = host_impl_->pending_tree(); |
| 8119 | 8047 |
| 8120 scoped_ptr<FakePictureLayerImpl> pending_layer = | 8048 scoped_ptr<FakePictureLayerImpl> pending_layer = |
| 8121 FakePictureLayerImpl::Create(pending_tree, 10); | 8049 FakePictureLayerImpl::Create(pending_tree, 10); |
| 8122 FakePictureLayerImpl* raw_pending_layer = pending_layer.get(); | 8050 FakePictureLayerImpl* raw_pending_layer = pending_layer.get(); |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8209 // surface. | 8137 // surface. |
| 8210 EXPECT_EQ(0, num_lost_surfaces_); | 8138 EXPECT_EQ(0, num_lost_surfaces_); |
| 8211 host_impl_->DidLoseOutputSurface(); | 8139 host_impl_->DidLoseOutputSurface(); |
| 8212 EXPECT_EQ(1, num_lost_surfaces_); | 8140 EXPECT_EQ(1, num_lost_surfaces_); |
| 8213 host_impl_->DidLoseOutputSurface(); | 8141 host_impl_->DidLoseOutputSurface(); |
| 8214 EXPECT_LE(1, num_lost_surfaces_); | 8142 EXPECT_LE(1, num_lost_surfaces_); |
| 8215 } | 8143 } |
| 8216 | 8144 |
| 8217 } // namespace | 8145 } // namespace |
| 8218 } // namespace cc | 8146 } // namespace cc |
| OLD | NEW |