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

Unified Diff: cc/layers/picture_layer_impl.cc

Issue 1321503002: cc: Do not create separate tilings for almost equal scale factors. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: moved roundto function to ideal scales. Created 5 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/base/math_util_unittest.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/layers/picture_layer_impl.cc
diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc
index f8aa213a92596eef4bcf8a843933d4c1d6f10da2..f7da43ec84514b2aefd34bacc1b92d82ac96724f 100644
--- a/cc/layers/picture_layer_impl.cc
+++ b/cc/layers/picture_layer_impl.cc
@@ -48,6 +48,12 @@ const int kMinHeightForGpuRasteredTile = 256;
// of using the same tile size.
const int kTileRoundUp = 64;
+// The precision value for rounding floating points values of scale factors.
+// With this scale factors will be having 3 digits fractional part, which will
+// make almost equal (having smaller difference by some magnitude of floating
+// point epsilon) scale factors to be considered as same.
+const int kScalePrecision = 4;
+
} // namespace
namespace cc {
@@ -1187,11 +1193,14 @@ void PictureLayerImpl::UpdateIdealScales() {
float min_contents_scale = MinimumContentsScale();
DCHECK_GT(min_contents_scale, 0.f);
- ideal_page_scale_ = IsAffectedByPageScale()
- ? layer_tree_impl()->current_page_scale_factor()
- : 1.f;
+ ideal_page_scale_ =
+ IsAffectedByPageScale()
+ ? MathUtil::RoundToFixedPrecision(
+ layer_tree_impl()->current_page_scale_factor(), kScalePrecision)
+ : 1.f;
ideal_device_scale_ = layer_tree_impl()->device_scale_factor();
- ideal_contents_scale_ = std::max(GetIdealContentsScale(), min_contents_scale);
+ ideal_contents_scale_ = MathUtil::RoundToFixedPrecision(
+ std::max(GetIdealContentsScale(), min_contents_scale), kScalePrecision);
prashant.n 2015/10/26 16:35:04 Modifying ideal page and contents scales are neede
ideal_source_scale_ =
ideal_contents_scale_ / ideal_page_scale_ / ideal_device_scale_;
}
« no previous file with comments | « cc/base/math_util_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698