Index: cc/layers/picture_image_layer.cc |
diff --git a/cc/layers/picture_image_layer.cc b/cc/layers/picture_image_layer.cc |
index cebc8b77cdb0386f90c89093e7c47b323d35dfb4..85bc582bd681de64c162565025534db6a3c2ba69 100644 |
--- a/cc/layers/picture_image_layer.cc |
+++ b/cc/layers/picture_image_layer.cc |
@@ -5,7 +5,10 @@ |
#include "cc/layers/picture_image_layer.h" |
#include "cc/layers/picture_image_layer_impl.h" |
+#include "cc/resources/drawing_display_item.h" |
#include "third_party/skia/include/core/SkCanvas.h" |
+#include "third_party/skia/include/core/SkPictureRecorder.h" |
+#include "ui/gfx/skia_util.h" |
namespace cc { |
@@ -63,8 +66,16 @@ void PictureImageLayer::PaintContents( |
scoped_refptr<DisplayItemList> PictureImageLayer::PaintContentsToDisplayList( |
const gfx::Rect& clip, |
GraphicsContextStatus gc_status) { |
- NOTIMPLEMENTED(); |
- return DisplayItemList::Create(); |
+ scoped_refptr<DisplayItemList> display_item_list = DisplayItemList::Create(); |
+ |
+ SkPictureRecorder recorder; |
+ SkCanvas* canvas = recorder.beginRecording(gfx::RectToSkRect(clip)); |
+ PaintContents(canvas, clip, gc_status); |
+ |
+ skia::RefPtr<SkPicture> picture = skia::AdoptRef(recorder.endRecording()); |
+ display_item_list->AppendItem( |
+ DrawingDisplayItem::Create(picture, gfx::Point())); |
+ return display_item_list; |
} |
bool PictureImageLayer::FillsBoundsCompletely() const { |