Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(360)

Side by Side Diff: cc/layers/picture_image_layer_impl.cc

Issue 271533011: cc: Move tiling management out of draw properties calculation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review comments + unit/perf test fails addressed Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/layers/picture_image_layer_impl.h" 5 #include "cc/layers/picture_image_layer_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "cc/debug/debug_colors.h" 9 #include "cc/debug/debug_colors.h"
10 #include "cc/trees/layer_tree_impl.h" 10 #include "cc/trees/layer_tree_impl.h"
11 11
12 namespace cc { 12 namespace cc {
13 13
14 PictureImageLayerImpl::PictureImageLayerImpl(LayerTreeImpl* tree_impl, int id) 14 PictureImageLayerImpl::PictureImageLayerImpl(LayerTreeImpl* tree_impl, int id)
15 : PictureLayerImpl(tree_impl, id) { 15 : PictureLayerImpl(tree_impl, id) {
16 } 16 }
17 17
18 PictureImageLayerImpl::~PictureImageLayerImpl() { 18 PictureImageLayerImpl::~PictureImageLayerImpl() {
19 } 19 }
20 20
21 const char* PictureImageLayerImpl::LayerTypeAsString() const { 21 const char* PictureImageLayerImpl::LayerTypeAsString() const {
22 return "cc::PictureImageLayerImpl"; 22 return "cc::PictureImageLayerImpl";
23 } 23 }
24 24
25 scoped_ptr<LayerImpl> PictureImageLayerImpl::CreateLayerImpl( 25 scoped_ptr<LayerImpl> PictureImageLayerImpl::CreateLayerImpl(
26 LayerTreeImpl* tree_impl) { 26 LayerTreeImpl* tree_impl) {
27 return PictureImageLayerImpl::Create(tree_impl, id()).PassAs<LayerImpl>(); 27 return PictureImageLayerImpl::Create(tree_impl, id()).PassAs<LayerImpl>();
28 } 28 }
29 29
30 void PictureImageLayerImpl::CalculateContentsScale(
31 float ideal_contents_scale,
32 float device_scale_factor,
33 float page_scale_factor,
34 float maximum_animation_contents_scale,
35 bool animating_transform_to_screen,
36 float* contents_scale_x,
37 float* contents_scale_y,
38 gfx::Size* content_bounds) {
39 // CalculateRasterContentsScale always returns 1.f, so make that the ideal
40 // scale.
41 ideal_contents_scale = 1.f;
42 PictureLayerImpl::CalculateContentsScale(ideal_contents_scale,
43 device_scale_factor,
44 page_scale_factor,
45 maximum_animation_contents_scale,
46 animating_transform_to_screen,
47 contents_scale_x,
48 contents_scale_y,
49 content_bounds);
50 }
51
52 void PictureImageLayerImpl::GetDebugBorderProperties( 30 void PictureImageLayerImpl::GetDebugBorderProperties(
53 SkColor* color, float* width) const { 31 SkColor* color, float* width) const {
54 *color = DebugColors::ImageLayerBorderColor(); 32 *color = DebugColors::ImageLayerBorderColor();
55 *width = DebugColors::ImageLayerBorderWidth(layer_tree_impl()); 33 *width = DebugColors::ImageLayerBorderWidth(layer_tree_impl());
56 } 34 }
57 35
58 bool PictureImageLayerImpl::ShouldAdjustRasterScale( 36 bool PictureImageLayerImpl::ShouldAdjustRasterScale(
59 bool animating_transform_to_screen) const { 37 bool animating_transform_to_screen) const {
60 return false; 38 return false;
61 } 39 }
62 40
63 void PictureImageLayerImpl::RecalculateRasterScales( 41 void PictureImageLayerImpl::RecalculateRasterScales(
64 bool animating_transform_to_screen, 42 bool animating_transform_to_screen,
65 float maximum_animation_contents_scale) { 43 float maximum_animation_contents_scale) {
66 // Defaults from PictureLayerImpl. 44 // Defaults from PictureLayerImpl.
67 PictureLayerImpl::RecalculateRasterScales(animating_transform_to_screen, 45 PictureLayerImpl::RecalculateRasterScales(animating_transform_to_screen,
68 maximum_animation_contents_scale); 46 maximum_animation_contents_scale);
69 47
70 // Don't scale images during rastering to ensure image quality, save memory 48 // Don't scale images during rastering to ensure image quality, save memory
71 // and avoid frequent re-rastering on change of scale. 49 // and avoid frequent re-rastering on change of scale.
72 raster_contents_scale_ = std::max(1.f, MinimumContentsScale()); 50 raster_contents_scale_ = std::max(1.f, MinimumContentsScale());
73 // We don't need low res tiles. 51 // We don't need low res tiles.
74 low_res_raster_contents_scale_ = raster_contents_scale_; 52 low_res_raster_contents_scale_ = raster_contents_scale_;
75 } 53 }
76 54
55 void PictureImageLayerImpl::UpdateIdealScales() {
56 draw_properties().ideal_contents_scale = 1.f;
enne (OOO) 2014/05/21 18:08:44 In general cc tries not to update draw properties
57 // Defaults from PictureLayerImpl.
58 PictureLayerImpl::UpdateIdealScales();
59 }
60
77 } // namespace cc 61 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698