diff options
Diffstat (limited to 'cc/skpicture_canvas_layer_texture_updater.h')
-rw-r--r-- | cc/skpicture_canvas_layer_texture_updater.h | 47 |
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 |