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