| 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 <cmath> | 7 #include <cmath> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 2134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2145 bool tile_missing = false; | 2145 bool tile_missing = false; |
| 2146 bool had_incomplete_tile = false; | 2146 bool had_incomplete_tile = false; |
| 2147 bool is_animating = false; | 2147 bool is_animating = false; |
| 2148 root->AddChild( | 2148 root->AddChild( |
| 2149 MissingTextureAnimatingLayer::Create(host_impl_->active_tree(), | 2149 MissingTextureAnimatingLayer::Create(host_impl_->active_tree(), |
| 2150 8, | 2150 8, |
| 2151 tile_missing, | 2151 tile_missing, |
| 2152 had_incomplete_tile, | 2152 had_incomplete_tile, |
| 2153 is_animating, | 2153 is_animating, |
| 2154 host_impl_->resource_provider())); | 2154 host_impl_->resource_provider())); |
| 2155 host_impl_->active_tree()->SetRequiresHighResToDraw(); | 2155 host_impl_->SetRequiresHighResToDraw(); |
| 2156 LayerTreeHostImpl::FrameData frame2; | 2156 LayerTreeHostImpl::FrameData frame2; |
| 2157 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame2)); | 2157 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame2)); |
| 2158 host_impl_->DrawLayers(&frame2, gfx::FrameTime::Now()); | 2158 host_impl_->DrawLayers(&frame2, gfx::FrameTime::Now()); |
| 2159 host_impl_->DidDrawAllLayers(frame2); | 2159 host_impl_->DidDrawAllLayers(frame2); |
| 2160 } | 2160 } |
| 2161 | 2161 |
| 2162 TEST_F(LayerTreeHostImplTest, | 2162 TEST_F(LayerTreeHostImplTest, |
| 2163 PrepareToDrawFailsWhenHighResRequiredAndIncompleteTiles) { | 2163 PrepareToDrawFailsWhenHighResRequiredAndIncompleteTiles) { |
| 2164 host_impl_->active_tree()->SetRootLayer( | 2164 host_impl_->active_tree()->SetRootLayer( |
| 2165 DidDrawCheckLayer::Create(host_impl_->active_tree(), 7)); | 2165 DidDrawCheckLayer::Create(host_impl_->active_tree(), 7)); |
| 2166 DidDrawCheckLayer* root = | 2166 DidDrawCheckLayer* root = |
| 2167 static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer()); | 2167 static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer()); |
| 2168 | 2168 |
| 2169 LayerTreeHostImpl::FrameData frame; | 2169 LayerTreeHostImpl::FrameData frame; |
| 2170 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 2170 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
| 2171 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 2171 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
| 2172 host_impl_->DidDrawAllLayers(frame); | 2172 host_impl_->DidDrawAllLayers(frame); |
| 2173 host_impl_->SwapBuffers(frame); | 2173 host_impl_->SwapBuffers(frame); |
| 2174 | 2174 |
| 2175 bool tile_missing = false; | 2175 bool tile_missing = false; |
| 2176 bool had_incomplete_tile = true; | 2176 bool had_incomplete_tile = true; |
| 2177 bool is_animating = false; | 2177 bool is_animating = false; |
| 2178 root->AddChild( | 2178 root->AddChild( |
| 2179 MissingTextureAnimatingLayer::Create(host_impl_->active_tree(), | 2179 MissingTextureAnimatingLayer::Create(host_impl_->active_tree(), |
| 2180 8, | 2180 8, |
| 2181 tile_missing, | 2181 tile_missing, |
| 2182 had_incomplete_tile, | 2182 had_incomplete_tile, |
| 2183 is_animating, | 2183 is_animating, |
| 2184 host_impl_->resource_provider())); | 2184 host_impl_->resource_provider())); |
| 2185 host_impl_->active_tree()->SetRequiresHighResToDraw(); | 2185 host_impl_->SetRequiresHighResToDraw(); |
| 2186 LayerTreeHostImpl::FrameData frame2; | 2186 LayerTreeHostImpl::FrameData frame2; |
| 2187 EXPECT_EQ(DRAW_ABORTED_MISSING_HIGH_RES_CONTENT, | 2187 EXPECT_EQ(DRAW_ABORTED_MISSING_HIGH_RES_CONTENT, |
| 2188 host_impl_->PrepareToDraw(&frame2)); | 2188 host_impl_->PrepareToDraw(&frame2)); |
| 2189 host_impl_->DrawLayers(&frame2, gfx::FrameTime::Now()); | 2189 host_impl_->DrawLayers(&frame2, gfx::FrameTime::Now()); |
| 2190 host_impl_->DidDrawAllLayers(frame2); | 2190 host_impl_->DidDrawAllLayers(frame2); |
| 2191 } | 2191 } |
| 2192 | 2192 |
| 2193 TEST_F(LayerTreeHostImplTest, | 2193 TEST_F(LayerTreeHostImplTest, |
| 2194 PrepareToDrawFailsWhenHighResRequiredAndMissingTile) { | 2194 PrepareToDrawFailsWhenHighResRequiredAndMissingTile) { |
| 2195 host_impl_->active_tree()->SetRootLayer( | 2195 host_impl_->active_tree()->SetRootLayer( |
| (...skipping 10 matching lines...) Expand all Loading... |
| 2206 bool tile_missing = true; | 2206 bool tile_missing = true; |
| 2207 bool had_incomplete_tile = false; | 2207 bool had_incomplete_tile = false; |
| 2208 bool is_animating = false; | 2208 bool is_animating = false; |
| 2209 root->AddChild( | 2209 root->AddChild( |
| 2210 MissingTextureAnimatingLayer::Create(host_impl_->active_tree(), | 2210 MissingTextureAnimatingLayer::Create(host_impl_->active_tree(), |
| 2211 8, | 2211 8, |
| 2212 tile_missing, | 2212 tile_missing, |
| 2213 had_incomplete_tile, | 2213 had_incomplete_tile, |
| 2214 is_animating, | 2214 is_animating, |
| 2215 host_impl_->resource_provider())); | 2215 host_impl_->resource_provider())); |
| 2216 host_impl_->active_tree()->SetRequiresHighResToDraw(); | 2216 host_impl_->SetRequiresHighResToDraw(); |
| 2217 LayerTreeHostImpl::FrameData frame2; | 2217 LayerTreeHostImpl::FrameData frame2; |
| 2218 EXPECT_EQ(DRAW_ABORTED_MISSING_HIGH_RES_CONTENT, | 2218 EXPECT_EQ(DRAW_ABORTED_MISSING_HIGH_RES_CONTENT, |
| 2219 host_impl_->PrepareToDraw(&frame2)); | 2219 host_impl_->PrepareToDraw(&frame2)); |
| 2220 host_impl_->DrawLayers(&frame2, gfx::FrameTime::Now()); | 2220 host_impl_->DrawLayers(&frame2, gfx::FrameTime::Now()); |
| 2221 host_impl_->DidDrawAllLayers(frame2); | 2221 host_impl_->DidDrawAllLayers(frame2); |
| 2222 } | 2222 } |
| 2223 | 2223 |
| 2224 TEST_F(LayerTreeHostImplTest, ScrollRootIgnored) { | 2224 TEST_F(LayerTreeHostImplTest, ScrollRootIgnored) { |
| 2225 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl_->active_tree(), 1); | 2225 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl_->active_tree(), 1); |
| 2226 root->SetScrollClipLayer(Layer::INVALID_ID); | 2226 root->SetScrollClipLayer(Layer::INVALID_ID); |
| (...skipping 3806 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6033 | 6033 |
| 6034 host_impl_->SetVisible(false); | 6034 host_impl_->SetVisible(false); |
| 6035 EXPECT_EQ(0u, current_limit_bytes_); | 6035 EXPECT_EQ(0u, current_limit_bytes_); |
| 6036 EXPECT_EQ(nothing_cutoff_value, current_priority_cutoff_value_); | 6036 EXPECT_EQ(nothing_cutoff_value, current_priority_cutoff_value_); |
| 6037 } | 6037 } |
| 6038 | 6038 |
| 6039 TEST_F(LayerTreeHostImplTest, RequireHighResWhenVisible) { | 6039 TEST_F(LayerTreeHostImplTest, RequireHighResWhenVisible) { |
| 6040 ASSERT_TRUE(host_impl_->active_tree()); | 6040 ASSERT_TRUE(host_impl_->active_tree()); |
| 6041 | 6041 |
| 6042 // RequiresHighResToDraw is set when new output surface is used. | 6042 // RequiresHighResToDraw is set when new output surface is used. |
| 6043 EXPECT_TRUE(host_impl_->active_tree()->RequiresHighResToDraw()); | 6043 EXPECT_TRUE(host_impl_->RequiresHighResToDraw()); |
| 6044 | 6044 |
| 6045 host_impl_->active_tree()->ResetRequiresHighResToDraw(); | 6045 host_impl_->ResetRequiresHighResToDraw(); |
| 6046 | 6046 |
| 6047 host_impl_->SetVisible(false); | 6047 host_impl_->SetVisible(false); |
| 6048 EXPECT_FALSE(host_impl_->active_tree()->RequiresHighResToDraw()); | 6048 EXPECT_FALSE(host_impl_->RequiresHighResToDraw()); |
| 6049 host_impl_->SetVisible(true); | 6049 host_impl_->SetVisible(true); |
| 6050 EXPECT_TRUE(host_impl_->active_tree()->RequiresHighResToDraw()); | 6050 EXPECT_TRUE(host_impl_->RequiresHighResToDraw()); |
| 6051 host_impl_->SetVisible(false); | 6051 host_impl_->SetVisible(false); |
| 6052 EXPECT_TRUE(host_impl_->active_tree()->RequiresHighResToDraw()); | 6052 EXPECT_TRUE(host_impl_->RequiresHighResToDraw()); |
| 6053 | 6053 |
| 6054 host_impl_->active_tree()->ResetRequiresHighResToDraw(); | 6054 host_impl_->ResetRequiresHighResToDraw(); |
| 6055 | 6055 |
| 6056 EXPECT_FALSE(host_impl_->active_tree()->RequiresHighResToDraw()); | 6056 EXPECT_FALSE(host_impl_->RequiresHighResToDraw()); |
| 6057 host_impl_->SetVisible(true); | 6057 host_impl_->SetVisible(true); |
| 6058 EXPECT_TRUE(host_impl_->active_tree()->RequiresHighResToDraw()); | 6058 EXPECT_TRUE(host_impl_->RequiresHighResToDraw()); |
| 6059 } | 6059 } |
| 6060 | 6060 |
| 6061 TEST_F(LayerTreeHostImplTest, RequireHighResAfterGpuRasterizationToggles) { | 6061 TEST_F(LayerTreeHostImplTest, RequireHighResAfterGpuRasterizationToggles) { |
| 6062 ASSERT_TRUE(host_impl_->active_tree()); | 6062 ASSERT_TRUE(host_impl_->active_tree()); |
| 6063 EXPECT_FALSE(host_impl_->use_gpu_rasterization()); | 6063 EXPECT_FALSE(host_impl_->use_gpu_rasterization()); |
| 6064 | 6064 |
| 6065 // RequiresHighResToDraw is set when new output surface is used. | 6065 // RequiresHighResToDraw is set when new output surface is used. |
| 6066 EXPECT_TRUE(host_impl_->active_tree()->RequiresHighResToDraw()); | 6066 EXPECT_TRUE(host_impl_->RequiresHighResToDraw()); |
| 6067 | 6067 |
| 6068 host_impl_->active_tree()->ResetRequiresHighResToDraw(); | 6068 host_impl_->ResetRequiresHighResToDraw(); |
| 6069 | 6069 |
| 6070 host_impl_->SetUseGpuRasterization(false); | 6070 host_impl_->SetUseGpuRasterization(false); |
| 6071 EXPECT_FALSE(host_impl_->active_tree()->RequiresHighResToDraw()); | 6071 EXPECT_FALSE(host_impl_->RequiresHighResToDraw()); |
| 6072 host_impl_->SetUseGpuRasterization(true); | 6072 host_impl_->SetUseGpuRasterization(true); |
| 6073 EXPECT_TRUE(host_impl_->active_tree()->RequiresHighResToDraw()); | 6073 EXPECT_TRUE(host_impl_->RequiresHighResToDraw()); |
| 6074 host_impl_->SetUseGpuRasterization(false); | 6074 host_impl_->SetUseGpuRasterization(false); |
| 6075 EXPECT_TRUE(host_impl_->active_tree()->RequiresHighResToDraw()); | 6075 EXPECT_TRUE(host_impl_->RequiresHighResToDraw()); |
| 6076 | 6076 |
| 6077 host_impl_->active_tree()->ResetRequiresHighResToDraw(); | 6077 host_impl_->ResetRequiresHighResToDraw(); |
| 6078 | 6078 |
| 6079 EXPECT_FALSE(host_impl_->active_tree()->RequiresHighResToDraw()); | 6079 EXPECT_FALSE(host_impl_->RequiresHighResToDraw()); |
| 6080 host_impl_->SetUseGpuRasterization(true); | 6080 host_impl_->SetUseGpuRasterization(true); |
| 6081 EXPECT_TRUE(host_impl_->active_tree()->RequiresHighResToDraw()); | 6081 EXPECT_TRUE(host_impl_->RequiresHighResToDraw()); |
| 6082 } | 6082 } |
| 6083 | 6083 |
| 6084 class LayerTreeHostImplTestManageTiles : public LayerTreeHostImplTest { | 6084 class LayerTreeHostImplTestManageTiles : public LayerTreeHostImplTest { |
| 6085 public: | 6085 public: |
| 6086 virtual void SetUp() override { | 6086 virtual void SetUp() override { |
| 6087 LayerTreeSettings settings; | 6087 LayerTreeSettings settings; |
| 6088 settings.impl_side_painting = true; | 6088 settings.impl_side_painting = true; |
| 6089 | 6089 |
| 6090 fake_host_impl_ = new FakeLayerTreeHostImpl( | 6090 fake_host_impl_ = new FakeLayerTreeHostImpl( |
| 6091 settings, &proxy_, shared_bitmap_manager_.get()); | 6091 settings, &proxy_, shared_bitmap_manager_.get()); |
| (...skipping 1175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7267 // surface. | 7267 // surface. |
| 7268 EXPECT_EQ(0, num_lost_surfaces_); | 7268 EXPECT_EQ(0, num_lost_surfaces_); |
| 7269 host_impl_->DidLoseOutputSurface(); | 7269 host_impl_->DidLoseOutputSurface(); |
| 7270 EXPECT_EQ(1, num_lost_surfaces_); | 7270 EXPECT_EQ(1, num_lost_surfaces_); |
| 7271 host_impl_->DidLoseOutputSurface(); | 7271 host_impl_->DidLoseOutputSurface(); |
| 7272 EXPECT_LE(1, num_lost_surfaces_); | 7272 EXPECT_LE(1, num_lost_surfaces_); |
| 7273 } | 7273 } |
| 7274 | 7274 |
| 7275 } // namespace | 7275 } // namespace |
| 7276 } // namespace cc | 7276 } // namespace cc |
| OLD | NEW |