| 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 |