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

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

Issue 93663004: [#2] Pass gfx structs by const ref (gfx::Rect, gfx::RectF) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase to ToT, fix builds on non-linux platforms! Created 6 years, 11 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
« no previous file with comments | « cc/trees/layer_tree_host_impl.h ('k') | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 583 matching lines...) Expand 10 before | Expand all | Expand 10 after
594 layer->render_surface()->AppendQuads(&quad_culler, 594 layer->render_surface()->AppendQuads(&quad_culler,
595 append_quads_data, 595 append_quads_data,
596 is_replica, 596 is_replica,
597 contributing_render_pass->id); 597 contributing_render_pass->id);
598 } 598 }
599 } 599 }
600 600
601 static void AppendQuadsToFillScreen( 601 static void AppendQuadsToFillScreen(
602 ResourceProvider::ResourceId overhang_resource_id, 602 ResourceProvider::ResourceId overhang_resource_id,
603 gfx::SizeF overhang_resource_scaled_size, 603 gfx::SizeF overhang_resource_scaled_size,
604 gfx::Rect root_scroll_layer_rect, 604 const gfx::Rect& root_scroll_layer_rect,
605 RenderPass* target_render_pass, 605 RenderPass* target_render_pass,
606 LayerImpl* root_layer, 606 LayerImpl* root_layer,
607 SkColor screen_background_color, 607 SkColor screen_background_color,
608 const OcclusionTrackerImpl& occlusion_tracker) { 608 const OcclusionTrackerImpl& occlusion_tracker) {
609 if (!root_layer || !SkColorGetA(screen_background_color)) 609 if (!root_layer || !SkColorGetA(screen_background_color))
610 return; 610 return;
611 611
612 Region fill_region = occlusion_tracker.ComputeVisibleRegionInScreen(); 612 Region fill_region = occlusion_tracker.ComputeVisibleRegionInScreen();
613 if (fill_region.IsEmpty()) 613 if (fill_region.IsEmpty())
614 return; 614 return;
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after
953 } 953 }
954 954
955 time_source_client_adapter_->SetActive(enabled); 955 time_source_client_adapter_->SetActive(enabled);
956 } 956 }
957 957
958 void LayerTreeHostImpl::DidAnimateScrollOffset() { 958 void LayerTreeHostImpl::DidAnimateScrollOffset() {
959 client_->SetNeedsCommitOnImplThread(); 959 client_->SetNeedsCommitOnImplThread();
960 client_->RenewTreePriority(); 960 client_->RenewTreePriority();
961 } 961 }
962 962
963 void LayerTreeHostImpl::SetViewportDamage(gfx::Rect damage_rect) { 963 void LayerTreeHostImpl::SetViewportDamage(const gfx::Rect& damage_rect) {
964 viewport_damage_rect_.Union(damage_rect); 964 viewport_damage_rect_.Union(damage_rect);
965 } 965 }
966 966
967 static inline RenderPass* FindRenderPassById( 967 static inline RenderPass* FindRenderPassById(
968 RenderPass::Id render_pass_id, 968 RenderPass::Id render_pass_id,
969 const LayerTreeHostImpl::FrameData& frame) { 969 const LayerTreeHostImpl::FrameData& frame) {
970 RenderPassIdHashMap::const_iterator it = 970 RenderPassIdHashMap::const_iterator it =
971 frame.render_passes_by_id.find(render_pass_id); 971 frame.render_passes_by_id.find(render_pass_id);
972 return it != frame.render_passes_by_id.end() ? it->second : NULL; 972 return it != frame.render_passes_by_id.end() ? it->second : NULL;
973 } 973 }
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
1070 // list, and restore it after the change. 1070 // list, and restore it after the change.
1071 size_t position_from_end = frame->render_passes.size() - it; 1071 size_t position_from_end = frame->render_passes.size() - it;
1072 RemoveRenderPassesRecursive(render_pass_quad->render_pass_id, frame); 1072 RemoveRenderPassesRecursive(render_pass_quad->render_pass_id, frame);
1073 it = frame->render_passes.size() - position_from_end; 1073 it = frame->render_passes.size() - position_from_end;
1074 DCHECK_GE(frame->render_passes.size(), position_from_end); 1074 DCHECK_GE(frame->render_passes.size(), position_from_end);
1075 } 1075 }
1076 } 1076 }
1077 } 1077 }
1078 1078
1079 bool LayerTreeHostImpl::PrepareToDraw(FrameData* frame, 1079 bool LayerTreeHostImpl::PrepareToDraw(FrameData* frame,
1080 gfx::Rect device_viewport_damage_rect) { 1080 const gfx::Rect& damage_rect) {
1081 TRACE_EVENT1("cc", 1081 TRACE_EVENT1("cc",
1082 "LayerTreeHostImpl::PrepareToDraw", 1082 "LayerTreeHostImpl::PrepareToDraw",
1083 "SourceFrameNumber", 1083 "SourceFrameNumber",
1084 active_tree_->source_frame_number()); 1084 active_tree_->source_frame_number());
1085 1085
1086 if (need_to_update_visible_tiles_before_draw_ && 1086 if (need_to_update_visible_tiles_before_draw_ &&
1087 tile_manager_ && tile_manager_->UpdateVisibleTiles()) { 1087 tile_manager_ && tile_manager_->UpdateVisibleTiles()) {
1088 DidInitializeVisibleTile(); 1088 DidInitializeVisibleTile();
1089 } 1089 }
1090 need_to_update_visible_tiles_before_draw_ = true; 1090 need_to_update_visible_tiles_before_draw_ = true;
1091 1091
1092 active_tree_->UpdateDrawProperties(); 1092 active_tree_->UpdateDrawProperties();
1093 1093
1094 frame->render_surface_layer_list = &active_tree_->RenderSurfaceLayerList(); 1094 frame->render_surface_layer_list = &active_tree_->RenderSurfaceLayerList();
1095 frame->render_passes.clear(); 1095 frame->render_passes.clear();
1096 frame->render_passes_by_id.clear(); 1096 frame->render_passes_by_id.clear();
1097 frame->will_draw_layers.clear(); 1097 frame->will_draw_layers.clear();
1098 frame->contains_incomplete_tile = false; 1098 frame->contains_incomplete_tile = false;
1099 frame->has_no_damage = false; 1099 frame->has_no_damage = false;
1100 1100
1101 gfx::Rect device_viewport_damage_rect(damage_rect);
1101 if (active_tree_->root_layer()) { 1102 if (active_tree_->root_layer()) {
1102 device_viewport_damage_rect.Union(viewport_damage_rect_); 1103 device_viewport_damage_rect.Union(viewport_damage_rect_);
1103 viewport_damage_rect_ = gfx::Rect(); 1104 viewport_damage_rect_ = gfx::Rect();
1104 1105
1105 active_tree_->root_layer()->render_surface()->damage_tracker()-> 1106 active_tree_->root_layer()->render_surface()->damage_tracker()->
1106 AddDamageNextUpdate(device_viewport_damage_rect); 1107 AddDamageNextUpdate(device_viewport_damage_rect);
1107 } 1108 }
1108 1109
1109 if (!CalculateRenderPasses(frame)) { 1110 if (!CalculateRenderPasses(frame)) {
1110 DCHECK(!output_surface_->capabilities() 1111 DCHECK(!output_surface_->capabilities()
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
1239 old_policy.priority_cutoff_when_visible) { 1240 old_policy.priority_cutoff_when_visible) {
1240 needs_commit = false; 1241 needs_commit = false;
1241 } 1242 }
1242 1243
1243 if (needs_commit) 1244 if (needs_commit)
1244 client_->SetNeedsCommitOnImplThread(); 1245 client_->SetNeedsCommitOnImplThread();
1245 } 1246 }
1246 1247
1247 void LayerTreeHostImpl::SetExternalDrawConstraints( 1248 void LayerTreeHostImpl::SetExternalDrawConstraints(
1248 const gfx::Transform& transform, 1249 const gfx::Transform& transform,
1249 gfx::Rect viewport, 1250 const gfx::Rect& viewport,
1250 gfx::Rect clip, 1251 const gfx::Rect& clip,
1251 bool valid_for_tile_management) { 1252 bool valid_for_tile_management) {
1252 external_transform_ = transform; 1253 external_transform_ = transform;
1253 external_viewport_ = viewport; 1254 external_viewport_ = viewport;
1254 external_clip_ = clip; 1255 external_clip_ = clip;
1255 device_viewport_valid_for_tile_management_ = valid_for_tile_management; 1256 device_viewport_valid_for_tile_management_ = valid_for_tile_management;
1256 } 1257 }
1257 1258
1258 void LayerTreeHostImpl::SetNeedsRedrawRect(gfx::Rect damage_rect) { 1259 void LayerTreeHostImpl::SetNeedsRedrawRect(const gfx::Rect& damage_rect) {
1259 if (damage_rect.IsEmpty()) 1260 if (damage_rect.IsEmpty())
1260 return; 1261 return;
1261 NotifySwapPromiseMonitorsOfSetNeedsRedraw(); 1262 NotifySwapPromiseMonitorsOfSetNeedsRedraw();
1262 client_->SetNeedsRedrawRectOnImplThread(damage_rect); 1263 client_->SetNeedsRedrawRectOnImplThread(damage_rect);
1263 } 1264 }
1264 1265
1265 void LayerTreeHostImpl::BeginImplFrame(const BeginFrameArgs& args) { 1266 void LayerTreeHostImpl::BeginImplFrame(const BeginFrameArgs& args) {
1266 client_->BeginImplFrame(args); 1267 client_->BeginImplFrame(args);
1267 } 1268 }
1268 1269
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
1493 // LayerTreeHostContextTest tests pass, but shouldn't be necessary (or 1494 // LayerTreeHostContextTest tests pass, but shouldn't be necessary (or
1494 // important) in production. We should adjust the test to not need this. 1495 // important) in production. We should adjust the test to not need this.
1495 if (renderer_) 1496 if (renderer_)
1496 client_->DidLoseOutputSurfaceOnImplThread(); 1497 client_->DidLoseOutputSurfaceOnImplThread();
1497 #ifndef NDEBUG 1498 #ifndef NDEBUG
1498 did_lose_called_ = true; 1499 did_lose_called_ = true;
1499 #endif 1500 #endif
1500 } 1501 }
1501 1502
1502 void LayerTreeHostImpl::Readback(void* pixels, 1503 void LayerTreeHostImpl::Readback(void* pixels,
1503 gfx::Rect rect_in_device_viewport) { 1504 const gfx::Rect& rect_in_device_viewport) {
1504 DCHECK(renderer_); 1505 DCHECK(renderer_);
1505 renderer_->GetFramebufferPixels(pixels, rect_in_device_viewport); 1506 renderer_->GetFramebufferPixels(pixels, rect_in_device_viewport);
1506 } 1507 }
1507 1508
1508 bool LayerTreeHostImpl::HaveRootScrollLayer() const { 1509 bool LayerTreeHostImpl::HaveRootScrollLayer() const {
1509 return !!RootScrollLayer(); 1510 return !!RootScrollLayer();
1510 } 1511 }
1511 1512
1512 LayerImpl* LayerTreeHostImpl::RootLayer() const { 1513 LayerImpl* LayerTreeHostImpl::RootLayer() const {
1513 return active_tree_->root_layer(); 1514 return active_tree_->root_layer();
(...skipping 1393 matching lines...) Expand 10 before | Expand all | Expand 10 after
2907 swap_promise_monitor_.erase(monitor); 2908 swap_promise_monitor_.erase(monitor);
2908 } 2909 }
2909 2910
2910 void LayerTreeHostImpl::NotifySwapPromiseMonitorsOfSetNeedsRedraw() { 2911 void LayerTreeHostImpl::NotifySwapPromiseMonitorsOfSetNeedsRedraw() {
2911 std::set<SwapPromiseMonitor*>::iterator it = swap_promise_monitor_.begin(); 2912 std::set<SwapPromiseMonitor*>::iterator it = swap_promise_monitor_.begin();
2912 for (; it != swap_promise_monitor_.end(); it++) 2913 for (; it != swap_promise_monitor_.end(); it++)
2913 (*it)->OnSetNeedsRedrawOnImpl(); 2914 (*it)->OnSetNeedsRedrawOnImpl();
2914 } 2915 }
2915 2916
2916 } // namespace cc 2917 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl.h ('k') | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698