Chromium Code Reviews| 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 "cc/resources/resource_provider.h" | 5 #include "cc/resources/resource_provider.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <map> | 8 #include <map> |
| 9 #include <set> | 9 #include <set> |
| 10 | 10 |
| (...skipping 859 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 870 id1); | 870 id1); |
| 871 child_resource_provider_->DeleteResource(id1); | 871 child_resource_provider_->DeleteResource(id1); |
| 872 EXPECT_EQ(1u, child_resource_provider_->num_resources()); | 872 EXPECT_EQ(1u, child_resource_provider_->num_resources()); |
| 873 EXPECT_TRUE(child_resource_provider_->InUseByConsumer(id1)); | 873 EXPECT_TRUE(child_resource_provider_->InUseByConsumer(id1)); |
| 874 } | 874 } |
| 875 | 875 |
| 876 EXPECT_EQ(0u, child_resource_provider_->num_resources()); | 876 EXPECT_EQ(0u, child_resource_provider_->num_resources()); |
| 877 resource_provider_->DestroyChild(child_id); | 877 resource_provider_->DestroyChild(child_id); |
| 878 } | 878 } |
| 879 | 879 |
| 880 void MailboxReleased(unsigned sync_point, bool lost_resource) { | |
|
danakj
2014/08/06 14:13:43
There's EmptyReleaseCallback at the top of this fi
| |
| 881 } | |
| 882 | |
| 883 TEST_P(ResourceProviderTest, AllowOverlayTransfersToParent) { | |
| 884 if (GetParam() != ResourceProvider::GLTexture) | |
|
danakj
2014/08/06 14:13:43
Add a comment explaining why please
| |
| 885 return; | |
| 886 | |
| 887 unsigned sync_point = 0; | |
|
danakj
2014/08/06 14:13:43
nit: can you uint32 for this? someone previously w
| |
| 888 TextureMailbox mailbox = | |
| 889 TextureMailbox(gpu::Mailbox::Generate(), GL_TEXTURE_2D, sync_point); | |
|
danakj
2014/08/06 14:13:43
nit: drop the "= TextureMailbox"
| |
| 890 mailbox.set_allow_overlay(true); | |
| 891 scoped_ptr<SingleReleaseCallback> release_callback = | |
| 892 SingleReleaseCallback::Create(base::Bind(&MailboxReleased)); | |
| 893 ResourceProvider::ResourceId id1 = | |
| 894 child_resource_provider_->CreateResourceFromTextureMailbox( | |
| 895 mailbox, release_callback.Pass()); | |
| 896 | |
| 897 TextureMailbox mailbox2 = | |
| 898 TextureMailbox(gpu::Mailbox::Generate(), GL_TEXTURE_2D, sync_point); | |
| 899 mailbox2.set_allow_overlay(false); | |
| 900 scoped_ptr<SingleReleaseCallback> release_callback2 = | |
| 901 SingleReleaseCallback::Create(base::Bind(&MailboxReleased)); | |
| 902 ResourceProvider::ResourceId id2 = | |
| 903 child_resource_provider_->CreateResourceFromTextureMailbox( | |
| 904 mailbox2, release_callback2.Pass()); | |
| 905 | |
| 906 ReturnedResourceArray returned_to_child; | |
| 907 int child_id = | |
| 908 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child)); | |
| 909 | |
| 910 // Transfer some resources to the parent. | |
| 911 ResourceProvider::ResourceIdArray resource_ids_to_transfer; | |
| 912 resource_ids_to_transfer.push_back(id1); | |
| 913 resource_ids_to_transfer.push_back(id2); | |
| 914 TransferableResourceArray list; | |
| 915 child_resource_provider_->PrepareSendToParent(resource_ids_to_transfer, | |
| 916 &list); | |
| 917 ASSERT_EQ(2u, list.size()); | |
| 918 resource_provider_->ReceiveFromChild(child_id, list); | |
| 919 EXPECT_TRUE(resource_provider_->AllowOverlay(list[0].id)); | |
| 920 EXPECT_FALSE(resource_provider_->AllowOverlay(list[1].id)); | |
| 921 | |
| 922 resource_provider_->DeclareUsedResourcesFromChild( | |
| 923 child_id, ResourceProvider::ResourceIdArray()); | |
| 924 | |
| 925 EXPECT_EQ(2u, returned_to_child.size()); | |
| 926 child_resource_provider_->ReceiveReturnsFromParent(returned_to_child); | |
| 927 | |
| 928 child_resource_provider_->DeleteResource(id1); | |
| 929 child_resource_provider_->DeleteResource(id2); | |
| 930 EXPECT_EQ(0u, child_resource_provider_->num_resources()); | |
| 931 | |
| 932 resource_provider_->DestroyChild(child_id); | |
| 933 } | |
| 934 | |
| 880 TEST_P(ResourceProviderTest, TransferSoftwareResources) { | 935 TEST_P(ResourceProviderTest, TransferSoftwareResources) { |
| 881 if (GetParam() != ResourceProvider::Bitmap) | 936 if (GetParam() != ResourceProvider::Bitmap) |
| 882 return; | 937 return; |
| 883 | 938 |
| 884 gfx::Size size(1, 1); | 939 gfx::Size size(1, 1); |
| 885 ResourceFormat format = RGBA_8888; | 940 ResourceFormat format = RGBA_8888; |
| 886 size_t pixel_size = TextureSizeBytes(size, format); | 941 size_t pixel_size = TextureSizeBytes(size, format); |
| 887 ASSERT_EQ(4U, pixel_size); | 942 ASSERT_EQ(4U, pixel_size); |
| 888 | 943 |
| 889 ResourceProvider::ResourceId id1 = child_resource_provider_->CreateResource( | 944 ResourceProvider::ResourceId id1 = child_resource_provider_->CreateResource( |
| (...skipping 2464 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3354 resource_provider->AllocateForTesting(id); | 3409 resource_provider->AllocateForTesting(id); |
| 3355 Mock::VerifyAndClearExpectations(context); | 3410 Mock::VerifyAndClearExpectations(context); |
| 3356 | 3411 |
| 3357 DCHECK_EQ(10u, context->PeekTextureId()); | 3412 DCHECK_EQ(10u, context->PeekTextureId()); |
| 3358 resource_provider->DeleteResource(id); | 3413 resource_provider->DeleteResource(id); |
| 3359 } | 3414 } |
| 3360 } | 3415 } |
| 3361 | 3416 |
| 3362 } // namespace | 3417 } // namespace |
| 3363 } // namespace cc | 3418 } // namespace cc |
| OLD | NEW |