summaryrefslogtreecommitdiffstats
path: root/cc/bitmap_skpicture_canvas_layer_texture_updater.h
diff options
context:
space:
mode:
Diffstat (limited to 'cc/bitmap_skpicture_canvas_layer_texture_updater.h')
-rw-r--r--cc/bitmap_skpicture_canvas_layer_texture_updater.h44
1 files changed, 43 insertions, 1 deletions
diff --git a/cc/bitmap_skpicture_canvas_layer_texture_updater.h b/cc/bitmap_skpicture_canvas_layer_texture_updater.h
index 638cbb2..140f9be 100644
--- a/cc/bitmap_skpicture_canvas_layer_texture_updater.h
+++ b/cc/bitmap_skpicture_canvas_layer_texture_updater.h
@@ -1,3 +1,45 @@
-// Copyright 2012 The Chromium Authors. All rights reserved.
+// Copyright 2011 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.
+
+
+#ifndef BitmapSkPictureCanvasLayerTextureUpdater_h
+#define BitmapSkPictureCanvasLayerTextureUpdater_h
+
+#if USE(ACCELERATED_COMPOSITING)
+#include "SkBitmap.h"
+#include "SkPictureCanvasLayerTextureUpdater.h"
+
+namespace cc {
+
+// This class records the contentRect into an SkPicture, then software rasterizes
+// the SkPicture into bitmaps for each tile. This implements CCSettings::perTilePainting.
+class BitmapSkPictureCanvasLayerTextureUpdater : public SkPictureCanvasLayerTextureUpdater {
+public:
+ class Texture : public CanvasLayerTextureUpdater::Texture {
+ public:
+ Texture(BitmapSkPictureCanvasLayerTextureUpdater*, scoped_ptr<CCPrioritizedTexture>);
+
+ virtual void prepareRect(const IntRect& sourceRect, CCRenderingStats&) OVERRIDE;
+ virtual void updateRect(CCResourceProvider*, const IntRect& sourceRect, const IntSize& destOffset) OVERRIDE;
+
+ private:
+ BitmapSkPictureCanvasLayerTextureUpdater* textureUpdater() { return m_textureUpdater; }
+
+ SkBitmap m_bitmap;
+ BitmapSkPictureCanvasLayerTextureUpdater* m_textureUpdater;
+ };
+
+ static PassRefPtr<BitmapSkPictureCanvasLayerTextureUpdater> create(PassOwnPtr<LayerPainterChromium>);
+ virtual ~BitmapSkPictureCanvasLayerTextureUpdater();
+
+ virtual PassOwnPtr<LayerTextureUpdater::Texture> createTexture(CCPrioritizedTextureManager*) OVERRIDE;
+ virtual SampledTexelFormat sampledTexelFormat(GC3Denum textureFormat) OVERRIDE;
+ void paintContentsRect(SkCanvas*, const IntRect& sourceRect, CCRenderingStats&);
+
+private:
+ explicit BitmapSkPictureCanvasLayerTextureUpdater(PassOwnPtr<LayerPainterChromium>);
+};
+} // namespace cc
+#endif // USE(ACCELERATED_COMPOSITING)
+#endif // BitmapSkPictureCanvasLayerTextureUpdater_h