OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 "gpu/command_buffer/service/texture_manager.h" | 5 #include "gpu/command_buffer/service/texture_manager.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 const GLint TextureManagerTest::kMaxExternalTextureSize; | 126 const GLint TextureManagerTest::kMaxExternalTextureSize; |
127 const GLint TextureManagerTest::kMax2dLevels; | 127 const GLint TextureManagerTest::kMax2dLevels; |
128 const GLint TextureManagerTest::kMaxCubeMapLevels; | 128 const GLint TextureManagerTest::kMaxCubeMapLevels; |
129 const GLint TextureManagerTest::kMaxExternalLevels; | 129 const GLint TextureManagerTest::kMaxExternalLevels; |
130 #endif | 130 #endif |
131 | 131 |
132 TEST_F(TextureManagerTest, Basic) { | 132 TEST_F(TextureManagerTest, Basic) { |
133 const GLuint kClient1Id = 1; | 133 const GLuint kClient1Id = 1; |
134 const GLuint kService1Id = 11; | 134 const GLuint kService1Id = 11; |
135 const GLuint kClient2Id = 2; | 135 const GLuint kClient2Id = 2; |
136 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 136 EXPECT_FALSE(manager_->NeedsTextureRenderChecks()); |
137 EXPECT_FALSE(manager_->HaveUnsafeTextures()); | 137 EXPECT_FALSE(manager_->HaveUnsafeTextures()); |
138 EXPECT_FALSE(manager_->HaveUnclearedMips()); | 138 EXPECT_FALSE(manager_->HaveUnclearedMips()); |
139 // Check we can create texture. | 139 // Check we can create texture. |
140 manager_->CreateTexture(kClient1Id, kService1Id); | 140 manager_->CreateTexture(kClient1Id, kService1Id); |
141 // Check texture got created. | 141 // Check texture got created. |
142 scoped_refptr<TextureRef> texture = manager_->GetTexture(kClient1Id); | 142 scoped_refptr<TextureRef> texture = manager_->GetTexture(kClient1Id); |
143 ASSERT_TRUE(texture.get() != NULL); | 143 ASSERT_TRUE(texture.get() != NULL); |
144 EXPECT_EQ(kService1Id, texture->service_id()); | 144 EXPECT_EQ(kService1Id, texture->service_id()); |
145 EXPECT_EQ(kClient1Id, texture->client_id()); | 145 EXPECT_EQ(kClient1Id, texture->client_id()); |
146 EXPECT_EQ(texture->texture(), manager_->GetTextureForServiceId( | 146 EXPECT_EQ(texture->texture(), manager_->GetTextureForServiceId( |
(...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
564 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 564 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
565 EXPECT_EQ(0, texture->num_uncleared_mips()); | 565 EXPECT_EQ(0, texture->num_uncleared_mips()); |
566 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); | 566 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); |
567 EXPECT_TRUE(texture->SafeToRenderFrom()); | 567 EXPECT_TRUE(texture->SafeToRenderFrom()); |
568 EXPECT_FALSE(texture->IsImmutable()); | 568 EXPECT_FALSE(texture->IsImmutable()); |
569 EXPECT_EQ(static_cast<GLenum>(GL_NEAREST_MIPMAP_LINEAR), | 569 EXPECT_EQ(static_cast<GLenum>(GL_NEAREST_MIPMAP_LINEAR), |
570 texture->min_filter()); | 570 texture->min_filter()); |
571 EXPECT_EQ(static_cast<GLenum>(GL_LINEAR), texture->mag_filter()); | 571 EXPECT_EQ(static_cast<GLenum>(GL_LINEAR), texture->mag_filter()); |
572 EXPECT_EQ(static_cast<GLenum>(GL_REPEAT), texture->wrap_s()); | 572 EXPECT_EQ(static_cast<GLenum>(GL_REPEAT), texture->wrap_s()); |
573 EXPECT_EQ(static_cast<GLenum>(GL_REPEAT), texture->wrap_t()); | 573 EXPECT_EQ(static_cast<GLenum>(GL_REPEAT), texture->wrap_t()); |
574 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 574 EXPECT_FALSE(manager_->NeedsTextureRenderChecks()); |
575 EXPECT_FALSE(manager_->HaveUnsafeTextures()); | 575 EXPECT_FALSE(manager_->HaveUnsafeTextures()); |
576 EXPECT_EQ(0u, texture->estimated_size()); | 576 EXPECT_EQ(0u, texture->estimated_size()); |
577 } | 577 } |
578 | 578 |
579 TEST_F(TextureTest, SetTargetTexture2D) { | 579 TEST_F(TextureTest, SetTargetTexture2D) { |
580 Texture* texture = texture_ref_->texture(); | 580 Texture* texture = texture_ref_->texture(); |
581 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); | 581 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
582 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 582 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
583 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); | 583 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); |
584 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 584 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
639 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); | 639 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
640 Texture* texture = texture_ref_->texture(); | 640 Texture* texture = texture_ref_->texture(); |
641 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); | 641 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); |
642 // Check Setting level 0 to POT | 642 // Check Setting level 0 to POT |
643 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, | 643 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, |
644 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); | 644 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); |
645 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 645 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
646 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 646 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
647 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 647 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
648 EXPECT_TRUE(texture->SafeToRenderFrom()); | 648 EXPECT_TRUE(texture->SafeToRenderFrom()); |
649 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 649 EXPECT_TRUE(manager_->NeedsTextureRenderChecks()); |
650 // Set filters to something that will work with a single mip. | 650 // Set filters to something that will work with a single mip. |
651 SetParameter( | 651 SetParameter( |
652 texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_LINEAR, GL_NO_ERROR); | 652 texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_LINEAR, GL_NO_ERROR); |
653 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); | 653 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); |
654 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 654 EXPECT_FALSE(manager_->NeedsTextureRenderChecks()); |
655 // Set them back. | 655 // Set them back. |
656 SetParameter(texture_ref_.get(), | 656 SetParameter(texture_ref_.get(), |
657 GL_TEXTURE_MIN_FILTER, | 657 GL_TEXTURE_MIN_FILTER, |
658 GL_LINEAR_MIPMAP_LINEAR, | 658 GL_LINEAR_MIPMAP_LINEAR, |
659 GL_NO_ERROR); | 659 GL_NO_ERROR); |
660 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 660 EXPECT_TRUE(manager_->NeedsTextureRenderChecks()); |
661 | 661 |
662 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 662 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
663 // Make mips. | 663 // Make mips. |
664 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); | 664 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); |
665 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); | 665 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); |
666 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); | 666 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); |
667 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 667 EXPECT_FALSE(manager_->NeedsTextureRenderChecks()); |
668 // Change a mip. | 668 // Change a mip. |
669 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 4, 4, 1, | 669 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 4, 4, 1, |
670 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); | 670 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); |
671 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 671 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
672 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 672 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
673 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 673 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
674 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 674 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
675 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 675 EXPECT_TRUE(manager_->NeedsTextureRenderChecks()); |
676 // Set a level past the number of mips that would get generated. | 676 // Set a level past the number of mips that would get generated. |
677 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 3, GL_RGBA, 4, 4, 1, | 677 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 3, GL_RGBA, 4, 4, 1, |
678 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); | 678 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); |
679 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 679 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
680 // Make mips. | 680 // Make mips. |
681 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); | 681 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); |
682 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); | 682 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); |
683 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); | 683 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); |
684 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 684 EXPECT_FALSE(manager_->NeedsTextureRenderChecks()); |
685 } | 685 } |
686 | 686 |
687 TEST_F(TextureTest, BaseLevel) { | 687 TEST_F(TextureTest, BaseLevel) { |
688 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); | 688 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
689 Texture* texture = texture_ref_->texture(); | 689 Texture* texture = texture_ref_->texture(); |
690 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); | 690 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); |
691 // Check Setting level 1 to POT | 691 // Check Setting level 1 to POT |
692 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 4, 4, 1, | 692 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 4, 4, 1, |
693 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); | 693 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); |
694 SetParameter( | 694 SetParameter( |
695 texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_LINEAR, GL_NO_ERROR); | 695 texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_LINEAR, GL_NO_ERROR); |
696 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 696 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
697 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 697 EXPECT_TRUE(manager_->NeedsTextureRenderChecks()); |
698 SetParameter( | 698 SetParameter( |
699 texture_ref_.get(), GL_TEXTURE_BASE_LEVEL, 1, GL_NO_ERROR); | 699 texture_ref_.get(), GL_TEXTURE_BASE_LEVEL, 1, GL_NO_ERROR); |
700 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); | 700 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); |
701 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 701 EXPECT_FALSE(manager_->NeedsTextureRenderChecks()); |
702 } | 702 } |
703 | 703 |
704 TEST_F(TextureTest, BaseLevelMaxLevel) { | 704 TEST_F(TextureTest, BaseLevelMaxLevel) { |
705 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); | 705 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
706 Texture* texture = texture_ref_->texture(); | 706 Texture* texture = texture_ref_->texture(); |
707 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); | 707 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); |
708 // Set up level 2, 3, 4. | 708 // Set up level 2, 3, 4. |
709 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 2, GL_RGBA, 8, 8, 1, | 709 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 2, GL_RGBA, 8, 8, 1, |
710 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(8, 8)); | 710 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(8, 8)); |
711 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 3, GL_RGBA, 4, 4, 1, | 711 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 3, GL_RGBA, 4, 4, 1, |
712 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); | 712 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); |
713 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 4, GL_RGBA, 2, 2, 1, | 713 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 4, GL_RGBA, 2, 2, 1, |
714 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2)); | 714 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2)); |
715 SetParameter( | 715 SetParameter( |
716 texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR, | 716 texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR, |
717 GL_NO_ERROR); | 717 GL_NO_ERROR); |
718 SetParameter( | 718 SetParameter( |
719 texture_ref_.get(), GL_TEXTURE_MAG_FILTER, GL_LINEAR, GL_NO_ERROR); | 719 texture_ref_.get(), GL_TEXTURE_MAG_FILTER, GL_LINEAR, GL_NO_ERROR); |
720 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 720 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
721 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 721 EXPECT_TRUE(manager_->NeedsTextureRenderChecks()); |
722 SetParameter( | 722 SetParameter( |
723 texture_ref_.get(), GL_TEXTURE_BASE_LEVEL, 2, GL_NO_ERROR); | 723 texture_ref_.get(), GL_TEXTURE_BASE_LEVEL, 2, GL_NO_ERROR); |
724 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 724 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
725 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 725 EXPECT_TRUE(manager_->NeedsTextureRenderChecks()); |
726 SetParameter( | 726 SetParameter( |
727 texture_ref_.get(), GL_TEXTURE_MAX_LEVEL, 4, GL_NO_ERROR); | 727 texture_ref_.get(), GL_TEXTURE_MAX_LEVEL, 4, GL_NO_ERROR); |
728 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); | 728 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); |
729 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 729 EXPECT_FALSE(manager_->NeedsTextureRenderChecks()); |
730 SetParameter( | 730 SetParameter( |
731 texture_ref_.get(), GL_TEXTURE_BASE_LEVEL, 0, GL_NO_ERROR); | 731 texture_ref_.get(), GL_TEXTURE_BASE_LEVEL, 0, GL_NO_ERROR); |
732 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 732 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
733 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 733 EXPECT_TRUE(manager_->NeedsTextureRenderChecks()); |
734 } | 734 } |
735 | 735 |
736 TEST_F(TextureMemoryTrackerTest, MarkMipmapsGenerated) { | 736 TEST_F(TextureMemoryTrackerTest, MarkMipmapsGenerated) { |
737 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); | 737 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
738 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 64); | 738 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 64); |
739 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, | 739 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, |
740 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); | 740 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); |
741 EXPECT_MEMORY_ALLOCATION_CHANGE(64, 0); | 741 EXPECT_MEMORY_ALLOCATION_CHANGE(64, 0); |
742 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 84); | 742 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 84); |
743 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); | 743 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); |
744 EXPECT_MEMORY_ALLOCATION_CHANGE(84, 0); | 744 EXPECT_MEMORY_ALLOCATION_CHANGE(84, 0); |
745 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 0); | 745 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 0); |
746 } | 746 } |
747 | 747 |
748 TEST_F(TextureTest, UnusedMips) { | 748 TEST_F(TextureTest, UnusedMips) { |
749 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); | 749 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
750 Texture* texture = texture_ref_->texture(); | 750 Texture* texture = texture_ref_->texture(); |
751 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); | 751 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); |
752 // Set level zero to large size. | 752 // Set level zero to large size. |
753 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, | 753 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, |
754 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); | 754 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); |
755 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); | 755 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); |
756 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 756 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
757 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); | 757 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); |
758 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); | 758 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); |
759 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 759 EXPECT_FALSE(manager_->NeedsTextureRenderChecks()); |
760 // Set level zero to large smaller (levels unused mips) | 760 // Set level zero to large smaller (levels unused mips) |
761 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 1, | 761 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 1, |
762 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2)); | 762 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2)); |
763 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); | 763 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); |
764 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 764 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
765 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); | 765 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); |
766 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); | 766 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); |
767 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 767 EXPECT_FALSE(manager_->NeedsTextureRenderChecks()); |
768 // Set an unused level to some size | 768 // Set an unused level to some size |
769 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 4, GL_RGBA, 16, 16, | 769 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 4, GL_RGBA, 16, 16, |
770 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(16, 16)); | 770 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(16, 16)); |
771 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 771 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
772 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); | 772 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); |
773 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); | 773 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); |
774 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 774 EXPECT_FALSE(manager_->NeedsTextureRenderChecks()); |
775 } | 775 } |
776 | 776 |
777 TEST_F(TextureTest, NPOT2D) { | 777 TEST_F(TextureTest, NPOT2D) { |
778 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); | 778 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
779 Texture* texture = texture_ref_->texture(); | 779 Texture* texture = texture_ref_->texture(); |
780 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); | 780 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); |
781 // Check Setting level 0 to NPOT | 781 // Check Setting level 0 to NPOT |
782 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 5, 1, | 782 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 5, 1, |
783 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 5)); | 783 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 5)); |
784 EXPECT_TRUE(TextureTestHelper::IsNPOT(texture)); | 784 EXPECT_TRUE(TextureTestHelper::IsNPOT(texture)); |
785 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 785 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
786 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 786 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
787 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 787 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
788 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 788 EXPECT_TRUE(manager_->NeedsTextureRenderChecks()); |
789 SetParameter( | 789 SetParameter( |
790 texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_LINEAR, GL_NO_ERROR); | 790 texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_LINEAR, GL_NO_ERROR); |
791 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 791 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
792 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 792 EXPECT_TRUE(manager_->NeedsTextureRenderChecks()); |
793 SetParameter( | 793 SetParameter( |
794 texture_ref_.get(), GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE, GL_NO_ERROR); | 794 texture_ref_.get(), GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE, GL_NO_ERROR); |
795 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 795 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
796 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 796 EXPECT_TRUE(manager_->NeedsTextureRenderChecks()); |
797 SetParameter( | 797 SetParameter( |
798 texture_ref_.get(), GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE, GL_NO_ERROR); | 798 texture_ref_.get(), GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE, GL_NO_ERROR); |
799 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); | 799 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); |
800 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 800 EXPECT_FALSE(manager_->NeedsTextureRenderChecks()); |
801 // Change it to POT. | 801 // Change it to POT. |
802 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, | 802 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 1, |
803 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); | 803 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); |
804 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 804 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
805 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 805 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
806 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 806 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
807 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 807 EXPECT_FALSE(manager_->NeedsTextureRenderChecks()); |
808 } | 808 } |
809 | 809 |
810 TEST_F(TextureTest, NPOT2DNPOTOK) { | 810 TEST_F(TextureTest, NPOT2DNPOTOK) { |
811 TestHelper::SetupFeatureInfoInitExpectations( | 811 TestHelper::SetupFeatureInfoInitExpectations( |
812 gl_.get(), "GL_OES_texture_npot"); | 812 gl_.get(), "GL_OES_texture_npot"); |
813 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); | 813 scoped_refptr<FeatureInfo> feature_info(new FeatureInfo()); |
814 feature_info->InitializeForTesting(); | 814 feature_info->InitializeForTesting(); |
815 TextureManager manager(NULL, | 815 TextureManager manager(NULL, |
816 feature_info.get(), | 816 feature_info.get(), |
817 kMaxTextureSize, | 817 kMaxTextureSize, |
818 kMaxCubeMapTextureSize, | 818 kMaxCubeMapTextureSize, |
819 kMaxRectangleTextureSize, | 819 kMaxRectangleTextureSize, |
820 kMax3DTextureSize, | 820 kMax3DTextureSize, |
821 kUseDefaultTextures); | 821 kUseDefaultTextures); |
822 manager.CreateTexture(kClient1Id, kService1Id); | 822 manager.CreateTexture(kClient1Id, kService1Id); |
823 TextureRef* texture_ref = manager.GetTexture(kClient1Id); | 823 TextureRef* texture_ref = manager.GetTexture(kClient1Id); |
824 ASSERT_TRUE(texture_ref != NULL); | 824 ASSERT_TRUE(texture_ref != NULL); |
825 Texture* texture = texture_ref->texture(); | 825 Texture* texture = texture_ref->texture(); |
826 | 826 |
827 manager.SetTarget(texture_ref, GL_TEXTURE_2D); | 827 manager.SetTarget(texture_ref, GL_TEXTURE_2D); |
828 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); | 828 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); |
829 // Check Setting level 0 to NPOT | 829 // Check Setting level 0 to NPOT |
830 manager.SetLevelInfo(texture_ref, GL_TEXTURE_2D, 0, GL_RGBA, 4, 5, 1, 0, | 830 manager.SetLevelInfo(texture_ref, GL_TEXTURE_2D, 0, GL_RGBA, 4, 5, 1, 0, |
831 GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 5)); | 831 GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 5)); |
832 EXPECT_TRUE(TextureTestHelper::IsNPOT(texture)); | 832 EXPECT_TRUE(TextureTestHelper::IsNPOT(texture)); |
833 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 833 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
834 EXPECT_TRUE(manager.CanGenerateMipmaps(texture_ref)); | 834 EXPECT_TRUE(manager.CanGenerateMipmaps(texture_ref)); |
835 EXPECT_FALSE(manager.CanRender(texture_ref)); | 835 EXPECT_FALSE(manager.CanRender(texture_ref)); |
836 EXPECT_TRUE(manager.HaveUnrenderableTextures()); | 836 EXPECT_TRUE(manager.NeedsTextureRenderChecks()); |
837 EXPECT_TRUE(manager.MarkMipmapsGenerated(texture_ref)); | 837 EXPECT_TRUE(manager.MarkMipmapsGenerated(texture_ref)); |
838 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); | 838 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); |
839 EXPECT_TRUE(manager.CanRender(texture_ref)); | 839 EXPECT_TRUE(manager.CanRender(texture_ref)); |
840 EXPECT_FALSE(manager.HaveUnrenderableTextures()); | 840 EXPECT_FALSE(manager.NeedsTextureRenderChecks()); |
841 manager.Destroy(false); | 841 manager.Destroy(false); |
842 } | 842 } |
843 | 843 |
844 TEST_F(TextureTest, POTCubeMap) { | 844 TEST_F(TextureTest, POTCubeMap) { |
845 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_CUBE_MAP); | 845 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_CUBE_MAP); |
846 Texture* texture = texture_ref_->texture(); | 846 Texture* texture = texture_ref_->texture(); |
847 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_CUBE_MAP), texture->target()); | 847 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_CUBE_MAP), texture->target()); |
848 // Check Setting level 0 each face to POT | 848 // Check Setting level 0 each face to POT |
849 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_X, 0, | 849 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_X, 0, |
850 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, | 850 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
851 gfx::Rect(4, 4)); | 851 gfx::Rect(4, 4)); |
852 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 852 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
853 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 853 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
854 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); | 854 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); |
855 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 855 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
856 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 856 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
857 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 857 EXPECT_TRUE(manager_->NeedsTextureRenderChecks()); |
858 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_X, 0, | 858 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_X, 0, |
859 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, | 859 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
860 gfx::Rect(4, 4)); | 860 gfx::Rect(4, 4)); |
861 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 861 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
862 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 862 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
863 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); | 863 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); |
864 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 864 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
865 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 865 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
866 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 866 EXPECT_TRUE(manager_->NeedsTextureRenderChecks()); |
867 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_Y, 0, | 867 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_Y, 0, |
868 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, | 868 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
869 gfx::Rect(4, 4)); | 869 gfx::Rect(4, 4)); |
870 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 870 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
871 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 871 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
872 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); | 872 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); |
873 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 873 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
874 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 874 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
875 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 875 EXPECT_TRUE(manager_->NeedsTextureRenderChecks()); |
876 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, 0, | 876 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, 0, |
877 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, | 877 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
878 gfx::Rect(4, 4)); | 878 gfx::Rect(4, 4)); |
879 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 879 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
880 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 880 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
881 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); | 881 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); |
882 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 882 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
883 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 883 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
884 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 884 EXPECT_TRUE(manager_->NeedsTextureRenderChecks()); |
885 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_Z, 0, | 885 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_Z, 0, |
886 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, | 886 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
887 gfx::Rect(4, 4)); | 887 gfx::Rect(4, 4)); |
888 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 888 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
889 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 889 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
890 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); | 890 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); |
891 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 891 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
892 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 892 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
893 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 893 EXPECT_TRUE(manager_->NeedsTextureRenderChecks()); |
894 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, 0, | 894 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, 0, |
895 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, | 895 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
896 gfx::Rect(4, 4)); | 896 gfx::Rect(4, 4)); |
897 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 897 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
898 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 898 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
899 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture)); | 899 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture)); |
900 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 900 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
901 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 901 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
902 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 902 EXPECT_TRUE(manager_->NeedsTextureRenderChecks()); |
903 | 903 |
904 // Make mips. | 904 // Make mips. |
905 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); | 905 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); |
906 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); | 906 EXPECT_TRUE(TextureTestHelper::IsTextureComplete(texture)); |
907 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture)); | 907 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture)); |
908 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); | 908 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); |
909 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 909 EXPECT_FALSE(manager_->NeedsTextureRenderChecks()); |
910 | 910 |
911 // Change a mip. | 911 // Change a mip. |
912 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, 1, | 912 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, 1, |
913 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, | 913 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
914 gfx::Rect(4, 4)); | 914 gfx::Rect(4, 4)); |
915 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 915 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
916 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 916 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
917 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture)); | 917 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture)); |
918 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 918 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
919 // Set a level past the number of mips that would get generated. | 919 // Set a level past the number of mips that would get generated. |
(...skipping 22 matching lines...) Expand all Loading... |
942 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_CUBE_MAP), texture->target()); | 942 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_CUBE_MAP), texture->target()); |
943 // Check Setting level 0 each face to POT | 943 // Check Setting level 0 each face to POT |
944 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_X, 0, | 944 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_X, 0, |
945 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, | 945 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
946 gfx::Rect(4, 4)); | 946 gfx::Rect(4, 4)); |
947 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 947 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
948 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 948 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
949 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); | 949 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); |
950 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 950 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
951 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 951 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
952 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 952 EXPECT_TRUE(manager_->NeedsTextureRenderChecks()); |
953 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_X, 0, | 953 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_X, 0, |
954 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, | 954 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
955 gfx::Rect(4, 4)); | 955 gfx::Rect(4, 4)); |
956 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 956 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
957 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 957 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
958 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); | 958 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); |
959 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 959 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
960 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 960 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
961 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 961 EXPECT_TRUE(manager_->NeedsTextureRenderChecks()); |
962 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_Y, 0, | 962 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_Y, 0, |
963 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, | 963 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
964 gfx::Rect(4, 4)); | 964 gfx::Rect(4, 4)); |
965 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 965 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
966 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 966 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
967 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); | 967 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); |
968 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 968 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
969 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 969 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
970 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 970 EXPECT_TRUE(manager_->NeedsTextureRenderChecks()); |
971 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, 0, | 971 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, 0, |
972 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, | 972 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
973 gfx::Rect(4, 4)); | 973 gfx::Rect(4, 4)); |
974 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 974 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
975 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 975 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
976 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); | 976 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); |
977 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 977 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
978 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 978 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
979 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 979 EXPECT_TRUE(manager_->NeedsTextureRenderChecks()); |
980 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_Z, 0, | 980 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_Z, 0, |
981 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, | 981 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
982 gfx::Rect(4, 4)); | 982 gfx::Rect(4, 4)); |
983 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 983 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
984 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 984 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
985 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); | 985 EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); |
986 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 986 EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
987 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); | 987 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
988 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 988 EXPECT_TRUE(manager_->NeedsTextureRenderChecks()); |
989 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, 0, | 989 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, 0, |
990 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, | 990 GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
991 gfx::Rect(4, 4)); | 991 gfx::Rect(4, 4)); |
992 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); | 992 EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
993 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); | 993 EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
994 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture)); | 994 EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture)); |
995 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); | 995 EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
996 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); | 996 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); |
997 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 997 EXPECT_FALSE(manager_->NeedsTextureRenderChecks()); |
998 } | 998 } |
999 | 999 |
1000 TEST_F(TextureTest, GetLevelSize) { | 1000 TEST_F(TextureTest, GetLevelSize) { |
1001 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_3D); | 1001 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_3D); |
1002 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_3D, 1, GL_RGBA, 4, 5, 6, | 1002 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_3D, 1, GL_RGBA, 4, 5, 6, |
1003 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 5)); | 1003 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 5)); |
1004 GLsizei width = -1; | 1004 GLsizei width = -1; |
1005 GLsizei height = -1; | 1005 GLsizei height = -1; |
1006 GLsizei depth = -1; | 1006 GLsizei depth = -1; |
1007 Texture* texture = texture_ref_->texture(); | 1007 Texture* texture = texture_ref_->texture(); |
(...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1402 EXPECT_EQ(0, texture->num_uncleared_mips()); | 1402 EXPECT_EQ(0, texture->num_uncleared_mips()); |
1403 } | 1403 } |
1404 | 1404 |
1405 TEST_F(TextureTest, UseDeletedTexture) { | 1405 TEST_F(TextureTest, UseDeletedTexture) { |
1406 static const GLuint kClient2Id = 2; | 1406 static const GLuint kClient2Id = 2; |
1407 static const GLuint kService2Id = 12; | 1407 static const GLuint kService2Id = 12; |
1408 // Make the default texture renderable | 1408 // Make the default texture renderable |
1409 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); | 1409 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
1410 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, | 1410 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, |
1411 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); | 1411 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); |
1412 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 1412 EXPECT_FALSE(manager_->NeedsTextureRenderChecks()); |
1413 // Make a new texture | 1413 // Make a new texture |
1414 manager_->CreateTexture(kClient2Id, kService2Id); | 1414 manager_->CreateTexture(kClient2Id, kService2Id); |
1415 scoped_refptr<TextureRef> texture_ref( | 1415 scoped_refptr<TextureRef> texture_ref( |
1416 manager_->GetTexture(kClient2Id)); | 1416 manager_->GetTexture(kClient2Id)); |
1417 manager_->SetTarget(texture_ref.get(), GL_TEXTURE_2D); | 1417 manager_->SetTarget(texture_ref.get(), GL_TEXTURE_2D); |
1418 EXPECT_FALSE(manager_->CanRender(texture_ref.get())); | 1418 EXPECT_FALSE(manager_->CanRender(texture_ref.get())); |
1419 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 1419 EXPECT_TRUE(manager_->NeedsTextureRenderChecks()); |
1420 // Remove it. | 1420 // Remove it. |
1421 manager_->RemoveTexture(kClient2Id); | 1421 manager_->RemoveTexture(kClient2Id); |
1422 EXPECT_FALSE(manager_->CanRender(texture_ref.get())); | 1422 EXPECT_FALSE(manager_->CanRender(texture_ref.get())); |
1423 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); | 1423 EXPECT_TRUE(manager_->NeedsTextureRenderChecks()); |
1424 // Check that we can still manipulate it and it effects the manager. | 1424 // Check that we can still manipulate it and it effects the manager. |
1425 manager_->SetLevelInfo(texture_ref.get(), GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, | 1425 manager_->SetLevelInfo(texture_ref.get(), GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 1, |
1426 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); | 1426 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); |
1427 EXPECT_TRUE(manager_->CanRender(texture_ref.get())); | 1427 EXPECT_TRUE(manager_->CanRender(texture_ref.get())); |
1428 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); | 1428 EXPECT_FALSE(manager_->NeedsTextureRenderChecks()); |
1429 EXPECT_CALL(*gl_, DeleteTextures(1, ::testing::Pointee(kService2Id))) | 1429 EXPECT_CALL(*gl_, DeleteTextures(1, ::testing::Pointee(kService2Id))) |
1430 .Times(1) | 1430 .Times(1) |
1431 .RetiresOnSaturation(); | 1431 .RetiresOnSaturation(); |
1432 texture_ref = NULL; | 1432 texture_ref = NULL; |
1433 } | 1433 } |
1434 | 1434 |
1435 TEST_F(TextureTest, GetLevelImage) { | 1435 TEST_F(TextureTest, GetLevelImage) { |
1436 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); | 1436 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
1437 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1, | 1437 manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 2, 2, 1, |
1438 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2)); | 1438 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2)); |
(...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1931 | 1931 |
1932 EXPECT_CALL(*gl_, DeleteTextures(1, _)) | 1932 EXPECT_CALL(*gl_, DeleteTextures(1, _)) |
1933 .Times(1) | 1933 .Times(1) |
1934 .RetiresOnSaturation(); | 1934 .RetiresOnSaturation(); |
1935 ref2 = NULL; | 1935 ref2 = NULL; |
1936 texture_manager2_->RemoveTexture(20); | 1936 texture_manager2_->RemoveTexture(20); |
1937 testing::Mock::VerifyAndClearExpectations(gl_.get()); | 1937 testing::Mock::VerifyAndClearExpectations(gl_.get()); |
1938 } | 1938 } |
1939 | 1939 |
1940 TEST_F(SharedTextureTest, TextureSafetyAccounting) { | 1940 TEST_F(SharedTextureTest, TextureSafetyAccounting) { |
1941 EXPECT_FALSE(texture_manager1_->HaveUnrenderableTextures()); | 1941 EXPECT_FALSE(texture_manager1_->NeedsTextureRenderChecks()); |
1942 EXPECT_FALSE(texture_manager1_->HaveUnsafeTextures()); | 1942 EXPECT_FALSE(texture_manager1_->HaveUnsafeTextures()); |
1943 EXPECT_FALSE(texture_manager1_->HaveUnclearedMips()); | 1943 EXPECT_FALSE(texture_manager1_->HaveUnclearedMips()); |
1944 EXPECT_FALSE(texture_manager2_->HaveUnrenderableTextures()); | 1944 EXPECT_FALSE(texture_manager2_->NeedsTextureRenderChecks()); |
1945 EXPECT_FALSE(texture_manager2_->HaveUnsafeTextures()); | 1945 EXPECT_FALSE(texture_manager2_->HaveUnsafeTextures()); |
1946 EXPECT_FALSE(texture_manager2_->HaveUnclearedMips()); | 1946 EXPECT_FALSE(texture_manager2_->HaveUnclearedMips()); |
1947 | 1947 |
1948 // Newly created texture is renderable. | 1948 // Newly created texture is renderable. |
1949 scoped_refptr<TextureRef> ref1 = texture_manager1_->CreateTexture(10, 10); | 1949 scoped_refptr<TextureRef> ref1 = texture_manager1_->CreateTexture(10, 10); |
1950 EXPECT_FALSE(texture_manager1_->HaveUnrenderableTextures()); | 1950 EXPECT_FALSE(texture_manager1_->NeedsTextureRenderChecks()); |
1951 EXPECT_FALSE(texture_manager1_->HaveUnsafeTextures()); | 1951 EXPECT_FALSE(texture_manager1_->HaveUnsafeTextures()); |
1952 EXPECT_FALSE(texture_manager1_->HaveUnclearedMips()); | 1952 EXPECT_FALSE(texture_manager1_->HaveUnclearedMips()); |
1953 | 1953 |
1954 // Associate new texture ref to other texture manager, should account for it | 1954 // Associate new texture ref to other texture manager, should account for it |
1955 // too. | 1955 // too. |
1956 scoped_refptr<TextureRef> ref2 = | 1956 scoped_refptr<TextureRef> ref2 = |
1957 texture_manager2_->Consume(20, ref1->texture()); | 1957 texture_manager2_->Consume(20, ref1->texture()); |
1958 EXPECT_FALSE(texture_manager2_->HaveUnrenderableTextures()); | 1958 EXPECT_FALSE(texture_manager2_->NeedsTextureRenderChecks()); |
1959 EXPECT_FALSE(texture_manager2_->HaveUnsafeTextures()); | 1959 EXPECT_FALSE(texture_manager2_->HaveUnsafeTextures()); |
1960 EXPECT_FALSE(texture_manager2_->HaveUnclearedMips()); | 1960 EXPECT_FALSE(texture_manager2_->HaveUnclearedMips()); |
1961 | 1961 |
1962 // Make texture renderable but uncleared on one texture manager, should affect | 1962 // Make texture renderable but uncleared on one texture manager, should affect |
1963 // other one. | 1963 // other one. |
1964 texture_manager1_->SetTarget(ref1.get(), GL_TEXTURE_2D); | 1964 texture_manager1_->SetTarget(ref1.get(), GL_TEXTURE_2D); |
1965 EXPECT_TRUE(texture_manager1_->HaveUnrenderableTextures()); | 1965 EXPECT_TRUE(texture_manager1_->NeedsTextureRenderChecks()); |
1966 EXPECT_FALSE(texture_manager1_->HaveUnsafeTextures()); | 1966 EXPECT_FALSE(texture_manager1_->HaveUnsafeTextures()); |
1967 EXPECT_FALSE(texture_manager1_->HaveUnclearedMips()); | 1967 EXPECT_FALSE(texture_manager1_->HaveUnclearedMips()); |
1968 EXPECT_TRUE(texture_manager2_->HaveUnrenderableTextures()); | 1968 EXPECT_TRUE(texture_manager2_->NeedsTextureRenderChecks()); |
1969 EXPECT_FALSE(texture_manager2_->HaveUnsafeTextures()); | 1969 EXPECT_FALSE(texture_manager2_->HaveUnsafeTextures()); |
1970 EXPECT_FALSE(texture_manager2_->HaveUnclearedMips()); | 1970 EXPECT_FALSE(texture_manager2_->HaveUnclearedMips()); |
1971 | 1971 |
1972 texture_manager1_->SetLevelInfo(ref1.get(), GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, | 1972 texture_manager1_->SetLevelInfo(ref1.get(), GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, |
1973 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); | 1973 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect()); |
1974 EXPECT_FALSE(texture_manager1_->HaveUnrenderableTextures()); | 1974 EXPECT_FALSE(texture_manager1_->NeedsTextureRenderChecks()); |
1975 EXPECT_TRUE(texture_manager1_->HaveUnsafeTextures()); | 1975 EXPECT_TRUE(texture_manager1_->HaveUnsafeTextures()); |
1976 EXPECT_TRUE(texture_manager1_->HaveUnclearedMips()); | 1976 EXPECT_TRUE(texture_manager1_->HaveUnclearedMips()); |
1977 EXPECT_FALSE(texture_manager2_->HaveUnrenderableTextures()); | 1977 EXPECT_FALSE(texture_manager2_->NeedsTextureRenderChecks()); |
1978 EXPECT_TRUE(texture_manager2_->HaveUnsafeTextures()); | 1978 EXPECT_TRUE(texture_manager2_->HaveUnsafeTextures()); |
1979 EXPECT_TRUE(texture_manager2_->HaveUnclearedMips()); | 1979 EXPECT_TRUE(texture_manager2_->HaveUnclearedMips()); |
1980 | 1980 |
1981 // Make texture cleared on one texture manager, should affect other one. | 1981 // Make texture cleared on one texture manager, should affect other one. |
1982 texture_manager1_->SetLevelCleared(ref1.get(), GL_TEXTURE_2D, 0, true); | 1982 texture_manager1_->SetLevelCleared(ref1.get(), GL_TEXTURE_2D, 0, true); |
1983 EXPECT_FALSE(texture_manager1_->HaveUnsafeTextures()); | 1983 EXPECT_FALSE(texture_manager1_->HaveUnsafeTextures()); |
1984 EXPECT_FALSE(texture_manager1_->HaveUnclearedMips()); | 1984 EXPECT_FALSE(texture_manager1_->HaveUnclearedMips()); |
1985 EXPECT_FALSE(texture_manager2_->HaveUnsafeTextures()); | 1985 EXPECT_FALSE(texture_manager2_->HaveUnsafeTextures()); |
1986 EXPECT_FALSE(texture_manager2_->HaveUnclearedMips()); | 1986 EXPECT_FALSE(texture_manager2_->HaveUnclearedMips()); |
1987 | 1987 |
(...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2378 ExpectValid(GL_DEPTH_COMPONENT, GL_FLOAT, GL_DEPTH_COMPONENT32F); | 2378 ExpectValid(GL_DEPTH_COMPONENT, GL_FLOAT, GL_DEPTH_COMPONENT32F); |
2379 ExpectValid(GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH24_STENCIL8); | 2379 ExpectValid(GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH24_STENCIL8); |
2380 ExpectValid(GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV, | 2380 ExpectValid(GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV, |
2381 GL_DEPTH32F_STENCIL8); | 2381 GL_DEPTH32F_STENCIL8); |
2382 | 2382 |
2383 ExpectInvalid(GL_RGB_INTEGER, GL_INT, GL_RGBA8); | 2383 ExpectInvalid(GL_RGB_INTEGER, GL_INT, GL_RGBA8); |
2384 } | 2384 } |
2385 | 2385 |
2386 } // namespace gles2 | 2386 } // namespace gles2 |
2387 } // namespace gpu | 2387 } // namespace gpu |
OLD | NEW |