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