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 cfb3200aab283825921d700bbfc8c99cf42f04b0..6cadd978df8c1ed05b4b2d95badeb728acdbd8a9 100644 |
--- a/gpu/command_buffer/service/texture_manager_unittest.cc |
+++ b/gpu/command_buffer/service/texture_manager_unittest.cc |
@@ -840,6 +840,76 @@ TEST_F(TextureTest, POTCubeMap) { |
EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture)); |
} |
+TEST_F(TextureTest, POTCubeMapWithoutMipmap) { |
+ manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_CUBE_MAP); |
+ SetParameter( |
+ texture_ref_.get(), GL_TEXTURE_MIN_FILTER, GL_NEAREST, GL_NO_ERROR); |
+ SetParameter( |
+ texture_ref_.get(), GL_TEXTURE_MAG_FILTER, GL_NEAREST, GL_NO_ERROR); |
+ SetParameter( |
+ texture_ref_.get(), GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE, GL_NO_ERROR); |
+ SetParameter( |
+ texture_ref_.get(), GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE, GL_NO_ERROR); |
+ |
+ Texture* texture = texture_ref_->texture(); |
+ EXPECT_EQ(static_cast<GLenum>(GL_TEXTURE_CUBE_MAP), texture->target()); |
+ // Check Setting level 0 each face to POT |
+ manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_X, 0, |
+ GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
+ gfx::Rect(4, 4)); |
+ EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
+ EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
+ EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); |
+ EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
+ EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
+ EXPECT_TRUE(manager_->HaveUnrenderableTextures()); |
+ manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_X, 0, |
+ GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
+ gfx::Rect(4, 4)); |
+ EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
+ EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
+ EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); |
+ EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
+ EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
+ EXPECT_TRUE(manager_->HaveUnrenderableTextures()); |
+ manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_Y, 0, |
+ GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
+ gfx::Rect(4, 4)); |
+ EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
+ EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
+ EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); |
+ EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
+ EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
+ EXPECT_TRUE(manager_->HaveUnrenderableTextures()); |
+ manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, 0, |
+ GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
+ gfx::Rect(4, 4)); |
+ EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
+ EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
+ EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); |
+ EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
+ EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
+ EXPECT_TRUE(manager_->HaveUnrenderableTextures()); |
+ manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_POSITIVE_Z, 0, |
+ GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
+ gfx::Rect(4, 4)); |
+ EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
+ EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
+ EXPECT_FALSE(TextureTestHelper::IsCubeComplete(texture)); |
+ EXPECT_FALSE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
+ EXPECT_FALSE(manager_->CanRender(texture_ref_.get())); |
+ EXPECT_TRUE(manager_->HaveUnrenderableTextures()); |
+ manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, 0, |
+ GL_RGBA, 4, 4, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
+ gfx::Rect(4, 4)); |
+ EXPECT_FALSE(TextureTestHelper::IsNPOT(texture)); |
+ EXPECT_FALSE(TextureTestHelper::IsTextureComplete(texture)); |
+ EXPECT_TRUE(TextureTestHelper::IsCubeComplete(texture)); |
+ EXPECT_TRUE(manager_->CanGenerateMipmaps(texture_ref_.get())); |
+ EXPECT_TRUE(manager_->CanRender(texture_ref_.get())); |
+ EXPECT_FALSE(manager_->HaveUnrenderableTextures()); |
+} |
+ |
TEST_F(TextureTest, GetLevelSize) { |
manager_->SetTarget(texture_ref_.get(), GL_TEXTURE_3D); |
manager_->SetLevelInfo(texture_ref_.get(), GL_TEXTURE_3D, 1, GL_RGBA, 4, 5, 6, |