Home | History | Annotate | Download | only in layers
      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 
     12 namespace cc {
     13 
     14 PictureImageLayerImpl::PictureImageLayerImpl(LayerTreeImpl* tree_impl, int id)
     15     : PictureLayerImpl(tree_impl, id) {
     16 }
     17 
     18 PictureImageLayerImpl::~PictureImageLayerImpl() {
     19 }
     20 
     21 const char* PictureImageLayerImpl::LayerTypeAsString() const {
     22   return "cc::PictureImageLayerImpl";
     23 }
     24 
     25 scoped_ptr<LayerImpl> PictureImageLayerImpl::CreateLayerImpl(
     26     LayerTreeImpl* tree_impl) {
     27   return PictureImageLayerImpl::Create(tree_impl, id()).PassAs<LayerImpl>();
     28 }
     29 
     30 void PictureImageLayerImpl::GetDebugBorderProperties(
     31     SkColor* color, float* width) const {
     32   *color = DebugColors::ImageLayerBorderColor();
     33   *width = DebugColors::ImageLayerBorderWidth(layer_tree_impl());
     34 }
     35 
     36 bool PictureImageLayerImpl::ShouldAdjustRasterScale() const {
     37   return false;
     38 }
     39 
     40 void 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 
     51 void 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