Use multiline attribute to check for IA2_STATE_MULTILINE.
[chromium-blink-merge.git] / cc / layers / image_layer.h
blobed2a2a3bd89736159c5c0f7079b8864f9e8993da
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 void SetTexturePriorities(const PriorityCalculator& priority_calc) override;
23 bool Update(ResourceUpdateQueue* queue,
24 const OcclusionTracker<Layer>* occlusion) override;
25 void CalculateContentsScale(float ideal_contents_scale,
26 float* contents_scale_x,
27 float* contents_scale_y,
28 gfx::Size* content_bounds) override;
29 void OnOutputSurfaceCreated() override;
31 void SetBitmap(const SkBitmap& image);
33 protected:
34 bool HasDrawableContent() const override;
36 private:
37 ImageLayer();
38 ~ImageLayer() override;
40 // TiledLayer Implementation.
41 LayerUpdater* Updater() const override;
42 void CreateUpdaterIfNeeded() override;
44 float ImageContentsScaleX() const;
45 float ImageContentsScaleY() const;
47 SkBitmap bitmap_;
49 scoped_refptr<ImageLayerUpdater> updater_;
51 DISALLOW_COPY_AND_ASSIGN(ImageLayer);
54 } // namespace cc
56 #endif // CC_LAYERS_IMAGE_LAYER_H_