Home | History | Annotate | Download | only in resources
      1 // Copyright 2012 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.
      4 
      5 #ifndef CC_RESOURCES_CACHING_BITMAP_CONTENT_LAYER_UPDATER_H_
      6 #define CC_RESOURCES_CACHING_BITMAP_CONTENT_LAYER_UPDATER_H_
      7 
      8 #include "base/compiler_specific.h"
      9 #include "cc/resources/bitmap_content_layer_updater.h"
     10 #include "third_party/skia/include/core/SkBitmap.h"
     11 
     12 namespace cc {
     13 
     14 class CachingBitmapContentLayerUpdater : public BitmapContentLayerUpdater {
     15  public:
     16   static scoped_refptr<CachingBitmapContentLayerUpdater> Create(
     17       scoped_ptr<LayerPainter>,
     18       RenderingStatsInstrumentation* stats_instrumentation,
     19       int layer_id);
     20 
     21   virtual void PrepareToUpdate(gfx::Rect content_rect,
     22                                gfx::Size tile_size,
     23                                float contents_width_scale,
     24                                float contents_height_scale,
     25                                gfx::Rect* resulting_opaque_rect) OVERRIDE;
     26 
     27   bool pixels_did_change() const {
     28     return pixels_did_change_;
     29   }
     30 
     31  private:
     32   CachingBitmapContentLayerUpdater(
     33       scoped_ptr<LayerPainter> painter,
     34       RenderingStatsInstrumentation* stats_instrumentation,
     35       int layer_id);
     36   virtual ~CachingBitmapContentLayerUpdater();
     37 
     38   bool pixels_did_change_;
     39   SkBitmap cached_bitmap_;
     40 
     41   DISALLOW_COPY_AND_ASSIGN(CachingBitmapContentLayerUpdater);
     42 };
     43 
     44 }  // namespace cc
     45 
     46 #endif  // CC_RESOURCES_CACHING_BITMAP_CONTENT_LAYER_UPDATER_H_
     47