| Index: gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc
|
| diff --git a/gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc b/gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc
|
| index 2c44e1a3562cee3fbef869027aac3d5bf8eb8c13..a8cbb66580960fd998334dbb8920cd30438ae9d3 100644
|
| --- a/gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc
|
| +++ b/gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc
|
| @@ -76,6 +76,43 @@ TEST_F(GLCopyTextureCHROMIUMTest, Basic) {
|
| EXPECT_TRUE(GL_NO_ERROR == glGetError());
|
| }
|
|
|
| +TEST_F(GLCopyTextureCHROMIUMTest, ImmutableTexture) {
|
| + if (!GLTestHelper::HasExtension("GL_EXT_texture_storage")) {
|
| + LOG(INFO) << "GL_EXT_texture_storage not supported. Skipping test...";
|
| + return;
|
| + }
|
| +
|
| + uint8 pixels[1 * 4] = {255u, 0u, 0u, 255u};
|
| +
|
| + glBindTexture(GL_TEXTURE_2D, textures_[0]);
|
| + glTexStorage2DEXT(GL_TEXTURE_2D, 1, GL_RGBA8_OES, 1, 1);
|
| + glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE,
|
| + pixels);
|
| +
|
| + glBindTexture(GL_TEXTURE_2D, textures_[1]);
|
| + glTexStorage2DEXT(GL_TEXTURE_2D, 1, GL_RGBA8_OES, 1, 1);
|
| + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
|
| + textures_[1], 0);
|
| + EXPECT_TRUE(glGetError() == GL_NO_ERROR);
|
| +
|
| + glCopyTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, GL_RGBA,
|
| + GL_UNSIGNED_BYTE);
|
| + EXPECT_TRUE(glGetError() == GL_NO_ERROR);
|
| +
|
| + // Check the FB is still bound.
|
| + GLint value = 0;
|
| + glGetIntegerv(GL_FRAMEBUFFER_BINDING, &value);
|
| + GLuint fb_id = value;
|
| + EXPECT_EQ(framebuffer_id_, fb_id);
|
| +
|
| + // Check that FB is complete.
|
| + EXPECT_EQ(static_cast<GLenum>(GL_FRAMEBUFFER_COMPLETE),
|
| + glCheckFramebufferStatus(GL_FRAMEBUFFER));
|
| +
|
| + GLTestHelper::CheckPixels(0, 0, 1, 1, 0, pixels);
|
| + EXPECT_TRUE(GL_NO_ERROR == glGetError());
|
| +}
|
| +
|
| TEST_F(GLCopyTextureCHROMIUMTest, InternalFormat) {
|
| GLint src_formats[] = {GL_ALPHA, GL_RGB, GL_RGBA,
|
| GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_BGRA_EXT};
|
|
|