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

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

Issue 675083002: Add cc::RendererSettings for use in with cc::Display (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month 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/test/pixel_test.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 <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 1496 matching lines...) Expand 10 before | Expand all | Expand 10 after
1507 TRACE_EVENT0("cc", "DrawLayers.UpdateHudTexture"); 1507 TRACE_EVENT0("cc", "DrawLayers.UpdateHudTexture");
1508 active_tree_->hud_layer()->UpdateHudTexture(draw_mode, 1508 active_tree_->hud_layer()->UpdateHudTexture(draw_mode,
1509 resource_provider_.get()); 1509 resource_provider_.get());
1510 } 1510 }
1511 1511
1512 if (draw_mode == DRAW_MODE_RESOURCELESS_SOFTWARE) { 1512 if (draw_mode == DRAW_MODE_RESOURCELESS_SOFTWARE) {
1513 bool disable_picture_quad_image_filtering = 1513 bool disable_picture_quad_image_filtering =
1514 IsActivelyScrolling() || needs_animate_layers(); 1514 IsActivelyScrolling() || needs_animate_layers();
1515 1515
1516 scoped_ptr<SoftwareRenderer> temp_software_renderer = 1516 scoped_ptr<SoftwareRenderer> temp_software_renderer =
1517 SoftwareRenderer::Create(this, &settings_, output_surface_.get(), NULL); 1517 SoftwareRenderer::Create(this, &settings_.renderer_settings,
1518 output_surface_.get(), NULL);
1518 temp_software_renderer->DrawFrame(&frame->render_passes, 1519 temp_software_renderer->DrawFrame(&frame->render_passes,
1519 device_scale_factor_, 1520 device_scale_factor_,
1520 DeviceViewport(), 1521 DeviceViewport(),
1521 DeviceClip(), 1522 DeviceClip(),
1522 disable_picture_quad_image_filtering); 1523 disable_picture_quad_image_filtering);
1523 } else { 1524 } else {
1524 renderer_->DrawFrame(&frame->render_passes, 1525 renderer_->DrawFrame(&frame->render_passes,
1525 device_scale_factor_, 1526 device_scale_factor_,
1526 DeviceViewport(), 1527 DeviceViewport(),
1527 DeviceClip(), 1528 DeviceClip(),
(...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after
1889 1890
1890 EvictAllUIResources(); 1891 EvictAllUIResources();
1891 } 1892 }
1892 1893
1893 void LayerTreeHostImpl::CreateAndSetRenderer() { 1894 void LayerTreeHostImpl::CreateAndSetRenderer() {
1894 DCHECK(!renderer_); 1895 DCHECK(!renderer_);
1895 DCHECK(output_surface_); 1896 DCHECK(output_surface_);
1896 DCHECK(resource_provider_); 1897 DCHECK(resource_provider_);
1897 1898
1898 if (output_surface_->capabilities().delegated_rendering) { 1899 if (output_surface_->capabilities().delegated_rendering) {
1899 renderer_ = DelegatingRenderer::Create( 1900 renderer_ = DelegatingRenderer::Create(this, &settings_.renderer_settings,
1900 this, &settings_, output_surface_.get(), resource_provider_.get()); 1901 output_surface_.get(),
1902 resource_provider_.get());
1901 } else if (output_surface_->context_provider()) { 1903 } else if (output_surface_->context_provider()) {
1902 renderer_ = GLRenderer::Create(this, 1904 renderer_ = GLRenderer::Create(
1903 &settings_, 1905 this, &settings_.renderer_settings, output_surface_.get(),
1904 output_surface_.get(), 1906 resource_provider_.get(), texture_mailbox_deleter_.get(),
1905 resource_provider_.get(), 1907 settings_.renderer_settings.highp_threshold_min);
1906 texture_mailbox_deleter_.get(),
1907 settings_.highp_threshold_min);
1908 } else if (output_surface_->software_device()) { 1908 } else if (output_surface_->software_device()) {
1909 renderer_ = SoftwareRenderer::Create( 1909 renderer_ = SoftwareRenderer::Create(this, &settings_.renderer_settings,
1910 this, &settings_, output_surface_.get(), resource_provider_.get()); 1910 output_surface_.get(),
1911 resource_provider_.get());
1911 } 1912 }
1912 DCHECK(renderer_); 1913 DCHECK(renderer_);
1913 1914
1914 renderer_->SetVisible(visible_); 1915 renderer_->SetVisible(visible_);
1915 SetFullRootLayerDamage(); 1916 SetFullRootLayerDamage();
1916 1917
1917 // See note in LayerTreeImpl::UpdateDrawProperties. Renderer needs to be 1918 // See note in LayerTreeImpl::UpdateDrawProperties. Renderer needs to be
1918 // initialized to get max texture size. Also, after releasing resources, 1919 // initialized to get max texture size. Also, after releasing resources,
1919 // trees need another update to generate new ones. 1920 // trees need another update to generate new ones.
1920 active_tree_->set_needs_update_draw_properties(); 1921 active_tree_->set_needs_update_draw_properties();
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
2019 context_provider, 2020 context_provider,
2020 resource_provider_.get(), 2021 resource_provider_.get(),
2021 staging_resource_pool_.get()); 2022 staging_resource_pool_.get());
2022 } else { 2023 } else {
2023 *resource_pool = ResourcePool::Create( 2024 *resource_pool = ResourcePool::Create(
2024 resource_provider_.get(), 2025 resource_provider_.get(),
2025 GL_TEXTURE_2D, 2026 GL_TEXTURE_2D,
2026 resource_provider_->memory_efficient_texture_format()); 2027 resource_provider_->memory_efficient_texture_format());
2027 2028
2028 *raster_worker_pool = PixelBufferRasterWorkerPool::Create( 2029 *raster_worker_pool = PixelBufferRasterWorkerPool::Create(
2029 task_runner, 2030 task_runner, RasterWorkerPool::GetTaskGraphRunner(), context_provider,
2030 RasterWorkerPool::GetTaskGraphRunner(),
2031 context_provider,
2032 resource_provider_.get(), 2031 resource_provider_.get(),
2033 GetMaxTransferBufferUsageBytes(context_provider->ContextCapabilities(), 2032 GetMaxTransferBufferUsageBytes(
2034 settings_.refresh_rate)); 2033 context_provider->ContextCapabilities(),
2034 settings_.renderer_settings.refresh_rate));
2035 } 2035 }
2036 } 2036 }
2037 2037
2038 void LayerTreeHostImpl::DestroyTileManager() { 2038 void LayerTreeHostImpl::DestroyTileManager() {
2039 tile_manager_ = nullptr; 2039 tile_manager_ = nullptr;
2040 resource_pool_ = nullptr; 2040 resource_pool_ = nullptr;
2041 staging_resource_pool_ = nullptr; 2041 staging_resource_pool_ = nullptr;
2042 raster_worker_pool_ = nullptr; 2042 raster_worker_pool_ = nullptr;
2043 single_thread_synchronous_task_graph_runner_ = nullptr; 2043 single_thread_synchronous_task_graph_runner_ = nullptr;
2044 } 2044 }
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
2079 // Note: order is important here. 2079 // Note: order is important here.
2080 renderer_ = nullptr; 2080 renderer_ = nullptr;
2081 DestroyTileManager(); 2081 DestroyTileManager();
2082 resource_provider_ = nullptr; 2082 resource_provider_ = nullptr;
2083 output_surface_ = nullptr; 2083 output_surface_ = nullptr;
2084 2084
2085 if (!output_surface->BindToClient(this)) 2085 if (!output_surface->BindToClient(this))
2086 return false; 2086 return false;
2087 2087
2088 output_surface_ = output_surface.Pass(); 2088 output_surface_ = output_surface.Pass();
2089 resource_provider_ = 2089 resource_provider_ = ResourceProvider::Create(
2090 ResourceProvider::Create(output_surface_.get(), 2090 output_surface_.get(), shared_bitmap_manager_, gpu_memory_buffer_manager_,
2091 shared_bitmap_manager_, 2091 proxy_->blocking_main_thread_task_runner(),
2092 gpu_memory_buffer_manager_, 2092 settings_.renderer_settings.highp_threshold_min,
2093 proxy_->blocking_main_thread_task_runner(), 2093 settings_.renderer_settings.use_rgba_4444_textures,
2094 settings_.highp_threshold_min, 2094 settings_.renderer_settings.texture_id_allocation_chunk_size);
2095 settings_.use_rgba_4444_textures,
2096 settings_.texture_id_allocation_chunk_size);
2097 2095
2098 if (output_surface_->capabilities().deferred_gl_initialization) 2096 if (output_surface_->capabilities().deferred_gl_initialization)
2099 EnforceZeroBudget(true); 2097 EnforceZeroBudget(true);
2100 2098
2101 CreateAndSetRenderer(); 2099 CreateAndSetRenderer();
2102 2100
2103 if (settings_.impl_side_painting) 2101 if (settings_.impl_side_painting)
2104 CreateAndSetTileManager(); 2102 CreateAndSetTileManager();
2105 2103
2106 // Initialize vsync parameters to sane values. 2104 // Initialize vsync parameters to sane values.
2107 const base::TimeDelta display_refresh_interval = 2105 const base::TimeDelta display_refresh_interval =
2108 base::TimeDelta::FromMicroseconds(base::Time::kMicrosecondsPerSecond / 2106 base::TimeDelta::FromMicroseconds(
2109 settings_.refresh_rate); 2107 base::Time::kMicrosecondsPerSecond /
2108 settings_.renderer_settings.refresh_rate);
2110 CommitVSyncParameters(base::TimeTicks(), display_refresh_interval); 2109 CommitVSyncParameters(base::TimeTicks(), display_refresh_interval);
2111 2110
2112 // TODO(brianderson): Don't use a hard-coded parent draw time. 2111 // TODO(brianderson): Don't use a hard-coded parent draw time.
2113 base::TimeDelta parent_draw_time = 2112 base::TimeDelta parent_draw_time =
2114 (!settings_.use_external_begin_frame_source && 2113 (!settings_.use_external_begin_frame_source &&
2115 output_surface_->capabilities().adjust_deadline_for_parent) 2114 output_surface_->capabilities().adjust_deadline_for_parent)
2116 ? BeginFrameArgs::DefaultEstimatedParentDrawTime() 2115 ? BeginFrameArgs::DefaultEstimatedParentDrawTime()
2117 : base::TimeDelta(); 2116 : base::TimeDelta();
2118 client_->SetEstimatedParentDrawTime(parent_draw_time); 2117 client_->SetEstimatedParentDrawTime(parent_draw_time);
2119 2118
(...skipping 1322 matching lines...) Expand 10 before | Expand all | Expand 10 after
3442 } 3441 }
3443 3442
3444 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) { 3443 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) {
3445 std::vector<PictureLayerImpl*>::iterator it = 3444 std::vector<PictureLayerImpl*>::iterator it =
3446 std::find(picture_layers_.begin(), picture_layers_.end(), layer); 3445 std::find(picture_layers_.begin(), picture_layers_.end(), layer);
3447 DCHECK(it != picture_layers_.end()); 3446 DCHECK(it != picture_layers_.end());
3448 picture_layers_.erase(it); 3447 picture_layers_.erase(it);
3449 } 3448 }
3450 3449
3451 } // namespace cc 3450 } // namespace cc
OLDNEW
« no previous file with comments | « cc/test/pixel_test.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