picture_image_layer_impl.cc revision a93a17c8d99d686bd4a1511e5504e5e6cc9fcadf
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#include "cc/layers/picture_image_layer_impl.h"
6
7#include <algorithm>
8
9#include "cc/debug/debug_colors.h"
10#include "cc/trees/layer_tree_impl.h"
11
12namespace cc {
13
14PictureImageLayerImpl::PictureImageLayerImpl(LayerTreeImpl* tree_impl, int id)
15    : PictureLayerImpl(tree_impl, id) {
16}
17
18PictureImageLayerImpl::~PictureImageLayerImpl() {
19}
20
21const char* PictureImageLayerImpl::LayerTypeAsString() const {
22  return "cc::PictureImageLayerImpl";
23}
24
25scoped_ptr<LayerImpl> PictureImageLayerImpl::CreateLayerImpl(
26    LayerTreeImpl* tree_impl) {
27  return PictureImageLayerImpl::Create(tree_impl, id()).PassAs<LayerImpl>();
28}
29
30void PictureImageLayerImpl::GetDebugBorderProperties(
31    SkColor* color, float* width) const {
32  *color = DebugColors::ImageLayerBorderColor();
33  *width = DebugColors::ImageLayerBorderWidth(layer_tree_impl());
34}
35
36bool PictureImageLayerImpl::ShouldAdjustRasterScale(
37    bool animating_transform_to_screen) const {
38  return false;
39}
40
41void PictureImageLayerImpl::CalculateRasterContentsScale(
42    bool animating_transform_to_screen,
43    float* raster_contents_scale,
44    float* low_res_raster_contents_scale) const {
45  // Don't scale images during rastering to ensure image quality, save memory
46  // and avoid frequent re-rastering on change of scale.
47  *raster_contents_scale = std::max(1.f, MinimumContentsScale());
48  // We don't need low res tiles.
49  *low_res_raster_contents_scale = *raster_contents_scale;
50}
51
52}  // namespace cc
53