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_IMAGE_LAYER_UPDATER_H_ 6 #define CC_RESOURCES_IMAGE_LAYER_UPDATER_H_ 7 8 #include "cc/base/cc_export.h" 9 #include "cc/resources/layer_updater.h" 10 #include "third_party/skia/include/core/SkBitmap.h" 11 12 namespace cc { 13 14 class ResourceUpdateQueue; 15 16 class CC_EXPORT ImageLayerUpdater : public LayerUpdater { 17 public: 18 class Resource : public LayerUpdater::Resource { 19 public: 20 Resource(ImageLayerUpdater* updater, 21 scoped_ptr<PrioritizedResource> texture); 22 virtual ~Resource(); 23 24 virtual void Update(ResourceUpdateQueue* queue, 25 gfx::Rect source_rect, 26 gfx::Vector2d dest_offset, 27 bool partial_update) OVERRIDE; 28 29 private: 30 ImageLayerUpdater* updater_; 31 32 DISALLOW_COPY_AND_ASSIGN(Resource); 33 }; 34 35 static scoped_refptr<ImageLayerUpdater> Create(); 36 37 virtual scoped_ptr<LayerUpdater::Resource> CreateResource( 38 PrioritizedResourceManager*) OVERRIDE; 39 40 void UpdateTexture(ResourceUpdateQueue* queue, 41 PrioritizedResource* texture, 42 gfx::Rect source_rect, 43 gfx::Vector2d dest_offset, 44 bool partial_update); 45 46 void SetBitmap(const SkBitmap& bitmap); 47 bool UsingBitmap(const SkBitmap& bitmap) const; 48 49 private: 50 ImageLayerUpdater() {} 51 virtual ~ImageLayerUpdater() {} 52 53 SkBitmap bitmap_; 54 55 DISALLOW_COPY_AND_ASSIGN(ImageLayerUpdater); 56 }; 57 58 } // namespace cc 59 60 #endif // CC_RESOURCES_IMAGE_LAYER_UPDATER_H_ 61