Index: gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc |
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc |
index 0376efc4d41f7b3c720512447154e0007b288352..73763686c1e77939b10ab0bdf02c8c11191db495 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc |
@@ -7425,6 +7425,42 @@ TEST_F(GLES2DecoderWithShaderTest, BindUniformLocationCHROMIUM) { |
EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); |
} |
+TEST_F(GLES2DecoderTest, TexImagePixmap2DCHROMIUM) { |
+ DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); |
+ DoTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 3, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
+ 0, 0); |
+ TextureManager::TextureInfo* info = |
+ group().texture_manager()->GetTextureInfo(client_texture_id_); |
+ EXPECT_EQ(kServiceTextureId, info->service_id()); |
+ |
+ GLsizei width; |
+ GLsizei height; |
+ GLenum type; |
+ GLenum internal_format; |
+ |
+ EXPECT_TRUE(info->GetLevelSize(GL_TEXTURE_2D, 0, &width, &height)); |
+ EXPECT_EQ(3, width); |
+ EXPECT_EQ(1, height); |
+ EXPECT_TRUE(info->GetLevelType(GL_TEXTURE_2D, 0, &type, &internal_format)); |
+ EXPECT_EQ(static_cast<GLenum>(GL_RGBA), internal_format); |
+ EXPECT_EQ(static_cast<GLenum>(GL_UNSIGNED_BYTE), type); |
+ EXPECT_TRUE(info->GetLevelImage(GL_TEXTURE_2D, 0) == NULL); |
+ |
+ // Bind pixmap to texture. |
+ TexImagePixmap2DCHROMIUM tex_image_pixmap_2d_cmd; |
+ tex_image_pixmap_2d_cmd.Init(GL_TEXTURE_2D, 1); |
+ EXPECT_EQ(error::kNoError, ExecuteCmd(tex_image_pixmap_2d_cmd)); |
+ EXPECT_TRUE(info->GetLevelSize(GL_TEXTURE_2D, 0, &width, &height)); |
+ // Image should now be set. |
+ EXPECT_FALSE(info->GetLevelImage(GL_TEXTURE_2D, 0) == NULL); |
+ |
+ // Define new texture image. |
+ DoTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 3, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
+ 0, 0); |
+ EXPECT_TRUE(info->GetLevelSize(GL_TEXTURE_2D, 0, &width, &height)); |
+ // Image should no longer be set. |
+ EXPECT_TRUE(info->GetLevelImage(GL_TEXTURE_2D, 0) == NULL); |
+} |
// TODO(gman): Complete this test. |
// TEST_F(GLES2DecoderTest, CompressedTexImage2DGLError) { |