| OLD | NEW |
| (Empty) |
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "cc/resources/skpicture_content_layer_updater.h" | |
| 6 | |
| 7 #include "base/trace_event/trace_event.h" | |
| 8 #include "cc/debug/rendering_stats_instrumentation.h" | |
| 9 #include "cc/resources/layer_painter.h" | |
| 10 #include "cc/resources/prioritized_resource.h" | |
| 11 #include "cc/resources/resource_update_queue.h" | |
| 12 #include "third_party/skia/include/core/SkCanvas.h" | |
| 13 #include "third_party/skia/include/core/SkPictureRecorder.h" | |
| 14 | |
| 15 namespace cc { | |
| 16 | |
| 17 SkPictureContentLayerUpdater::SkPictureContentLayerUpdater( | |
| 18 scoped_ptr<LayerPainter> painter, | |
| 19 int layer_id) | |
| 20 : ContentLayerUpdater(painter.Pass(), layer_id) { | |
| 21 } | |
| 22 | |
| 23 SkPictureContentLayerUpdater::~SkPictureContentLayerUpdater() {} | |
| 24 | |
| 25 void SkPictureContentLayerUpdater::PrepareToUpdate( | |
| 26 const gfx::Size& content_size, | |
| 27 const gfx::Rect& paint_rect, | |
| 28 const gfx::Size& tile_size, | |
| 29 float contents_width_scale, | |
| 30 float contents_height_scale) { | |
| 31 SkPictureRecorder recorder; | |
| 32 SkCanvas* canvas = | |
| 33 recorder.beginRecording(paint_rect.width(), paint_rect.height(), NULL, 0); | |
| 34 DCHECK_EQ(paint_rect.width(), canvas->getBaseLayerSize().width()); | |
| 35 DCHECK_EQ(paint_rect.height(), canvas->getBaseLayerSize().height()); | |
| 36 PaintContents(canvas, | |
| 37 content_size, | |
| 38 paint_rect, | |
| 39 contents_width_scale, | |
| 40 contents_height_scale); | |
| 41 picture_ = skia::AdoptRef(recorder.endRecording()); | |
| 42 } | |
| 43 | |
| 44 void SkPictureContentLayerUpdater::DrawPicture(SkCanvas* canvas) { | |
| 45 TRACE_EVENT0("cc", "SkPictureContentLayerUpdater::DrawPicture"); | |
| 46 if (picture_) | |
| 47 canvas->drawPicture(picture_.get()); | |
| 48 } | |
| 49 | |
| 50 } // namespace cc | |
| OLD | NEW |