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 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/containers/hash_tables.h" | 10 #include "base/containers/hash_tables.h" |
11 #include "base/logging.h" | 11 #include "base/logging.h" |
12 #include "base/memory/ref_counted.h" | 12 #include "base/memory/ref_counted.h" |
13 #include "cc/base/scoped_ptr_deque.h" | 13 #include "cc/base/scoped_ptr_deque.h" |
14 #include "cc/debug/test_web_graphics_context_3d.h" | 14 #include "cc/debug/test_web_graphics_context_3d.h" |
15 #include "cc/output/output_surface.h" | 15 #include "cc/output/output_surface.h" |
16 #include "cc/resources/returned_resource.h" | 16 #include "cc/resources/returned_resource.h" |
| 17 #include "cc/resources/scoped_release_callback.h" |
17 #include "cc/test/fake_output_surface.h" | 18 #include "cc/test/fake_output_surface.h" |
18 #include "cc/test/fake_output_surface_client.h" | 19 #include "cc/test/fake_output_surface_client.h" |
19 #include "gpu/GLES2/gl2extchromium.h" | 20 #include "gpu/GLES2/gl2extchromium.h" |
20 #include "testing/gmock/include/gmock/gmock.h" | 21 #include "testing/gmock/include/gmock/gmock.h" |
21 #include "testing/gtest/include/gtest/gtest.h" | 22 #include "testing/gtest/include/gtest/gtest.h" |
22 #include "third_party/WebKit/public/platform/WebGraphicsContext3D.h" | 23 #include "third_party/WebKit/public/platform/WebGraphicsContext3D.h" |
23 #include "third_party/khronos/GLES2/gl2.h" | 24 #include "third_party/khronos/GLES2/gl2.h" |
24 #include "third_party/khronos/GLES2/gl2ext.h" | 25 #include "third_party/khronos/GLES2/gl2ext.h" |
25 #include "ui/gfx/rect.h" | 26 #include "ui/gfx/rect.h" |
26 | 27 |
(...skipping 797 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
824 gpu::Mailbox mailbox; | 825 gpu::Mailbox mailbox; |
825 context()->genMailboxCHROMIUM(mailbox.name); | 826 context()->genMailboxCHROMIUM(mailbox.name); |
826 context()->produceTextureCHROMIUM(GL_TEXTURE_2D, mailbox.name); | 827 context()->produceTextureCHROMIUM(GL_TEXTURE_2D, mailbox.name); |
827 unsigned sync_point = context()->insertSyncPoint(); | 828 unsigned sync_point = context()->insertSyncPoint(); |
828 | 829 |
829 // All the logic below assumes that the sync points are all positive. | 830 // All the logic below assumes that the sync points are all positive. |
830 EXPECT_LT(0u, sync_point); | 831 EXPECT_LT(0u, sync_point); |
831 | 832 |
832 unsigned release_sync_point = 0; | 833 unsigned release_sync_point = 0; |
833 bool lost_resource = false; | 834 bool lost_resource = false; |
834 TextureMailbox::ReleaseCallback callback = | 835 ReleaseCallback callback = |
835 base::Bind(ReleaseTextureMailbox, &release_sync_point, &lost_resource); | 836 base::Bind(ReleaseTextureMailbox, &release_sync_point, &lost_resource); |
836 ResourceProvider::ResourceId resource = | 837 ResourceProvider::ResourceId resource = |
837 resource_provider_->CreateResourceFromTextureMailbox( | 838 resource_provider_->CreateResourceFromTextureMailbox( |
838 TextureMailbox(mailbox, callback, sync_point)); | 839 TextureMailbox(mailbox, sync_point), |
| 840 ScopedReleaseCallback(callback)); |
839 EXPECT_EQ(1, context()->texture_count()); | 841 EXPECT_EQ(1, context()->texture_count()); |
840 EXPECT_EQ(0u, release_sync_point); | 842 EXPECT_EQ(0u, release_sync_point); |
841 { | 843 { |
842 // Transfer the resource, expect the sync points to be consistent. | 844 // Transfer the resource, expect the sync points to be consistent. |
843 ResourceProvider::ResourceIdArray resource_ids_to_transfer; | 845 ResourceProvider::ResourceIdArray resource_ids_to_transfer; |
844 resource_ids_to_transfer.push_back(resource); | 846 resource_ids_to_transfer.push_back(resource); |
845 TransferableResourceArray list; | 847 TransferableResourceArray list; |
846 resource_provider_->PrepareSendToParent(resource_ids_to_transfer, &list); | 848 resource_provider_->PrepareSendToParent(resource_ids_to_transfer, &list); |
847 ASSERT_EQ(1u, list.size()); | 849 ASSERT_EQ(1u, list.size()); |
848 EXPECT_LE(sync_point, list[0].sync_point); | 850 EXPECT_LE(sync_point, list[0].sync_point); |
(...skipping 25 matching lines...) Expand all Loading... |
874 EXPECT_LE(list[0].sync_point, release_sync_point); | 876 EXPECT_LE(list[0].sync_point, release_sync_point); |
875 EXPECT_FALSE(lost_resource); | 877 EXPECT_FALSE(lost_resource); |
876 } | 878 } |
877 | 879 |
878 // We're going to do the same thing as above, but testing the case where we | 880 // We're going to do the same thing as above, but testing the case where we |
879 // delete the resource before we receive it back. | 881 // delete the resource before we receive it back. |
880 sync_point = release_sync_point; | 882 sync_point = release_sync_point; |
881 EXPECT_LT(0u, sync_point); | 883 EXPECT_LT(0u, sync_point); |
882 release_sync_point = 0; | 884 release_sync_point = 0; |
883 resource = resource_provider_->CreateResourceFromTextureMailbox( | 885 resource = resource_provider_->CreateResourceFromTextureMailbox( |
884 TextureMailbox(mailbox, callback, sync_point)); | 886 TextureMailbox(mailbox, sync_point), |
| 887 ScopedReleaseCallback(callback)); |
885 EXPECT_EQ(1, context()->texture_count()); | 888 EXPECT_EQ(1, context()->texture_count()); |
886 EXPECT_EQ(0u, release_sync_point); | 889 EXPECT_EQ(0u, release_sync_point); |
887 { | 890 { |
888 // Transfer the resource, expect the sync points to be consistent. | 891 // Transfer the resource, expect the sync points to be consistent. |
889 ResourceProvider::ResourceIdArray resource_ids_to_transfer; | 892 ResourceProvider::ResourceIdArray resource_ids_to_transfer; |
890 resource_ids_to_transfer.push_back(resource); | 893 resource_ids_to_transfer.push_back(resource); |
891 TransferableResourceArray list; | 894 TransferableResourceArray list; |
892 resource_provider_->PrepareSendToParent(resource_ids_to_transfer, &list); | 895 resource_provider_->PrepareSendToParent(resource_ids_to_transfer, &list); |
893 ASSERT_EQ(1u, list.size()); | 896 ASSERT_EQ(1u, list.size()); |
894 EXPECT_LE(sync_point, list[0].sync_point); | 897 EXPECT_LE(sync_point, list[0].sync_point); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
936 context()->bindTexture(GL_TEXTURE_2D, texture); | 939 context()->bindTexture(GL_TEXTURE_2D, texture); |
937 gpu::Mailbox mailbox; | 940 gpu::Mailbox mailbox; |
938 context()->genMailboxCHROMIUM(mailbox.name); | 941 context()->genMailboxCHROMIUM(mailbox.name); |
939 context()->produceTextureCHROMIUM(GL_TEXTURE_2D, mailbox.name); | 942 context()->produceTextureCHROMIUM(GL_TEXTURE_2D, mailbox.name); |
940 unsigned sync_point = context()->insertSyncPoint(); | 943 unsigned sync_point = context()->insertSyncPoint(); |
941 | 944 |
942 EXPECT_LT(0u, sync_point); | 945 EXPECT_LT(0u, sync_point); |
943 | 946 |
944 unsigned release_sync_point = 0; | 947 unsigned release_sync_point = 0; |
945 bool lost_resource = false; | 948 bool lost_resource = false; |
946 TextureMailbox::ReleaseCallback callback = | 949 ScopedReleaseCallback callback( |
947 base::Bind(ReleaseTextureMailbox, &release_sync_point, &lost_resource); | 950 base::Bind(ReleaseTextureMailbox, &release_sync_point, &lost_resource)); |
948 resource_provider_->CreateResourceFromTextureMailbox( | 951 resource_provider_->CreateResourceFromTextureMailbox( |
949 TextureMailbox(mailbox, callback, sync_point)); | 952 TextureMailbox(mailbox, sync_point), |
| 953 callback.Pass()); |
950 | 954 |
951 EXPECT_EQ(0u, release_sync_point); | 955 EXPECT_EQ(0u, release_sync_point); |
952 EXPECT_FALSE(lost_resource); | 956 EXPECT_FALSE(lost_resource); |
953 | 957 |
954 resource_provider_.reset(); | 958 resource_provider_.reset(); |
955 | 959 |
956 EXPECT_LE(sync_point, release_sync_point); | 960 EXPECT_LE(sync_point, release_sync_point); |
957 EXPECT_FALSE(lost_resource); | 961 EXPECT_FALSE(lost_resource); |
958 } | 962 } |
959 | 963 |
(...skipping 15 matching lines...) Expand all Loading... |
975 | 979 |
976 TEST_P(ResourceProviderTest, ShutdownSharedMemory) { | 980 TEST_P(ResourceProviderTest, ShutdownSharedMemory) { |
977 if (GetParam() != ResourceProvider::Bitmap) | 981 if (GetParam() != ResourceProvider::Bitmap) |
978 return; | 982 return; |
979 | 983 |
980 gfx::Size size(64, 64); | 984 gfx::Size size(64, 64); |
981 scoped_ptr<base::SharedMemory> shared_memory( | 985 scoped_ptr<base::SharedMemory> shared_memory( |
982 CreateAndFillSharedMemory(size, 0)); | 986 CreateAndFillSharedMemory(size, 0)); |
983 | 987 |
984 bool release_called = false; | 988 bool release_called = false; |
985 TextureMailbox::ReleaseCallback callback = | 989 ScopedReleaseCallback callback( |
986 base::Bind(ReleaseSharedMemoryCallback, &release_called); | 990 base::Bind(ReleaseSharedMemoryCallback, &release_called)); |
987 resource_provider_->CreateResourceFromTextureMailbox( | 991 resource_provider_->CreateResourceFromTextureMailbox( |
988 TextureMailbox(shared_memory.get(), size, callback)); | 992 TextureMailbox(shared_memory.get(), size), |
| 993 callback.Pass()); |
989 | 994 |
990 resource_provider_.reset(); | 995 resource_provider_.reset(); |
991 | 996 |
992 EXPECT_TRUE(release_called); | 997 EXPECT_TRUE(release_called); |
993 } | 998 } |
994 | 999 |
995 TEST_P(ResourceProviderTest, ShutdownWithExportedResource) { | 1000 TEST_P(ResourceProviderTest, ShutdownWithExportedResource) { |
996 // TextureMailbox callbacks only exist for GL textures for now. | 1001 // TextureMailbox callbacks only exist for GL textures for now. |
997 if (GetParam() != ResourceProvider::GLTexture) | 1002 if (GetParam() != ResourceProvider::GLTexture) |
998 return; | 1003 return; |
999 unsigned texture = context()->createTexture(); | 1004 unsigned texture = context()->createTexture(); |
1000 context()->bindTexture(GL_TEXTURE_2D, texture); | 1005 context()->bindTexture(GL_TEXTURE_2D, texture); |
1001 gpu::Mailbox mailbox; | 1006 gpu::Mailbox mailbox; |
1002 context()->genMailboxCHROMIUM(mailbox.name); | 1007 context()->genMailboxCHROMIUM(mailbox.name); |
1003 context()->produceTextureCHROMIUM(GL_TEXTURE_2D, mailbox.name); | 1008 context()->produceTextureCHROMIUM(GL_TEXTURE_2D, mailbox.name); |
1004 unsigned sync_point = context()->insertSyncPoint(); | 1009 unsigned sync_point = context()->insertSyncPoint(); |
1005 | 1010 |
1006 EXPECT_LT(0u, sync_point); | 1011 EXPECT_LT(0u, sync_point); |
1007 | 1012 |
1008 unsigned release_sync_point = 0; | 1013 unsigned release_sync_point = 0; |
1009 bool lost_resource = false; | 1014 bool lost_resource = false; |
1010 TextureMailbox::ReleaseCallback callback = | 1015 ScopedReleaseCallback callback( |
1011 base::Bind(ReleaseTextureMailbox, &release_sync_point, &lost_resource); | 1016 base::Bind(ReleaseTextureMailbox, &release_sync_point, &lost_resource)); |
1012 ResourceProvider::ResourceId resource = | 1017 ResourceProvider::ResourceId resource = |
1013 resource_provider_->CreateResourceFromTextureMailbox( | 1018 resource_provider_->CreateResourceFromTextureMailbox( |
1014 TextureMailbox(mailbox, callback, sync_point)); | 1019 TextureMailbox(mailbox, sync_point), |
| 1020 callback.Pass()); |
1015 | 1021 |
1016 // Transfer the resource, so we can't release it properly on shutdown. | 1022 // Transfer the resource, so we can't release it properly on shutdown. |
1017 ResourceProvider::ResourceIdArray resource_ids_to_transfer; | 1023 ResourceProvider::ResourceIdArray resource_ids_to_transfer; |
1018 resource_ids_to_transfer.push_back(resource); | 1024 resource_ids_to_transfer.push_back(resource); |
1019 TransferableResourceArray list; | 1025 TransferableResourceArray list; |
1020 resource_provider_->PrepareSendToParent(resource_ids_to_transfer, &list); | 1026 resource_provider_->PrepareSendToParent(resource_ids_to_transfer, &list); |
1021 | 1027 |
1022 EXPECT_EQ(0u, release_sync_point); | 1028 EXPECT_EQ(0u, release_sync_point); |
1023 EXPECT_FALSE(lost_resource); | 1029 EXPECT_FALSE(lost_resource); |
1024 | 1030 |
(...skipping 12 matching lines...) Expand all Loading... |
1037 context()->bindTexture(GL_TEXTURE_2D, texture); | 1043 context()->bindTexture(GL_TEXTURE_2D, texture); |
1038 gpu::Mailbox mailbox; | 1044 gpu::Mailbox mailbox; |
1039 context()->genMailboxCHROMIUM(mailbox.name); | 1045 context()->genMailboxCHROMIUM(mailbox.name); |
1040 context()->produceTextureCHROMIUM(GL_TEXTURE_2D, mailbox.name); | 1046 context()->produceTextureCHROMIUM(GL_TEXTURE_2D, mailbox.name); |
1041 unsigned sync_point = context()->insertSyncPoint(); | 1047 unsigned sync_point = context()->insertSyncPoint(); |
1042 | 1048 |
1043 EXPECT_LT(0u, sync_point); | 1049 EXPECT_LT(0u, sync_point); |
1044 | 1050 |
1045 unsigned release_sync_point = 0; | 1051 unsigned release_sync_point = 0; |
1046 bool lost_resource = false; | 1052 bool lost_resource = false; |
1047 TextureMailbox::ReleaseCallback callback = | 1053 ScopedReleaseCallback callback( |
1048 base::Bind(ReleaseTextureMailbox, &release_sync_point, &lost_resource); | 1054 base::Bind(ReleaseTextureMailbox, &release_sync_point, &lost_resource)); |
1049 resource_provider_->CreateResourceFromTextureMailbox( | 1055 resource_provider_->CreateResourceFromTextureMailbox( |
1050 TextureMailbox(mailbox, callback, sync_point)); | 1056 TextureMailbox(mailbox, sync_point), |
| 1057 callback.Pass()); |
1051 | 1058 |
1052 EXPECT_EQ(0u, release_sync_point); | 1059 EXPECT_EQ(0u, release_sync_point); |
1053 EXPECT_FALSE(lost_resource); | 1060 EXPECT_FALSE(lost_resource); |
1054 | 1061 |
1055 resource_provider_->DidLoseOutputSurface(); | 1062 resource_provider_->DidLoseOutputSurface(); |
1056 resource_provider_.reset(); | 1063 resource_provider_.reset(); |
1057 | 1064 |
1058 EXPECT_LE(sync_point, release_sync_point); | 1065 EXPECT_LE(sync_point, release_sync_point); |
1059 EXPECT_TRUE(lost_resource); | 1066 EXPECT_TRUE(lost_resource); |
1060 } | 1067 } |
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1260 | 1267 |
1261 FakeOutputSurfaceClient output_surface_client; | 1268 FakeOutputSurfaceClient output_surface_client; |
1262 scoped_ptr<OutputSurface> output_surface( | 1269 scoped_ptr<OutputSurface> output_surface( |
1263 FakeOutputSurface::CreateSoftware(make_scoped_ptr( | 1270 FakeOutputSurface::CreateSoftware(make_scoped_ptr( |
1264 new SoftwareOutputDevice))); | 1271 new SoftwareOutputDevice))); |
1265 CHECK(output_surface->BindToClient(&output_surface_client)); | 1272 CHECK(output_surface->BindToClient(&output_surface_client)); |
1266 | 1273 |
1267 scoped_ptr<ResourceProvider> resource_provider( | 1274 scoped_ptr<ResourceProvider> resource_provider( |
1268 ResourceProvider::Create(output_surface.get(), 0)); | 1275 ResourceProvider::Create(output_surface.get(), 0)); |
1269 | 1276 |
1270 TextureMailbox::ReleaseCallback callback = base::Bind(&EmptyReleaseCallback); | 1277 ScopedReleaseCallback callback(base::Bind(&EmptyReleaseCallback)); |
1271 TextureMailbox mailbox(shared_memory.get(), size, callback); | 1278 TextureMailbox mailbox(shared_memory.get(), size); |
1272 | 1279 |
1273 ResourceProvider::ResourceId id = | 1280 ResourceProvider::ResourceId id = |
1274 resource_provider->CreateResourceFromTextureMailbox(mailbox); | 1281 resource_provider->CreateResourceFromTextureMailbox( |
| 1282 mailbox, callback.Pass()); |
1275 EXPECT_NE(0u, id); | 1283 EXPECT_NE(0u, id); |
1276 | 1284 |
1277 { | 1285 { |
1278 ResourceProvider::ScopedReadLockSoftware lock(resource_provider.get(), id); | 1286 ResourceProvider::ScopedReadLockSoftware lock(resource_provider.get(), id); |
1279 const SkBitmap* sk_bitmap = lock.sk_bitmap(); | 1287 const SkBitmap* sk_bitmap = lock.sk_bitmap(); |
1280 EXPECT_EQ(sk_bitmap->width(), size.width()); | 1288 EXPECT_EQ(sk_bitmap->width(), size.width()); |
1281 EXPECT_EQ(sk_bitmap->height(), size.height()); | 1289 EXPECT_EQ(sk_bitmap->height(), size.height()); |
1282 EXPECT_EQ(*sk_bitmap->getAddr32(16, 16), kBadBeef); | 1290 EXPECT_EQ(*sk_bitmap->getAddr32(16, 16), kBadBeef); |
1283 } | 1291 } |
1284 } | 1292 } |
(...skipping 20 matching lines...) Expand all Loading... |
1305 unsigned target = GL_TEXTURE_2D; | 1313 unsigned target = GL_TEXTURE_2D; |
1306 | 1314 |
1307 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); | 1315 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); |
1308 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); | 1316 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); |
1309 EXPECT_CALL(*context, insertSyncPoint()).Times(0); | 1317 EXPECT_CALL(*context, insertSyncPoint()).Times(0); |
1310 EXPECT_CALL(*context, produceTextureCHROMIUM(_, _)).Times(0); | 1318 EXPECT_CALL(*context, produceTextureCHROMIUM(_, _)).Times(0); |
1311 EXPECT_CALL(*context, consumeTextureCHROMIUM(_, _)).Times(0); | 1319 EXPECT_CALL(*context, consumeTextureCHROMIUM(_, _)).Times(0); |
1312 | 1320 |
1313 gpu::Mailbox gpu_mailbox; | 1321 gpu::Mailbox gpu_mailbox; |
1314 memcpy(gpu_mailbox.name, "Hello world", strlen("Hello world") + 1); | 1322 memcpy(gpu_mailbox.name, "Hello world", strlen("Hello world") + 1); |
1315 TextureMailbox::ReleaseCallback callback = base::Bind(&EmptyReleaseCallback); | 1323 ScopedReleaseCallback callback(base::Bind(&EmptyReleaseCallback)); |
1316 | 1324 |
1317 TextureMailbox mailbox(gpu_mailbox, | 1325 TextureMailbox mailbox(gpu_mailbox, sync_point); |
1318 callback, | |
1319 sync_point); | |
1320 | 1326 |
1321 ResourceProvider::ResourceId id = | 1327 ResourceProvider::ResourceId id = |
1322 resource_provider->CreateResourceFromTextureMailbox(mailbox); | 1328 resource_provider->CreateResourceFromTextureMailbox( |
| 1329 mailbox, callback.Pass()); |
1323 EXPECT_NE(0u, id); | 1330 EXPECT_NE(0u, id); |
1324 | 1331 |
1325 Mock::VerifyAndClearExpectations(context); | 1332 Mock::VerifyAndClearExpectations(context); |
1326 | 1333 |
1327 { | 1334 { |
1328 // Using the texture does a consume of the mailbox. | 1335 // Using the texture does a consume of the mailbox. |
1329 EXPECT_CALL(*context, bindTexture(target, texture_id)); | 1336 EXPECT_CALL(*context, bindTexture(target, texture_id)); |
1330 EXPECT_CALL(*context, waitSyncPoint(sync_point)); | 1337 EXPECT_CALL(*context, waitSyncPoint(sync_point)); |
1331 EXPECT_CALL(*context, consumeTextureCHROMIUM(target, _)); | 1338 EXPECT_CALL(*context, consumeTextureCHROMIUM(target, _)); |
1332 | 1339 |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1369 unsigned target = GL_TEXTURE_EXTERNAL_OES; | 1376 unsigned target = GL_TEXTURE_EXTERNAL_OES; |
1370 | 1377 |
1371 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); | 1378 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); |
1372 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); | 1379 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); |
1373 EXPECT_CALL(*context, insertSyncPoint()).Times(0); | 1380 EXPECT_CALL(*context, insertSyncPoint()).Times(0); |
1374 EXPECT_CALL(*context, produceTextureCHROMIUM(_, _)).Times(0); | 1381 EXPECT_CALL(*context, produceTextureCHROMIUM(_, _)).Times(0); |
1375 EXPECT_CALL(*context, consumeTextureCHROMIUM(_, _)).Times(0); | 1382 EXPECT_CALL(*context, consumeTextureCHROMIUM(_, _)).Times(0); |
1376 | 1383 |
1377 gpu::Mailbox gpu_mailbox; | 1384 gpu::Mailbox gpu_mailbox; |
1378 memcpy(gpu_mailbox.name, "Hello world", strlen("Hello world") + 1); | 1385 memcpy(gpu_mailbox.name, "Hello world", strlen("Hello world") + 1); |
1379 TextureMailbox::ReleaseCallback callback = base::Bind(&EmptyReleaseCallback); | 1386 ScopedReleaseCallback callback(base::Bind(&EmptyReleaseCallback)); |
1380 | 1387 |
1381 TextureMailbox mailbox(gpu_mailbox, | 1388 TextureMailbox mailbox(gpu_mailbox, target, sync_point); |
1382 callback, | |
1383 target, | |
1384 sync_point); | |
1385 | 1389 |
1386 ResourceProvider::ResourceId id = | 1390 ResourceProvider::ResourceId id = |
1387 resource_provider->CreateResourceFromTextureMailbox(mailbox); | 1391 resource_provider->CreateResourceFromTextureMailbox( |
| 1392 mailbox, callback.Pass()); |
1388 EXPECT_NE(0u, id); | 1393 EXPECT_NE(0u, id); |
1389 | 1394 |
1390 Mock::VerifyAndClearExpectations(context); | 1395 Mock::VerifyAndClearExpectations(context); |
1391 | 1396 |
1392 { | 1397 { |
1393 // Using the texture does a consume of the mailbox. | 1398 // Using the texture does a consume of the mailbox. |
1394 EXPECT_CALL(*context, bindTexture(target, texture_id)); | 1399 EXPECT_CALL(*context, bindTexture(target, texture_id)); |
1395 EXPECT_CALL(*context, waitSyncPoint(sync_point)); | 1400 EXPECT_CALL(*context, waitSyncPoint(sync_point)); |
1396 EXPECT_CALL(*context, consumeTextureCHROMIUM(target, _)); | 1401 EXPECT_CALL(*context, consumeTextureCHROMIUM(target, _)); |
1397 | 1402 |
(...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1860 output_surface.get()); | 1865 output_surface.get()); |
1861 } | 1866 } |
1862 | 1867 |
1863 INSTANTIATE_TEST_CASE_P( | 1868 INSTANTIATE_TEST_CASE_P( |
1864 ResourceProviderTests, | 1869 ResourceProviderTests, |
1865 ResourceProviderTest, | 1870 ResourceProviderTest, |
1866 ::testing::Values(ResourceProvider::GLTexture, ResourceProvider::Bitmap)); | 1871 ::testing::Values(ResourceProvider::GLTexture, ResourceProvider::Bitmap)); |
1867 | 1872 |
1868 } // namespace | 1873 } // namespace |
1869 } // namespace cc | 1874 } // namespace cc |
OLD | NEW |