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

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

Issue 14417014: cc: Add tile-free software compositing mode. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 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 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/debug/trace_event.h" 10 #include "base/debug/trace_event.h"
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 time_source_->SetClient(this); 135 time_source_->SetClient(this);
136 } 136 }
137 137
138 LayerTreeHostImpl* layer_tree_host_impl_; 138 LayerTreeHostImpl* layer_tree_host_impl_;
139 scoped_refptr<DelayBasedTimeSource> time_source_; 139 scoped_refptr<DelayBasedTimeSource> time_source_;
140 140
141 DISALLOW_COPY_AND_ASSIGN(LayerTreeHostImplTimeSourceAdapter); 141 DISALLOW_COPY_AND_ASSIGN(LayerTreeHostImplTimeSourceAdapter);
142 }; 142 };
143 143
144 LayerTreeHostImpl::FrameData::FrameData() 144 LayerTreeHostImpl::FrameData::FrameData()
145 : contains_incomplete_tile(false), has_no_damage(false) {} 145 : contains_incomplete_tile(false),
146 has_no_damage(false),
147 cannot_append_tile_draw_quads(false) {}
146 148
147 LayerTreeHostImpl::FrameData::~FrameData() {} 149 LayerTreeHostImpl::FrameData::~FrameData() {}
148 150
149 scoped_ptr<LayerTreeHostImpl> LayerTreeHostImpl::Create( 151 scoped_ptr<LayerTreeHostImpl> LayerTreeHostImpl::Create(
150 const LayerTreeSettings& settings, 152 const LayerTreeSettings& settings,
151 LayerTreeHostImplClient* client, 153 LayerTreeHostImplClient* client,
152 Proxy* proxy, 154 Proxy* proxy,
153 RenderingStatsInstrumentation* rendering_stats_instrumentation) { 155 RenderingStatsInstrumentation* rendering_stats_instrumentation) {
154 return make_scoped_ptr( 156 return make_scoped_ptr(
155 new LayerTreeHostImpl(settings, 157 new LayerTreeHostImpl(settings,
(...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after
599 RenderPass::Id target_render_pass_id = 601 RenderPass::Id target_render_pass_id =
600 it.target_render_surface_layer()->render_surface()->RenderPassId(); 602 it.target_render_surface_layer()->render_surface()->RenderPassId();
601 RenderPass* target_render_pass = 603 RenderPass* target_render_pass =
602 frame->render_passes_by_id[target_render_pass_id]; 604 frame->render_passes_by_id[target_render_pass_id];
603 605
604 bool prevent_occlusion = 606 bool prevent_occlusion =
605 it.target_render_surface_layer()->HasRequestCopyCallback(); 607 it.target_render_surface_layer()->HasRequestCopyCallback();
606 occlusion_tracker.EnterLayer(it, prevent_occlusion); 608 occlusion_tracker.EnterLayer(it, prevent_occlusion);
607 609
608 AppendQuadsData append_quads_data(target_render_pass->id); 610 AppendQuadsData append_quads_data(target_render_pass->id);
611 append_quads_data.cannot_append_tile_draw_quads =
612 frame->cannot_append_tile_draw_quads;
609 613
610 if (it.represents_target_render_surface()) { 614 if (it.represents_target_render_surface()) {
611 if (it->HasRequestCopyCallback()) { 615 if (it->HasRequestCopyCallback()) {
612 have_copy_request = true; 616 have_copy_request = true;
613 it->TakeRequestCopyCallbacks(&target_render_pass->copy_callbacks); 617 it->TakeRequestCopyCallbacks(&target_render_pass->copy_callbacks);
614 } 618 }
615 } else if (it.represents_contributing_render_surface()) { 619 } else if (it.represents_contributing_render_surface()) {
616 RenderPass::Id contributing_render_pass_id = 620 RenderPass::Id contributing_render_pass_id =
617 it->render_surface()->RenderPassId(); 621 it->render_surface()->RenderPassId();
618 RenderPass* contributing_render_pass = 622 RenderPass* contributing_render_pass =
(...skipping 764 matching lines...) Expand 10 before | Expand all | Expand 10 after
1383 1387
1384 if (output_surface->capabilities().has_parent_compositor) { 1388 if (output_surface->capabilities().has_parent_compositor) {
1385 renderer_ = DelegatingRenderer::Create(this, output_surface.get(), 1389 renderer_ = DelegatingRenderer::Create(this, output_surface.get(),
1386 resource_provider.get()); 1390 resource_provider.get());
1387 } else if (output_surface->context3d()) { 1391 } else if (output_surface->context3d()) {
1388 renderer_ = GLRenderer::Create(this, 1392 renderer_ = GLRenderer::Create(this,
1389 output_surface.get(), 1393 output_surface.get(),
1390 resource_provider.get(), 1394 resource_provider.get(),
1391 settings_.highp_threshold_min); 1395 settings_.highp_threshold_min);
1392 } else if (output_surface->software_device()) { 1396 } else if (output_surface->software_device()) {
1397 ResourceProvider* software_resource_provider = NULL;
kaanb1 2013/04/29 16:56:26 nit: consider s/software_resource_provider/resourc
aelias_OOO_until_Jul13 2013/04/30 07:28:20 Deleted this code anyway.
1398 if (!settings().tile_free_software_compositing)
1399 software_resource_provider = resource_provider.get();
1393 renderer_ = SoftwareRenderer::Create(this, 1400 renderer_ = SoftwareRenderer::Create(this,
1394 output_surface.get(), 1401 output_surface.get(),
1395 resource_provider.get()); 1402 software_resource_provider);
1396 } 1403 }
1397 if (!renderer_) 1404 if (!renderer_)
1398 return false; 1405 return false;
1399 1406
1400 resource_provider_ = resource_provider.Pass(); 1407 resource_provider_ = resource_provider.Pass();
1401 output_surface_ = output_surface.Pass(); 1408 output_surface_ = output_surface.Pass();
1402 1409
1403 if (!visible_) 1410 if (!visible_)
1404 renderer_->SetVisible(visible_); 1411 renderer_->SetVisible(visible_);
1405 1412
(...skipping 731 matching lines...) Expand 10 before | Expand all | Expand 10 after
2137 } 2144 }
2138 2145
2139 void LayerTreeHostImpl::SetDebugState(const LayerTreeDebugState& debug_state) { 2146 void LayerTreeHostImpl::SetDebugState(const LayerTreeDebugState& debug_state) {
2140 if (debug_state_.continuous_painting != debug_state.continuous_painting) 2147 if (debug_state_.continuous_painting != debug_state.continuous_painting)
2141 paint_time_counter_->ClearHistory(); 2148 paint_time_counter_->ClearHistory();
2142 2149
2143 debug_state_ = debug_state; 2150 debug_state_ = debug_state;
2144 } 2151 }
2145 2152
2146 } // namespace cc 2153 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698