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

Unified Diff: cc/trees/layer_tree_host_impl.cc

Issue 16871016: cc: Use BeginFrameArgs (Closed) Base URL: http://git.chromium.org/chromium/src.git@bfargs2
Patch Set: else if typo Created 7 years, 5 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/trees/layer_tree_host_impl.cc
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
index 282471fdc7bcdc85a1506fe4f55bed5fc595c331..a5bc6011bf5b43f89804b034313fffca6507596c 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -106,7 +106,6 @@ class LayerTreeHostImplTimeSourceAdapter : public TimeSourceClient {
new DebugScopedSetImplThread(layer_tree_host_impl_->proxy()));
}
- // TODO(enne): This should probably happen post-animate.
if (layer_tree_host_impl_->pending_tree()) {
layer_tree_host_impl_->ActivatePendingTreeIfNeeded();
@@ -169,6 +168,7 @@ LayerTreeHostImpl::LayerTreeHostImpl(
RenderingStatsInstrumentation* rendering_stats_instrumentation)
: client_(client),
proxy_(proxy),
+ output_surface_lost_(true),
input_handler_client_(NULL),
did_lock_scrolling_layer_(false),
should_bubble_scrolls_(false),
@@ -1271,7 +1271,7 @@ const RendererCapabilities& LayerTreeHostImpl::GetRendererCapabilities() const {
}
bool LayerTreeHostImpl::SwapBuffers(const LayerTreeHostImpl::FrameData& frame) {
- if (frame.has_no_damage)
+ if (frame.has_no_damage || output_surface_lost_)
brianderson 2013/07/10 21:58:04 I avoid swapping if we don't have an output surfac
return false;
renderer_->SwapBuffers();
active_tree_->ClearLatencyInfo();
@@ -1312,6 +1312,7 @@ void LayerTreeHostImpl::DidLoseOutputSurface() {
// TODO(jamesr): The renderer_ check is needed to make some of the
// LayerTreeHostContextTest tests pass, but shouldn't be necessary (or
// important) in production. We should adjust the test to not need this.
+ output_surface_lost_ = true;
if (renderer_)
client_->DidLoseOutputSurfaceOnImplThread();
}
@@ -1426,6 +1427,8 @@ void LayerTreeHostImpl::ActivatePendingTree() {
root_layer_scroll_offset_delegate_);
active_tree_->DidBecomeActive();
+ client_->DidActivatePendingTree();
+
// Reduce wasted memory now that unlinked resources are guaranteed not
// to be used.
client_->ReduceWastedContentsTextureMemoryOnImplThread();
@@ -1442,8 +1445,6 @@ void LayerTreeHostImpl::ActivatePendingTree() {
stats.total_paint_time + stats.total_record_time +
stats.total_rasterize_time_for_now_bins_on_pending_tree);
}
-
- client_->DidActivatePendingTree();
}
void LayerTreeHostImpl::SetVisible(bool visible) {
@@ -1536,6 +1537,7 @@ bool LayerTreeHostImpl::InitializeRenderer(
tile_manager_.reset();
resource_provider_.reset();
output_surface_.reset();
+ output_surface_lost_ = true;
if (!output_surface->BindToClient(this))
return false;
@@ -1584,6 +1586,7 @@ bool LayerTreeHostImpl::InitializeRenderer(
resource_provider_ = resource_provider.Pass();
output_surface_ = output_surface.Pass();
+ output_surface_lost_ = false;
client_->OnCanDrawStateChanged(CanDraw());

Powered by Google App Engine
This is Rietveld 408576698