| Index: cc/resources/drawing_display_item.cc | 
| diff --git a/cc/resources/drawing_display_item.cc b/cc/resources/drawing_display_item.cc | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..9466d5cf648491d7a7b048f5b0125828473a3dd6 | 
| --- /dev/null | 
| +++ b/cc/resources/drawing_display_item.cc | 
| @@ -0,0 +1,47 @@ | 
| +// Copyright 2014 The Chromium Authors. All rights reserved. | 
| +// Use of this source code is governed by a BSD-style license that can be | 
| +// found in the LICENSE file. | 
| + | 
| +#include "cc/resources/drawing_display_item.h" | 
| + | 
| +#include "base/logging.h" | 
| +#include "third_party/skia/include/core/SkCanvas.h" | 
| +#include "third_party/skia/include/core/SkMatrix.h" | 
| +#include "third_party/skia/include/core/SkPicture.h" | 
| +#include "third_party/skia/include/utils/SkPictureUtils.h" | 
| + | 
| +namespace cc { | 
| + | 
| +DrawingDisplayItem::DrawingDisplayItem(skia::RefPtr<SkPicture> picture, | 
| +                                       gfx::PointF location) | 
| +    : picture_(picture), location_(location) { | 
| +} | 
| + | 
| +DrawingDisplayItem::~DrawingDisplayItem() { | 
| +} | 
| + | 
| +void DrawingDisplayItem::Raster(SkCanvas* canvas, | 
| +                                SkDrawPictureCallback* callback) const { | 
| +  canvas->save(); | 
| +  canvas->translate(location_.x(), location_.y()); | 
| +  if (callback) | 
| +    picture_->draw(canvas, callback); | 
| +  else | 
| +    canvas->drawPicture(picture_.get()); | 
| +  canvas->restore(); | 
| +} | 
| + | 
| +bool DrawingDisplayItem::IsSuitableForGpuRasterization() const { | 
| +  return picture_->suitableForGpuRasterization(NULL); | 
| +} | 
| + | 
| +int DrawingDisplayItem::ApproximateOpCount() const { | 
| +  return picture_->approximateOpCount() + sizeof(gfx::PointF); | 
| +} | 
| + | 
| +size_t DrawingDisplayItem::PictureMemoryUsage() const { | 
| +  DCHECK(picture_); | 
| +  return SkPictureUtils::ApproximateBytesUsed(picture_.get()); | 
| +} | 
| + | 
| +}  // namespace cc | 
|  |