| Index: ui/gfx/compositor/compositor_cc.cc
|
| diff --git a/ui/gfx/compositor/compositor_cc.cc b/ui/gfx/compositor/compositor_cc.cc
|
| index 6649f38c2fe15f7dab7a1a10178ede0c3f224a4e..eb3c59ac52c87a1d843b29549b9809fe72c32f11 100644
|
| --- a/ui/gfx/compositor/compositor_cc.cc
|
| +++ b/ui/gfx/compositor/compositor_cc.cc
|
| @@ -4,8 +4,11 @@
|
|
|
| #include "ui/gfx/compositor/compositor_cc.h"
|
|
|
| +#include "third_party/skia/include/images/SkImageEncoder.h"
|
| +#include "third_party/skia/include/core/SkBitmap.h"
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebCompositor.h"
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebFloatPoint.h"
|
| +#include "third_party/WebKit/Source/WebKit/chromium/public/WebRect.h"
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebSize.h"
|
| #include "ui/gfx/compositor/layer.h"
|
| #include "ui/gfx/gl/gl_context.h"
|
| @@ -174,8 +177,17 @@ void CompositorCC::DrawTree() {
|
| host_.composite();
|
| }
|
|
|
| -void CompositorCC::ReadPixels(SkBitmap* bitmap) {
|
| - NOTIMPLEMENTED();
|
| +bool CompositorCC::ReadPixels(SkBitmap* bitmap) {
|
| + bitmap->setConfig(SkBitmap::kARGB_8888_Config,
|
| + size().width(), size().height());
|
| + bitmap->allocPixels();
|
| + SkAutoLockPixels lock_image(*bitmap);
|
| + unsigned char* pixels = static_cast<unsigned char*>(bitmap->getPixels());
|
| + if (host_.compositeAndReadback(pixels, gfx::Rect(size()))) {
|
| + SwizzleRGBAToBGRAAndFlip(pixels, size());
|
| + return true;
|
| + }
|
| + return false;
|
| }
|
|
|
| void CompositorCC::animateAndLayout(double frameBeginTime) {
|
|
|