picture_image_layer_impl.cc revision 6d86b77056ed63eb6871182f42a9fd5f07550f90
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() const {
37  return false;
38}
39
40void PictureImageLayerImpl::RecalculateRasterScales() {
41  // Don't scale images during rastering to ensure image quality, save memory
42  // and avoid frequent re-rastering on change of scale.
43  raster_page_scale_ = 1.f;
44  raster_device_scale_ = 1.f;
45  raster_source_scale_ = std::max(1.f, MinimumContentsScale());
46  raster_contents_scale_ = raster_source_scale_;
47  // We don't need low res tiles.
48  low_res_raster_contents_scale_ = raster_contents_scale_;
49}
50
51void PictureImageLayerImpl::UpdateIdealScales() {
52  ideal_contents_scale_ = 1.f;
53  ideal_page_scale_ = 1.f;
54  ideal_device_scale_ = 1.f;
55  ideal_source_scale_ = 1.f;
56}
57
58}  // namespace cc
59