summaryrefslogtreecommitdiffstats
path: root/cc/skpicture_canvas_layer_texture_updater.h
diff options
context:
space:
mode:
Diffstat (limited to 'cc/skpicture_canvas_layer_texture_updater.h')
-rw-r--r--cc/skpicture_canvas_layer_texture_updater.h47
1 files changed, 46 insertions, 1 deletions
diff --git a/cc/skpicture_canvas_layer_texture_updater.h b/cc/skpicture_canvas_layer_texture_updater.h
index 638cbb2..fd9bb5f 100644
--- a/cc/skpicture_canvas_layer_texture_updater.h
+++ b/cc/skpicture_canvas_layer_texture_updater.h
@@ -1,3 +1,48 @@
-// 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 SkPictureCanvasLayerTextureUpdater_h
+#define SkPictureCanvasLayerTextureUpdater_h
+
+#if USE(ACCELERATED_COMPOSITING)
+
+#include "CanvasLayerTextureUpdater.h"
+#include "SkPicture.h"
+
+class SkCanvas;
+
+namespace cc {
+
+class LayerPainterChromium;
+
+// This class records the contentRect into an SkPicture. Subclasses, provide
+// different implementations of tile updating based on this recorded picture.
+// The BitmapSkPictureCanvasLayerTextureUpdater and
+// FrameBufferSkPictureCanvasLayerTextureUpdater are two examples of such
+// implementations.
+class SkPictureCanvasLayerTextureUpdater : public CanvasLayerTextureUpdater {
+public:
+ virtual ~SkPictureCanvasLayerTextureUpdater();
+
+ virtual void setOpaque(bool) OVERRIDE;
+
+protected:
+ explicit SkPictureCanvasLayerTextureUpdater(PassOwnPtr<LayerPainterChromium>);
+
+ virtual void prepareToUpdate(const IntRect& contentRect, const IntSize& tileSize, float contentsWidthScale, float contentsHeightScale, IntRect& resultingOpaqueRect, CCRenderingStats&) OVERRIDE;
+ void drawPicture(SkCanvas*);
+
+ bool layerIsOpaque() const { return m_layerIsOpaque; }
+
+private:
+ // Recording canvas.
+ SkPicture m_picture;
+ // True when it is known that all output pixels will be opaque.
+ bool m_layerIsOpaque;
+};
+
+} // namespace cc
+#endif // USE(ACCELERATED_COMPOSITING)
+#endif // SkPictureCanvasLayerTextureUpdater_h