Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(259)

Unified Diff: gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc

Issue 1143373004: gpu: Extend CopyTextureCHROMIUM with support for copying part of source texture. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: keep TODO for now Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gpu/command_buffer/service/gles2_cmd_decoder_autogen.h ('k') | mojo/gpu/mojo_gles2_impl_autogen.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 ff15241233dd3e030c5f1491cc940d2124efda3b..160e85f236a8ab0e6f8fbb09fedd56769397a74e 100644
--- a/gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc
+++ b/gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc
@@ -81,7 +81,8 @@ TEST_P(GLCopyTextureCHROMIUMTest, Basic) {
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE,
nullptr);
- glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, 0);
+ glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, 0, 0,
+ 0, 1, 1);
}
EXPECT_TRUE(glGetError() == GL_NO_ERROR);
@@ -124,7 +125,8 @@ TEST_P(GLCopyTextureCHROMIUMTest, ImmutableTexture) {
GL_UNSIGNED_BYTE);
EXPECT_TRUE(glGetError() == GL_INVALID_OPERATION);
} else {
- glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, 0);
+ glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, 0, 0,
+ 0, 1, 1);
EXPECT_TRUE(glGetError() == GL_NO_ERROR);
// Check the FB is still bound.
@@ -166,7 +168,7 @@ TEST_P(GLCopyTextureCHROMIUMTest, InternalFormat) {
EXPECT_TRUE(GL_NO_ERROR == glGetError());
glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0,
- 0);
+ 0, 0, 0, 1, 1);
}
EXPECT_TRUE(GL_NO_ERROR == glGetError()) << "src_index:" << src_index
@@ -196,7 +198,8 @@ TEST_P(GLCopyTextureCHROMIUMTest, InternalFormatNotSupported) {
glTexImage2D(GL_TEXTURE_2D, 0, unsupported_dest_formats[dest_index], 1, 1,
0, unsupported_dest_formats[dest_index], GL_UNSIGNED_BYTE,
nullptr);
- glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, 0);
+ glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, 0,
+ 0, 0, 1, 1);
}
EXPECT_TRUE(GL_INVALID_OPERATION == glGetError())
<< "dest_index:" << dest_index;
@@ -287,7 +290,8 @@ TEST_P(GLCopyTextureCHROMIUMTest, FlipY) {
glBindTexture(GL_TEXTURE_2D, textures_[1]);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE,
nullptr);
- glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, 0);
+ glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, 0, 0,
+ 0, 2, 2);
}
EXPECT_TRUE(GL_NO_ERROR == glGetError());
@@ -323,7 +327,8 @@ TEST_P(GLCopyTextureCHROMIUMTest, PremultiplyAlpha) {
glBindTexture(GL_TEXTURE_2D, textures_[1]);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE,
nullptr);
- glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, 0);
+ glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, 0, 0,
+ 0, 1, 1);
}
EXPECT_TRUE(GL_NO_ERROR == glGetError());
@@ -355,7 +360,8 @@ TEST_P(GLCopyTextureCHROMIUMTest, UnpremultiplyAlpha) {
glBindTexture(GL_TEXTURE_2D, textures_[1]);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE,
nullptr);
- glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, 0);
+ glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, 0, 0,
+ 0, 1, 1);
}
EXPECT_TRUE(GL_NO_ERROR == glGetError());
@@ -395,7 +401,8 @@ TEST_P(GLCopyTextureCHROMIUMTest, FlipYAndPremultiplyAlpha) {
glBindTexture(GL_TEXTURE_2D, textures_[1]);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE,
nullptr);
- glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, 0);
+ glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, 0, 0,
+ 0, 2, 2);
}
EXPECT_TRUE(GL_NO_ERROR == glGetError());
@@ -439,7 +446,8 @@ TEST_P(GLCopyTextureCHROMIUMTest, FlipYAndUnpremultiplyAlpha) {
glBindTexture(GL_TEXTURE_2D, textures_[1]);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE,
nullptr);
- glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, 0);
+ glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, 0, 0,
+ 0, 2, 2);
}
EXPECT_TRUE(GL_NO_ERROR == glGetError());
@@ -503,7 +511,8 @@ TEST_P(GLCopyTextureCHROMIUMTest, BasicStatePreservation) {
glCopyTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], GL_RGBA,
GL_UNSIGNED_BYTE);
} else {
- glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, 0);
+ glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, 0,
+ 0, 0, 1, 1);
}
EXPECT_TRUE(GL_NO_ERROR == glGetError());
@@ -561,7 +570,8 @@ TEST_P(GLCopyTextureCHROMIUMTest, TextureStatePreserved) {
glCopyTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], GL_RGBA,
GL_UNSIGNED_BYTE);
} else {
- glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, 0);
+ glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, 0, 0,
+ 0, 1, 1);
}
EXPECT_TRUE(GL_NO_ERROR == glGetError());
@@ -632,7 +642,8 @@ TEST_P(GLCopyTextureCHROMIUMTest, FBOStatePreserved) {
glCopyTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], GL_RGBA,
GL_UNSIGNED_BYTE);
} else {
- glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, 0);
+ glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, 0, 0,
+ 0, 1, 1);
}
EXPECT_TRUE(GL_NO_ERROR == glGetError());
@@ -743,7 +754,8 @@ TEST_P(GLCopyTextureCHROMIUMTest, ProgramStatePreservation) {
glBindTexture(GL_TEXTURE_2D, textures_[1]);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE,
nullptr);
- glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, 0);
+ glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, 0, 0,
+ 0, 1, 1);
}
// test using program after
@@ -774,7 +786,8 @@ TEST_P(GLCopyTextureCHROMIUMTest, UninitializedSource) {
glBindTexture(GL_TEXTURE_2D, textures_[1]);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, kWidth, kHeight, 0, GL_RGBA,
GL_UNSIGNED_BYTE, nullptr);
- glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, 0);
+ glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, 0, 0,
+ 0, kWidth, kHeight);
}
EXPECT_TRUE(GL_NO_ERROR == glGetError());
@@ -801,31 +814,66 @@ TEST_F(GLCopyTextureCHROMIUMTest, CopySubTextureDimension) {
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 3, 3, 0, GL_RGBA, GL_UNSIGNED_BYTE,
nullptr);
- glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 1, 1);
+ glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 1, 1, 0,
+ 0, 1, 1);
EXPECT_TRUE(GL_NO_ERROR == glGetError());
// xoffset < 0
- glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], -1, 1);
+ glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], -1, 1, 0,
+ 0, 1, 1);
EXPECT_TRUE(glGetError() == GL_INVALID_VALUE);
- // xoffset + source_width > dest_width
- glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 2, 2);
+ // x < 0
+ glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 1, 1, -1,
+ 0, 1, 1);
+ EXPECT_TRUE(glGetError() == GL_INVALID_VALUE);
+
+ // xoffset + width > dest_width
+ glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 2, 2, 0,
+ 0, 2, 2);
+ EXPECT_TRUE(glGetError() == GL_INVALID_VALUE);
+
+ // x + width > source_width
+ glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, 0, 1,
+ 1, 2, 2);
EXPECT_TRUE(glGetError() == GL_INVALID_VALUE);
}
TEST_F(GLCopyTextureCHROMIUMTest, CopySubTextureOffset) {
- uint8 red[1 * 4] = {255u, 0u, 0u, 255u};
+ uint8 rgba_pixels[4 * 4] = {255u,
+ 0u,
+ 0u,
+ 255u,
+ 0u,
+ 255u,
+ 0u,
+ 255u,
+ 0u,
+ 0u,
+ 255u,
+ 255u,
+ 0u,
+ 0u,
+ 0u,
+ 255u};
glBindTexture(GL_TEXTURE_2D, textures_[0]);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE,
- red);
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE,
+ rgba_pixels);
- uint8 transparent_pixel[4 * 4] = {
+ uint8 transparent_pixels[4 * 4] = {
0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u, 0u};
glBindTexture(GL_TEXTURE_2D, textures_[1]);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE,
- transparent_pixel);
+ transparent_pixels);
- glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 1, 1);
+ glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 1, 1, 0,
+ 0, 1, 1);
+ EXPECT_TRUE(glGetError() == GL_NO_ERROR);
+ glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 1, 0, 1,
+ 0, 1, 1);
+ EXPECT_TRUE(glGetError() == GL_NO_ERROR);
+ glCopySubTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, 1, 0,
+ 1, 1, 1);
EXPECT_TRUE(glGetError() == GL_NO_ERROR);
// Check the FB is still bound.
@@ -839,8 +887,13 @@ TEST_F(GLCopyTextureCHROMIUMTest, CopySubTextureOffset) {
glCheckFramebufferStatus(GL_FRAMEBUFFER));
uint8 transparent[1 * 4] = {0u, 0u, 0u, 0u};
+ uint8 red[1 * 4] = {255u, 0u, 0u, 255u};
+ uint8 green[1 * 4] = {0u, 255u, 0u, 255u};
+ uint8 blue[1 * 4] = {0u, 0u, 255u, 255u};
GLTestHelper::CheckPixels(0, 0, 1, 1, 0, transparent);
GLTestHelper::CheckPixels(1, 1, 1, 1, 0, red);
+ GLTestHelper::CheckPixels(1, 0, 1, 1, 0, green);
+ GLTestHelper::CheckPixels(0, 1, 1, 1, 0, blue);
EXPECT_TRUE(GL_NO_ERROR == glGetError());
}
« no previous file with comments | « gpu/command_buffer/service/gles2_cmd_decoder_autogen.h ('k') | mojo/gpu/mojo_gles2_impl_autogen.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698