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