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.h" | 5 #include "cc/trees/layer_tree_host.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/auto_reset.h" | 9 #include "base/auto_reset.h" |
10 #include "base/synchronization/lock.h" | 10 #include "base/synchronization/lock.h" |
(...skipping 2191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2202 int num_send_begin_main_frame_; | 2202 int num_send_begin_main_frame_; |
2203 }; | 2203 }; |
2204 | 2204 |
2205 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestDeferCommits); | 2205 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestDeferCommits); |
2206 | 2206 |
2207 class LayerTreeHostWithProxy : public LayerTreeHost { | 2207 class LayerTreeHostWithProxy : public LayerTreeHost { |
2208 public: | 2208 public: |
2209 LayerTreeHostWithProxy(FakeLayerTreeHostClient* client, | 2209 LayerTreeHostWithProxy(FakeLayerTreeHostClient* client, |
2210 const LayerTreeSettings& settings, | 2210 const LayerTreeSettings& settings, |
2211 scoped_ptr<FakeProxy> proxy) | 2211 scoped_ptr<FakeProxy> proxy) |
2212 : LayerTreeHost(client, NULL, NULL, settings) { | 2212 : LayerTreeHost(client, NULL, NULL, NULL, settings) { |
2213 proxy->SetLayerTreeHost(this); | 2213 proxy->SetLayerTreeHost(this); |
2214 client->SetLayerTreeHost(this); | 2214 client->SetLayerTreeHost(this); |
2215 InitializeForTesting(proxy.Pass()); | 2215 InitializeForTesting(proxy.Pass()); |
2216 } | 2216 } |
2217 }; | 2217 }; |
2218 | 2218 |
2219 TEST(LayerTreeHostTest, LimitPartialUpdates) { | 2219 TEST(LayerTreeHostTest, LimitPartialUpdates) { |
2220 // When partial updates are not allowed, max updates should be 0. | 2220 // When partial updates are not allowed, max updates should be 0. |
2221 { | 2221 { |
2222 FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DIRECT_3D); | 2222 FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DIRECT_3D); |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2274 TEST(LayerTreeHostTest, PartialUpdatesWithGLRenderer) { | 2274 TEST(LayerTreeHostTest, PartialUpdatesWithGLRenderer) { |
2275 FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DIRECT_3D); | 2275 FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DIRECT_3D); |
2276 | 2276 |
2277 LayerTreeSettings settings; | 2277 LayerTreeSettings settings; |
2278 settings.max_partial_texture_updates = 4; | 2278 settings.max_partial_texture_updates = 4; |
2279 settings.single_thread_proxy_scheduler = false; | 2279 settings.single_thread_proxy_scheduler = false; |
2280 settings.impl_side_painting = false; | 2280 settings.impl_side_painting = false; |
2281 | 2281 |
2282 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 2282 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( |
2283 new TestSharedBitmapManager()); | 2283 new TestSharedBitmapManager()); |
2284 scoped_ptr<LayerTreeHost> host = | 2284 scoped_ptr<LayerTreeHost> host = LayerTreeHost::CreateSingleThreaded( |
2285 LayerTreeHost::CreateSingleThreaded(&client, | 2285 &client, &client, shared_bitmap_manager.get(), NULL, NULL, settings, |
2286 &client, | 2286 base::MessageLoopProxy::current(), nullptr); |
2287 shared_bitmap_manager.get(), | |
2288 NULL, | |
2289 settings, | |
2290 base::MessageLoopProxy::current(), | |
2291 nullptr); | |
2292 client.SetLayerTreeHost(host.get()); | 2287 client.SetLayerTreeHost(host.get()); |
2293 host->Composite(base::TimeTicks::Now()); | 2288 host->Composite(base::TimeTicks::Now()); |
2294 | 2289 |
2295 EXPECT_EQ(4u, host->settings().max_partial_texture_updates); | 2290 EXPECT_EQ(4u, host->settings().max_partial_texture_updates); |
2296 } | 2291 } |
2297 | 2292 |
2298 TEST(LayerTreeHostTest, PartialUpdatesWithSoftwareRenderer) { | 2293 TEST(LayerTreeHostTest, PartialUpdatesWithSoftwareRenderer) { |
2299 FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DIRECT_SOFTWARE); | 2294 FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DIRECT_SOFTWARE); |
2300 | 2295 |
2301 LayerTreeSettings settings; | 2296 LayerTreeSettings settings; |
2302 settings.max_partial_texture_updates = 4; | 2297 settings.max_partial_texture_updates = 4; |
2303 settings.single_thread_proxy_scheduler = false; | 2298 settings.single_thread_proxy_scheduler = false; |
2304 settings.impl_side_painting = false; | 2299 settings.impl_side_painting = false; |
2305 | 2300 |
2306 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 2301 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( |
2307 new TestSharedBitmapManager()); | 2302 new TestSharedBitmapManager()); |
2308 scoped_ptr<LayerTreeHost> host = | 2303 scoped_ptr<LayerTreeHost> host = LayerTreeHost::CreateSingleThreaded( |
2309 LayerTreeHost::CreateSingleThreaded(&client, | 2304 &client, &client, shared_bitmap_manager.get(), NULL, NULL, settings, |
2310 &client, | 2305 base::MessageLoopProxy::current(), nullptr); |
2311 shared_bitmap_manager.get(), | |
2312 NULL, | |
2313 settings, | |
2314 base::MessageLoopProxy::current(), | |
2315 nullptr); | |
2316 client.SetLayerTreeHost(host.get()); | 2306 client.SetLayerTreeHost(host.get()); |
2317 host->Composite(base::TimeTicks::Now()); | 2307 host->Composite(base::TimeTicks::Now()); |
2318 | 2308 |
2319 EXPECT_EQ(4u, host->settings().max_partial_texture_updates); | 2309 EXPECT_EQ(4u, host->settings().max_partial_texture_updates); |
2320 } | 2310 } |
2321 | 2311 |
2322 TEST(LayerTreeHostTest, PartialUpdatesWithDelegatingRendererAndGLContent) { | 2312 TEST(LayerTreeHostTest, PartialUpdatesWithDelegatingRendererAndGLContent) { |
2323 FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DELEGATED_3D); | 2313 FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DELEGATED_3D); |
2324 | 2314 |
2325 LayerTreeSettings settings; | 2315 LayerTreeSettings settings; |
2326 settings.max_partial_texture_updates = 4; | 2316 settings.max_partial_texture_updates = 4; |
2327 settings.single_thread_proxy_scheduler = false; | 2317 settings.single_thread_proxy_scheduler = false; |
2328 settings.impl_side_painting = false; | 2318 settings.impl_side_painting = false; |
2329 | 2319 |
2330 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 2320 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( |
2331 new TestSharedBitmapManager()); | 2321 new TestSharedBitmapManager()); |
2332 scoped_ptr<LayerTreeHost> host = | 2322 scoped_ptr<LayerTreeHost> host = LayerTreeHost::CreateSingleThreaded( |
2333 LayerTreeHost::CreateSingleThreaded(&client, | 2323 &client, &client, shared_bitmap_manager.get(), NULL, NULL, settings, |
2334 &client, | 2324 base::MessageLoopProxy::current(), nullptr); |
2335 shared_bitmap_manager.get(), | |
2336 NULL, | |
2337 settings, | |
2338 base::MessageLoopProxy::current(), | |
2339 nullptr); | |
2340 client.SetLayerTreeHost(host.get()); | 2325 client.SetLayerTreeHost(host.get()); |
2341 host->Composite(base::TimeTicks::Now()); | 2326 host->Composite(base::TimeTicks::Now()); |
2342 | 2327 |
2343 EXPECT_EQ(0u, host->MaxPartialTextureUpdates()); | 2328 EXPECT_EQ(0u, host->MaxPartialTextureUpdates()); |
2344 } | 2329 } |
2345 | 2330 |
2346 TEST(LayerTreeHostTest, | 2331 TEST(LayerTreeHostTest, |
2347 PartialUpdatesWithDelegatingRendererAndSoftwareContent) { | 2332 PartialUpdatesWithDelegatingRendererAndSoftwareContent) { |
2348 FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DELEGATED_SOFTWARE); | 2333 FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DELEGATED_SOFTWARE); |
2349 | 2334 |
2350 LayerTreeSettings settings; | 2335 LayerTreeSettings settings; |
2351 settings.max_partial_texture_updates = 4; | 2336 settings.max_partial_texture_updates = 4; |
2352 settings.single_thread_proxy_scheduler = false; | 2337 settings.single_thread_proxy_scheduler = false; |
2353 settings.impl_side_painting = false; | 2338 settings.impl_side_painting = false; |
2354 | 2339 |
2355 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 2340 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( |
2356 new TestSharedBitmapManager()); | 2341 new TestSharedBitmapManager()); |
2357 scoped_ptr<LayerTreeHost> host = | 2342 scoped_ptr<LayerTreeHost> host = LayerTreeHost::CreateSingleThreaded( |
2358 LayerTreeHost::CreateSingleThreaded(&client, | 2343 &client, &client, shared_bitmap_manager.get(), NULL, NULL, settings, |
2359 &client, | 2344 base::MessageLoopProxy::current(), nullptr); |
2360 shared_bitmap_manager.get(), | |
2361 NULL, | |
2362 settings, | |
2363 base::MessageLoopProxy::current(), | |
2364 nullptr); | |
2365 client.SetLayerTreeHost(host.get()); | 2345 client.SetLayerTreeHost(host.get()); |
2366 host->Composite(base::TimeTicks::Now()); | 2346 host->Composite(base::TimeTicks::Now()); |
2367 | 2347 |
2368 EXPECT_EQ(0u, host->MaxPartialTextureUpdates()); | 2348 EXPECT_EQ(0u, host->MaxPartialTextureUpdates()); |
2369 } | 2349 } |
2370 | 2350 |
2371 // TODO(sohanjg) : Remove it once impl-side painting ships everywhere. | 2351 // TODO(sohanjg) : Remove it once impl-side painting ships everywhere. |
2372 class LayerTreeHostTestShutdownWithOnlySomeResourcesEvicted | 2352 class LayerTreeHostTestShutdownWithOnlySomeResourcesEvicted |
2373 : public LayerTreeHostTest { | 2353 : public LayerTreeHostTest { |
2374 public: | 2354 public: |
(...skipping 4189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6564 | 6544 |
6565 void AfterTest() override {} | 6545 void AfterTest() override {} |
6566 | 6546 |
6567 private: | 6547 private: |
6568 scoped_refptr<Layer> child_; | 6548 scoped_refptr<Layer> child_; |
6569 }; | 6549 }; |
6570 | 6550 |
6571 SINGLE_AND_MULTI_THREAD_TEST_F(LayerPreserveRenderSurfaceFromOutputRequests); | 6551 SINGLE_AND_MULTI_THREAD_TEST_F(LayerPreserveRenderSurfaceFromOutputRequests); |
6572 | 6552 |
6573 } // namespace cc | 6553 } // namespace cc |
OLD | NEW |