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

Side by Side Diff: cc/resource_provider_unittest.cc

Issue 11358080: Separate TransferableResource into own header (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove unused accessor Created 8 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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 "config.h" 5 #include "config.h"
6 6
7 #include "cc/resource_provider.h" 7 #include "cc/resource_provider.h"
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "cc/graphics_context.h" 10 #include "cc/graphics_context.h"
(...skipping 425 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 childResourceProvider->setPixels(id2, data2, rect, rect, gfx::Vector2d()); 436 childResourceProvider->setPixels(id2, data2, rect, rect, gfx::Vector2d());
437 437
438 int childPool = 2; 438 int childPool = 2;
439 int childId = m_resourceProvider->createChild(childPool); 439 int childId = m_resourceProvider->createChild(childPool);
440 440
441 { 441 {
442 // Transfer some resources to the parent. 442 // Transfer some resources to the parent.
443 ResourceProvider::ResourceIdArray resourceIdsToTransfer; 443 ResourceProvider::ResourceIdArray resourceIdsToTransfer;
444 resourceIdsToTransfer.push_back(id1); 444 resourceIdsToTransfer.push_back(id1);
445 resourceIdsToTransfer.push_back(id2); 445 resourceIdsToTransfer.push_back(id2);
446 ResourceProvider::TransferableResourceList list = childResourceProvider- >prepareSendToParent(resourceIdsToTransfer); 446 TransferableResourceList list;
447 EXPECT_NE(0u, list.syncPoint); 447 childResourceProvider->prepareSendToParent(resourceIdsToTransfer, &list) ;
448 EXPECT_NE(0u, list.sync_point);
448 EXPECT_EQ(2u, list.resources.size()); 449 EXPECT_EQ(2u, list.resources.size());
449 EXPECT_TRUE(childResourceProvider->inUseByConsumer(id1)); 450 EXPECT_TRUE(childResourceProvider->inUseByConsumer(id1));
450 EXPECT_TRUE(childResourceProvider->inUseByConsumer(id2)); 451 EXPECT_TRUE(childResourceProvider->inUseByConsumer(id2));
451 m_resourceProvider->receiveFromChild(childId, list); 452 m_resourceProvider->receiveFromChild(childId, list);
452 } 453 }
453 454
454 EXPECT_EQ(2u, m_resourceProvider->numResources()); 455 EXPECT_EQ(2u, m_resourceProvider->numResources());
455 EXPECT_EQ(2u, m_resourceProvider->mailboxCount()); 456 EXPECT_EQ(2u, m_resourceProvider->mailboxCount());
456 ResourceProvider::ResourceIdMap resourceMap = m_resourceProvider->getChildTo ParentMap(childId); 457 ResourceProvider::ResourceIdMap resourceMap = m_resourceProvider->getChildTo ParentMap(childId);
457 ResourceProvider::ResourceId mappedId1 = resourceMap[id1]; 458 ResourceProvider::ResourceId mappedId1 = resourceMap[id1];
458 ResourceProvider::ResourceId mappedId2 = resourceMap[id2]; 459 ResourceProvider::ResourceId mappedId2 = resourceMap[id2];
459 EXPECT_NE(0u, mappedId1); 460 EXPECT_NE(0u, mappedId1);
460 EXPECT_NE(0u, mappedId2); 461 EXPECT_NE(0u, mappedId2);
461 EXPECT_FALSE(m_resourceProvider->inUseByConsumer(id1)); 462 EXPECT_FALSE(m_resourceProvider->inUseByConsumer(id1));
462 EXPECT_FALSE(m_resourceProvider->inUseByConsumer(id2)); 463 EXPECT_FALSE(m_resourceProvider->inUseByConsumer(id2));
463 464
464 uint8_t result[4] = {0}; 465 uint8_t result[4] = {0};
465 getResourcePixels(mappedId1, size, format, result); 466 getResourcePixels(mappedId1, size, format, result);
466 EXPECT_EQ(0, memcmp(data1, result, pixelSize)); 467 EXPECT_EQ(0, memcmp(data1, result, pixelSize));
467 468
468 getResourcePixels(mappedId2, size, format, result); 469 getResourcePixels(mappedId2, size, format, result);
469 EXPECT_EQ(0, memcmp(data2, result, pixelSize)); 470 EXPECT_EQ(0, memcmp(data2, result, pixelSize));
470 471
471 { 472 {
472 // Check that transfering again the same resource from the child to the 473 // Check that transfering again the same resource from the child to the
473 // parent is a noop. 474 // parent is a noop.
474 ResourceProvider::ResourceIdArray resourceIdsToTransfer; 475 ResourceProvider::ResourceIdArray resourceIdsToTransfer;
475 resourceIdsToTransfer.push_back(id1); 476 resourceIdsToTransfer.push_back(id1);
476 ResourceProvider::TransferableResourceList list = childResourceProvider- >prepareSendToParent(resourceIdsToTransfer); 477 TransferableResourceList list;
477 EXPECT_EQ(0u, list.syncPoint); 478 childResourceProvider->prepareSendToParent(resourceIdsToTransfer, &list) ;
479 EXPECT_EQ(0u, list.sync_point);
478 EXPECT_EQ(0u, list.resources.size()); 480 EXPECT_EQ(0u, list.resources.size());
479 } 481 }
480 482
481 { 483 {
482 // Transfer resources back from the parent to the child. 484 // Transfer resources back from the parent to the child.
483 ResourceProvider::ResourceIdArray resourceIdsToTransfer; 485 ResourceProvider::ResourceIdArray resourceIdsToTransfer;
484 resourceIdsToTransfer.push_back(mappedId1); 486 resourceIdsToTransfer.push_back(mappedId1);
485 resourceIdsToTransfer.push_back(mappedId2); 487 resourceIdsToTransfer.push_back(mappedId2);
486 ResourceProvider::TransferableResourceList list = m_resourceProvider->pr epareSendToChild(childId, resourceIdsToTransfer); 488 TransferableResourceList list;
487 EXPECT_NE(0u, list.syncPoint); 489 m_resourceProvider->prepareSendToChild(childId, resourceIdsToTransfer, & list);
490 EXPECT_NE(0u, list.sync_point);
488 EXPECT_EQ(2u, list.resources.size()); 491 EXPECT_EQ(2u, list.resources.size());
489 childResourceProvider->receiveFromParent(list); 492 childResourceProvider->receiveFromParent(list);
490 } 493 }
491 EXPECT_EQ(0u, m_resourceProvider->mailboxCount()); 494 EXPECT_EQ(0u, m_resourceProvider->mailboxCount());
492 EXPECT_EQ(2u, childResourceProvider->mailboxCount()); 495 EXPECT_EQ(2u, childResourceProvider->mailboxCount());
493 EXPECT_FALSE(childResourceProvider->inUseByConsumer(id1)); 496 EXPECT_FALSE(childResourceProvider->inUseByConsumer(id1));
494 EXPECT_FALSE(childResourceProvider->inUseByConsumer(id2)); 497 EXPECT_FALSE(childResourceProvider->inUseByConsumer(id2));
495 498
496 ResourceProviderContext* childContext3D = static_cast<ResourceProviderContex t*>(childContext->context3D()); 499 ResourceProviderContext* childContext3D = static_cast<ResourceProviderContex t*>(childContext->context3D());
497 { 500 {
498 ResourceProvider::ScopedReadLockGL lock(childResourceProvider.get(), id1 ); 501 ResourceProvider::ScopedReadLockGL lock(childResourceProvider.get(), id1 );
499 ASSERT_NE(0U, lock.textureId()); 502 ASSERT_NE(0U, lock.textureId());
500 childContext3D->bindTexture(GL_TEXTURE_2D, lock.textureId()); 503 childContext3D->bindTexture(GL_TEXTURE_2D, lock.textureId());
501 childContext3D->getPixels(size, format, result); 504 childContext3D->getPixels(size, format, result);
502 EXPECT_EQ(0, memcmp(data1, result, pixelSize)); 505 EXPECT_EQ(0, memcmp(data1, result, pixelSize));
503 } 506 }
504 { 507 {
505 ResourceProvider::ScopedReadLockGL lock(childResourceProvider.get(), id2 ); 508 ResourceProvider::ScopedReadLockGL lock(childResourceProvider.get(), id2 );
506 ASSERT_NE(0U, lock.textureId()); 509 ASSERT_NE(0U, lock.textureId());
507 childContext3D->bindTexture(GL_TEXTURE_2D, lock.textureId()); 510 childContext3D->bindTexture(GL_TEXTURE_2D, lock.textureId());
508 childContext3D->getPixels(size, format, result); 511 childContext3D->getPixels(size, format, result);
509 EXPECT_EQ(0, memcmp(data2, result, pixelSize)); 512 EXPECT_EQ(0, memcmp(data2, result, pixelSize));
510 } 513 }
511 514
512 { 515 {
513 // Transfer resources to the parent again. 516 // Transfer resources to the parent again.
514 ResourceProvider::ResourceIdArray resourceIdsToTransfer; 517 ResourceProvider::ResourceIdArray resourceIdsToTransfer;
515 resourceIdsToTransfer.push_back(id1); 518 resourceIdsToTransfer.push_back(id1);
516 resourceIdsToTransfer.push_back(id2); 519 resourceIdsToTransfer.push_back(id2);
517 ResourceProvider::TransferableResourceList list = childResourceProvider- >prepareSendToParent(resourceIdsToTransfer); 520 TransferableResourceList list;
518 EXPECT_NE(0u, list.syncPoint); 521 childResourceProvider->prepareSendToParent(resourceIdsToTransfer, &list) ;
522 EXPECT_NE(0u, list.sync_point);
519 EXPECT_EQ(2u, list.resources.size()); 523 EXPECT_EQ(2u, list.resources.size());
520 EXPECT_TRUE(childResourceProvider->inUseByConsumer(id1)); 524 EXPECT_TRUE(childResourceProvider->inUseByConsumer(id1));
521 EXPECT_TRUE(childResourceProvider->inUseByConsumer(id2)); 525 EXPECT_TRUE(childResourceProvider->inUseByConsumer(id2));
522 m_resourceProvider->receiveFromChild(childId, list); 526 m_resourceProvider->receiveFromChild(childId, list);
523 } 527 }
524 528
525 EXPECT_EQ(2u, m_resourceProvider->numResources()); 529 EXPECT_EQ(2u, m_resourceProvider->numResources());
526 m_resourceProvider->destroyChild(childId); 530 m_resourceProvider->destroyChild(childId);
527 EXPECT_EQ(0u, m_resourceProvider->numResources()); 531 EXPECT_EQ(0u, m_resourceProvider->numResources());
528 EXPECT_EQ(0u, m_resourceProvider->mailboxCount()); 532 EXPECT_EQ(0u, m_resourceProvider->mailboxCount());
(...skipping 19 matching lines...) Expand all
548 gfx::Rect rect(gfx::Point(), size); 552 gfx::Rect rect(gfx::Point(), size);
549 childResourceProvider->setPixels(id, data, rect, rect, gfx::Vector2d()); 553 childResourceProvider->setPixels(id, data, rect, rect, gfx::Vector2d());
550 554
551 int childPool = 2; 555 int childPool = 2;
552 int childId = m_resourceProvider->createChild(childPool); 556 int childId = m_resourceProvider->createChild(childPool);
553 557
554 { 558 {
555 // Transfer some resource to the parent. 559 // Transfer some resource to the parent.
556 ResourceProvider::ResourceIdArray resourceIdsToTransfer; 560 ResourceProvider::ResourceIdArray resourceIdsToTransfer;
557 resourceIdsToTransfer.push_back(id); 561 resourceIdsToTransfer.push_back(id);
558 ResourceProvider::TransferableResourceList list = childResourceProvider- >prepareSendToParent(resourceIdsToTransfer); 562 TransferableResourceList list;
559 EXPECT_NE(0u, list.syncPoint); 563 childResourceProvider->prepareSendToParent(resourceIdsToTransfer, &list) ;
564 EXPECT_NE(0u, list.sync_point);
560 EXPECT_EQ(1u, list.resources.size()); 565 EXPECT_EQ(1u, list.resources.size());
561 EXPECT_TRUE(childResourceProvider->inUseByConsumer(id)); 566 EXPECT_TRUE(childResourceProvider->inUseByConsumer(id));
562 m_resourceProvider->receiveFromChild(childId, list); 567 m_resourceProvider->receiveFromChild(childId, list);
563 } 568 }
564 569
565 // Delete textures in the child, while they are transfered. 570 // Delete textures in the child, while they are transfered.
566 childResourceProvider->deleteResource(id); 571 childResourceProvider->deleteResource(id);
567 EXPECT_EQ(1u, childResourceProvider->numResources()); 572 EXPECT_EQ(1u, childResourceProvider->numResources());
568 573
569 { 574 {
570 // Transfer resources back from the parent to the child. 575 // Transfer resources back from the parent to the child.
571 ResourceProvider::ResourceIdMap resourceMap = m_resourceProvider->getChi ldToParentMap(childId); 576 ResourceProvider::ResourceIdMap resourceMap = m_resourceProvider->getChi ldToParentMap(childId);
572 ResourceProvider::ResourceId mappedId = resourceMap[id]; 577 ResourceProvider::ResourceId mappedId = resourceMap[id];
573 EXPECT_NE(0u, mappedId); 578 EXPECT_NE(0u, mappedId);
574 ResourceProvider::ResourceIdArray resourceIdsToTransfer; 579 ResourceProvider::ResourceIdArray resourceIdsToTransfer;
575 resourceIdsToTransfer.push_back(mappedId); 580 resourceIdsToTransfer.push_back(mappedId);
576 ResourceProvider::TransferableResourceList list = m_resourceProvider->pr epareSendToChild(childId, resourceIdsToTransfer); 581 TransferableResourceList list;
577 EXPECT_NE(0u, list.syncPoint); 582 m_resourceProvider->prepareSendToChild(childId, resourceIdsToTransfer, & list);
583 EXPECT_NE(0u, list.sync_point);
578 EXPECT_EQ(1u, list.resources.size()); 584 EXPECT_EQ(1u, list.resources.size());
579 childResourceProvider->receiveFromParent(list); 585 childResourceProvider->receiveFromParent(list);
580 } 586 }
581 EXPECT_EQ(0u, childResourceProvider->numResources()); 587 EXPECT_EQ(0u, childResourceProvider->numResources());
582 } 588 }
583 589
584 INSTANTIATE_TEST_CASE_P(ResourceProviderTests, 590 INSTANTIATE_TEST_CASE_P(ResourceProviderTests,
585 ResourceProviderTest, 591 ResourceProviderTest,
586 ::testing::Values(ResourceProvider::GLTexture, 592 ::testing::Values(ResourceProvider::GLTexture,
587 ResourceProvider::Bitmap)); 593 ResourceProvider::Bitmap));
588 594
589 } // namespace 595 } // namespace
OLDNEW
« cc/DEPS ('K') | « cc/resource_provider.cc ('k') | cc/transferable_resource.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698