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 666 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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_->HaveUnrenderableTextures()); |
685 } | 685 } |
686 | 686 |
| 687 TEST_F(TextureTest, BaseLevel) { |
| 688 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
| 689 Texture* texture = texture_ref_->texture(); |
| 690 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); |
| 691 // Check Setting level 1 to POT |
| 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)); |
| 694 SetParameter( |
| 695 texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_LINEAR, GL_NO_ERROR); |
| 696 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
| 697 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); |
| 698 SetParameter( |
| 699 texture_ref_.get(), GL_TEXTURE_BASE_LEVEL, 1, GL_NO_ERROR); |
| 700 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); |
| 701 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); |
| 702 } |
| 703 |
| 704 TEST_F(TextureTest, BaseLevelMaxLevel) { |
| 705 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
| 706 Texture* texture = texture_ref_->texture(); |
| 707 EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); |
| 708 // Set up level 2, 3, 4. |
| 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)); |
| 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)); |
| 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)); |
| 715 SetParameter( |
| 716 texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR, |
| 717 GL_NO_ERROR); |
| 718 SetParameter( |
| 719 texture_ref_.get(), GL_TEXTURE_MAG_FILTER, GL_LINEAR, GL_NO_ERROR); |
| 720 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
| 721 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); |
| 722 SetParameter( |
| 723 texture_ref_.get(), GL_TEXTURE_BASE_LEVEL, 2, GL_NO_ERROR); |
| 724 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
| 725 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); |
| 726 SetParameter( |
| 727 texture_ref_.get(), GL_TEXTURE_MAX_LEVEL, 4, GL_NO_ERROR); |
| 728 EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); |
| 729 EXPECT_FALSE(manager_->HaveUnrenderableTextures()); |
| 730 SetParameter( |
| 731 texture_ref_.get(), GL_TEXTURE_BASE_LEVEL, 0, GL_NO_ERROR); |
| 732 EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
| 733 EXPECT_TRUE(manager_->HaveUnrenderableTextures()); |
| 734 } |
| 735 |
687 TEST_F(TextureMemoryTrackerTest, MarkMipmapsGenerated) { | 736 TEST_F(TextureMemoryTrackerTest, MarkMipmapsGenerated) { |
688 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); | 737 manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
689 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 64); | 738 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 64); |
690 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, |
691 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); | 740 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); |
692 EXPECT_MEMORY_ALLOCATION_CHANGE(64, 0); | 741 EXPECT_MEMORY_ALLOCATION_CHANGE(64, 0); |
693 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 84); | 742 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 84); |
694 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); | 743 EXPECT_TRUE(manager_->MarkMipmapsGenerated(texture_ref_.get())); |
695 EXPECT_MEMORY_ALLOCATION_CHANGE(84, 0); | 744 EXPECT_MEMORY_ALLOCATION_CHANGE(84, 0); |
696 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 0); | 745 EXPECT_MEMORY_ALLOCATION_CHANGE(0, 0); |
(...skipping 1626 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2323 ExpectValid(GL_DEPTH_COMPONENT, GL_FLOAT, GL_DEPTH_COMPONENT32F); | 2372 ExpectValid(GL_DEPTH_COMPONENT, GL_FLOAT, GL_DEPTH_COMPONENT32F); |
2324 ExpectValid(GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH24_STENCIL8); | 2373 ExpectValid(GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, GL_DEPTH24_STENCIL8); |
2325 ExpectValid(GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV, | 2374 ExpectValid(GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV, |
2326 GL_DEPTH32F_STENCIL8); | 2375 GL_DEPTH32F_STENCIL8); |
2327 | 2376 |
2328 ExpectInvalid(GL_RGB_INTEGER, GL_INT, GL_RGBA8); | 2377 ExpectInvalid(GL_RGB_INTEGER, GL_INT, GL_RGBA8); |
2329 } | 2378 } |
2330 | 2379 |
2331 } // namespace gles2 | 2380 } // namespace gles2 |
2332 } // namespace gpu | 2381 } // namespace gpu |
OLD | NEW |