Index: content/common/gpu/client/gl_helper_unittest.cc |
diff --git a/content/common/gpu/client/gl_helper_unittest.cc b/content/common/gpu/client/gl_helper_unittest.cc |
index bfd538f9faca005cca461e88c1a9a235e12de04c..974031f7b6732be0d457f74f5b4ca35516a79002 100644 |
--- a/content/common/gpu/client/gl_helper_unittest.cc |
+++ b/content/common/gpu/client/gl_helper_unittest.cc |
@@ -662,8 +662,7 @@ |
helper_->ReadbackTextureSync( |
dst_texture, |
gfx::Rect(0, 0, scaled_xsize, scaled_ysize), |
- static_cast<unsigned char*>(output_pixels.getPixels()), |
- SkBitmap::kARGB_8888_Config); |
+ static_cast<unsigned char*>(output_pixels.getPixels())); |
if (flip) { |
// Flip the pixels back. |
FlipSKBitmap(&output_pixels); |
@@ -842,127 +841,6 @@ |
} |
} |
- bool ColorComponentsClose(SkColor component1, |
- SkColor component2, |
- SkBitmap::Config config) { |
- int c1 = static_cast<int>(component1); |
- int c2 = static_cast<int>(component2); |
- bool result = false; |
- switch (config) { |
- case SkBitmap::kARGB_8888_Config: |
- result = (std::abs(c1 - c2) == 0); |
- break; |
- case SkBitmap::kRGB_565_Config: |
- result = (std::abs(c1 - c2) <= 7); |
- break; |
- default: |
- break; |
- } |
- return result; |
- } |
- |
- bool ColorsClose(SkColor color1, SkColor color2, SkBitmap::Config config) { |
- bool red = ColorComponentsClose(SkColorGetR(color1), |
- SkColorGetR(color2), config); |
- bool green = ColorComponentsClose(SkColorGetG(color1), |
- SkColorGetG(color2), config); |
- bool blue = ColorComponentsClose(SkColorGetB(color1), |
- SkColorGetB(color2), config); |
- bool alpha = ColorComponentsClose(SkColorGetA(color1), |
- SkColorGetA(color2), config); |
- if (config == SkBitmap::kRGB_565_Config) { |
- return red && blue && green; |
- } |
- return red && blue && green && alpha; |
- } |
- |
- bool IsEqual(const SkBitmap& bmp1, const SkBitmap& bmp2) { |
- if (bmp1.isNull() && bmp2.isNull()) |
- return true; |
- if (bmp1.width() != bmp2.width() || |
- bmp1.height() != bmp2.height()) { |
- LOG(ERROR) << "Bitmap geometry check failure"; |
- return false; |
- } |
- if (bmp1.getConfig() != bmp2.getConfig()) |
- return false; |
- |
- SkAutoLockPixels lock1(bmp1); |
- SkAutoLockPixels lock2(bmp2); |
- if (!bmp1.getPixels() || !bmp2.getPixels()) { |
- LOG(ERROR) << "Empty Bitmap!"; |
- return false; |
- } |
- for (int y = 0; y < bmp1.height(); ++y) { |
- for (int x = 0; x < bmp1.width(); ++x) { |
- if (!ColorsClose(bmp1.getColor(x,y), |
- bmp2.getColor(x,y), |
- bmp1.getConfig())) { |
- LOG(ERROR) << "Bitmap color comparision failure"; |
- return false; |
- } |
- } |
- } |
- return true; |
- } |
- |
- // Test basic format readback. |
- bool TestTextureFormatReadback(const gfx::Size& src_size, |
- SkBitmap::Config bitmap_config) { |
- DCHECK((bitmap_config == SkBitmap::kRGB_565_Config) || |
- (bitmap_config == SkBitmap::kARGB_8888_Config)); |
- bool rgb565_format = (bitmap_config == SkBitmap::kRGB_565_Config); |
- if (rgb565_format && !helper_->CanUseRgb565Readback()) { |
- LOG(ERROR) << "RGB565 Format Not supported on this platform"; |
- return false; |
- } |
- WebGLId src_texture = context_->createTexture(); |
- SkBitmap input_pixels; |
- input_pixels.setConfig(bitmap_config, src_size.width(), |
- src_size.height()); |
- input_pixels.allocPixels(); |
- SkAutoLockPixels lock1(input_pixels); |
- // Erase the input bitmap with red color. |
- input_pixels.eraseColor(SK_ColorRED); |
- context_->bindTexture(GL_TEXTURE_2D, src_texture); |
- GLenum format = (bitmap_config == SkBitmap::kRGB_565_Config) ? |
- GL_RGB : GL_RGBA; |
- GLenum type = (bitmap_config == SkBitmap::kRGB_565_Config) ? |
- GL_UNSIGNED_SHORT_5_6_5 : GL_UNSIGNED_BYTE; |
- context_->texImage2D(GL_TEXTURE_2D, |
- 0, |
- format, |
- src_size.width(), |
- src_size.height(), |
- 0, |
- format, |
- type, |
- input_pixels.getPixels()); |
- SkBitmap output_pixels; |
- output_pixels.setConfig(bitmap_config, src_size.width(), |
- src_size.height()); |
- output_pixels.allocPixels(); |
- SkAutoLockPixels lock2(output_pixels); |
- // Initialize the output bitmap with Green color. |
- // When the readback is over output bitmap should have the red color. |
- output_pixels.eraseColor(SK_ColorGREEN); |
- uint8* pixels = static_cast<uint8*>(output_pixels.getPixels()); |
- helper_->ReadbackTextureSync(src_texture, |
- gfx::Rect(src_size), |
- pixels, |
- bitmap_config); |
- bool result = IsEqual(input_pixels, output_pixels); |
- if (!result) { |
- LOG(ERROR) << "Bitmap comparision failure"; |
- return false; |
- } |
- context_->deleteTexture(src_texture); |
- if (HasFailure()) { |
- return false; |
- } |
- return true; |
- } |
- |
// YUV readback test. Create a test pattern, convert to YUV |
// with reference implementation and compare to what gl_helper |
// returns. |
@@ -1337,20 +1215,6 @@ |
scoped_ptr<content::GLHelperScaling> helper_scaling_; |
std::deque<GLHelperScaling::ScaleOp> x_ops_, y_ops_; |
}; |
- |
-TEST_F(GLHelperTest, RGBAReadBackTest) { |
- const int kTestSize = 64; |
- bool result = TestTextureFormatReadback(gfx::Size(kTestSize,kTestSize), |
- SkBitmap::kARGB_8888_Config); |
- EXPECT_EQ(result, true); |
-} |
- |
-TEST_F(GLHelperTest, RGB565ReadBackTest) { |
- const int kTestSize = 64; |
- bool result = TestTextureFormatReadback(gfx::Size(kTestSize,kTestSize), |
- SkBitmap::kRGB_565_Config); |
- EXPECT_EQ(result, true); |
-} |
TEST_F(GLHelperTest, YUVReadbackOptTest) { |
// This test uses the cb_command tracing events to detect how many |