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 517 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
528 resource_provider->DeleteResource(id); | 528 resource_provider->DeleteResource(id); |
529 EXPECT_EQ(0, static_cast<int>(resource_provider->num_resources())); | 529 EXPECT_EQ(0, static_cast<int>(resource_provider->num_resources())); |
530 if (expected_default_type == ResourceProvider::RESOURCE_TYPE_GL_TEXTURE) | 530 if (expected_default_type == ResourceProvider::RESOURCE_TYPE_GL_TEXTURE) |
531 EXPECT_EQ(0u, context->NumTextures()); | 531 EXPECT_EQ(0u, context->NumTextures()); |
532 } | 532 } |
533 | 533 |
534 TEST_P(ResourceProviderTest, Basic) { | 534 TEST_P(ResourceProviderTest, Basic) { |
535 CheckCreateResource(GetParam(), resource_provider_.get(), context()); | 535 CheckCreateResource(GetParam(), resource_provider_.get(), context()); |
536 } | 536 } |
537 | 537 |
538 TEST_P(ResourceProviderTest, Upload) { | |
539 gfx::Size size(2, 2); | |
540 ResourceFormat format = RGBA_8888; | |
541 size_t pixel_size = TextureSizeBytes(size, format); | |
542 ASSERT_EQ(16U, pixel_size); | |
543 | |
544 ResourceId id = resource_provider_->CreateResource( | |
545 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | |
546 | |
547 uint8_t image[16] = { 0 }; | |
548 gfx::Rect image_rect(size); | |
549 resource_provider_->SetPixels( | |
550 id, image, image_rect, image_rect, gfx::Vector2d()); | |
551 | |
552 for (uint8_t i = 0; i < pixel_size; ++i) | |
553 image[i] = i; | |
554 | |
555 uint8_t result[16] = { 0 }; | |
556 { | |
557 gfx::Rect source_rect(0, 0, 1, 1); | |
558 gfx::Vector2d dest_offset(0, 0); | |
559 resource_provider_->SetPixels( | |
560 id, image, image_rect, source_rect, dest_offset); | |
561 | |
562 uint8_t expected[16] = { 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; | |
563 GetResourcePixels( | |
564 resource_provider_.get(), context(), id, size, format, result); | |
565 EXPECT_EQ(0, memcmp(expected, result, pixel_size)); | |
566 } | |
567 { | |
568 gfx::Rect source_rect(0, 0, 1, 1); | |
569 gfx::Vector2d dest_offset(1, 1); | |
570 resource_provider_->SetPixels( | |
571 id, image, image_rect, source_rect, dest_offset); | |
572 | |
573 uint8_t expected[16] = { 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3 }; | |
574 GetResourcePixels( | |
575 resource_provider_.get(), context(), id, size, format, result); | |
576 EXPECT_EQ(0, memcmp(expected, result, pixel_size)); | |
577 } | |
578 { | |
579 gfx::Rect source_rect(1, 0, 1, 1); | |
580 gfx::Vector2d dest_offset(0, 1); | |
581 resource_provider_->SetPixels( | |
582 id, image, image_rect, source_rect, dest_offset); | |
583 | |
584 uint8_t expected[16] = { 0, 1, 2, 3, 0, 0, 0, 0, 4, 5, 6, 7, 0, 1, 2, 3 }; | |
585 GetResourcePixels( | |
586 resource_provider_.get(), context(), id, size, format, result); | |
587 EXPECT_EQ(0, memcmp(expected, result, pixel_size)); | |
588 } | |
589 { | |
590 gfx::Rect offset_image_rect(gfx::Point(100, 100), size); | |
591 gfx::Rect source_rect(100, 100, 1, 1); | |
592 gfx::Vector2d dest_offset(1, 0); | |
593 resource_provider_->SetPixels( | |
594 id, image, offset_image_rect, source_rect, dest_offset); | |
595 | |
596 uint8_t expected[16] = { 0, 1, 2, 3, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3 }; | |
597 GetResourcePixels( | |
598 resource_provider_.get(), context(), id, size, format, result); | |
599 EXPECT_EQ(0, memcmp(expected, result, pixel_size)); | |
600 } | |
601 | |
602 resource_provider_->DeleteResource(id); | |
603 } | |
604 | |
605 TEST_P(ResourceProviderTest, SimpleUpload) { | 538 TEST_P(ResourceProviderTest, SimpleUpload) { |
606 gfx::Size size(2, 2); | 539 gfx::Size size(2, 2); |
607 ResourceFormat format = RGBA_8888; | 540 ResourceFormat format = RGBA_8888; |
608 size_t pixel_size = TextureSizeBytes(size, format); | 541 size_t pixel_size = TextureSizeBytes(size, format); |
609 ASSERT_EQ(16U, pixel_size); | 542 ASSERT_EQ(16U, pixel_size); |
610 | 543 |
611 ResourceId id = resource_provider_->CreateResource( | 544 ResourceId id = resource_provider_->CreateResource( |
612 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); | 545 size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE, format); |
613 | 546 |
614 uint8_t image[16] = {0}; | 547 uint8_t image[16] = {0}; |
(...skipping 3203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3818 resource_provider->AllocateForTesting(id); | 3751 resource_provider->AllocateForTesting(id); |
3819 Mock::VerifyAndClearExpectations(context); | 3752 Mock::VerifyAndClearExpectations(context); |
3820 | 3753 |
3821 DCHECK_EQ(10u, context->PeekTextureId()); | 3754 DCHECK_EQ(10u, context->PeekTextureId()); |
3822 resource_provider->DeleteResource(id); | 3755 resource_provider->DeleteResource(id); |
3823 } | 3756 } |
3824 } | 3757 } |
3825 | 3758 |
3826 } // namespace | 3759 } // namespace |
3827 } // namespace cc | 3760 } // namespace cc |
OLD | NEW |