Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(833)

Side by Side Diff: cc/surfaces/surface_aggregator_unittest.cc

Issue 1144523003: Rename cc::ResourceProvider::ResourceId to cc::ResourceId and move it to its own file. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/surfaces/surface_aggregator.cc ('k') | cc/surfaces/surface_factory_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 1302 matching lines...) Expand 10 before | Expand all | Expand 10 after
1313 ReturnedResourceArray returned_resources() const { 1313 ReturnedResourceArray returned_resources() const {
1314 return returned_resources_; 1314 return returned_resources_;
1315 } 1315 }
1316 1316
1317 private: 1317 private:
1318 ReturnedResourceArray returned_resources_; 1318 ReturnedResourceArray returned_resources_;
1319 1319
1320 DISALLOW_COPY_AND_ASSIGN(ResourceTrackingSurfaceFactoryClient); 1320 DISALLOW_COPY_AND_ASSIGN(ResourceTrackingSurfaceFactoryClient);
1321 }; 1321 };
1322 1322
1323 void SubmitFrameWithResources(ResourceProvider::ResourceId* resource_ids, 1323 void SubmitFrameWithResources(ResourceId* resource_ids,
1324 size_t num_resource_ids, 1324 size_t num_resource_ids,
1325 bool valid, 1325 bool valid,
1326 SurfaceId child_id, 1326 SurfaceId child_id,
1327 SurfaceFactory* factory, 1327 SurfaceFactory* factory,
1328 SurfaceId surface_id) { 1328 SurfaceId surface_id) {
1329 scoped_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData); 1329 scoped_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData);
1330 scoped_ptr<RenderPass> pass = RenderPass::Create(); 1330 scoped_ptr<RenderPass> pass = RenderPass::Create();
1331 pass->id = RenderPassId(1, 1); 1331 pass->id = RenderPassId(1, 1);
1332 SharedQuadState* sqs = pass->CreateAndAppendSharedQuadState(); 1332 SharedQuadState* sqs = pass->CreateAndAppendSharedQuadState();
1333 sqs->opacity = 1.f; 1333 sqs->opacity = 1.f;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1376 factory->SubmitFrame(surface_id, frame.Pass(), 1376 factory->SubmitFrame(surface_id, frame.Pass(),
1377 SurfaceFactory::DrawCallback()); 1377 SurfaceFactory::DrawCallback());
1378 } 1378 }
1379 1379
1380 TEST_F(SurfaceAggregatorWithResourcesTest, TakeResourcesOneSurface) { 1380 TEST_F(SurfaceAggregatorWithResourcesTest, TakeResourcesOneSurface) {
1381 ResourceTrackingSurfaceFactoryClient client; 1381 ResourceTrackingSurfaceFactoryClient client;
1382 SurfaceFactory factory(&manager_, &client); 1382 SurfaceFactory factory(&manager_, &client);
1383 SurfaceId surface_id(7u); 1383 SurfaceId surface_id(7u);
1384 factory.Create(surface_id); 1384 factory.Create(surface_id);
1385 1385
1386 ResourceProvider::ResourceId ids[] = {11, 12, 13}; 1386 ResourceId ids[] = {11, 12, 13};
1387 SubmitFrameWithResources(ids, arraysize(ids), true, SurfaceId(), &factory, 1387 SubmitFrameWithResources(ids, arraysize(ids), true, SurfaceId(), &factory,
1388 surface_id); 1388 surface_id);
1389 1389
1390 scoped_ptr<CompositorFrame> frame = aggregator_->Aggregate(surface_id); 1390 scoped_ptr<CompositorFrame> frame = aggregator_->Aggregate(surface_id);
1391 1391
1392 // Nothing should be available to be returned yet. 1392 // Nothing should be available to be returned yet.
1393 EXPECT_TRUE(client.returned_resources().empty()); 1393 EXPECT_TRUE(client.returned_resources().empty());
1394 1394
1395 SubmitFrameWithResources(NULL, 0u, true, SurfaceId(), &factory, surface_id); 1395 SubmitFrameWithResources(NULL, 0u, true, SurfaceId(), &factory, surface_id);
1396 1396
1397 frame = aggregator_->Aggregate(surface_id); 1397 frame = aggregator_->Aggregate(surface_id);
1398 1398
1399 ASSERT_EQ(3u, client.returned_resources().size()); 1399 ASSERT_EQ(3u, client.returned_resources().size());
1400 ResourceProvider::ResourceId returned_ids[3]; 1400 ResourceId returned_ids[3];
1401 for (size_t i = 0; i < 3; ++i) { 1401 for (size_t i = 0; i < 3; ++i) {
1402 returned_ids[i] = client.returned_resources()[i].id; 1402 returned_ids[i] = client.returned_resources()[i].id;
1403 } 1403 }
1404 EXPECT_THAT(returned_ids, 1404 EXPECT_THAT(returned_ids,
1405 testing::WhenSorted(testing::ElementsAreArray(ids))); 1405 testing::WhenSorted(testing::ElementsAreArray(ids)));
1406 factory.Destroy(surface_id); 1406 factory.Destroy(surface_id);
1407 } 1407 }
1408 1408
1409 TEST_F(SurfaceAggregatorWithResourcesTest, TakeInvalidResources) { 1409 TEST_F(SurfaceAggregatorWithResourcesTest, TakeInvalidResources) {
1410 ResourceTrackingSurfaceFactoryClient client; 1410 ResourceTrackingSurfaceFactoryClient client;
(...skipping 29 matching lines...) Expand all
1440 } 1440 }
1441 1441
1442 TEST_F(SurfaceAggregatorWithResourcesTest, TwoSurfaces) { 1442 TEST_F(SurfaceAggregatorWithResourcesTest, TwoSurfaces) {
1443 ResourceTrackingSurfaceFactoryClient client; 1443 ResourceTrackingSurfaceFactoryClient client;
1444 SurfaceFactory factory(&manager_, &client); 1444 SurfaceFactory factory(&manager_, &client);
1445 SurfaceId surface_id(7u); 1445 SurfaceId surface_id(7u);
1446 factory.Create(surface_id); 1446 factory.Create(surface_id);
1447 SurfaceId surface_id2(8u); 1447 SurfaceId surface_id2(8u);
1448 factory.Create(surface_id2); 1448 factory.Create(surface_id2);
1449 1449
1450 ResourceProvider::ResourceId ids[] = {11, 12, 13}; 1450 ResourceId ids[] = {11, 12, 13};
1451 SubmitFrameWithResources(ids, arraysize(ids), true, SurfaceId(), &factory, 1451 SubmitFrameWithResources(ids, arraysize(ids), true, SurfaceId(), &factory,
1452 surface_id); 1452 surface_id);
1453 ResourceProvider::ResourceId ids2[] = {14, 15, 16}; 1453 ResourceId ids2[] = {14, 15, 16};
1454 SubmitFrameWithResources(ids2, arraysize(ids2), true, SurfaceId(), &factory, 1454 SubmitFrameWithResources(ids2, arraysize(ids2), true, SurfaceId(), &factory,
1455 surface_id2); 1455 surface_id2);
1456 1456
1457 scoped_ptr<CompositorFrame> frame = aggregator_->Aggregate(surface_id); 1457 scoped_ptr<CompositorFrame> frame = aggregator_->Aggregate(surface_id);
1458 1458
1459 SubmitFrameWithResources(NULL, 0, true, SurfaceId(), &factory, surface_id); 1459 SubmitFrameWithResources(NULL, 0, true, SurfaceId(), &factory, surface_id);
1460 1460
1461 // Nothing should be available to be returned yet. 1461 // Nothing should be available to be returned yet.
1462 EXPECT_TRUE(client.returned_resources().empty()); 1462 EXPECT_TRUE(client.returned_resources().empty());
1463 1463
1464 frame = aggregator_->Aggregate(surface_id2); 1464 frame = aggregator_->Aggregate(surface_id2);
1465 1465
1466 // surface_id wasn't referenced, so its resources should be returned. 1466 // surface_id wasn't referenced, so its resources should be returned.
1467 ASSERT_EQ(3u, client.returned_resources().size()); 1467 ASSERT_EQ(3u, client.returned_resources().size());
1468 ResourceProvider::ResourceId returned_ids[3]; 1468 ResourceId returned_ids[3];
1469 for (size_t i = 0; i < 3; ++i) { 1469 for (size_t i = 0; i < 3; ++i) {
1470 returned_ids[i] = client.returned_resources()[i].id; 1470 returned_ids[i] = client.returned_resources()[i].id;
1471 } 1471 }
1472 EXPECT_THAT(returned_ids, 1472 EXPECT_THAT(returned_ids,
1473 testing::WhenSorted(testing::ElementsAreArray(ids))); 1473 testing::WhenSorted(testing::ElementsAreArray(ids)));
1474 EXPECT_EQ(3u, resource_provider_->num_resources()); 1474 EXPECT_EQ(3u, resource_provider_->num_resources());
1475 factory.Destroy(surface_id); 1475 factory.Destroy(surface_id);
1476 factory.Destroy(surface_id2); 1476 factory.Destroy(surface_id2);
1477 } 1477 }
1478 1478
1479 // Ensure that aggregator completely ignores Surfaces that reference invalid 1479 // Ensure that aggregator completely ignores Surfaces that reference invalid
1480 // resources. 1480 // resources.
1481 TEST_F(SurfaceAggregatorWithResourcesTest, InvalidChildSurface) { 1481 TEST_F(SurfaceAggregatorWithResourcesTest, InvalidChildSurface) {
1482 ResourceTrackingSurfaceFactoryClient client; 1482 ResourceTrackingSurfaceFactoryClient client;
1483 SurfaceFactory factory(&manager_, &client); 1483 SurfaceFactory factory(&manager_, &client);
1484 SurfaceId root_surface_id(7u); 1484 SurfaceId root_surface_id(7u);
1485 factory.Create(root_surface_id); 1485 factory.Create(root_surface_id);
1486 SurfaceId middle_surface_id(8u); 1486 SurfaceId middle_surface_id(8u);
1487 factory.Create(middle_surface_id); 1487 factory.Create(middle_surface_id);
1488 SurfaceId child_surface_id(9u); 1488 SurfaceId child_surface_id(9u);
1489 factory.Create(child_surface_id); 1489 factory.Create(child_surface_id);
1490 1490
1491 ResourceProvider::ResourceId ids[] = {14, 15, 16}; 1491 ResourceId ids[] = {14, 15, 16};
1492 SubmitFrameWithResources(ids, arraysize(ids), true, SurfaceId(), &factory, 1492 SubmitFrameWithResources(ids, arraysize(ids), true, SurfaceId(), &factory,
1493 child_surface_id); 1493 child_surface_id);
1494 1494
1495 ResourceProvider::ResourceId ids2[] = {17, 18, 19}; 1495 ResourceId ids2[] = {17, 18, 19};
1496 SubmitFrameWithResources(ids2, arraysize(ids2), false, child_surface_id, 1496 SubmitFrameWithResources(ids2, arraysize(ids2), false, child_surface_id,
1497 &factory, middle_surface_id); 1497 &factory, middle_surface_id);
1498 1498
1499 ResourceProvider::ResourceId ids3[] = {20, 21, 22}; 1499 ResourceId ids3[] = {20, 21, 22};
1500 SubmitFrameWithResources(ids3, arraysize(ids3), true, middle_surface_id, 1500 SubmitFrameWithResources(ids3, arraysize(ids3), true, middle_surface_id,
1501 &factory, root_surface_id); 1501 &factory, root_surface_id);
1502 1502
1503 scoped_ptr<CompositorFrame> frame; 1503 scoped_ptr<CompositorFrame> frame;
1504 frame = aggregator_->Aggregate(root_surface_id); 1504 frame = aggregator_->Aggregate(root_surface_id);
1505 1505
1506 RenderPassList* pass_list = &frame->delegated_frame_data->render_pass_list; 1506 RenderPassList* pass_list = &frame->delegated_frame_data->render_pass_list;
1507 ASSERT_EQ(1u, pass_list->size()); 1507 ASSERT_EQ(1u, pass_list->size());
1508 EXPECT_EQ(1u, pass_list->back()->shared_quad_state_list.size()); 1508 EXPECT_EQ(1u, pass_list->back()->shared_quad_state_list.size());
1509 EXPECT_EQ(3u, pass_list->back()->quad_list.size()); 1509 EXPECT_EQ(3u, pass_list->back()->quad_list.size());
1510 1510
1511 SubmitFrameWithResources(ids2, arraysize(ids), true, child_surface_id, 1511 SubmitFrameWithResources(ids2, arraysize(ids), true, child_surface_id,
1512 &factory, middle_surface_id); 1512 &factory, middle_surface_id);
1513 1513
1514 frame = aggregator_->Aggregate(root_surface_id); 1514 frame = aggregator_->Aggregate(root_surface_id);
1515 1515
1516 pass_list = &frame->delegated_frame_data->render_pass_list; 1516 pass_list = &frame->delegated_frame_data->render_pass_list;
1517 ASSERT_EQ(1u, pass_list->size()); 1517 ASSERT_EQ(1u, pass_list->size());
1518 EXPECT_EQ(3u, pass_list->back()->shared_quad_state_list.size()); 1518 EXPECT_EQ(3u, pass_list->back()->shared_quad_state_list.size());
1519 EXPECT_EQ(9u, pass_list->back()->quad_list.size()); 1519 EXPECT_EQ(9u, pass_list->back()->quad_list.size());
1520 1520
1521 factory.Destroy(root_surface_id); 1521 factory.Destroy(root_surface_id);
1522 factory.Destroy(child_surface_id); 1522 factory.Destroy(child_surface_id);
1523 factory.Destroy(middle_surface_id); 1523 factory.Destroy(middle_surface_id);
1524 } 1524 }
1525 1525
1526 } // namespace 1526 } // namespace
1527 } // namespace cc 1527 } // namespace cc
1528 1528
OLDNEW
« no previous file with comments | « cc/surfaces/surface_aggregator.cc ('k') | cc/surfaces/surface_factory_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698