| 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 |