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