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

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

Issue 2690753002: cc: Move render surface ownership from layers to the effect tree (Closed)
Patch Set: Only update surfaces when can_render_to_separate_surface changes Created 3 years, 10 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_common.cc ('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 <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 870 matching lines...) Expand 10 before | Expand all | Expand 10 after
881 for (LayerIterator it = 881 for (LayerIterator it =
882 LayerIterator::Begin(frame->render_surface_layer_list); 882 LayerIterator::Begin(frame->render_surface_layer_list);
883 it != end; ++it) { 883 it != end; ++it) {
884 auto target_render_pass_id = 884 auto target_render_pass_id =
885 it.target_render_surface_layer()->render_surface()->GetRenderPassId(); 885 it.target_render_surface_layer()->render_surface()->GetRenderPassId();
886 RenderPass* target_render_pass = 886 RenderPass* target_render_pass =
887 FindRenderPassById(frame->render_passes, target_render_pass_id); 887 FindRenderPassById(frame->render_passes, target_render_pass_id);
888 888
889 AppendQuadsData append_quads_data; 889 AppendQuadsData append_quads_data;
890 890
891 RenderSurfaceImpl* render_surface = it->render_surface();
891 if (it.represents_target_render_surface()) { 892 if (it.represents_target_render_surface()) {
892 if (it->render_surface()->HasCopyRequest()) { 893 if (render_surface->HasCopyRequest()) {
893 active_tree() 894 active_tree()
894 ->property_trees() 895 ->property_trees()
895 ->effect_tree.TakeCopyRequestsAndTransformToSurface( 896 ->effect_tree.TakeCopyRequestsAndTransformToSurface(
896 it->render_surface()->EffectTreeIndex(), 897 render_surface->EffectTreeIndex(),
897 &target_render_pass->copy_requests); 898 &target_render_pass->copy_requests);
898 } 899 }
899 } else if (it.represents_contributing_render_surface() && 900 } else if (it.represents_contributing_render_surface() &&
900 it->render_surface()->contributes_to_drawn_surface()) { 901 render_surface->contributes_to_drawn_surface()) {
901 it->render_surface()->AppendQuads(target_render_pass, &append_quads_data); 902 render_surface->AppendQuads(target_render_pass, &append_quads_data);
902 } else if (it.represents_itself() && !it->visible_layer_rect().IsEmpty()) { 903 } else if (it.represents_itself() && !it->visible_layer_rect().IsEmpty()) {
903 bool occluded = 904 bool occluded =
904 it->draw_properties().occlusion_in_content_space.IsOccluded( 905 it->draw_properties().occlusion_in_content_space.IsOccluded(
905 it->visible_layer_rect()); 906 it->visible_layer_rect());
906 if (!occluded && it->WillDraw(draw_mode, resource_provider_.get())) { 907 if (!occluded && it->WillDraw(draw_mode, resource_provider_.get())) {
907 DCHECK_EQ(active_tree_.get(), it->layer_tree_impl()); 908 DCHECK_EQ(active_tree_.get(), it->layer_tree_impl());
908 909
909 frame->will_draw_layers.push_back(*it); 910 frame->will_draw_layers.push_back(*it);
910 if (it->may_contain_video()) 911 if (it->may_contain_video())
911 frame->may_contain_video = true; 912 frame->may_contain_video = true;
(...skipping 3186 matching lines...) Expand 10 before | Expand all | Expand 10 after
4098 worker_context_visibility_ = 4099 worker_context_visibility_ =
4099 worker_context->CacheController()->ClientBecameVisible(); 4100 worker_context->CacheController()->ClientBecameVisible();
4100 } else { 4101 } else {
4101 worker_context->CacheController()->ClientBecameNotVisible( 4102 worker_context->CacheController()->ClientBecameNotVisible(
4102 std::move(worker_context_visibility_)); 4103 std::move(worker_context_visibility_));
4103 } 4104 }
4104 } 4105 }
4105 } 4106 }
4106 4107
4107 } // namespace cc 4108 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_common.cc ('k') | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698