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

Unified Diff: cc/trees/layer_tree_host_impl.cc

Issue 2080703005: cc: Remove LayerTreeImpl::root_layer usage outside tests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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/trees/layer_tree_host_impl.h ('k') | cc/trees/layer_tree_host_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 f558733c589de32d5ec3e280cf9f4788a7189439..f2cabde35d76da331d9b81b5f824803a2627cd1e 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -398,9 +398,9 @@ bool LayerTreeHostImpl::CanDraw() const {
// Must have an OutputSurface if |renderer_| is not NULL.
DCHECK(output_surface_);
- // TODO(boliu): Make draws without root_layer work and move this below
+ // TODO(boliu): Make draws without layers work and move this below
// |resourceless_software_draw_| check. Tracked in crbug.com/264967.
- if (!active_tree_->root_layer()) {
+ if (active_tree_->LayerListIsEmpty()) {
TRACE_EVENT_INSTANT0("cc", "LayerTreeHostImpl::CanDraw no root layer",
TRACE_EVENT_SCOPE_THREAD);
return false;
@@ -632,7 +632,6 @@ void LayerTreeHostImpl::QueueSwapPromiseForMainThreadScrollUpdate(
}
void LayerTreeHostImpl::TrackDamageForAllSurfaces(
- LayerImpl* root_draw_layer,
const LayerImplList& render_surface_layer_list) {
// For now, we use damage tracking to compute a global scissor. To do this, we
// must compute all damage tracking before drawing anything, so that we know
@@ -730,10 +729,10 @@ static void AppendQuadsForRenderSurfaceLayer(
static void AppendQuadsToFillScreen(const gfx::Rect& root_scroll_layer_rect,
RenderPass* target_render_pass,
- LayerImpl* root_layer,
+ RenderSurfaceImpl* root_render_surface,
SkColor screen_background_color,
const Region& fill_region) {
- if (!root_layer || !SkColorGetA(screen_background_color))
+ if (!root_render_surface || !SkColorGetA(screen_background_color))
return;
if (fill_region.IsEmpty())
return;
@@ -743,7 +742,7 @@ static void AppendQuadsToFillScreen(const gfx::Rect& root_scroll_layer_rect,
// TODO(danakj): Make the gutter quads generated by the solid color layer
// (make it smarter about generating quads to fill unoccluded areas).
- gfx::Rect root_target_rect = root_layer->render_surface()->content_rect();
+ gfx::Rect root_target_rect = root_render_surface->content_rect();
float opacity = 1.f;
int sorting_context_id = 0;
SharedQuadState* shared_quad_state =
@@ -785,15 +784,13 @@ DrawResult LayerTreeHostImpl::CalculateRenderPasses(
FrameData* frame) {
DCHECK(frame->render_passes.empty());
DCHECK(CanDraw());
- DCHECK(active_tree_->root_layer());
+ DCHECK(!active_tree_->LayerListIsEmpty());
- TrackDamageForAllSurfaces(active_tree_->root_layer(),
- *frame->render_surface_layer_list);
+ TrackDamageForAllSurfaces(*frame->render_surface_layer_list);
// If the root render surface has no visible damage, then don't generate a
// frame at all.
- RenderSurfaceImpl* root_surface =
- active_tree_->root_layer()->render_surface();
+ RenderSurfaceImpl* root_surface = active_tree_->RootRenderSurface();
bool root_surface_has_no_visible_damage =
!root_surface->damage_tracker()->current_damage_rect().Intersects(
root_surface->content_rect());
@@ -986,7 +983,7 @@ DrawResult LayerTreeHostImpl::CalculateRenderPasses(
frame->render_passes.back()->has_transparent_background = false;
AppendQuadsToFillScreen(
active_tree_->RootScrollLayerDeviceViewportBounds(),
- frame->render_passes.back().get(), active_tree_->root_layer(),
+ frame->render_passes.back().get(), active_tree_->RootRenderSurface(),
active_tree_->background_color(), unoccluded_screen_space_region);
}
@@ -1107,12 +1104,12 @@ DrawResult LayerTreeHostImpl::PrepareToDraw(FrameData* frame) {
frame->will_draw_layers.clear();
frame->has_no_damage = false;
- if (active_tree_->root_layer()) {
+ if (active_tree_->RootRenderSurface()) {
gfx::Rect device_viewport_damage_rect = viewport_damage_rect_;
viewport_damage_rect_ = gfx::Rect();
- active_tree_->root_layer()->render_surface()->damage_tracker()->
- AddDamageNextUpdate(device_viewport_damage_rect);
+ active_tree_->RootRenderSurface()->damage_tracker()->AddDamageNextUpdate(
+ device_viewport_damage_rect);
}
DrawResult draw_result = CalculateRenderPasses(frame);
@@ -1646,10 +1643,8 @@ void LayerTreeHostImpl::DrawLayers(FrameData* frame) {
if (debug_state_.ShowHudRects()) {
debug_rect_history_->SaveDebugRectsForCurrentFrame(
- active_tree_->root_layer(),
- active_tree_->hud_layer(),
- *frame->render_surface_layer_list,
- debug_state_);
+ active_tree(), active_tree_->hud_layer(),
+ *frame->render_surface_layer_list, debug_state_);
}
bool is_new_trace;
@@ -1942,10 +1937,6 @@ bool LayerTreeHostImpl::HaveRootScrollLayer() const {
return !!InnerViewportScrollLayer();
}
-LayerImpl* LayerTreeHostImpl::RootLayer() const {
- return active_tree_->root_layer();
-}
-
LayerImpl* LayerTreeHostImpl::InnerViewportScrollLayer() const {
return active_tree_->InnerViewportScrollLayer();
}
@@ -2000,7 +1991,7 @@ void LayerTreeHostImpl::ActivateSyncTree() {
pending_tree_->ProcessUIResourceRequestQueue();
if (pending_tree_->needs_full_tree_sync()) {
- TreeSynchronizer::SynchronizeTrees(pending_tree_->root_layer(),
+ TreeSynchronizer::SynchronizeTrees(pending_tree_.get(),
active_tree_.get());
}
@@ -2020,7 +2011,7 @@ void LayerTreeHostImpl::ActivateSyncTree() {
TreeSynchronizer::PushLayerProperties(pending_tree(), active_tree());
pending_tree_->PushPropertiesTo(active_tree_.get());
- if (pending_tree_->root_layer())
+ if (!pending_tree_->LayerListIsEmpty())
pending_tree_->property_trees()->ResetAllChangeTracking();
// Now that we've synced everything from the pending tree to the active
@@ -3368,19 +3359,18 @@ LayerTreeHostImpl::ProcessLayerTreeMutations() {
}
static void CollectScrollDeltas(ScrollAndScaleSet* scroll_info,
- LayerImpl* root_layer) {
- if (!root_layer)
+ LayerTreeImpl* tree_impl) {
+ if (tree_impl->LayerListIsEmpty())
return;
- return root_layer->layer_tree_impl()
- ->property_trees()
- ->scroll_tree.CollectScrollDeltas(scroll_info);
+ return tree_impl->property_trees()->scroll_tree.CollectScrollDeltas(
+ scroll_info);
}
std::unique_ptr<ScrollAndScaleSet> LayerTreeHostImpl::ProcessScrollDeltas() {
std::unique_ptr<ScrollAndScaleSet> scroll_info(new ScrollAndScaleSet());
- CollectScrollDeltas(scroll_info.get(), active_tree_->root_layer());
+ CollectScrollDeltas(scroll_info.get(), active_tree_.get());
scroll_info->page_scale_delta =
active_tree_->page_scale_factor()->PullDeltaForMainThread();
scroll_info->top_controls_delta =
« no previous file with comments | « cc/trees/layer_tree_host_impl.h ('k') | cc/trees/layer_tree_host_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698