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.
5 #ifndef CC_RESOURCES_BITMAP_SKPICTURE_CONTENT_LAYER_UPDATER_H_
6 #define CC_RESOURCES_BITMAP_SKPICTURE_CONTENT_LAYER_UPDATER_H_
8 #include "cc/resources/skpicture_content_layer_updater.h"
9 #include "third_party/skia/include/core/SkBitmap.h"
13 // This class records the content_rect into an SkPicture, then software
14 // rasterizes the SkPicture into bitmaps for each tile. This implements
15 // LayerTreeSettingSettings::per_tile_painting_enabled.
16 class BitmapSkPictureContentLayerUpdater
: public SkPictureContentLayerUpdater
{
18 class Resource
: public ContentLayerUpdater::Resource
{
20 Resource(BitmapSkPictureContentLayerUpdater
* updater
,
21 scoped_ptr
<PrioritizedResource
> texture
);
23 virtual void Update(ResourceUpdateQueue
* queue
,
24 const gfx::Rect
& source_rect
,
25 const gfx::Vector2d
& dest_offset
,
26 bool partial_update
) override
;
30 BitmapSkPictureContentLayerUpdater
* updater_
;
32 DISALLOW_COPY_AND_ASSIGN(Resource
);
35 static scoped_refptr
<BitmapSkPictureContentLayerUpdater
> Create(
36 scoped_ptr
<LayerPainter
> painter
,
37 RenderingStatsInstrumentation
* stats_instrumentation
,
40 virtual scoped_ptr
<LayerUpdater::Resource
> CreateResource(
41 PrioritizedResourceManager
* manager
) override
;
42 void PaintContentsRect(SkCanvas
* canvas
,
43 const gfx::Rect
& source_rect
);
46 BitmapSkPictureContentLayerUpdater(
47 scoped_ptr
<LayerPainter
> painter
,
48 RenderingStatsInstrumentation
* stats_instrumentation
,
50 virtual ~BitmapSkPictureContentLayerUpdater();
52 DISALLOW_COPY_AND_ASSIGN(BitmapSkPictureContentLayerUpdater
);
57 #endif // CC_RESOURCES_BITMAP_SKPICTURE_CONTENT_LAYER_UPDATER_H_