Index: gpu/command_buffer/service/texture_manager_unittest.cc |
diff --git a/gpu/command_buffer/service/texture_manager_unittest.cc b/gpu/command_buffer/service/texture_manager_unittest.cc |
index 90e90c447ee29f92d3b12ff2558cae406565a24e..b2b40552df7c8f5a24a564152b383c5241ec2305 100644 |
--- a/gpu/command_buffer/service/texture_manager_unittest.cc |
+++ b/gpu/command_buffer/service/texture_manager_unittest.cc |
@@ -684,6 +684,55 @@ TEST_F(TextureTest, POT2D) { |
EXPECT_FALSE(manager_->HaveUnrenderableTextures()); |
} |
+TEST_F(TextureTest, BaseLevel) { |
+ manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
+ Texture* texture = texture_ref_->texture(); |
+ EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); |
+ // Check Setting level 1 to POT |
+ manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 1, GL_RGBA, 4, 4, 1, |
+ 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); |
+ SetParameter( |
+ texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_LINEAR, GL_NO_ERROR); |
+ EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
+ EXPECT_TRUE(manager_->HaveUnrenderableTextures()); |
+ SetParameter( |
+ texture_ref_.get(), GL_TEXTURE_BASE_LEVEL, 1, GL_NO_ERROR); |
+ EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); |
+ EXPECT_FALSE(manager_->HaveUnrenderableTextures()); |
+} |
+ |
+TEST_F(TextureTest, BaseLevelMaxLevel) { |
+ manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
+ Texture* texture = texture_ref_->texture(); |
+ EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_2D), texture->target()); |
+ // Set up level 2, 3, 4. |
+ manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 2, GL_RGBA, 8, 8, 1, |
+ 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(8, 8)); |
+ manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 3, GL_RGBA, 4, 4, 1, |
+ 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(4, 4)); |
+ manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_2D, 4, GL_RGBA, 2, 2, 1, |
+ 0, GL_RGBA, GL_UNSIGNED_BYTE, gfx::Rect(2, 2)); |
+ SetParameter( |
+ texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR, |
+ GL_NO_ERROR); |
+ SetParameter( |
+ texture_ref_.get(), GL_TEXTURE_MAG_FILTER, GL_LINEAR, GL_NO_ERROR); |
+ EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
+ EXPECT_TRUE(manager_->HaveUnrenderableTextures()); |
+ SetParameter( |
+ texture_ref_.get(), GL_TEXTURE_BASE_LEVEL, 2, GL_NO_ERROR); |
+ EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
+ EXPECT_TRUE(manager_->HaveUnrenderableTextures()); |
+ SetParameter( |
+ texture_ref_.get(), GL_TEXTURE_MAX_LEVEL, 4, GL_NO_ERROR); |
+ EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); |
+ EXPECT_FALSE(manager_->HaveUnrenderableTextures()); |
+ SetParameter( |
+ texture_ref_.get(), GL_TEXTURE_BASE_LEVEL, 0, GL_NO_ERROR); |
+ EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
+ EXPECT_TRUE(manager_->HaveUnrenderableTextures()); |
+} |
+ |
TEST_F(TextureMemoryTrackerTest, MarkMipmapsGenerated) { |
manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_2D); |
EXPECT_MEMORY_ALLOCATION_CHANGE(0, 64); |