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

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

Issue 2196023002: cc: Never make a DirectRenderer in LayerTreeHostImpl. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@display-layertreetest
Patch Set: dcheck-delegating: blinktests Created 4 years, 4 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/tiles/tile_manager_unittest.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 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 #include "cc/layers/layer_impl.h" 46 #include "cc/layers/layer_impl.h"
47 #include "cc/layers/layer_iterator.h" 47 #include "cc/layers/layer_iterator.h"
48 #include "cc/layers/painted_scrollbar_layer_impl.h" 48 #include "cc/layers/painted_scrollbar_layer_impl.h"
49 #include "cc/layers/render_surface_impl.h" 49 #include "cc/layers/render_surface_impl.h"
50 #include "cc/layers/scrollbar_layer_impl_base.h" 50 #include "cc/layers/scrollbar_layer_impl_base.h"
51 #include "cc/layers/surface_layer_impl.h" 51 #include "cc/layers/surface_layer_impl.h"
52 #include "cc/layers/viewport.h" 52 #include "cc/layers/viewport.h"
53 #include "cc/output/compositor_frame_metadata.h" 53 #include "cc/output/compositor_frame_metadata.h"
54 #include "cc/output/copy_output_request.h" 54 #include "cc/output/copy_output_request.h"
55 #include "cc/output/delegating_renderer.h" 55 #include "cc/output/delegating_renderer.h"
56 #include "cc/output/gl_renderer.h"
57 #include "cc/output/software_renderer.h"
58 #include "cc/output/texture_mailbox_deleter.h" 56 #include "cc/output/texture_mailbox_deleter.h"
59 #include "cc/quads/render_pass_draw_quad.h" 57 #include "cc/quads/render_pass_draw_quad.h"
60 #include "cc/quads/shared_quad_state.h" 58 #include "cc/quads/shared_quad_state.h"
61 #include "cc/quads/solid_color_draw_quad.h" 59 #include "cc/quads/solid_color_draw_quad.h"
62 #include "cc/quads/texture_draw_quad.h" 60 #include "cc/quads/texture_draw_quad.h"
63 #include "cc/raster/bitmap_raster_buffer_provider.h" 61 #include "cc/raster/bitmap_raster_buffer_provider.h"
64 #include "cc/raster/gpu_raster_buffer_provider.h" 62 #include "cc/raster/gpu_raster_buffer_provider.h"
65 #include "cc/raster/one_copy_raster_buffer_provider.h" 63 #include "cc/raster/one_copy_raster_buffer_provider.h"
66 #include "cc/raster/raster_buffer_provider.h" 64 #include "cc/raster/raster_buffer_provider.h"
67 #include "cc/raster/synchronous_task_graph_runner.h" 65 #include "cc/raster/synchronous_task_graph_runner.h"
(...skipping 2038 matching lines...) Expand 10 before | Expand all | Expand 10 after
2106 pending_tree_->RecreateResources(); 2104 pending_tree_->RecreateResources();
2107 if (recycle_tree_) 2105 if (recycle_tree_)
2108 recycle_tree_->RecreateResources(); 2106 recycle_tree_->RecreateResources();
2109 } 2107 }
2110 2108
2111 void LayerTreeHostImpl::CreateAndSetRenderer() { 2109 void LayerTreeHostImpl::CreateAndSetRenderer() {
2112 DCHECK(!renderer_); 2110 DCHECK(!renderer_);
2113 DCHECK(output_surface_); 2111 DCHECK(output_surface_);
2114 DCHECK(resource_provider_); 2112 DCHECK(resource_provider_);
2115 2113
2116 if (output_surface_->capabilities().delegated_rendering) { 2114 DCHECK(output_surface_->capabilities().delegated_rendering);
2117 renderer_ = 2115 renderer_ =
2118 DelegatingRenderer::Create(this, &settings_.renderer_settings, 2116 DelegatingRenderer::Create(this, &settings_.renderer_settings,
2119 output_surface_, resource_provider_.get());
2120 } else if (output_surface_->context_provider()) {
2121 renderer_ = GLRenderer::Create(
2122 this, &settings_.renderer_settings, output_surface_,
2123 resource_provider_.get(), texture_mailbox_deleter_.get(),
2124 settings_.renderer_settings.highp_threshold_min);
2125 } else if (output_surface_->software_device()) {
2126 renderer_ =
2127 SoftwareRenderer::Create(this, &settings_.renderer_settings,
2128 output_surface_, resource_provider_.get()); 2117 output_surface_, resource_provider_.get());
2129 }
2130 DCHECK(renderer_);
2131
2132 renderer_->SetVisible(visible_); 2118 renderer_->SetVisible(visible_);
2133 SetFullRootLayerDamage(); 2119 SetFullRootLayerDamage();
2134 2120
2135 // See note in LayerTreeImpl::UpdateDrawProperties. Renderer needs to be 2121 // See note in LayerTreeImpl::UpdateDrawProperties. Renderer needs to be
2136 // initialized to get max texture size. Also, after releasing resources, 2122 // initialized to get max texture size. Also, after releasing resources,
2137 // trees need another update to generate new ones. 2123 // trees need another update to generate new ones.
2138 active_tree_->set_needs_update_draw_properties(); 2124 active_tree_->set_needs_update_draw_properties();
2139 if (pending_tree_) 2125 if (pending_tree_)
2140 pending_tree_->set_needs_update_draw_properties(); 2126 pending_tree_->set_needs_update_draw_properties();
2141 client_->UpdateRendererCapabilitiesOnImplThread(); 2127 client_->UpdateRendererCapabilitiesOnImplThread();
(...skipping 1895 matching lines...) Expand 10 before | Expand all | Expand 10 after
4037 return task_runner_provider_->HasImplThread(); 4023 return task_runner_provider_->HasImplThread();
4038 } 4024 }
4039 4025
4040 bool LayerTreeHostImpl::CommitToActiveTree() const { 4026 bool LayerTreeHostImpl::CommitToActiveTree() const {
4041 // In single threaded mode we skip the pending tree and commit directly to the 4027 // In single threaded mode we skip the pending tree and commit directly to the
4042 // active tree. 4028 // active tree.
4043 return !task_runner_provider_->HasImplThread(); 4029 return !task_runner_provider_->HasImplThread();
4044 } 4030 }
4045 4031
4046 } // namespace cc 4032 } // namespace cc
OLDNEW
« no previous file with comments | « cc/tiles/tile_manager_unittest.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