Abstract GoogleURLTracker & google_util Profile dependencies
[chromium-blink-merge.git] / cc / layers / image_layer.h
blob2f3255f092af7f3cd55556b82214f2a359b30bae
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.
5 #ifndef CC_LAYERS_IMAGE_LAYER_H_
6 #define CC_LAYERS_IMAGE_LAYER_H_
8 #include "cc/base/cc_export.h"
9 #include "cc/layers/content_layer.h"
10 #include "third_party/skia/include/core/SkBitmap.h"
12 namespace cc {
14 class ImageLayerUpdater;
16 // A Layer that contains only an Image element.
17 class CC_EXPORT ImageLayer : public TiledLayer {
18 public:
19 static scoped_refptr<ImageLayer> Create();
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 float maximum_animation_contents_scale,
31 bool animating_transform_to_screen,
32 float* contents_scale_x,
33 float* contents_scale_y,
34 gfx::Size* content_bounds) OVERRIDE;
35 virtual void OnOutputSurfaceCreated() OVERRIDE;
37 void SetBitmap(const SkBitmap& image);
39 private:
40 ImageLayer();
41 virtual ~ImageLayer();
43 // TiledLayer Implementation.
44 virtual LayerUpdater* Updater() const OVERRIDE;
45 virtual void CreateUpdaterIfNeeded() OVERRIDE;
47 float ImageContentsScaleX() const;
48 float ImageContentsScaleY() const;
50 SkBitmap bitmap_;
52 scoped_refptr<ImageLayerUpdater> updater_;
54 DISALLOW_COPY_AND_ASSIGN(ImageLayer);
57 } // namespace cc
59 #endif // CC_LAYERS_IMAGE_LAYER_H_