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

Side by Side Diff: cc/resource_provider_unittest.cc

Issue 11578019: Remove the pools from the ResourceProvider. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Re-resolve against HEAD Created 8 years 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 | Annotate | Revision Log
« no previous file with comments | « cc/resource_provider.cc ('k') | cc/resource_update_controller_unittest.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/resource_provider.h" 5 #include "cc/resource_provider.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "cc/output_surface.h" 8 #include "cc/output_surface.h"
9 #include "cc/scoped_ptr_deque.h" 9 #include "cc/scoped_ptr_deque.h"
10 #include "cc/scoped_ptr_hash_map.h" 10 #include "cc/scoped_ptr_hash_map.h"
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 protected: 303 protected:
304 scoped_ptr<ContextSharedData> m_sharedData; 304 scoped_ptr<ContextSharedData> m_sharedData;
305 scoped_ptr<OutputSurface> m_outputSurface; 305 scoped_ptr<OutputSurface> m_outputSurface;
306 scoped_ptr<ResourceProvider> m_resourceProvider; 306 scoped_ptr<ResourceProvider> m_resourceProvider;
307 }; 307 };
308 308
309 TEST_P(ResourceProviderTest, Basic) 309 TEST_P(ResourceProviderTest, Basic)
310 { 310 {
311 gfx::Size size(1, 1); 311 gfx::Size size(1, 1);
312 WGC3Denum format = GL_RGBA; 312 WGC3Denum format = GL_RGBA;
313 int pool = 1;
314 size_t pixelSize = textureSize(size, format); 313 size_t pixelSize = textureSize(size, format);
315 ASSERT_EQ(4U, pixelSize); 314 ASSERT_EQ(4U, pixelSize);
316 315
317 ResourceProvider::ResourceId id = m_resourceProvider->createResource(pool, s ize, format, ResourceProvider::TextureUsageAny); 316 ResourceProvider::ResourceId id = m_resourceProvider->createResource(size, f ormat, ResourceProvider::TextureUsageAny);
318 expectNumResources(1); 317 expectNumResources(1);
319 318
320 uint8_t data[4] = {1, 2, 3, 4}; 319 uint8_t data[4] = {1, 2, 3, 4};
321 gfx::Rect rect(gfx::Point(), size); 320 gfx::Rect rect(gfx::Point(), size);
322 m_resourceProvider->setPixels(id, data, rect, rect, gfx::Vector2d()); 321 m_resourceProvider->setPixels(id, data, rect, rect, gfx::Vector2d());
323 322
324 uint8_t result[4] = {0}; 323 uint8_t result[4] = {0};
325 getResourcePixels(id, size, format, result); 324 getResourcePixels(id, size, format, result);
326 EXPECT_EQ(0, memcmp(data, result, pixelSize)); 325 EXPECT_EQ(0, memcmp(data, result, pixelSize));
327 326
328 m_resourceProvider->deleteResource(id); 327 m_resourceProvider->deleteResource(id);
329 expectNumResources(0); 328 expectNumResources(0);
330 } 329 }
331 330
332 TEST_P(ResourceProviderTest, DeleteOwnedResources)
333 {
334 gfx::Size size(1, 1);
335 WGC3Denum format = GL_RGBA;
336 int pool = 1;
337
338 const int count = 3;
339 for (int i = 0; i < count; ++i)
340 m_resourceProvider->createResource(pool, size, format, ResourceProvider: :TextureUsageAny);
341 expectNumResources(3);
342
343 m_resourceProvider->deleteOwnedResources(pool+1);
344 expectNumResources(3);
345
346 m_resourceProvider->deleteOwnedResources(pool);
347 expectNumResources(0);
348 }
349
350 TEST_P(ResourceProviderTest, Upload) 331 TEST_P(ResourceProviderTest, Upload)
351 { 332 {
352 gfx::Size size(2, 2); 333 gfx::Size size(2, 2);
353 WGC3Denum format = GL_RGBA; 334 WGC3Denum format = GL_RGBA;
354 int pool = 1;
355 size_t pixelSize = textureSize(size, format); 335 size_t pixelSize = textureSize(size, format);
356 ASSERT_EQ(16U, pixelSize); 336 ASSERT_EQ(16U, pixelSize);
357 337
358 ResourceProvider::ResourceId id = m_resourceProvider->createResource(pool, s ize, format, ResourceProvider::TextureUsageAny); 338 ResourceProvider::ResourceId id = m_resourceProvider->createResource(size, f ormat, ResourceProvider::TextureUsageAny);
359 339
360 uint8_t image[16] = {0}; 340 uint8_t image[16] = {0};
361 gfx::Rect imageRect(gfx::Point(), size); 341 gfx::Rect imageRect(gfx::Point(), size);
362 m_resourceProvider->setPixels(id, image, imageRect, imageRect, gfx::Vector2d ()); 342 m_resourceProvider->setPixels(id, image, imageRect, imageRect, gfx::Vector2d ());
363 343
364 for (uint8_t i = 0 ; i < pixelSize; ++i) 344 for (uint8_t i = 0 ; i < pixelSize; ++i)
365 image[i] = i; 345 image[i] = i;
366 346
367 uint8_t result[16] = {0}; 347 uint8_t result[16] = {0};
368 { 348 {
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 { 395 {
416 // Resource transfer is only supported with GL textures for now. 396 // Resource transfer is only supported with GL textures for now.
417 if (GetParam() != ResourceProvider::GLTexture) 397 if (GetParam() != ResourceProvider::GLTexture)
418 return; 398 return;
419 399
420 scoped_ptr<OutputSurface> childOutputSurface(FakeOutputSurface::Create3d(Res ourceProviderContext::create(m_sharedData.get()).PassAs<WebKit::WebGraphicsConte xt3D>())); 400 scoped_ptr<OutputSurface> childOutputSurface(FakeOutputSurface::Create3d(Res ourceProviderContext::create(m_sharedData.get()).PassAs<WebKit::WebGraphicsConte xt3D>()));
421 scoped_ptr<ResourceProvider> childResourceProvider(ResourceProvider::create( childOutputSurface.get())); 401 scoped_ptr<ResourceProvider> childResourceProvider(ResourceProvider::create( childOutputSurface.get()));
422 402
423 gfx::Size size(1, 1); 403 gfx::Size size(1, 1);
424 WGC3Denum format = GL_RGBA; 404 WGC3Denum format = GL_RGBA;
425 int pool = 1;
426 size_t pixelSize = textureSize(size, format); 405 size_t pixelSize = textureSize(size, format);
427 ASSERT_EQ(4U, pixelSize); 406 ASSERT_EQ(4U, pixelSize);
428 407
429 ResourceProvider::ResourceId id1 = childResourceProvider->createResource(poo l, size, format, ResourceProvider::TextureUsageAny); 408 ResourceProvider::ResourceId id1 = childResourceProvider->createResource(siz e, format, ResourceProvider::TextureUsageAny);
430 uint8_t data1[4] = {1, 2, 3, 4}; 409 uint8_t data1[4] = {1, 2, 3, 4};
431 gfx::Rect rect(gfx::Point(), size); 410 gfx::Rect rect(gfx::Point(), size);
432 childResourceProvider->setPixels(id1, data1, rect, rect, gfx::Vector2d()); 411 childResourceProvider->setPixels(id1, data1, rect, rect, gfx::Vector2d());
433 412
434 ResourceProvider::ResourceId id2 = childResourceProvider->createResource(poo l, size, format, ResourceProvider::TextureUsageAny); 413 ResourceProvider::ResourceId id2 = childResourceProvider->createResource(siz e, format, ResourceProvider::TextureUsageAny);
435 uint8_t data2[4] = {5, 5, 5, 5}; 414 uint8_t data2[4] = {5, 5, 5, 5};
436 childResourceProvider->setPixels(id2, data2, rect, rect, gfx::Vector2d()); 415 childResourceProvider->setPixels(id2, data2, rect, rect, gfx::Vector2d());
437 416
438 int childPool = 2; 417 int childId = m_resourceProvider->createChild();
439 int childId = m_resourceProvider->createChild(childPool);
440 418
441 { 419 {
442 // Transfer some resources to the parent. 420 // Transfer some resources to the parent.
443 ResourceProvider::ResourceIdArray resourceIdsToTransfer; 421 ResourceProvider::ResourceIdArray resourceIdsToTransfer;
444 resourceIdsToTransfer.push_back(id1); 422 resourceIdsToTransfer.push_back(id1);
445 resourceIdsToTransfer.push_back(id2); 423 resourceIdsToTransfer.push_back(id2);
446 TransferableResourceList list; 424 TransferableResourceList list;
447 childResourceProvider->prepareSendToParent(resourceIdsToTransfer, &list) ; 425 childResourceProvider->prepareSendToParent(resourceIdsToTransfer, &list) ;
448 EXPECT_NE(0u, list.sync_point); 426 EXPECT_NE(0u, list.sync_point);
449 EXPECT_EQ(2u, list.resources.size()); 427 EXPECT_EQ(2u, list.resources.size());
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
532 { 510 {
533 // Resource transfer is only supported with GL textures for now. 511 // Resource transfer is only supported with GL textures for now.
534 if (GetParam() != ResourceProvider::GLTexture) 512 if (GetParam() != ResourceProvider::GLTexture)
535 return; 513 return;
536 514
537 scoped_ptr<OutputSurface> childOutputSurface(FakeOutputSurface::Create3d(Res ourceProviderContext::create(m_sharedData.get()).PassAs<WebKit::WebGraphicsConte xt3D>())); 515 scoped_ptr<OutputSurface> childOutputSurface(FakeOutputSurface::Create3d(Res ourceProviderContext::create(m_sharedData.get()).PassAs<WebKit::WebGraphicsConte xt3D>()));
538 scoped_ptr<ResourceProvider> childResourceProvider(ResourceProvider::create( childOutputSurface.get())); 516 scoped_ptr<ResourceProvider> childResourceProvider(ResourceProvider::create( childOutputSurface.get()));
539 517
540 gfx::Size size(1, 1); 518 gfx::Size size(1, 1);
541 WGC3Denum format = GL_RGBA; 519 WGC3Denum format = GL_RGBA;
542 int pool = 1;
543 size_t pixelSize = textureSize(size, format); 520 size_t pixelSize = textureSize(size, format);
544 ASSERT_EQ(4U, pixelSize); 521 ASSERT_EQ(4U, pixelSize);
545 522
546 ResourceProvider::ResourceId id = childResourceProvider->createResource(pool , size, format, ResourceProvider::TextureUsageAny); 523 ResourceProvider::ResourceId id = childResourceProvider->createResource(size , format, ResourceProvider::TextureUsageAny);
547 uint8_t data[4] = {1, 2, 3, 4}; 524 uint8_t data[4] = {1, 2, 3, 4};
548 gfx::Rect rect(gfx::Point(), size); 525 gfx::Rect rect(gfx::Point(), size);
549 childResourceProvider->setPixels(id, data, rect, rect, gfx::Vector2d()); 526 childResourceProvider->setPixels(id, data, rect, rect, gfx::Vector2d());
550 527
551 int childPool = 2; 528 int childId = m_resourceProvider->createChild();
552 int childId = m_resourceProvider->createChild(childPool);
553 529
554 { 530 {
555 // Transfer some resource to the parent. 531 // Transfer some resource to the parent.
556 ResourceProvider::ResourceIdArray resourceIdsToTransfer; 532 ResourceProvider::ResourceIdArray resourceIdsToTransfer;
557 resourceIdsToTransfer.push_back(id); 533 resourceIdsToTransfer.push_back(id);
558 TransferableResourceList list; 534 TransferableResourceList list;
559 childResourceProvider->prepareSendToParent(resourceIdsToTransfer, &list) ; 535 childResourceProvider->prepareSendToParent(resourceIdsToTransfer, &list) ;
560 EXPECT_NE(0u, list.sync_point); 536 EXPECT_NE(0u, list.sync_point);
561 EXPECT_EQ(1u, list.resources.size()); 537 EXPECT_EQ(1u, list.resources.size());
562 EXPECT_TRUE(childResourceProvider->inUseByConsumer(id)); 538 EXPECT_TRUE(childResourceProvider->inUseByConsumer(id));
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
594 // Sampling is only supported for GL textures. 570 // Sampling is only supported for GL textures.
595 if (GetParam() != ResourceProvider::GLTexture) 571 if (GetParam() != ResourceProvider::GLTexture)
596 return; 572 return;
597 573
598 scoped_ptr<OutputSurface> outputSurface(FakeOutputSurface::Create3d(scoped_p tr<WebKit::WebGraphicsContext3D>(new TextureStateTrackingContext))); 574 scoped_ptr<OutputSurface> outputSurface(FakeOutputSurface::Create3d(scoped_p tr<WebKit::WebGraphicsContext3D>(new TextureStateTrackingContext)));
599 TextureStateTrackingContext* context = static_cast<TextureStateTrackingConte xt*>(outputSurface->Context3D()); 575 TextureStateTrackingContext* context = static_cast<TextureStateTrackingConte xt*>(outputSurface->Context3D());
600 scoped_ptr<ResourceProvider> resourceProvider(ResourceProvider::create(outpu tSurface.get())); 576 scoped_ptr<ResourceProvider> resourceProvider(ResourceProvider::create(outpu tSurface.get()));
601 577
602 gfx::Size size(1, 1); 578 gfx::Size size(1, 1);
603 WGC3Denum format = GL_RGBA; 579 WGC3Denum format = GL_RGBA;
604 int pool = 1;
605 int textureId = 1; 580 int textureId = 1;
606 581
607 // Check that the texture gets created with the right sampler settings. 582 // Check that the texture gets created with the right sampler settings.
608 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, textureId)); 583 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, textureId));
609 EXPECT_CALL(*context, texParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL _LINEAR)); 584 EXPECT_CALL(*context, texParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL _LINEAR));
610 EXPECT_CALL(*context, texParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL _LINEAR)); 585 EXPECT_CALL(*context, texParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL _LINEAR));
611 EXPECT_CALL(*context, texParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLA MP_TO_EDGE)); 586 EXPECT_CALL(*context, texParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLA MP_TO_EDGE));
612 EXPECT_CALL(*context, texParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLA MP_TO_EDGE)); 587 EXPECT_CALL(*context, texParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLA MP_TO_EDGE));
613 ResourceProvider::ResourceId id = resourceProvider->createResource(pool, siz e, format, ResourceProvider::TextureUsageAny); 588 ResourceProvider::ResourceId id = resourceProvider->createResource(size, for mat, ResourceProvider::TextureUsageAny);
614 589
615 // Creating a sampler with the default filter should not change any texture 590 // Creating a sampler with the default filter should not change any texture
616 // parameters. 591 // parameters.
617 { 592 {
618 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, textureId)); 593 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, textureId));
619 ResourceProvider::ScopedSamplerGL sampler(resourceProvider.get(), id, GL _TEXTURE_2D, GL_LINEAR); 594 ResourceProvider::ScopedSamplerGL sampler(resourceProvider.get(), id, GL _TEXTURE_2D, GL_LINEAR);
620 } 595 }
621 596
622 // Using a different filter should be reflected in the texture parameters. 597 // Using a different filter should be reflected in the texture parameters.
623 { 598 {
(...skipping 14 matching lines...) Expand all
638 Mock::VerifyAndClearExpectations(context); 613 Mock::VerifyAndClearExpectations(context);
639 } 614 }
640 615
641 INSTANTIATE_TEST_CASE_P(ResourceProviderTests, 616 INSTANTIATE_TEST_CASE_P(ResourceProviderTests,
642 ResourceProviderTest, 617 ResourceProviderTest,
643 ::testing::Values(ResourceProvider::GLTexture, 618 ::testing::Values(ResourceProvider::GLTexture,
644 ResourceProvider::Bitmap)); 619 ResourceProvider::Bitmap));
645 620
646 } // namespace 621 } // namespace
647 } // namespace cc 622 } // namespace cc
OLDNEW
« no previous file with comments | « cc/resource_provider.cc ('k') | cc/resource_update_controller_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698