image_layer.h revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
1// Copyright 2010 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_LAYERS_IMAGE_LAYER_H_ 6#define CC_LAYERS_IMAGE_LAYER_H_ 7 8#include "cc/base/cc_export.h" 9#include "cc/layers/content_layer.h" 10#include "third_party/skia/include/core/SkBitmap.h" 11 12namespace cc { 13 14class ImageLayerUpdater; 15 16// A Layer that contains only an Image element. 17class CC_EXPORT ImageLayer : public TiledLayer { 18 public: 19 static scoped_refptr<ImageLayer> Create(); 20 21 // Layer implementation. 22 virtual bool DrawsContent() const OVERRIDE; 23 virtual void SetTexturePriorities(const PriorityCalculator& priority_calc) 24 OVERRIDE; 25 virtual void Update(ResourceUpdateQueue* queue, 26 const OcclusionTracker* occlusion, 27 RenderingStats* stats) OVERRIDE; 28 virtual void CalculateContentsScale(float ideal_contents_scale, 29 bool animating_transform_to_screen, 30 float* contents_scale_x, 31 float* contents_scale_y, 32 gfx::Size* content_bounds) OVERRIDE; 33 34 void SetBitmap(const SkBitmap& image); 35 36 private: 37 ImageLayer(); 38 virtual ~ImageLayer(); 39 40 // TiledLayer Implementation. 41 virtual LayerUpdater* Updater() const OVERRIDE; 42 virtual void CreateUpdaterIfNeeded() OVERRIDE; 43 44 float ImageContentsScaleX() const; 45 float ImageContentsScaleY() const; 46 47 SkBitmap bitmap_; 48 49 scoped_refptr<ImageLayerUpdater> updater_; 50 51 DISALLOW_COPY_AND_ASSIGN(ImageLayer); 52}; 53 54} // namespace cc 55 56#endif // CC_LAYERS_IMAGE_LAYER_H_ 57