Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(201)

Side by Side Diff: cc/resources/resource_provider_unittest.cc

Issue 938893002: cc: Stop using TextureUploader for UIResources, HUD, and tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: uiresource: etc1 Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/resources/resource_provider.cc ('k') | cc/resources/texture_uploader.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 504 matching lines...) Expand 10 before | Expand all | Expand 10 after
515 size_t pixel_size = TextureSizeBytes(size, format); 515 size_t pixel_size = TextureSizeBytes(size, format);
516 ASSERT_EQ(4U, pixel_size); 516 ASSERT_EQ(4U, pixel_size);
517 517
518 ResourceProvider::ResourceId id = resource_provider->CreateResource( 518 ResourceProvider::ResourceId id = resource_provider->CreateResource(
519 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); 519 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format);
520 EXPECT_EQ(1, static_cast<int>(resource_provider->num_resources())); 520 EXPECT_EQ(1, static_cast<int>(resource_provider->num_resources()));
521 if (expected_default_type == ResourceProvider::GLTexture) 521 if (expected_default_type == ResourceProvider::GLTexture)
522 EXPECT_EQ(0u, context->NumTextures()); 522 EXPECT_EQ(0u, context->NumTextures());
523 523
524 uint8_t data[4] = { 1, 2, 3, 4 }; 524 uint8_t data[4] = { 1, 2, 3, 4 };
525 gfx::Rect rect(size); 525 resource_provider->CopyToResource(id, data, size);
526 resource_provider->SetPixels(id, data, rect, rect, gfx::Vector2d());
527 if (expected_default_type == ResourceProvider::GLTexture) 526 if (expected_default_type == ResourceProvider::GLTexture)
528 EXPECT_EQ(1u, context->NumTextures()); 527 EXPECT_EQ(1u, context->NumTextures());
529 528
530 uint8_t result[4] = { 0 }; 529 uint8_t result[4] = { 0 };
531 GetResourcePixels(resource_provider, context, id, size, format, result); 530 GetResourcePixels(resource_provider, context, id, size, format, result);
532 EXPECT_EQ(0, memcmp(data, result, pixel_size)); 531 EXPECT_EQ(0, memcmp(data, result, pixel_size));
533 532
534 resource_provider->DeleteResource(id); 533 resource_provider->DeleteResource(id);
535 EXPECT_EQ(0, static_cast<int>(resource_provider->num_resources())); 534 EXPECT_EQ(0, static_cast<int>(resource_provider->num_resources()));
536 if (expected_default_type == ResourceProvider::GLTexture) 535 if (expected_default_type == ResourceProvider::GLTexture)
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
601 600
602 uint8_t expected[16] = { 0, 1, 2, 3, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3 }; 601 uint8_t expected[16] = { 0, 1, 2, 3, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3 };
603 GetResourcePixels( 602 GetResourcePixels(
604 resource_provider_.get(), context(), id, size, format, result); 603 resource_provider_.get(), context(), id, size, format, result);
605 EXPECT_EQ(0, memcmp(expected, result, pixel_size)); 604 EXPECT_EQ(0, memcmp(expected, result, pixel_size));
606 } 605 }
607 606
608 resource_provider_->DeleteResource(id); 607 resource_provider_->DeleteResource(id);
609 } 608 }
610 609
610 TEST_P(ResourceProviderTest, SimpleUpload) {
611 gfx::Size size(2, 2);
612 ResourceFormat format = RGBA_8888;
613 size_t pixel_size = TextureSizeBytes(size, format);
614 ASSERT_EQ(16U, pixel_size);
615
616 ResourceProvider::ResourceId id = resource_provider_->CreateResource(
617 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format);
618
619 uint8_t image[16] = {0};
620 resource_provider_->CopyToResource(id, image, size);
621 {
622 uint8_t result[16] = {0};
623 uint8_t expected[16] = {0};
624 GetResourcePixels(resource_provider_.get(), context(), id, size, format,
625 result);
626 EXPECT_EQ(0, memcmp(expected, result, pixel_size));
627 }
628
629 for (uint8_t i = 0; i < pixel_size; ++i)
630 image[i] = i;
631 resource_provider_->CopyToResource(id, image, size);
632 {
633 uint8_t result[16] = {0};
634 uint8_t expected[16] = {
635 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
636 GetResourcePixels(resource_provider_.get(), context(), id, size, format,
637 result);
638 EXPECT_EQ(0, memcmp(expected, result, pixel_size));
639 }
640 }
641
611 TEST_P(ResourceProviderTest, TransferGLResources) { 642 TEST_P(ResourceProviderTest, TransferGLResources) {
612 if (GetParam() != ResourceProvider::GLTexture) 643 if (GetParam() != ResourceProvider::GLTexture)
613 return; 644 return;
614 gfx::Size size(1, 1); 645 gfx::Size size(1, 1);
615 ResourceFormat format = RGBA_8888; 646 ResourceFormat format = RGBA_8888;
616 size_t pixel_size = TextureSizeBytes(size, format); 647 size_t pixel_size = TextureSizeBytes(size, format);
617 ASSERT_EQ(4U, pixel_size); 648 ASSERT_EQ(4U, pixel_size);
618 649
619 ResourceProvider::ResourceId id1 = child_resource_provider_->CreateResource( 650 ResourceProvider::ResourceId id1 = child_resource_provider_->CreateResource(
620 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); 651 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format);
621 uint8_t data1[4] = { 1, 2, 3, 4 }; 652 uint8_t data1[4] = { 1, 2, 3, 4 };
622 gfx::Rect rect(size); 653 child_resource_provider_->CopyToResource(id1, data1, size);
623 child_resource_provider_->SetPixels(id1, data1, rect, rect, gfx::Vector2d());
624 654
625 ResourceProvider::ResourceId id2 = child_resource_provider_->CreateResource( 655 ResourceProvider::ResourceId id2 = child_resource_provider_->CreateResource(
626 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); 656 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format);
627 uint8_t data2[4] = { 5, 5, 5, 5 }; 657 uint8_t data2[4] = { 5, 5, 5, 5 };
628 child_resource_provider_->SetPixels(id2, data2, rect, rect, gfx::Vector2d()); 658 child_resource_provider_->CopyToResource(id2, data2, size);
629 659
630 ResourceProvider::ResourceId id3 = child_resource_provider_->CreateResource( 660 ResourceProvider::ResourceId id3 = child_resource_provider_->CreateResource(
631 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); 661 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format);
632 { 662 {
633 ResourceProvider::ScopedWriteLockGpuMemoryBuffer lock( 663 ResourceProvider::ScopedWriteLockGpuMemoryBuffer lock(
634 child_resource_provider_.get(), id3); 664 child_resource_provider_.get(), id3);
635 EXPECT_TRUE(!!lock.GetGpuMemoryBuffer()); 665 EXPECT_TRUE(!!lock.GetGpuMemoryBuffer());
636 } 666 }
637 667
638 GLuint external_texture_id = child_context_->createExternalTexture(); 668 GLuint external_texture_id = child_context_->createExternalTexture();
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
856 886
857 TEST_P(ResourceProviderTest, ReadLockCountStopsReturnToChildOrDelete) { 887 TEST_P(ResourceProviderTest, ReadLockCountStopsReturnToChildOrDelete) {
858 if (GetParam() != ResourceProvider::GLTexture) 888 if (GetParam() != ResourceProvider::GLTexture)
859 return; 889 return;
860 gfx::Size size(1, 1); 890 gfx::Size size(1, 1);
861 ResourceFormat format = RGBA_8888; 891 ResourceFormat format = RGBA_8888;
862 892
863 ResourceProvider::ResourceId id1 = child_resource_provider_->CreateResource( 893 ResourceProvider::ResourceId id1 = child_resource_provider_->CreateResource(
864 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); 894 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format);
865 uint8_t data1[4] = {1, 2, 3, 4}; 895 uint8_t data1[4] = {1, 2, 3, 4};
866 gfx::Rect rect(size); 896 child_resource_provider_->CopyToResource(id1, data1, size);
867 child_resource_provider_->SetPixels(id1, data1, rect, rect, gfx::Vector2d());
868 897
869 ReturnedResourceArray returned_to_child; 898 ReturnedResourceArray returned_to_child;
870 int child_id = 899 int child_id =
871 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child)); 900 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child));
872 { 901 {
873 // Transfer some resources to the parent. 902 // Transfer some resources to the parent.
874 ResourceProvider::ResourceIdArray resource_ids_to_transfer; 903 ResourceProvider::ResourceIdArray resource_ids_to_transfer;
875 resource_ids_to_transfer.push_back(id1); 904 resource_ids_to_transfer.push_back(id1);
876 TransferableResourceArray list; 905 TransferableResourceArray list;
877 child_resource_provider_->PrepareSendToParent(resource_ids_to_transfer, 906 child_resource_provider_->PrepareSendToParent(resource_ids_to_transfer,
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
962 return; 991 return;
963 992
964 gfx::Size size(1, 1); 993 gfx::Size size(1, 1);
965 ResourceFormat format = RGBA_8888; 994 ResourceFormat format = RGBA_8888;
966 size_t pixel_size = TextureSizeBytes(size, format); 995 size_t pixel_size = TextureSizeBytes(size, format);
967 ASSERT_EQ(4U, pixel_size); 996 ASSERT_EQ(4U, pixel_size);
968 997
969 ResourceProvider::ResourceId id1 = child_resource_provider_->CreateResource( 998 ResourceProvider::ResourceId id1 = child_resource_provider_->CreateResource(
970 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); 999 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format);
971 uint8_t data1[4] = { 1, 2, 3, 4 }; 1000 uint8_t data1[4] = { 1, 2, 3, 4 };
972 gfx::Rect rect(size); 1001 child_resource_provider_->CopyToResource(id1, data1, size);
973 child_resource_provider_->SetPixels(id1, data1, rect, rect, gfx::Vector2d());
974 1002
975 ResourceProvider::ResourceId id2 = child_resource_provider_->CreateResource( 1003 ResourceProvider::ResourceId id2 = child_resource_provider_->CreateResource(
976 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); 1004 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format);
977 uint8_t data2[4] = { 5, 5, 5, 5 }; 1005 uint8_t data2[4] = { 5, 5, 5, 5 };
978 child_resource_provider_->SetPixels(id2, data2, rect, rect, gfx::Vector2d()); 1006 child_resource_provider_->CopyToResource(id2, data2, size);
979 1007
980 scoped_ptr<SharedBitmap> shared_bitmap(CreateAndFillSharedBitmap( 1008 scoped_ptr<SharedBitmap> shared_bitmap(CreateAndFillSharedBitmap(
981 shared_bitmap_manager_.get(), gfx::Size(1, 1), 0)); 1009 shared_bitmap_manager_.get(), gfx::Size(1, 1), 0));
982 SharedBitmap* shared_bitmap_ptr = shared_bitmap.get(); 1010 SharedBitmap* shared_bitmap_ptr = shared_bitmap.get();
983 ResourceProvider::ResourceId id3 = 1011 ResourceProvider::ResourceId id3 =
984 child_resource_provider_->CreateResourceFromTextureMailbox( 1012 child_resource_provider_->CreateResourceFromTextureMailbox(
985 TextureMailbox(shared_bitmap_ptr, gfx::Size(1, 1)), 1013 TextureMailbox(shared_bitmap_ptr, gfx::Size(1, 1)),
986 SingleReleaseCallbackImpl::Create(base::Bind( 1014 SingleReleaseCallbackImpl::Create(base::Bind(
987 &SharedBitmapReleaseCallback, base::Passed(&shared_bitmap)))); 1015 &SharedBitmapReleaseCallback, base::Passed(&shared_bitmap))));
988 1016
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
1164 1)); 1192 1));
1165 1193
1166 gfx::Size size(1, 1); 1194 gfx::Size size(1, 1);
1167 ResourceFormat format = RGBA_8888; 1195 ResourceFormat format = RGBA_8888;
1168 size_t pixel_size = TextureSizeBytes(size, format); 1196 size_t pixel_size = TextureSizeBytes(size, format);
1169 ASSERT_EQ(4U, pixel_size); 1197 ASSERT_EQ(4U, pixel_size);
1170 1198
1171 ResourceProvider::ResourceId id1 = child_resource_provider->CreateResource( 1199 ResourceProvider::ResourceId id1 = child_resource_provider->CreateResource(
1172 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); 1200 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format);
1173 uint8_t data1[4] = { 1, 2, 3, 4 }; 1201 uint8_t data1[4] = { 1, 2, 3, 4 };
1174 gfx::Rect rect(size); 1202 child_resource_provider->CopyToResource(id1, data1, size);
1175 child_resource_provider->SetPixels(id1, data1, rect, rect, gfx::Vector2d());
1176 1203
1177 ReturnedResourceArray returned_to_child; 1204 ReturnedResourceArray returned_to_child;
1178 int child_id = 1205 int child_id =
1179 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child)); 1206 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child));
1180 { 1207 {
1181 ResourceProvider::ResourceIdArray resource_ids_to_transfer; 1208 ResourceProvider::ResourceIdArray resource_ids_to_transfer;
1182 resource_ids_to_transfer.push_back(id1); 1209 resource_ids_to_transfer.push_back(id1);
1183 TransferableResourceArray list; 1210 TransferableResourceArray list;
1184 child_resource_provider->PrepareSendToParent(resource_ids_to_transfer, 1211 child_resource_provider->PrepareSendToParent(resource_ids_to_transfer,
1185 &list); 1212 &list);
(...skipping 25 matching lines...) Expand all
1211 return; 1238 return;
1212 1239
1213 gfx::Size size(1, 1); 1240 gfx::Size size(1, 1);
1214 ResourceFormat format = RGBA_8888; 1241 ResourceFormat format = RGBA_8888;
1215 size_t pixel_size = TextureSizeBytes(size, format); 1242 size_t pixel_size = TextureSizeBytes(size, format);
1216 ASSERT_EQ(4U, pixel_size); 1243 ASSERT_EQ(4U, pixel_size);
1217 1244
1218 ResourceProvider::ResourceId id1 = child_resource_provider_->CreateResource( 1245 ResourceProvider::ResourceId id1 = child_resource_provider_->CreateResource(
1219 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); 1246 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format);
1220 uint8_t data1[4] = { 1, 2, 3, 4 }; 1247 uint8_t data1[4] = { 1, 2, 3, 4 };
1221 gfx::Rect rect(size); 1248 child_resource_provider_->CopyToResource(id1, data1, size);
1222 child_resource_provider_->SetPixels(id1, data1, rect, rect, gfx::Vector2d());
1223 1249
1224 ReturnedResourceArray returned_to_child; 1250 ReturnedResourceArray returned_to_child;
1225 int child_id = 1251 int child_id =
1226 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child)); 1252 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child));
1227 { 1253 {
1228 ResourceProvider::ResourceIdArray resource_ids_to_transfer; 1254 ResourceProvider::ResourceIdArray resource_ids_to_transfer;
1229 resource_ids_to_transfer.push_back(id1); 1255 resource_ids_to_transfer.push_back(id1);
1230 TransferableResourceArray list; 1256 TransferableResourceArray list;
1231 child_resource_provider_->PrepareSendToParent(resource_ids_to_transfer, 1257 child_resource_provider_->PrepareSendToParent(resource_ids_to_transfer,
1232 &list); 1258 &list);
(...skipping 26 matching lines...) Expand all
1259 1285
1260 TEST_P(ResourceProviderTest, DeleteExportedResources) { 1286 TEST_P(ResourceProviderTest, DeleteExportedResources) {
1261 gfx::Size size(1, 1); 1287 gfx::Size size(1, 1);
1262 ResourceFormat format = RGBA_8888; 1288 ResourceFormat format = RGBA_8888;
1263 size_t pixel_size = TextureSizeBytes(size, format); 1289 size_t pixel_size = TextureSizeBytes(size, format);
1264 ASSERT_EQ(4U, pixel_size); 1290 ASSERT_EQ(4U, pixel_size);
1265 1291
1266 ResourceProvider::ResourceId id1 = child_resource_provider_->CreateResource( 1292 ResourceProvider::ResourceId id1 = child_resource_provider_->CreateResource(
1267 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); 1293 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format);
1268 uint8_t data1[4] = { 1, 2, 3, 4 }; 1294 uint8_t data1[4] = { 1, 2, 3, 4 };
1269 gfx::Rect rect(size); 1295 child_resource_provider_->CopyToResource(id1, data1, size);
1270 child_resource_provider_->SetPixels(id1, data1, rect, rect, gfx::Vector2d());
1271 1296
1272 ResourceProvider::ResourceId id2 = child_resource_provider_->CreateResource( 1297 ResourceProvider::ResourceId id2 = child_resource_provider_->CreateResource(
1273 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); 1298 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format);
1274 uint8_t data2[4] = {5, 5, 5, 5}; 1299 uint8_t data2[4] = {5, 5, 5, 5};
1275 child_resource_provider_->SetPixels(id2, data2, rect, rect, gfx::Vector2d()); 1300 child_resource_provider_->CopyToResource(id2, data2, size);
1276 1301
1277 ReturnedResourceArray returned_to_child; 1302 ReturnedResourceArray returned_to_child;
1278 int child_id = 1303 int child_id =
1279 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child)); 1304 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child));
1280 { 1305 {
1281 // Transfer some resources to the parent. 1306 // Transfer some resources to the parent.
1282 ResourceProvider::ResourceIdArray resource_ids_to_transfer; 1307 ResourceProvider::ResourceIdArray resource_ids_to_transfer;
1283 resource_ids_to_transfer.push_back(id1); 1308 resource_ids_to_transfer.push_back(id1);
1284 resource_ids_to_transfer.push_back(id2); 1309 resource_ids_to_transfer.push_back(id2);
1285 TransferableResourceArray list; 1310 TransferableResourceArray list;
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
1353 1378
1354 TEST_P(ResourceProviderTest, DestroyChildWithExportedResources) { 1379 TEST_P(ResourceProviderTest, DestroyChildWithExportedResources) {
1355 gfx::Size size(1, 1); 1380 gfx::Size size(1, 1);
1356 ResourceFormat format = RGBA_8888; 1381 ResourceFormat format = RGBA_8888;
1357 size_t pixel_size = TextureSizeBytes(size, format); 1382 size_t pixel_size = TextureSizeBytes(size, format);
1358 ASSERT_EQ(4U, pixel_size); 1383 ASSERT_EQ(4U, pixel_size);
1359 1384
1360 ResourceProvider::ResourceId id1 = child_resource_provider_->CreateResource( 1385 ResourceProvider::ResourceId id1 = child_resource_provider_->CreateResource(
1361 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); 1386 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format);
1362 uint8_t data1[4] = {1, 2, 3, 4}; 1387 uint8_t data1[4] = {1, 2, 3, 4};
1363 gfx::Rect rect(size); 1388 child_resource_provider_->CopyToResource(id1, data1, size);
1364 child_resource_provider_->SetPixels(id1, data1, rect, rect, gfx::Vector2d());
1365 1389
1366 ResourceProvider::ResourceId id2 = child_resource_provider_->CreateResource( 1390 ResourceProvider::ResourceId id2 = child_resource_provider_->CreateResource(
1367 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); 1391 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format);
1368 uint8_t data2[4] = {5, 5, 5, 5}; 1392 uint8_t data2[4] = {5, 5, 5, 5};
1369 child_resource_provider_->SetPixels(id2, data2, rect, rect, gfx::Vector2d()); 1393 child_resource_provider_->CopyToResource(id2, data2, size);
1370 1394
1371 ReturnedResourceArray returned_to_child; 1395 ReturnedResourceArray returned_to_child;
1372 int child_id = 1396 int child_id =
1373 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child)); 1397 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child));
1374 { 1398 {
1375 // Transfer some resources to the parent. 1399 // Transfer some resources to the parent.
1376 ResourceProvider::ResourceIdArray resource_ids_to_transfer; 1400 ResourceProvider::ResourceIdArray resource_ids_to_transfer;
1377 resource_ids_to_transfer.push_back(id1); 1401 resource_ids_to_transfer.push_back(id1);
1378 resource_ids_to_transfer.push_back(id2); 1402 resource_ids_to_transfer.push_back(id2);
1379 TransferableResourceArray list; 1403 TransferableResourceArray list;
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
1464 1488
1465 TEST_P(ResourceProviderTest, DeleteTransferredResources) { 1489 TEST_P(ResourceProviderTest, DeleteTransferredResources) {
1466 gfx::Size size(1, 1); 1490 gfx::Size size(1, 1);
1467 ResourceFormat format = RGBA_8888; 1491 ResourceFormat format = RGBA_8888;
1468 size_t pixel_size = TextureSizeBytes(size, format); 1492 size_t pixel_size = TextureSizeBytes(size, format);
1469 ASSERT_EQ(4U, pixel_size); 1493 ASSERT_EQ(4U, pixel_size);
1470 1494
1471 ResourceProvider::ResourceId id = child_resource_provider_->CreateResource( 1495 ResourceProvider::ResourceId id = child_resource_provider_->CreateResource(
1472 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); 1496 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format);
1473 uint8_t data[4] = { 1, 2, 3, 4 }; 1497 uint8_t data[4] = { 1, 2, 3, 4 };
1474 gfx::Rect rect(size); 1498 child_resource_provider_->CopyToResource(id, data, size);
1475 child_resource_provider_->SetPixels(id, data, rect, rect, gfx::Vector2d());
1476 1499
1477 ReturnedResourceArray returned_to_child; 1500 ReturnedResourceArray returned_to_child;
1478 int child_id = 1501 int child_id =
1479 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child)); 1502 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child));
1480 { 1503 {
1481 // Transfer some resource to the parent. 1504 // Transfer some resource to the parent.
1482 ResourceProvider::ResourceIdArray resource_ids_to_transfer; 1505 ResourceProvider::ResourceIdArray resource_ids_to_transfer;
1483 resource_ids_to_transfer.push_back(id); 1506 resource_ids_to_transfer.push_back(id);
1484 TransferableResourceArray list; 1507 TransferableResourceArray list;
1485 child_resource_provider_->PrepareSendToParent(resource_ids_to_transfer, 1508 child_resource_provider_->PrepareSendToParent(resource_ids_to_transfer,
(...skipping 28 matching lines...) Expand all
1514 1537
1515 TEST_P(ResourceProviderTest, UnuseTransferredResources) { 1538 TEST_P(ResourceProviderTest, UnuseTransferredResources) {
1516 gfx::Size size(1, 1); 1539 gfx::Size size(1, 1);
1517 ResourceFormat format = RGBA_8888; 1540 ResourceFormat format = RGBA_8888;
1518 size_t pixel_size = TextureSizeBytes(size, format); 1541 size_t pixel_size = TextureSizeBytes(size, format);
1519 ASSERT_EQ(4U, pixel_size); 1542 ASSERT_EQ(4U, pixel_size);
1520 1543
1521 ResourceProvider::ResourceId id = child_resource_provider_->CreateResource( 1544 ResourceProvider::ResourceId id = child_resource_provider_->CreateResource(
1522 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); 1545 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format);
1523 uint8_t data[4] = {1, 2, 3, 4}; 1546 uint8_t data[4] = {1, 2, 3, 4};
1524 gfx::Rect rect(size); 1547 child_resource_provider_->CopyToResource(id, data, size);
1525 child_resource_provider_->SetPixels(id, data, rect, rect, gfx::Vector2d());
1526 1548
1527 ReturnedResourceArray returned_to_child; 1549 ReturnedResourceArray returned_to_child;
1528 int child_id = 1550 int child_id =
1529 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child)); 1551 resource_provider_->CreateChild(GetReturnCallback(&returned_to_child));
1530 const ResourceProvider::ResourceIdMap& map = 1552 const ResourceProvider::ResourceIdMap& map =
1531 resource_provider_->GetChildToParentMap(child_id); 1553 resource_provider_->GetChildToParentMap(child_id);
1532 { 1554 {
1533 // Transfer some resource to the parent. 1555 // Transfer some resource to the parent.
1534 ResourceProvider::ResourceIdArray resource_ids_to_transfer; 1556 ResourceProvider::ResourceIdArray resource_ids_to_transfer;
1535 resource_ids_to_transfer.push_back(id); 1557 resource_ids_to_transfer.push_back(id);
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
1688 *child_context, 1710 *child_context,
1689 texParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE)); 1711 texParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE));
1690 EXPECT_CALL(*child_context, 1712 EXPECT_CALL(*child_context,
1691 texParameteri(GL_TEXTURE_2D, 1713 texParameteri(GL_TEXTURE_2D,
1692 GL_TEXTURE_POOL_CHROMIUM, 1714 GL_TEXTURE_POOL_CHROMIUM,
1693 GL_TEXTURE_POOL_UNMANAGED_CHROMIUM)); 1715 GL_TEXTURE_POOL_UNMANAGED_CHROMIUM));
1694 child_resource_provider->AllocateForTesting(id); 1716 child_resource_provider->AllocateForTesting(id);
1695 Mock::VerifyAndClearExpectations(child_context); 1717 Mock::VerifyAndClearExpectations(child_context);
1696 1718
1697 uint8_t data[4] = { 1, 2, 3, 4 }; 1719 uint8_t data[4] = { 1, 2, 3, 4 };
1698 gfx::Rect rect(size);
1699 1720
1700 EXPECT_CALL(*child_context, bindTexture(GL_TEXTURE_2D, child_texture_id)); 1721 EXPECT_CALL(*child_context, bindTexture(GL_TEXTURE_2D, child_texture_id));
1701 child_resource_provider->SetPixels(id, data, rect, rect, gfx::Vector2d()); 1722 child_resource_provider->CopyToResource(id, data, size);
1702 Mock::VerifyAndClearExpectations(child_context); 1723 Mock::VerifyAndClearExpectations(child_context);
1703 1724
1704 // The texture is set to |child_filter| in the child. 1725 // The texture is set to |child_filter| in the child.
1705 EXPECT_CALL(*child_context, bindTexture(GL_TEXTURE_2D, child_texture_id)); 1726 EXPECT_CALL(*child_context, bindTexture(GL_TEXTURE_2D, child_texture_id));
1706 if (child_filter != GL_LINEAR) { 1727 if (child_filter != GL_LINEAR) {
1707 EXPECT_CALL( 1728 EXPECT_CALL(
1708 *child_context, 1729 *child_context,
1709 texParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, child_filter)); 1730 texParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, child_filter));
1710 EXPECT_CALL( 1731 EXPECT_CALL(
1711 *child_context, 1732 *child_context,
(...skipping 1316 matching lines...) Expand 10 before | Expand all | Expand 10 after
3028 ResourceProvider::Create(output_surface.get(), 3049 ResourceProvider::Create(output_surface.get(),
3029 shared_bitmap_manager_.get(), 3050 shared_bitmap_manager_.get(),
3030 gpu_memory_buffer_manager_.get(), 3051 gpu_memory_buffer_manager_.get(),
3031 NULL, 3052 NULL,
3032 0, 3053 0,
3033 false, 3054 false,
3034 1)); 3055 1));
3035 3056
3036 gfx::Size size(2, 2); 3057 gfx::Size size(2, 2);
3037 gfx::Vector2d offset(0, 0); 3058 gfx::Vector2d offset(0, 0);
3038 gfx::Rect rect(0, 0, 2, 2);
3039 ResourceFormat format = RGBA_8888; 3059 ResourceFormat format = RGBA_8888;
3040 ResourceProvider::ResourceId id = 0; 3060 ResourceProvider::ResourceId id = 0;
3041 uint8_t pixels[16] = { 0 }; 3061 uint8_t pixels[16] = { 0 };
3042 int texture_id = 123; 3062 int texture_id = 123;
3043 3063
3044 // Lazy allocation. Don't allocate when creating the resource. 3064 // Lazy allocation. Don't allocate when creating the resource.
3045 id = resource_provider->CreateResource( 3065 id = resource_provider->CreateResource(
3046 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); 3066 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format);
3047 3067
3048 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); 3068 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id));
3049 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(1); 3069 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(1);
3050 resource_provider->CreateForTesting(id); 3070 resource_provider->CreateForTesting(id);
3051 3071
3052 EXPECT_CALL(*context, RetireTextureId(texture_id)).Times(1); 3072 EXPECT_CALL(*context, RetireTextureId(texture_id)).Times(1);
3053 resource_provider->DeleteResource(id); 3073 resource_provider->DeleteResource(id);
3054 3074
3055 Mock::VerifyAndClearExpectations(context); 3075 Mock::VerifyAndClearExpectations(context);
3056 3076
3057 // Do allocate when we set the pixels. 3077 // Do allocate when we set the pixels.
3058 id = resource_provider->CreateResource( 3078 id = resource_provider->CreateResource(
3059 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); 3079 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format);
3060 3080
3061 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); 3081 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id));
3062 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(3); 3082 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(3);
3063 EXPECT_CALL(*context, texImage2D(_, _, _, 2, 2, _, _, _, _)).Times(1); 3083 EXPECT_CALL(*context, texImage2D(_, _, _, 2, 2, _, _, _, _)).Times(1);
3064 EXPECT_CALL(*context, texSubImage2D(_, _, _, _, 2, 2, _, _, _)).Times(1); 3084 EXPECT_CALL(*context, texSubImage2D(_, _, _, _, 2, 2, _, _, _)).Times(1);
3065 resource_provider->SetPixels(id, pixels, rect, rect, offset); 3085 resource_provider->CopyToResource(id, pixels, size);
3066 3086
3067 EXPECT_CALL(*context, RetireTextureId(texture_id)).Times(1); 3087 EXPECT_CALL(*context, RetireTextureId(texture_id)).Times(1);
3068 resource_provider->DeleteResource(id); 3088 resource_provider->DeleteResource(id);
3069 3089
3070 Mock::VerifyAndClearExpectations(context); 3090 Mock::VerifyAndClearExpectations(context);
3071 3091
3072 // Same for async version. 3092 // Same for async version.
3073 id = resource_provider->CreateResource( 3093 id = resource_provider->CreateResource(
3074 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format); 3094 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, format);
3075 resource_provider->AcquirePixelBuffer(id); 3095 resource_provider->AcquirePixelBuffer(id);
(...skipping 512 matching lines...) Expand 10 before | Expand all | Expand 10 after
3588 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, ETC1); 3608 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, ETC1);
3589 EXPECT_NE(0u, id); 3609 EXPECT_NE(0u, id);
3590 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); 3610 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id));
3591 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(2); 3611 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(2);
3592 resource_provider->AllocateForTesting(id); 3612 resource_provider->AllocateForTesting(id);
3593 3613
3594 EXPECT_CALL(*context, RetireTextureId(texture_id)).Times(1); 3614 EXPECT_CALL(*context, RetireTextureId(texture_id)).Times(1);
3595 resource_provider->DeleteResource(id); 3615 resource_provider->DeleteResource(id);
3596 } 3616 }
3597 3617
3598 TEST_P(ResourceProviderTest, CompressedTextureETC1SetPixels) { 3618 TEST_P(ResourceProviderTest, CompressedTextureETC1Upload) {
3599 if (GetParam() != ResourceProvider::GLTexture) 3619 if (GetParam() != ResourceProvider::GLTexture)
3600 return; 3620 return;
3601 3621
3602 scoped_ptr<AllocationTrackingContext3D> context_owned( 3622 scoped_ptr<AllocationTrackingContext3D> context_owned(
3603 new AllocationTrackingContext3D); 3623 new AllocationTrackingContext3D);
3604 AllocationTrackingContext3D* context = context_owned.get(); 3624 AllocationTrackingContext3D* context = context_owned.get();
3605 context_owned->set_support_compressed_texture_etc1(true); 3625 context_owned->set_support_compressed_texture_etc1(true);
3606 3626
3607 FakeOutputSurfaceClient output_surface_client; 3627 FakeOutputSurfaceClient output_surface_client;
3608 scoped_ptr<OutputSurface> output_surface( 3628 scoped_ptr<OutputSurface> output_surface(
(...skipping 13 matching lines...) Expand all
3622 uint8_t pixels[8]; 3642 uint8_t pixels[8];
3623 3643
3624 ResourceProvider::ResourceId id = resource_provider->CreateResource( 3644 ResourceProvider::ResourceId id = resource_provider->CreateResource(
3625 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, ETC1); 3645 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureHintImmutable, ETC1);
3626 EXPECT_NE(0u, id); 3646 EXPECT_NE(0u, id);
3627 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); 3647 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id));
3628 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(3); 3648 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(3);
3629 EXPECT_CALL(*context, 3649 EXPECT_CALL(*context,
3630 compressedTexImage2D( 3650 compressedTexImage2D(
3631 _, 0, _, size.width(), size.height(), _, _, _)).Times(1); 3651 _, 0, _, size.width(), size.height(), _, _, _)).Times(1);
3632 resource_provider->SetPixels( 3652 resource_provider->CopyToResource(id, pixels, size);
3633 id, pixels, gfx::Rect(size), gfx::Rect(size), gfx::Vector2d(0, 0));
3634 3653
3635 EXPECT_CALL(*context, RetireTextureId(texture_id)).Times(1); 3654 EXPECT_CALL(*context, RetireTextureId(texture_id)).Times(1);
3636 resource_provider->DeleteResource(id); 3655 resource_provider->DeleteResource(id);
3637 } 3656 }
3638 3657
3639 INSTANTIATE_TEST_CASE_P( 3658 INSTANTIATE_TEST_CASE_P(
3640 ResourceProviderTests, 3659 ResourceProviderTests,
3641 ResourceProviderTest, 3660 ResourceProviderTest,
3642 ::testing::Values(ResourceProvider::GLTexture, ResourceProvider::Bitmap)); 3661 ::testing::Values(ResourceProvider::GLTexture, ResourceProvider::Bitmap));
3643 3662
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
3705 resource_provider->AllocateForTesting(id); 3724 resource_provider->AllocateForTesting(id);
3706 Mock::VerifyAndClearExpectations(context); 3725 Mock::VerifyAndClearExpectations(context);
3707 3726
3708 DCHECK_EQ(10u, context->PeekTextureId()); 3727 DCHECK_EQ(10u, context->PeekTextureId());
3709 resource_provider->DeleteResource(id); 3728 resource_provider->DeleteResource(id);
3710 } 3729 }
3711 } 3730 }
3712 3731
3713 } // namespace 3732 } // namespace
3714 } // namespace cc 3733 } // namespace cc
OLDNEW
« no previous file with comments | « cc/resources/resource_provider.cc ('k') | cc/resources/texture_uploader.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698