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_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