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

Side by Side Diff: cc/trees/layer_tree_host_impl.cc

Issue 279013002: Remove CompositeAndReadback from LayerTreeHost(Impl) and the Proxys. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rm-cnr-lth-proxy-renderer: . Created 6 years, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/trees/layer_tree_host_impl.h" 5 #include "cc/trees/layer_tree_host_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 1077 matching lines...) Expand 10 before | Expand all | Expand 10 after
1088 // list, and restore it after the change. 1088 // list, and restore it after the change.
1089 size_t position_from_end = frame->render_passes.size() - it; 1089 size_t position_from_end = frame->render_passes.size() - it;
1090 RemoveRenderPassesRecursive(render_pass_quad->render_pass_id, frame); 1090 RemoveRenderPassesRecursive(render_pass_quad->render_pass_id, frame);
1091 it = frame->render_passes.size() - position_from_end; 1091 it = frame->render_passes.size() - position_from_end;
1092 DCHECK_GE(frame->render_passes.size(), position_from_end); 1092 DCHECK_GE(frame->render_passes.size(), position_from_end);
1093 } 1093 }
1094 } 1094 }
1095 } 1095 }
1096 1096
1097 DrawSwapReadbackResult::DrawResult LayerTreeHostImpl::PrepareToDraw( 1097 DrawSwapReadbackResult::DrawResult LayerTreeHostImpl::PrepareToDraw(
1098 FrameData* frame, 1098 FrameData* frame) {
1099 const gfx::Rect& damage_rect) {
1100 TRACE_EVENT1("cc", 1099 TRACE_EVENT1("cc",
1101 "LayerTreeHostImpl::PrepareToDraw", 1100 "LayerTreeHostImpl::PrepareToDraw",
1102 "SourceFrameNumber", 1101 "SourceFrameNumber",
1103 active_tree_->source_frame_number()); 1102 active_tree_->source_frame_number());
1104 1103
1105 if (need_to_update_visible_tiles_before_draw_ && 1104 if (need_to_update_visible_tiles_before_draw_ &&
1106 tile_manager_ && tile_manager_->UpdateVisibleTiles()) { 1105 tile_manager_ && tile_manager_->UpdateVisibleTiles()) {
1107 DidInitializeVisibleTile(); 1106 DidInitializeVisibleTile();
1108 } 1107 }
1109 need_to_update_visible_tiles_before_draw_ = true; 1108 need_to_update_visible_tiles_before_draw_ = true;
1110 1109
1111 active_tree_->UpdateDrawProperties(); 1110 active_tree_->UpdateDrawProperties();
1112 1111
1113 frame->render_surface_layer_list = &active_tree_->RenderSurfaceLayerList(); 1112 frame->render_surface_layer_list = &active_tree_->RenderSurfaceLayerList();
1114 frame->render_passes.clear(); 1113 frame->render_passes.clear();
1115 frame->render_passes_by_id.clear(); 1114 frame->render_passes_by_id.clear();
1116 frame->will_draw_layers.clear(); 1115 frame->will_draw_layers.clear();
1117 frame->contains_incomplete_tile = false; 1116 frame->contains_incomplete_tile = false;
1118 frame->has_no_damage = false; 1117 frame->has_no_damage = false;
1119 1118
1120 gfx::Rect device_viewport_damage_rect(damage_rect);
1121 if (active_tree_->root_layer()) { 1119 if (active_tree_->root_layer()) {
1122 device_viewport_damage_rect.Union(viewport_damage_rect_); 1120 gfx::Rect device_viewport_damage_rect = viewport_damage_rect_;
1123 viewport_damage_rect_ = gfx::Rect(); 1121 viewport_damage_rect_ = gfx::Rect();
1124 1122
1125 active_tree_->root_layer()->render_surface()->damage_tracker()-> 1123 active_tree_->root_layer()->render_surface()->damage_tracker()->
1126 AddDamageNextUpdate(device_viewport_damage_rect); 1124 AddDamageNextUpdate(device_viewport_damage_rect);
1127 } 1125 }
1128 1126
1129 DrawSwapReadbackResult::DrawResult draw_result = CalculateRenderPasses(frame); 1127 DrawSwapReadbackResult::DrawResult draw_result = CalculateRenderPasses(frame);
1130 if (draw_result != DrawSwapReadbackResult::DRAW_SUCCESS) { 1128 if (draw_result != DrawSwapReadbackResult::DRAW_SUCCESS) {
1131 DCHECK(!output_surface_->capabilities() 1129 DCHECK(!output_surface_->capabilities()
1132 .draw_and_swap_full_viewport_every_frame); 1130 .draw_and_swap_full_viewport_every_frame);
(...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after
1608 // TODO(jamesr): The renderer_ check is needed to make some of the 1606 // TODO(jamesr): The renderer_ check is needed to make some of the
1609 // LayerTreeHostContextTest tests pass, but shouldn't be necessary (or 1607 // LayerTreeHostContextTest tests pass, but shouldn't be necessary (or
1610 // important) in production. We should adjust the test to not need this. 1608 // important) in production. We should adjust the test to not need this.
1611 if (renderer_) 1609 if (renderer_)
1612 client_->DidLoseOutputSurfaceOnImplThread(); 1610 client_->DidLoseOutputSurfaceOnImplThread();
1613 #if DCHECK_IS_ON 1611 #if DCHECK_IS_ON
1614 did_lose_called_ = true; 1612 did_lose_called_ = true;
1615 #endif 1613 #endif
1616 } 1614 }
1617 1615
1618 void LayerTreeHostImpl::Readback(void* pixels,
1619 const gfx::Rect& rect_in_device_viewport) {
1620 DCHECK(renderer_);
1621 renderer_->GetFramebufferPixels(pixels, rect_in_device_viewport);
1622 }
1623
1624 bool LayerTreeHostImpl::HaveRootScrollLayer() const { 1616 bool LayerTreeHostImpl::HaveRootScrollLayer() const {
1625 return !!InnerViewportScrollLayer(); 1617 return !!InnerViewportScrollLayer();
1626 } 1618 }
1627 1619
1628 LayerImpl* LayerTreeHostImpl::RootLayer() const { 1620 LayerImpl* LayerTreeHostImpl::RootLayer() const {
1629 return active_tree_->root_layer(); 1621 return active_tree_->root_layer();
1630 } 1622 }
1631 1623
1632 LayerImpl* LayerTreeHostImpl::InnerViewportScrollLayer() const { 1624 LayerImpl* LayerTreeHostImpl::InnerViewportScrollLayer() const {
1633 return active_tree_->InnerViewportScrollLayer(); 1625 return active_tree_->InnerViewportScrollLayer();
(...skipping 1512 matching lines...) Expand 10 before | Expand all | Expand 10 after
3146 swap_promise_monitor_.erase(monitor); 3138 swap_promise_monitor_.erase(monitor);
3147 } 3139 }
3148 3140
3149 void LayerTreeHostImpl::NotifySwapPromiseMonitorsOfSetNeedsRedraw() { 3141 void LayerTreeHostImpl::NotifySwapPromiseMonitorsOfSetNeedsRedraw() {
3150 std::set<SwapPromiseMonitor*>::iterator it = swap_promise_monitor_.begin(); 3142 std::set<SwapPromiseMonitor*>::iterator it = swap_promise_monitor_.begin();
3151 for (; it != swap_promise_monitor_.end(); it++) 3143 for (; it != swap_promise_monitor_.end(); it++)
3152 (*it)->OnSetNeedsRedrawOnImpl(); 3144 (*it)->OnSetNeedsRedrawOnImpl();
3153 } 3145 }
3154 3146
3155 } // namespace cc 3147 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698