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

Unified Diff: cc/layers/picture_layer_impl.cc

Issue 140513006: cc: Simplify picture layer tiling update tile priorities. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: removed dead code Created 6 years, 10 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/layers/picture_layer_impl.h ('k') | cc/layers/picture_layer_impl_unittest.cc » ('j') | 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 859be872da1a4b88c8c4fde6b173d7afba26e6f4..8b64b8e42cc9cb805d5e211e695727b4cfa2cf7d 100644
--- a/cc/layers/picture_layer_impl.cc
+++ b/cc/layers/picture_layer_impl.cc
@@ -40,7 +40,6 @@ PictureLayerImpl::PictureLayerImpl(LayerTreeImpl* tree_impl, int id)
: LayerImpl(tree_impl, id),
twin_layer_(NULL),
pile_(PicturePileImpl::Create()),
- last_content_scale_(0),
is_mask_(false),
ideal_page_scale_(0.f),
ideal_device_scale_(0.f),
@@ -334,41 +333,31 @@ void PictureLayerImpl::UpdateTilePriorities() {
UpdateLCDTextStatus(can_use_lcd_text());
- gfx::Transform current_screen_space_transform = screen_space_transform();
-
- gfx::Size viewport_size = layer_tree_impl()->DrawViewportSize();
- gfx::Rect viewport_in_content_space;
- gfx::Transform screen_to_layer(gfx::Transform::kSkipInitialization);
- if (screen_space_transform().GetInverse(&screen_to_layer)) {
- viewport_in_content_space = MathUtil::ProjectEnclosingClippedRect(
- screen_to_layer, gfx::Rect(viewport_size));
+ // Use visible_content_rect, unless it's empty. If it's empty, then
+ // try to inverse project the viewport into layer space and use that.
+ gfx::Rect visible_rect_in_content_space = visible_content_rect();
+ if (visible_rect_in_content_space.IsEmpty()) {
+ gfx::Transform screen_to_layer(gfx::Transform::kSkipInitialization);
+ if (screen_space_transform().GetInverse(&screen_to_layer)) {
+ gfx::Size viewport_size = layer_tree_impl()->DrawViewportSize();
+ visible_rect_in_content_space =
+ gfx::ToEnclosingRect(MathUtil::ProjectClippedRect(
+ screen_to_layer, gfx::Rect(viewport_size)));
+ visible_rect_in_content_space.Intersect(gfx::Rect(content_bounds()));
+ }
}
WhichTree tree =
layer_tree_impl()->IsActiveTree() ? ACTIVE_TREE : PENDING_TREE;
- size_t max_tiles_for_interest_area =
- layer_tree_impl()->settings().max_tiles_for_interest_area;
- tilings_->UpdateTilePriorities(
- tree,
- viewport_size,
- viewport_in_content_space,
- visible_content_rect(),
- last_bounds_,
- bounds(),
- last_content_scale_,
- contents_scale_x(),
- last_screen_space_transform_,
- current_screen_space_transform,
- current_frame_time_in_seconds,
- max_tiles_for_interest_area);
+
+ tilings_->UpdateTilePriorities(tree,
+ visible_rect_in_content_space,
+ contents_scale_x(),
+ current_frame_time_in_seconds);
if (layer_tree_impl()->IsPendingTree())
MarkVisibleResourcesAsRequired();
- last_screen_space_transform_ = current_screen_space_transform;
- last_bounds_ = bounds();
- last_content_scale_ = contents_scale_x();
-
// Tile priorities were modified.
layer_tree_impl()->DidModifyTilePriorities();
}
@@ -512,6 +501,20 @@ const PictureLayerTiling* PictureLayerImpl::GetTwinTiling(
return NULL;
}
+size_t PictureLayerImpl::GetMaxTilesForInterestArea() const {
+ return layer_tree_impl()->settings().max_tiles_for_interest_area;
+}
+
+float PictureLayerImpl::GetSkewportTargetTimeInSeconds() const {
+ return layer_tree_impl()->settings().skewport_target_time_in_seconds;
+}
+
+int PictureLayerImpl::GetSkewportExtrapolationLimitInContentPixels() const {
+ return layer_tree_impl()
+ ->settings()
+ .skewport_extrapolation_limit_in_content_pixels;
+}
+
gfx::Size PictureLayerImpl::CalculateTileSize(
const gfx::Size& content_bounds) const {
if (is_mask_) {
@@ -722,12 +725,6 @@ void PictureLayerImpl::MarkVisibleResourcesAsRequired() const {
if (!*iter || !iter->IsReadyToDraw())
continue;
- // This iteration is over the visible content rect which is potentially
- // less conservative than projecting the viewport into the layer.
- // Ignore tiles that are know to be outside the viewport.
- if (iter->priority(PENDING_TREE).distance_to_visible_in_pixels != 0)
- continue;
-
missing_region.Subtract(iter.geometry_rect());
iter->MarkRequiredForActivation();
}
@@ -796,12 +793,6 @@ bool PictureLayerImpl::MarkVisibleTilesAsRequired(
if (!tile)
continue;
- // This iteration is over the visible content rect which is potentially
- // less conservative than projecting the viewport into the layer.
- // Ignore tiles that are know to be outside the viewport.
- if (tile->priority(PENDING_TREE).distance_to_visible_in_pixels != 0)
- continue;
-
// If the missing region doesn't cover it, this tile is fully
// covered by acceptable tiles at other scales.
if (!missing_region.Intersects(iter.geometry_rect()))
« no previous file with comments | « cc/layers/picture_layer_impl.h ('k') | cc/layers/picture_layer_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698