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

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

Issue 226283004: Rasterize at maximum scale for scale animations on CPU-rasterized layers (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 6 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « cc/layers/picture_image_layer_impl.h ('k') | cc/layers/picture_image_layer_impl_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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"
(...skipping 13 matching lines...) Expand all
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( 30 void PictureImageLayerImpl::CalculateContentsScale(
31 float ideal_contents_scale, 31 float ideal_contents_scale,
32 float device_scale_factor, 32 float device_scale_factor,
33 float page_scale_factor, 33 float page_scale_factor,
34 float maximum_animation_contents_scale,
34 bool animating_transform_to_screen, 35 bool animating_transform_to_screen,
35 float* contents_scale_x, 36 float* contents_scale_x,
36 float* contents_scale_y, 37 float* contents_scale_y,
37 gfx::Size* content_bounds) { 38 gfx::Size* content_bounds) {
38 // CalculateRasterContentsScale always returns 1.f, so make that the ideal 39 // CalculateRasterContentsScale always returns 1.f, so make that the ideal
39 // scale. 40 // scale.
40 ideal_contents_scale = 1.f; 41 ideal_contents_scale = 1.f;
41 PictureLayerImpl::CalculateContentsScale(ideal_contents_scale, 42 PictureLayerImpl::CalculateContentsScale(ideal_contents_scale,
42 device_scale_factor, 43 device_scale_factor,
43 page_scale_factor, 44 page_scale_factor,
45 maximum_animation_contents_scale,
44 animating_transform_to_screen, 46 animating_transform_to_screen,
45 contents_scale_x, 47 contents_scale_x,
46 contents_scale_y, 48 contents_scale_y,
47 content_bounds); 49 content_bounds);
48 } 50 }
49 51
50 void PictureImageLayerImpl::GetDebugBorderProperties( 52 void PictureImageLayerImpl::GetDebugBorderProperties(
51 SkColor* color, float* width) const { 53 SkColor* color, float* width) const {
52 *color = DebugColors::ImageLayerBorderColor(); 54 *color = DebugColors::ImageLayerBorderColor();
53 *width = DebugColors::ImageLayerBorderWidth(layer_tree_impl()); 55 *width = DebugColors::ImageLayerBorderWidth(layer_tree_impl());
54 } 56 }
55 57
56 bool PictureImageLayerImpl::ShouldAdjustRasterScale( 58 bool PictureImageLayerImpl::ShouldAdjustRasterScale(
57 bool animating_transform_to_screen) const { 59 bool animating_transform_to_screen) const {
58 return false; 60 return false;
59 } 61 }
60 62
61 void PictureImageLayerImpl::RecalculateRasterScales( 63 void PictureImageLayerImpl::RecalculateRasterScales(
62 bool animating_transform_to_screen) { 64 bool animating_transform_to_screen,
65 float maximum_animation_contents_scale) {
63 // Defaults from PictureLayerImpl. 66 // Defaults from PictureLayerImpl.
64 PictureLayerImpl::RecalculateRasterScales(animating_transform_to_screen); 67 PictureLayerImpl::RecalculateRasterScales(animating_transform_to_screen,
68 maximum_animation_contents_scale);
65 69
66 // Don't scale images during rastering to ensure image quality, save memory 70 // Don't scale images during rastering to ensure image quality, save memory
67 // and avoid frequent re-rastering on change of scale. 71 // and avoid frequent re-rastering on change of scale.
68 raster_contents_scale_ = std::max(1.f, MinimumContentsScale()); 72 raster_contents_scale_ = std::max(1.f, MinimumContentsScale());
69 // We don't need low res tiles. 73 // We don't need low res tiles.
70 low_res_raster_contents_scale_ = raster_contents_scale_; 74 low_res_raster_contents_scale_ = raster_contents_scale_;
71 } 75 }
72 76
73 } // namespace cc 77 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/picture_image_layer_impl.h ('k') | cc/layers/picture_image_layer_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698