| Index: ui/gfx/compositor/compositor_gl.cc
|
| diff --git a/ui/gfx/compositor/compositor_gl.cc b/ui/gfx/compositor/compositor_gl.cc
|
| index 078556bd5126ce03016f3a4df0d15d69d753803c..54e43e4e15000fc9f536190002213f0ac83aab91 100644
|
| --- a/ui/gfx/compositor/compositor_gl.cc
|
| +++ b/ui/gfx/compositor/compositor_gl.cc
|
| @@ -561,7 +561,7 @@ CompositorGL::~CompositorGL() {
|
| gl_context_ = NULL;
|
| }
|
|
|
| -void CompositorGL::ReadPixels(SkBitmap* bitmap) {
|
| +bool CompositorGL::ReadPixels(SkBitmap* bitmap) {
|
| MakeCurrent();
|
|
|
| bitmap->setConfig(SkBitmap::kARGB_8888_Config,
|
| @@ -587,25 +587,8 @@ void CompositorGL::ReadPixels(SkBitmap* bitmap) {
|
| pixels);
|
| glPixelStorei(GL_PACK_ALIGNMENT, current_alignment);
|
|
|
| - // Swizzle from RGBA to BGRA
|
| - size_t bitmap_size = 4 * size().width() * size().height();
|
| - for(size_t i = 0; i < bitmap_size; i += 4)
|
| - std::swap(pixels[i], pixels[i + 2]);
|
| -
|
| - // Vertical flip to transform from GL co-ords
|
| - size_t row_size = 4 * size().width();
|
| - scoped_array<unsigned char> tmp_row(new unsigned char[row_size]);
|
| - for(int row = 0; row < size().height() / 2; row++) {
|
| - memcpy(tmp_row.get(),
|
| - &pixels[row * row_size],
|
| - row_size);
|
| - memcpy(&pixels[row * row_size],
|
| - &pixels[bitmap_size - (row + 1) * row_size],
|
| - row_size);
|
| - memcpy(&pixels[bitmap_size - (row + 1) * row_size],
|
| - tmp_row.get(),
|
| - row_size);
|
| - }
|
| + SwizzleRGBAToBGRAAndFlip(pixels, size());
|
| + return true;
|
| }
|
|
|
| void CompositorGL::MakeCurrent() {
|
|
|