Chromium Code Reviews| Index: cc/resources/resource_provider_unittest.cc |
| diff --git a/cc/resources/resource_provider_unittest.cc b/cc/resources/resource_provider_unittest.cc |
| index 4bf9ec0565ec4bcfb59c97adab3d3f87749aaa00..7ee4aa04d0e47876fe676be23f3954365f97e4fe 100644 |
| --- a/cc/resources/resource_provider_unittest.cc |
| +++ b/cc/resources/resource_provider_unittest.cc |
| @@ -877,6 +877,61 @@ TEST_P(ResourceProviderTest, ReadLockCountStopsReturnToChildOrDelete) { |
| resource_provider_->DestroyChild(child_id); |
| } |
| +void MailboxReleased(unsigned sync_point, bool lost_resource) { |
|
danakj
2014/08/06 14:13:43
There's EmptyReleaseCallback at the top of this fi
|
| +} |
| + |
| +TEST_P(ResourceProviderTest, AllowOverlayTransfersToParent) { |
| + if (GetParam() != ResourceProvider::GLTexture) |
|
danakj
2014/08/06 14:13:43
Add a comment explaining why please
|
| + return; |
| + |
| + unsigned sync_point = 0; |
|
danakj
2014/08/06 14:13:43
nit: can you uint32 for this? someone previously w
|
| + TextureMailbox mailbox = |
| + TextureMailbox(gpu::Mailbox::Generate(), GL_TEXTURE_2D, sync_point); |
|
danakj
2014/08/06 14:13:43
nit: drop the "= TextureMailbox"
|
| + mailbox.set_allow_overlay(true); |
| + scoped_ptr<SingleReleaseCallback> release_callback = |
| + SingleReleaseCallback::Create(base::Bind(&MailboxReleased)); |
| + ResourceProvider::ResourceId id1 = |
| + child_resource_provider_->CreateResourceFromTextureMailbox( |
| + mailbox, release_callback.Pass()); |
| + |
| + TextureMailbox mailbox2 = |
| + TextureMailbox(gpu::Mailbox::Generate(), GL_TEXTURE_2D, sync_point); |
| + mailbox2.set_allow_overlay(false); |
| + scoped_ptr<SingleReleaseCallback> release_callback2 = |
| + SingleReleaseCallback::Create(base::Bind(&MailboxReleased)); |
| + ResourceProvider::ResourceId id2 = |
| + child_resource_provider_->CreateResourceFromTextureMailbox( |
| + mailbox2, release_callback2.Pass()); |
| + |
| + ReturnedResourceArray returned_to_child; |
| + int child_id = |
| + resource_provider_->CreateChild(GetReturnCallback(&returned_to_child)); |
| + |
| + // Transfer some resources to the parent. |
| + ResourceProvider::ResourceIdArray resource_ids_to_transfer; |
| + resource_ids_to_transfer.push_back(id1); |
| + resource_ids_to_transfer.push_back(id2); |
| + TransferableResourceArray list; |
| + child_resource_provider_->PrepareSendToParent(resource_ids_to_transfer, |
| + &list); |
| + ASSERT_EQ(2u, list.size()); |
| + resource_provider_->ReceiveFromChild(child_id, list); |
| + EXPECT_TRUE(resource_provider_->AllowOverlay(list[0].id)); |
| + EXPECT_FALSE(resource_provider_->AllowOverlay(list[1].id)); |
| + |
| + resource_provider_->DeclareUsedResourcesFromChild( |
| + child_id, ResourceProvider::ResourceIdArray()); |
| + |
| + EXPECT_EQ(2u, returned_to_child.size()); |
| + child_resource_provider_->ReceiveReturnsFromParent(returned_to_child); |
| + |
| + child_resource_provider_->DeleteResource(id1); |
| + child_resource_provider_->DeleteResource(id2); |
| + EXPECT_EQ(0u, child_resource_provider_->num_resources()); |
| + |
| + resource_provider_->DestroyChild(child_id); |
| +} |
| + |
| TEST_P(ResourceProviderTest, TransferSoftwareResources) { |
| if (GetParam() != ResourceProvider::Bitmap) |
| return; |