picture_image_layer_impl.h revision 4e180b6a0b4720a9b8e9e959a882386f690f08ff
1// Copyright 2013 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_PICTURE_IMAGE_LAYER_IMPL_H_
6#define CC_LAYERS_PICTURE_IMAGE_LAYER_IMPL_H_
7
8#include "cc/layers/picture_layer_impl.h"
9
10namespace cc {
11
12class CC_EXPORT PictureImageLayerImpl : public PictureLayerImpl {
13 public:
14  static scoped_ptr<PictureImageLayerImpl> Create(LayerTreeImpl* tree_impl,
15                                                  int id) {
16    return make_scoped_ptr(new PictureImageLayerImpl(tree_impl, id));
17  }
18  virtual ~PictureImageLayerImpl();
19
20  // LayerImpl overrides.
21  virtual const char* LayerTypeAsString() const OVERRIDE;
22  virtual scoped_ptr<LayerImpl> CreateLayerImpl(
23      LayerTreeImpl* tree_impl) OVERRIDE;
24  virtual void CalculateContentsScale(float ideal_contents_scale,
25                                      float device_scale_factor,
26                                      float page_scale_factor,
27                                      bool animating_transform_to_screen,
28                                      float* contents_scale_x,
29                                      float* contents_scale_y,
30                                      gfx::Size* content_bounds) OVERRIDE;
31
32 protected:
33  PictureImageLayerImpl(LayerTreeImpl* tree_impl, int id);
34
35  virtual bool ShouldAdjustRasterScale(
36      bool animating_transform_to_screen) const OVERRIDE;
37  virtual void CalculateRasterContentsScale(
38      bool animating_transform_to_screen,
39      float* raster_contents_scale,
40      float* low_res_raster_contents_scale) const OVERRIDE;
41  virtual void GetDebugBorderProperties(
42      SkColor* color, float* width) const OVERRIDE;
43
44 private:
45  DISALLOW_COPY_AND_ASSIGN(PictureImageLayerImpl);
46};
47
48}  // namespace cc
49
50#endif  // CC_LAYERS_PICTURE_IMAGE_LAYER_IMPL_H_
51