image_layer.h revision a1401311d1ab56c4ed0a474bd38c108f75cb0cd9
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 bool Update(ResourceUpdateQueue* queue, 26 const OcclusionTracker<Layer>* occlusion) OVERRIDE; 27 virtual void CalculateContentsScale(float ideal_contents_scale, 28 float device_scale_factor, 29 float page_scale_factor, 30 bool animating_transform_to_screen, 31 float* contents_scale_x, 32 float* contents_scale_y, 33 gfx::Size* content_bounds) OVERRIDE; 34 virtual void OnOutputSurfaceCreated() OVERRIDE; 35 36 void SetBitmap(const SkBitmap& image); 37 38 private: 39 ImageLayer(); 40 virtual ~ImageLayer(); 41 42 // TiledLayer Implementation. 43 virtual LayerUpdater* Updater() const OVERRIDE; 44 virtual void CreateUpdaterIfNeeded() OVERRIDE; 45 46 float ImageContentsScaleX() const; 47 float ImageContentsScaleY() const; 48 49 SkBitmap bitmap_; 50 51 scoped_refptr<ImageLayerUpdater> updater_; 52 53 DISALLOW_COPY_AND_ASSIGN(ImageLayer); 54}; 55 56} // namespace cc 57 58#endif // CC_LAYERS_IMAGE_LAYER_H_ 59