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

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

Issue 272283003: Revert 261000 "Re-raster GPU-rasterized layers during scale animations" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | cc/layers/picture_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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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_layer_impl.h" 5 #include "cc/layers/picture_layer_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 9
10 #include "base/time/time.h" 10 #include "base/time/time.h"
(...skipping 1016 matching lines...) Expand 10 before | Expand all | Expand 10 after
1027 high_res->set_resolution(HIGH_RESOLUTION); 1027 high_res->set_resolution(HIGH_RESOLUTION);
1028 1028
1029 SanityCheckTilingState(); 1029 SanityCheckTilingState();
1030 } 1030 }
1031 1031
1032 bool PictureLayerImpl::ShouldAdjustRasterScale( 1032 bool PictureLayerImpl::ShouldAdjustRasterScale(
1033 bool animating_transform_to_screen) const { 1033 bool animating_transform_to_screen) const {
1034 if (was_animating_transform_to_screen_ != animating_transform_to_screen) 1034 if (was_animating_transform_to_screen_ != animating_transform_to_screen)
1035 return true; 1035 return true;
1036 1036
1037 if (animating_transform_to_screen &&
1038 raster_contents_scale_ != ideal_contents_scale_ &&
1039 use_gpu_rasterization())
1040 return true;
1041
1042 bool is_pinching = layer_tree_impl()->PinchGestureActive(); 1037 bool is_pinching = layer_tree_impl()->PinchGestureActive();
1043 if (is_pinching && raster_page_scale_) { 1038 if (is_pinching && raster_page_scale_) {
1044 // We change our raster scale when it is: 1039 // We change our raster scale when it is:
1045 // - Higher than ideal (need a lower-res tiling available) 1040 // - Higher than ideal (need a lower-res tiling available)
1046 // - Too far from ideal (need a higher-res tiling available) 1041 // - Too far from ideal (need a higher-res tiling available)
1047 float ratio = ideal_page_scale_ / raster_page_scale_; 1042 float ratio = ideal_page_scale_ / raster_page_scale_;
1048 if (raster_page_scale_ > ideal_page_scale_ || 1043 if (raster_page_scale_ > ideal_page_scale_ ||
1049 ratio > kMaxScaleRatioDuringPinch) 1044 ratio > kMaxScaleRatioDuringPinch)
1050 return true; 1045 return true;
1051 } 1046 }
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
1126 zooming_out ? old_raster_contents_scale / kMaxScaleRatioDuringPinch 1121 zooming_out ? old_raster_contents_scale / kMaxScaleRatioDuringPinch
1127 : old_raster_contents_scale * kMaxScaleRatioDuringPinch; 1122 : old_raster_contents_scale * kMaxScaleRatioDuringPinch;
1128 raster_contents_scale_ = SnappedContentsScale(desired_contents_scale); 1123 raster_contents_scale_ = SnappedContentsScale(desired_contents_scale);
1129 raster_page_scale_ = 1124 raster_page_scale_ =
1130 raster_contents_scale_ / raster_device_scale_ / raster_source_scale_; 1125 raster_contents_scale_ / raster_device_scale_ / raster_source_scale_;
1131 } 1126 }
1132 1127
1133 raster_contents_scale_ = 1128 raster_contents_scale_ =
1134 std::max(raster_contents_scale_, MinimumContentsScale()); 1129 std::max(raster_contents_scale_, MinimumContentsScale());
1135 1130
1136 // If we're not re-rasterizing during animation, rasterize at the maximum 1131 // Since we're not re-rasterizing during animation, rasterize at the maximum
1137 // scale that will occur during the animation, if the maximum scale is 1132 // scale that will occur during the animation, if the maximum scale is
1138 // known. 1133 // known.
1139 if (animating_transform_to_screen && !use_gpu_rasterization()) { 1134 if (animating_transform_to_screen) {
1140 if (maximum_animation_contents_scale > 0.f) { 1135 if (maximum_animation_contents_scale > 0.f) {
1141 raster_contents_scale_ = 1136 raster_contents_scale_ =
1142 std::max(raster_contents_scale_, maximum_animation_contents_scale); 1137 std::max(raster_contents_scale_, maximum_animation_contents_scale);
1143 } else { 1138 } else {
1144 raster_contents_scale_ = 1139 raster_contents_scale_ =
1145 std::max(raster_contents_scale_, 1140 std::max(raster_contents_scale_,
1146 1.f * ideal_page_scale_ * ideal_device_scale_); 1141 1.f * ideal_page_scale_ * ideal_device_scale_);
1147 } 1142 }
1148 } 1143 }
1149 1144
(...skipping 412 matching lines...) Expand 10 before | Expand all | Expand 10 after
1562 return iterator_index_ < iterators_.size(); 1557 return iterator_index_ < iterators_.size();
1563 } 1558 }
1564 1559
1565 bool PictureLayerImpl::LayerEvictionTileIterator::IsCorrectType( 1560 bool PictureLayerImpl::LayerEvictionTileIterator::IsCorrectType(
1566 PictureLayerTiling::TilingEvictionTileIterator* it) const { 1561 PictureLayerTiling::TilingEvictionTileIterator* it) const {
1567 return it->get_type() == iteration_stage_ && 1562 return it->get_type() == iteration_stage_ &&
1568 (**it)->required_for_activation() == required_for_activation_; 1563 (**it)->required_for_activation() == required_for_activation_;
1569 } 1564 }
1570 1565
1571 } // namespace cc 1566 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | cc/layers/picture_layer_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698