OLD | NEW |
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 435 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
446 TransferableResourceList list; | 446 TransferableResourceList list; |
447 childResourceProvider->prepareSendToParent(resourceIdsToTransfer, &list)
; | 447 childResourceProvider->prepareSendToParent(resourceIdsToTransfer, &list)
; |
448 EXPECT_NE(0u, list.sync_point); | 448 EXPECT_NE(0u, list.sync_point); |
449 EXPECT_EQ(2u, list.resources.size()); | 449 EXPECT_EQ(2u, list.resources.size()); |
450 EXPECT_TRUE(childResourceProvider->inUseByConsumer(id1)); | 450 EXPECT_TRUE(childResourceProvider->inUseByConsumer(id1)); |
451 EXPECT_TRUE(childResourceProvider->inUseByConsumer(id2)); | 451 EXPECT_TRUE(childResourceProvider->inUseByConsumer(id2)); |
452 m_resourceProvider->receiveFromChild(childId, list); | 452 m_resourceProvider->receiveFromChild(childId, list); |
453 } | 453 } |
454 | 454 |
455 EXPECT_EQ(2u, m_resourceProvider->numResources()); | 455 EXPECT_EQ(2u, m_resourceProvider->numResources()); |
456 EXPECT_EQ(2u, m_resourceProvider->mailboxCount()); | |
457 ResourceProvider::ResourceIdMap resourceMap = m_resourceProvider->getChildTo
ParentMap(childId); | 456 ResourceProvider::ResourceIdMap resourceMap = m_resourceProvider->getChildTo
ParentMap(childId); |
458 ResourceProvider::ResourceId mappedId1 = resourceMap[id1]; | 457 ResourceProvider::ResourceId mappedId1 = resourceMap[id1]; |
459 ResourceProvider::ResourceId mappedId2 = resourceMap[id2]; | 458 ResourceProvider::ResourceId mappedId2 = resourceMap[id2]; |
460 EXPECT_NE(0u, mappedId1); | 459 EXPECT_NE(0u, mappedId1); |
461 EXPECT_NE(0u, mappedId2); | 460 EXPECT_NE(0u, mappedId2); |
462 EXPECT_FALSE(m_resourceProvider->inUseByConsumer(id1)); | 461 EXPECT_FALSE(m_resourceProvider->inUseByConsumer(id1)); |
463 EXPECT_FALSE(m_resourceProvider->inUseByConsumer(id2)); | 462 EXPECT_FALSE(m_resourceProvider->inUseByConsumer(id2)); |
464 | 463 |
465 uint8_t result[4] = {0}; | 464 uint8_t result[4] = {0}; |
466 getResourcePixels(mappedId1, size, format, result); | 465 getResourcePixels(mappedId1, size, format, result); |
(...skipping 17 matching lines...) Expand all Loading... |
484 // Transfer resources back from the parent to the child. | 483 // Transfer resources back from the parent to the child. |
485 ResourceProvider::ResourceIdArray resourceIdsToTransfer; | 484 ResourceProvider::ResourceIdArray resourceIdsToTransfer; |
486 resourceIdsToTransfer.push_back(mappedId1); | 485 resourceIdsToTransfer.push_back(mappedId1); |
487 resourceIdsToTransfer.push_back(mappedId2); | 486 resourceIdsToTransfer.push_back(mappedId2); |
488 TransferableResourceList list; | 487 TransferableResourceList list; |
489 m_resourceProvider->prepareSendToChild(childId, resourceIdsToTransfer, &
list); | 488 m_resourceProvider->prepareSendToChild(childId, resourceIdsToTransfer, &
list); |
490 EXPECT_NE(0u, list.sync_point); | 489 EXPECT_NE(0u, list.sync_point); |
491 EXPECT_EQ(2u, list.resources.size()); | 490 EXPECT_EQ(2u, list.resources.size()); |
492 childResourceProvider->receiveFromParent(list); | 491 childResourceProvider->receiveFromParent(list); |
493 } | 492 } |
494 EXPECT_EQ(0u, m_resourceProvider->mailboxCount()); | |
495 EXPECT_EQ(2u, childResourceProvider->mailboxCount()); | |
496 EXPECT_FALSE(childResourceProvider->inUseByConsumer(id1)); | 493 EXPECT_FALSE(childResourceProvider->inUseByConsumer(id1)); |
497 EXPECT_FALSE(childResourceProvider->inUseByConsumer(id2)); | 494 EXPECT_FALSE(childResourceProvider->inUseByConsumer(id2)); |
498 | 495 |
499 ResourceProviderContext* childContext3D = static_cast<ResourceProviderContex
t*>(childContext->context3D()); | 496 ResourceProviderContext* childContext3D = static_cast<ResourceProviderContex
t*>(childContext->context3D()); |
500 { | 497 { |
501 ResourceProvider::ScopedReadLockGL lock(childResourceProvider.get(), id1
); | 498 ResourceProvider::ScopedReadLockGL lock(childResourceProvider.get(), id1
); |
502 ASSERT_NE(0U, lock.textureId()); | 499 ASSERT_NE(0U, lock.textureId()); |
503 childContext3D->bindTexture(GL_TEXTURE_2D, lock.textureId()); | 500 childContext3D->bindTexture(GL_TEXTURE_2D, lock.textureId()); |
504 childContext3D->getPixels(size, format, result); | 501 childContext3D->getPixels(size, format, result); |
505 EXPECT_EQ(0, memcmp(data1, result, pixelSize)); | 502 EXPECT_EQ(0, memcmp(data1, result, pixelSize)); |
(...skipping 16 matching lines...) Expand all Loading... |
522 EXPECT_NE(0u, list.sync_point); | 519 EXPECT_NE(0u, list.sync_point); |
523 EXPECT_EQ(2u, list.resources.size()); | 520 EXPECT_EQ(2u, list.resources.size()); |
524 EXPECT_TRUE(childResourceProvider->inUseByConsumer(id1)); | 521 EXPECT_TRUE(childResourceProvider->inUseByConsumer(id1)); |
525 EXPECT_TRUE(childResourceProvider->inUseByConsumer(id2)); | 522 EXPECT_TRUE(childResourceProvider->inUseByConsumer(id2)); |
526 m_resourceProvider->receiveFromChild(childId, list); | 523 m_resourceProvider->receiveFromChild(childId, list); |
527 } | 524 } |
528 | 525 |
529 EXPECT_EQ(2u, m_resourceProvider->numResources()); | 526 EXPECT_EQ(2u, m_resourceProvider->numResources()); |
530 m_resourceProvider->destroyChild(childId); | 527 m_resourceProvider->destroyChild(childId); |
531 EXPECT_EQ(0u, m_resourceProvider->numResources()); | 528 EXPECT_EQ(0u, m_resourceProvider->numResources()); |
532 EXPECT_EQ(0u, m_resourceProvider->mailboxCount()); | |
533 } | 529 } |
534 | 530 |
535 TEST_P(ResourceProviderTest, DeleteTransferredResources) | 531 TEST_P(ResourceProviderTest, DeleteTransferredResources) |
536 { | 532 { |
537 // Resource transfer is only supported with GL textures for now. | 533 // Resource transfer is only supported with GL textures for now. |
538 if (GetParam() != ResourceProvider::GLTexture) | 534 if (GetParam() != ResourceProvider::GLTexture) |
539 return; | 535 return; |
540 | 536 |
541 scoped_ptr<GraphicsContext> childContext(FakeWebCompositorOutputSurface::cre
ate(ResourceProviderContext::create(m_sharedData.get()).PassAs<WebKit::WebGraphi
csContext3D>())); | 537 scoped_ptr<GraphicsContext> childContext(FakeWebCompositorOutputSurface::cre
ate(ResourceProviderContext::create(m_sharedData.get()).PassAs<WebKit::WebGraphi
csContext3D>())); |
542 scoped_ptr<ResourceProvider> childResourceProvider(ResourceProvider::create(
childContext.get())); | 538 scoped_ptr<ResourceProvider> childResourceProvider(ResourceProvider::create(
childContext.get())); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
586 } | 582 } |
587 EXPECT_EQ(0u, childResourceProvider->numResources()); | 583 EXPECT_EQ(0u, childResourceProvider->numResources()); |
588 } | 584 } |
589 | 585 |
590 INSTANTIATE_TEST_CASE_P(ResourceProviderTests, | 586 INSTANTIATE_TEST_CASE_P(ResourceProviderTests, |
591 ResourceProviderTest, | 587 ResourceProviderTest, |
592 ::testing::Values(ResourceProvider::GLTexture, | 588 ::testing::Values(ResourceProvider::GLTexture, |
593 ResourceProvider::Bitmap)); | 589 ResourceProvider::Bitmap)); |
594 | 590 |
595 } // anonymous namespace | 591 } // anonymous namespace |
OLD | NEW |