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

Unified Diff: cc/layers/picture_layer_impl.cc

Issue 257773009: cc: Change required_for_activation bookkeeping. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: test fixes 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 side-by-side diff with in-line comments
Download patch
Index: cc/layers/picture_layer_impl.cc
diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc
index 94c3d201639d0dd90a29545ba18ca067f43edd8a..bca9015f96eb15290e2b6b60f2aea89955e03bea 100644
--- a/cc/layers/picture_layer_impl.cc
+++ b/cc/layers/picture_layer_impl.cc
@@ -56,7 +56,9 @@ PictureLayerImpl::PictureLayerImpl(LayerTreeImpl* tree_impl, int id)
should_update_tile_priorities_(false),
should_use_low_res_tiling_(tree_impl->settings().create_low_res_tiling),
use_gpu_rasterization_(false),
- layer_needs_to_register_itself_(true) {}
+ layer_needs_to_register_itself_(true),
+ required_for_activation_tile_needs_raster_count_(0u) {
+}
PictureLayerImpl::~PictureLayerImpl() {
if (!layer_needs_to_register_itself_)
@@ -395,6 +397,7 @@ void PictureLayerImpl::UpdateTilePriorities() {
contents_scale_x(),
current_frame_time_in_seconds);
+ required_for_activation_tile_needs_raster_count_ = 0u;
if (layer_tree_impl()->IsPendingTree())
MarkVisibleResourcesAsRequired();
@@ -402,6 +405,18 @@ void PictureLayerImpl::UpdateTilePriorities() {
layer_tree_impl()->DidModifyTilePriorities();
}
+void PictureLayerImpl::NotifyTileInitialized(const Tile* tile) {
+ if (layer_tree_impl()->IsActiveTree()) {
+ DCHECK_EQ(0u, required_for_activation_tile_needs_raster_count_);
+ return;
+ }
+
+ if (tile->required_for_activation()) {
+ DCHECK_GT(required_for_activation_tile_needs_raster_count_, 0u);
+ --required_for_activation_tile_needs_raster_count_;
+ }
+}
+
void PictureLayerImpl::DidBecomeActive() {
LayerImpl::DidBecomeActive();
tilings_->DidBecomeActive();
@@ -726,7 +741,7 @@ ResourceProvider::ResourceId PictureLayerImpl::ContentsResourceId() const {
return tile_version.get_resource_id();
}
-void PictureLayerImpl::MarkVisibleResourcesAsRequired() const {
+void PictureLayerImpl::MarkVisibleResourcesAsRequired() {
DCHECK(layer_tree_impl()->IsPendingTree());
DCHECK(!layer_tree_impl()->needs_update_draw_properties());
DCHECK(ideal_contents_scale_);
@@ -834,7 +849,7 @@ bool PictureLayerImpl::MarkVisibleTilesAsRequired(
const PictureLayerTiling* optional_twin_tiling,
float contents_scale,
const gfx::Rect& rect,
- const Region& missing_region) const {
+ const Region& missing_region) {
bool twin_had_missing_tile = false;
for (PictureLayerTiling::CoverageIterator iter(tiling,
contents_scale,
@@ -861,8 +876,10 @@ bool PictureLayerImpl::MarkVisibleTilesAsRequired(
continue;
}
}
-
+ DCHECK(!tile->required_for_activation());
tile->MarkRequiredForActivation();
+ if (!tile->IsReadyToDraw())
+ ++required_for_activation_tile_needs_raster_count_;
}
return twin_had_missing_tile;
}

Powered by Google App Engine
This is Rietveld 408576698