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

Side by Side Diff: cc/CCResourceProviderTest.cpp

Issue 10915298: Add CCDelegatingRenderer, and corresponding IPCs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix clang Created 8 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « cc/CCResourceProvider.cpp ('k') | cc/CCSingleThreadProxy.cpp » ('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 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 "CCResourceProvider.h" 7 #include "CCResourceProvider.h"
8 8
9 #include "CCGraphicsContext.h" 9 #include "CCGraphicsContext.h"
10 #include "CCSingleThreadProxy.h" // For DebugScopedSetImplThread 10 #include "CCSingleThreadProxy.h" // For DebugScopedSetImplThread
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 childResourceProvider->upload(id2, data2, rect, rect, IntSize()); 435 childResourceProvider->upload(id2, data2, rect, rect, IntSize());
436 436
437 int childPool = 2; 437 int childPool = 2;
438 int childId = m_resourceProvider->createChild(childPool); 438 int childId = m_resourceProvider->createChild(childPool);
439 439
440 { 440 {
441 // Transfer some resources to the parent. 441 // Transfer some resources to the parent.
442 CCResourceProvider::ResourceIdArray resourceIdsToTransfer; 442 CCResourceProvider::ResourceIdArray resourceIdsToTransfer;
443 resourceIdsToTransfer.append(id1); 443 resourceIdsToTransfer.append(id1);
444 resourceIdsToTransfer.append(id2); 444 resourceIdsToTransfer.append(id2);
445 CCResourceProvider::TransferableResourceList list = childResourceProvide r->prepareSendToParent(resourceIdsToTransfer); 445 CCResourceProvider::TransferableResourceList list;
446 EXPECT_NE(0u, list.syncPoint); 446 childResourceProvider->prepareSendToParent(resourceIdsToTransfer, &list) ;
447 EXPECT_NE(0u, list.sync_point);
447 EXPECT_EQ(2u, list.resources.size()); 448 EXPECT_EQ(2u, list.resources.size());
448 EXPECT_TRUE(childResourceProvider->inUseByConsumer(id1)); 449 EXPECT_TRUE(childResourceProvider->inUseByConsumer(id1));
449 EXPECT_TRUE(childResourceProvider->inUseByConsumer(id2)); 450 EXPECT_TRUE(childResourceProvider->inUseByConsumer(id2));
450 m_resourceProvider->receiveFromChild(childId, list); 451 m_resourceProvider->receiveFromChild(childId, list);
451 } 452 }
452 453
453 EXPECT_EQ(2u, m_resourceProvider->numResources()); 454 EXPECT_EQ(2u, m_resourceProvider->numResources());
454 EXPECT_EQ(2u, m_resourceProvider->mailboxCount()); 455 EXPECT_EQ(2u, m_resourceProvider->mailboxCount());
455 CCResourceProvider::ResourceIdMap resourceMap = m_resourceProvider->getChild ToParentMap(childId); 456 CCResourceProvider::ResourceIdMap resourceMap = m_resourceProvider->getChild ToParentMap(childId);
456 CCResourceProvider::ResourceId mappedId1 = resourceMap.get(id1); 457 CCResourceProvider::ResourceId mappedId1 = resourceMap.get(id1);
457 CCResourceProvider::ResourceId mappedId2 = resourceMap.get(id2); 458 CCResourceProvider::ResourceId mappedId2 = resourceMap.get(id2);
458 EXPECT_NE(0u, mappedId1); 459 EXPECT_NE(0u, mappedId1);
459 EXPECT_NE(0u, mappedId2); 460 EXPECT_NE(0u, mappedId2);
460 EXPECT_FALSE(m_resourceProvider->inUseByConsumer(id1)); 461 EXPECT_FALSE(m_resourceProvider->inUseByConsumer(id1));
461 EXPECT_FALSE(m_resourceProvider->inUseByConsumer(id2)); 462 EXPECT_FALSE(m_resourceProvider->inUseByConsumer(id2));
462 463
463 uint8_t result[4] = {0}; 464 uint8_t result[4] = {0};
464 getResourcePixels(mappedId1, size, format, result); 465 getResourcePixels(mappedId1, size, format, result);
465 EXPECT_EQ(0, memcmp(data1, result, pixelSize)); 466 EXPECT_EQ(0, memcmp(data1, result, pixelSize));
466 467
467 getResourcePixels(mappedId2, size, format, result); 468 getResourcePixels(mappedId2, size, format, result);
468 EXPECT_EQ(0, memcmp(data2, result, pixelSize)); 469 EXPECT_EQ(0, memcmp(data2, result, pixelSize));
469 470
470 { 471 {
471 // Check that transfering again the same resource from the child to the 472 // Check that transfering again the same resource from the child to the
472 // parent is a noop. 473 // parent is a noop.
473 CCResourceProvider::ResourceIdArray resourceIdsToTransfer; 474 CCResourceProvider::ResourceIdArray resourceIdsToTransfer;
474 resourceIdsToTransfer.append(id1); 475 resourceIdsToTransfer.append(id1);
475 CCResourceProvider::TransferableResourceList list = childResourceProvide r->prepareSendToParent(resourceIdsToTransfer); 476 CCResourceProvider::TransferableResourceList list;
476 EXPECT_EQ(0u, list.syncPoint); 477 childResourceProvider->prepareSendToParent(resourceIdsToTransfer, &list) ;
478 EXPECT_EQ(0u, list.sync_point);
477 EXPECT_EQ(0u, list.resources.size()); 479 EXPECT_EQ(0u, list.resources.size());
478 } 480 }
479 481
480 { 482 {
481 // Transfer resources back from the parent to the child. 483 // Transfer resources back from the parent to the child.
482 CCResourceProvider::ResourceIdArray resourceIdsToTransfer; 484 CCResourceProvider::ResourceIdArray resourceIdsToTransfer;
483 resourceIdsToTransfer.append(mappedId1); 485 resourceIdsToTransfer.append(mappedId1);
484 resourceIdsToTransfer.append(mappedId2); 486 resourceIdsToTransfer.append(mappedId2);
485 CCResourceProvider::TransferableResourceList list = m_resourceProvider-> prepareSendToChild(childId, resourceIdsToTransfer); 487 CCResourceProvider::TransferableResourceList list;
486 EXPECT_NE(0u, list.syncPoint); 488 m_resourceProvider->prepareSendToChild(childId, resourceIdsToTransfer, & list);
489 EXPECT_NE(0u, list.sync_point);
487 EXPECT_EQ(2u, list.resources.size()); 490 EXPECT_EQ(2u, list.resources.size());
488 childResourceProvider->receiveFromParent(list); 491 childResourceProvider->receiveFromParent(list);
489 } 492 }
490 EXPECT_EQ(0u, m_resourceProvider->mailboxCount()); 493 EXPECT_EQ(0u, m_resourceProvider->mailboxCount());
491 EXPECT_EQ(2u, childResourceProvider->mailboxCount()); 494 EXPECT_EQ(2u, childResourceProvider->mailboxCount());
492 EXPECT_FALSE(childResourceProvider->inUseByConsumer(id1)); 495 EXPECT_FALSE(childResourceProvider->inUseByConsumer(id1));
493 EXPECT_FALSE(childResourceProvider->inUseByConsumer(id2)); 496 EXPECT_FALSE(childResourceProvider->inUseByConsumer(id2));
494 497
495 ResourceProviderContext* childContext3D = static_cast<ResourceProviderContex t*>(childContext->context3D()); 498 ResourceProviderContext* childContext3D = static_cast<ResourceProviderContex t*>(childContext->context3D());
496 { 499 {
497 CCResourceProvider::ScopedReadLockGL lock(childResourceProvider.get(), i d1); 500 CCResourceProvider::ScopedReadLockGL lock(childResourceProvider.get(), i d1);
498 ASSERT_NE(0U, lock.textureId()); 501 ASSERT_NE(0U, lock.textureId());
499 childContext3D->bindTexture(GraphicsContext3D::TEXTURE_2D, lock.textureI d()); 502 childContext3D->bindTexture(GraphicsContext3D::TEXTURE_2D, lock.textureI d());
500 childContext3D->getPixels(size, format, result); 503 childContext3D->getPixels(size, format, result);
501 EXPECT_EQ(0, memcmp(data1, result, pixelSize)); 504 EXPECT_EQ(0, memcmp(data1, result, pixelSize));
502 } 505 }
503 { 506 {
504 CCResourceProvider::ScopedReadLockGL lock(childResourceProvider.get(), i d2); 507 CCResourceProvider::ScopedReadLockGL lock(childResourceProvider.get(), i d2);
505 ASSERT_NE(0U, lock.textureId()); 508 ASSERT_NE(0U, lock.textureId());
506 childContext3D->bindTexture(GraphicsContext3D::TEXTURE_2D, lock.textureI d()); 509 childContext3D->bindTexture(GraphicsContext3D::TEXTURE_2D, lock.textureI d());
507 childContext3D->getPixels(size, format, result); 510 childContext3D->getPixels(size, format, result);
508 EXPECT_EQ(0, memcmp(data2, result, pixelSize)); 511 EXPECT_EQ(0, memcmp(data2, result, pixelSize));
509 } 512 }
510 513
511 { 514 {
512 // Transfer resources to the parent again. 515 // Transfer resources to the parent again.
513 CCResourceProvider::ResourceIdArray resourceIdsToTransfer; 516 CCResourceProvider::ResourceIdArray resourceIdsToTransfer;
514 resourceIdsToTransfer.append(id1); 517 resourceIdsToTransfer.append(id1);
515 resourceIdsToTransfer.append(id2); 518 resourceIdsToTransfer.append(id2);
516 CCResourceProvider::TransferableResourceList list = childResourceProvide r->prepareSendToParent(resourceIdsToTransfer); 519 CCResourceProvider::TransferableResourceList list;
517 EXPECT_NE(0u, list.syncPoint); 520 childResourceProvider->prepareSendToParent(resourceIdsToTransfer, &list) ;
521 EXPECT_NE(0u, list.sync_point);
518 EXPECT_EQ(2u, list.resources.size()); 522 EXPECT_EQ(2u, list.resources.size());
519 EXPECT_TRUE(childResourceProvider->inUseByConsumer(id1)); 523 EXPECT_TRUE(childResourceProvider->inUseByConsumer(id1));
520 EXPECT_TRUE(childResourceProvider->inUseByConsumer(id2)); 524 EXPECT_TRUE(childResourceProvider->inUseByConsumer(id2));
521 m_resourceProvider->receiveFromChild(childId, list); 525 m_resourceProvider->receiveFromChild(childId, list);
522 } 526 }
523 527
524 EXPECT_EQ(2u, m_resourceProvider->numResources()); 528 EXPECT_EQ(2u, m_resourceProvider->numResources());
525 m_resourceProvider->destroyChild(childId); 529 m_resourceProvider->destroyChild(childId);
526 EXPECT_EQ(0u, m_resourceProvider->numResources()); 530 EXPECT_EQ(0u, m_resourceProvider->numResources());
527 EXPECT_EQ(0u, m_resourceProvider->mailboxCount()); 531 EXPECT_EQ(0u, m_resourceProvider->mailboxCount());
528 } 532 }
529 533
530 TEST_P(CCResourceProviderTest, DeleteTransferredResources) 534 TEST_P(CCResourceProviderTest, DeleteTransferedResources)
531 { 535 {
532 // Resource transfer is only supported with GL textures for now. 536 // Resource transfer is only supported with GL textures for now.
533 if (GetParam() != CCResourceProvider::GLTexture) 537 if (GetParam() != CCResourceProvider::GLTexture)
534 return; 538 return;
535 539
536 scoped_ptr<CCGraphicsContext> childContext(FakeWebCompositorOutputSurface::c reate(ResourceProviderContext::create(m_sharedData.get()))); 540 scoped_ptr<CCGraphicsContext> childContext(FakeWebCompositorOutputSurface::c reate(ResourceProviderContext::create(m_sharedData.get())));
537 OwnPtr<CCResourceProvider> childResourceProvider(CCResourceProvider::create( childContext.get())); 541 OwnPtr<CCResourceProvider> childResourceProvider(CCResourceProvider::create( childContext.get()));
538 542
539 IntSize size(1, 1); 543 IntSize size(1, 1);
540 WGC3Denum format = GraphicsContext3D::RGBA; 544 WGC3Denum format = GraphicsContext3D::RGBA;
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
579 } 583 }
580 EXPECT_EQ(0u, childResourceProvider->numResources()); 584 EXPECT_EQ(0u, childResourceProvider->numResources());
581 } 585 }
582 586
583 INSTANTIATE_TEST_CASE_P(CCResourceProviderTests, 587 INSTANTIATE_TEST_CASE_P(CCResourceProviderTests,
584 CCResourceProviderTest, 588 CCResourceProviderTest,
585 ::testing::Values(CCResourceProvider::GLTexture, 589 ::testing::Values(CCResourceProvider::GLTexture,
586 CCResourceProvider::Bitmap)); 590 CCResourceProvider::Bitmap));
587 591
588 } // namespace 592 } // namespace
OLDNEW
« no previous file with comments | « cc/CCResourceProvider.cpp ('k') | cc/CCSingleThreadProxy.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698