| // Copyright 2010 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 CC_LAYERS_IMAGE_LAYER_H_ | 
 | #define CC_LAYERS_IMAGE_LAYER_H_ | 
 |  | 
 | #include "cc/base/cc_export.h" | 
 | #include "cc/layers/content_layer.h" | 
 | #include "third_party/skia/include/core/SkBitmap.h" | 
 |  | 
 | namespace cc { | 
 |  | 
 | class ImageLayerUpdater; | 
 |  | 
 | // A Layer that contains only an Image element. | 
 | class CC_EXPORT ImageLayer : public TiledLayer { | 
 |  public: | 
 |   static scoped_refptr<ImageLayer> Create(); | 
 |  | 
 |   // Layer implementation. | 
 |   void SetTexturePriorities(const PriorityCalculator& priority_calc) override; | 
 |   bool Update(ResourceUpdateQueue* queue, | 
 |               const OcclusionTracker<Layer>* occlusion) override; | 
 |   void CalculateContentsScale(float ideal_contents_scale, | 
 |                               float* contents_scale_x, | 
 |                               float* contents_scale_y, | 
 |                               gfx::Size* content_bounds) override; | 
 |   void OnOutputSurfaceCreated() override; | 
 |  | 
 |   void SetBitmap(const SkBitmap& image); | 
 |  | 
 |  protected: | 
 |   bool HasDrawableContent() const override; | 
 |  | 
 |  private: | 
 |   ImageLayer(); | 
 |   ~ImageLayer() override; | 
 |  | 
 |   // TiledLayer Implementation. | 
 |   LayerUpdater* Updater() const override; | 
 |   void CreateUpdaterIfNeeded() override; | 
 |  | 
 |   float ImageContentsScaleX() const; | 
 |   float ImageContentsScaleY() const; | 
 |  | 
 |   SkBitmap bitmap_; | 
 |  | 
 |   scoped_refptr<ImageLayerUpdater> updater_; | 
 |  | 
 |   DISALLOW_COPY_AND_ASSIGN(ImageLayer); | 
 | }; | 
 |  | 
 | }  // namespace cc | 
 |  | 
 | #endif  // CC_LAYERS_IMAGE_LAYER_H_ |