OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/output/compositor_frame.h" | 5 #include "cc/output/compositor_frame.h" |
6 #include "cc/output/delegated_frame_data.h" | 6 #include "cc/output/delegated_frame_data.h" |
7 #include "cc/quads/render_pass.h" | 7 #include "cc/quads/render_pass.h" |
8 #include "cc/quads/render_pass_draw_quad.h" | 8 #include "cc/quads/render_pass_draw_quad.h" |
9 #include "cc/quads/solid_color_draw_quad.h" | 9 #include "cc/quads/solid_color_draw_quad.h" |
10 #include "cc/quads/surface_draw_quad.h" | 10 #include "cc/quads/surface_draw_quad.h" |
(...skipping 1324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1335 ASSERT_EQ(3u, client.returned_resources().size()); | 1335 ASSERT_EQ(3u, client.returned_resources().size()); |
1336 ResourceProvider::ResourceId returned_ids[3]; | 1336 ResourceProvider::ResourceId returned_ids[3]; |
1337 for (size_t i = 0; i < 3; ++i) { | 1337 for (size_t i = 0; i < 3; ++i) { |
1338 returned_ids[i] = client.returned_resources()[i].id; | 1338 returned_ids[i] = client.returned_resources()[i].id; |
1339 } | 1339 } |
1340 EXPECT_THAT(returned_ids, | 1340 EXPECT_THAT(returned_ids, |
1341 testing::WhenSorted(testing::ElementsAreArray(ids))); | 1341 testing::WhenSorted(testing::ElementsAreArray(ids))); |
1342 factory.Destroy(surface_id); | 1342 factory.Destroy(surface_id); |
1343 } | 1343 } |
1344 | 1344 |
| 1345 TEST_F(SurfaceAggregatorWithResourcesTest, TakeInvalidResources) { |
| 1346 ResourceTrackingSurfaceFactoryClient client; |
| 1347 SurfaceFactory factory(&manager_, &client); |
| 1348 SurfaceId surface_id(7u); |
| 1349 factory.Create(surface_id); |
| 1350 |
| 1351 scoped_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData); |
| 1352 scoped_ptr<RenderPass> pass = RenderPass::Create(); |
| 1353 pass->id = RenderPassId(1, 1); |
| 1354 TransferableResource resource; |
| 1355 resource.id = 11; |
| 1356 // ResourceProvider is software but resource is not, so it should be |
| 1357 // ignored. |
| 1358 resource.is_software = false; |
| 1359 frame_data->resource_list.push_back(resource); |
| 1360 frame_data->render_pass_list.push_back(pass.Pass()); |
| 1361 scoped_ptr<CompositorFrame> frame(new CompositorFrame); |
| 1362 frame->delegated_frame_data = frame_data.Pass(); |
| 1363 factory.SubmitFrame(surface_id, frame.Pass(), SurfaceFactory::DrawCallback()); |
| 1364 |
| 1365 scoped_ptr<CompositorFrame> returned_frame = |
| 1366 aggregator_->Aggregate(surface_id); |
| 1367 |
| 1368 // Nothing should be available to be returned yet. |
| 1369 EXPECT_TRUE(client.returned_resources().empty()); |
| 1370 |
| 1371 SubmitFrameWithResources(NULL, 0u, &factory, surface_id); |
| 1372 ASSERT_EQ(1u, client.returned_resources().size()); |
| 1373 EXPECT_EQ(11u, client.returned_resources()[0].id); |
| 1374 |
| 1375 factory.Destroy(surface_id); |
| 1376 } |
| 1377 |
1345 TEST_F(SurfaceAggregatorWithResourcesTest, TwoSurfaces) { | 1378 TEST_F(SurfaceAggregatorWithResourcesTest, TwoSurfaces) { |
1346 ResourceTrackingSurfaceFactoryClient client; | 1379 ResourceTrackingSurfaceFactoryClient client; |
1347 SurfaceFactory factory(&manager_, &client); | 1380 SurfaceFactory factory(&manager_, &client); |
1348 SurfaceId surface_id(7u); | 1381 SurfaceId surface_id(7u); |
1349 factory.Create(surface_id); | 1382 factory.Create(surface_id); |
1350 SurfaceId surface_id2(8u); | 1383 SurfaceId surface_id2(8u); |
1351 factory.Create(surface_id2); | 1384 factory.Create(surface_id2); |
1352 | 1385 |
1353 ResourceProvider::ResourceId ids[] = {11, 12, 13}; | 1386 ResourceProvider::ResourceId ids[] = {11, 12, 13}; |
1354 SubmitFrameWithResources(ids, arraysize(ids), &factory, surface_id); | 1387 SubmitFrameWithResources(ids, arraysize(ids), &factory, surface_id); |
(...skipping 18 matching lines...) Expand all Loading... |
1373 EXPECT_THAT(returned_ids, | 1406 EXPECT_THAT(returned_ids, |
1374 testing::WhenSorted(testing::ElementsAreArray(ids))); | 1407 testing::WhenSorted(testing::ElementsAreArray(ids))); |
1375 EXPECT_EQ(3u, resource_provider_->num_resources()); | 1408 EXPECT_EQ(3u, resource_provider_->num_resources()); |
1376 factory.Destroy(surface_id); | 1409 factory.Destroy(surface_id); |
1377 factory.Destroy(surface_id2); | 1410 factory.Destroy(surface_id2); |
1378 } | 1411 } |
1379 | 1412 |
1380 } // namespace | 1413 } // namespace |
1381 } // namespace cc | 1414 } // namespace cc |
1382 | 1415 |
OLD | NEW |