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

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

Issue 296453009: cc: Get rid of rasterizer delegate. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: removed redundant get Created 6 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
« no previous file with comments | « cc/trees/layer_tree_host_impl.h ('k') | no next file » | 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 284 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 // made a contract with our animation controllers that the registrar 295 // made a contract with our animation controllers that the registrar
296 // will outlive them, and we must make good. 296 // will outlive them, and we must make good.
297 if (recycle_tree_) 297 if (recycle_tree_)
298 recycle_tree_->Shutdown(); 298 recycle_tree_->Shutdown();
299 if (pending_tree_) 299 if (pending_tree_)
300 pending_tree_->Shutdown(); 300 pending_tree_->Shutdown();
301 active_tree_->Shutdown(); 301 active_tree_->Shutdown();
302 recycle_tree_.reset(); 302 recycle_tree_.reset();
303 pending_tree_.reset(); 303 pending_tree_.reset();
304 active_tree_.reset(); 304 active_tree_.reset();
305 tile_manager_.reset(); 305 DestroyTileManager();
306 resource_pool_.reset();
307 raster_worker_pool_.reset();
308 direct_raster_worker_pool_.reset();
309 staging_resource_pool_.reset();
310 } 306 }
311 307
312 void LayerTreeHostImpl::BeginMainFrameAborted(bool did_handle) { 308 void LayerTreeHostImpl::BeginMainFrameAborted(bool did_handle) {
313 // If the begin frame data was handled, then scroll and scale set was applied 309 // If the begin frame data was handled, then scroll and scale set was applied
314 // by the main thread, so the active tree needs to be updated as if these sent 310 // by the main thread, so the active tree needs to be updated as if these sent
315 // values were applied and committed. 311 // values were applied and committed.
316 if (did_handle) { 312 if (did_handle) {
317 active_tree_->ApplySentScrollAndScaleDeltasFromAbortedCommit(); 313 active_tree_->ApplySentScrollAndScaleDeltasFromAbortedCommit();
318 active_tree_->ResetContentsTexturesPurged(); 314 active_tree_->ResetContentsTexturesPurged();
319 } 315 }
(...skipping 1204 matching lines...) Expand 10 before | Expand all | Expand 10 after
1524 return renderer_ && renderer_->IsContextLost(); 1520 return renderer_ && renderer_->IsContextLost();
1525 } 1521 }
1526 1522
1527 void LayerTreeHostImpl::SetUseGpuRasterization(bool use_gpu) { 1523 void LayerTreeHostImpl::SetUseGpuRasterization(bool use_gpu) {
1528 if (use_gpu == use_gpu_rasterization_) 1524 if (use_gpu == use_gpu_rasterization_)
1529 return; 1525 return;
1530 1526
1531 use_gpu_rasterization_ = use_gpu; 1527 use_gpu_rasterization_ = use_gpu;
1532 ReleaseTreeResources(); 1528 ReleaseTreeResources();
1533 1529
1530 // Replace existing tile manager with another one that uses appropriate
1531 // rasterizer.
1532 if (tile_manager_) {
1533 DestroyTileManager();
1534 CreateAndSetTileManager();
1535 }
1536
1534 // We have released tilings for both active and pending tree. 1537 // We have released tilings for both active and pending tree.
1535 // We would not have any content to draw until the pending tree is activated. 1538 // We would not have any content to draw until the pending tree is activated.
1536 // Prevent the active tree from drawing until activation. 1539 // Prevent the active tree from drawing until activation.
1537 active_tree_->SetRequiresHighResToDraw(); 1540 active_tree_->SetRequiresHighResToDraw();
1538 } 1541 }
1539 1542
1540 const RendererCapabilitiesImpl& 1543 const RendererCapabilitiesImpl&
1541 LayerTreeHostImpl::GetRendererCapabilities() const { 1544 LayerTreeHostImpl::GetRendererCapabilities() const {
1542 return renderer_->Capabilities(); 1545 return renderer_->Capabilities();
1543 } 1546 }
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after
1817 void LayerTreeHostImpl::ReleaseTreeResources() { 1820 void LayerTreeHostImpl::ReleaseTreeResources() {
1818 active_tree_->ReleaseResources(); 1821 active_tree_->ReleaseResources();
1819 if (pending_tree_) 1822 if (pending_tree_)
1820 pending_tree_->ReleaseResources(); 1823 pending_tree_->ReleaseResources();
1821 if (recycle_tree_) 1824 if (recycle_tree_)
1822 recycle_tree_->ReleaseResources(); 1825 recycle_tree_->ReleaseResources();
1823 1826
1824 EvictAllUIResources(); 1827 EvictAllUIResources();
1825 } 1828 }
1826 1829
1827 void LayerTreeHostImpl::CreateAndSetRenderer( 1830 void LayerTreeHostImpl::CreateAndSetRenderer() {
1828 OutputSurface* output_surface,
1829 ResourceProvider* resource_provider) {
1830 DCHECK(!renderer_); 1831 DCHECK(!renderer_);
1831 if (output_surface->capabilities().delegated_rendering) { 1832 DCHECK(output_surface_);
1833 DCHECK(resource_provider_);
1834
1835 if (output_surface_->capabilities().delegated_rendering) {
1832 renderer_ = DelegatingRenderer::Create( 1836 renderer_ = DelegatingRenderer::Create(
1833 this, &settings_, output_surface, resource_provider); 1837 this, &settings_, output_surface_.get(), resource_provider_.get());
1834 } else if (output_surface->context_provider()) { 1838 } else if (output_surface_->context_provider()) {
1835 renderer_ = GLRenderer::Create(this, 1839 renderer_ = GLRenderer::Create(this,
1836 &settings_, 1840 &settings_,
1837 output_surface, 1841 output_surface_.get(),
1838 resource_provider, 1842 resource_provider_.get(),
1839 texture_mailbox_deleter_.get(), 1843 texture_mailbox_deleter_.get(),
1840 settings_.highp_threshold_min); 1844 settings_.highp_threshold_min);
1841 } else if (output_surface->software_device()) { 1845 } else if (output_surface_->software_device()) {
1842 renderer_ = SoftwareRenderer::Create( 1846 renderer_ = SoftwareRenderer::Create(
1843 this, &settings_, output_surface, resource_provider); 1847 this, &settings_, output_surface_.get(), resource_provider_.get());
1844 } 1848 }
1845 DCHECK(renderer_); 1849 DCHECK(renderer_);
1846 1850
1847 renderer_->SetVisible(visible_); 1851 renderer_->SetVisible(visible_);
1848 SetFullRootLayerDamage(); 1852 SetFullRootLayerDamage();
1849 1853
1850 // See note in LayerTreeImpl::UpdateDrawProperties. Renderer needs to be 1854 // See note in LayerTreeImpl::UpdateDrawProperties. Renderer needs to be
1851 // initialized to get max texture size. Also, after releasing resources, 1855 // initialized to get max texture size. Also, after releasing resources,
1852 // trees need another update to generate new ones. 1856 // trees need another update to generate new ones.
1853 active_tree_->set_needs_update_draw_properties(); 1857 active_tree_->set_needs_update_draw_properties();
1854 if (pending_tree_) 1858 if (pending_tree_)
1855 pending_tree_->set_needs_update_draw_properties(); 1859 pending_tree_->set_needs_update_draw_properties();
1856 client_->UpdateRendererCapabilitiesOnImplThread(); 1860 client_->UpdateRendererCapabilitiesOnImplThread();
1857 } 1861 }
1858 1862
1859 void LayerTreeHostImpl::CreateAndSetTileManager( 1863 void LayerTreeHostImpl::CreateAndSetTileManager() {
1860 ResourceProvider* resource_provider, 1864 DCHECK(!tile_manager_);
1861 ContextProvider* context_provider,
1862 bool use_zero_copy,
1863 bool use_one_copy,
1864 bool allow_rasterize_on_demand) {
1865 DCHECK(settings_.impl_side_painting); 1865 DCHECK(settings_.impl_side_painting);
1866 DCHECK(resource_provider); 1866 DCHECK(output_surface_);
1867 DCHECK(resource_provider_);
1867 DCHECK(proxy_->ImplThreadTaskRunner()); 1868 DCHECK(proxy_->ImplThreadTaskRunner());
1868 1869
1870 ContextProvider* context_provider = output_surface_->context_provider();
1869 transfer_buffer_memory_limit_ = 1871 transfer_buffer_memory_limit_ =
1870 GetMaxTransferBufferUsageBytes(context_provider); 1872 GetMaxTransferBufferUsageBytes(context_provider);
1871 1873
1872 if (use_zero_copy) { 1874 if (use_gpu_rasterization_ && context_provider) {
1873 resource_pool_ = 1875 resource_pool_ =
1874 ResourcePool::Create(resource_provider, 1876 ResourcePool::Create(resource_provider_.get(),
1877 GL_TEXTURE_2D,
1878 resource_provider_->best_texture_format());
1879
1880 raster_worker_pool_ =
1881 DirectRasterWorkerPool::Create(proxy_->ImplThreadTaskRunner(),
1882 resource_provider_.get(),
1883 context_provider);
1884 } else if (UseZeroCopyTextureUpload()) {
1885 resource_pool_ =
1886 ResourcePool::Create(resource_provider_.get(),
1875 GetMapImageTextureTarget(context_provider), 1887 GetMapImageTextureTarget(context_provider),
1876 resource_provider->best_texture_format()); 1888 resource_provider_->best_texture_format());
1889
1877 raster_worker_pool_ = 1890 raster_worker_pool_ =
1878 ImageRasterWorkerPool::Create(proxy_->ImplThreadTaskRunner(), 1891 ImageRasterWorkerPool::Create(proxy_->ImplThreadTaskRunner(),
1879 RasterWorkerPool::GetTaskGraphRunner(), 1892 RasterWorkerPool::GetTaskGraphRunner(),
1880 resource_provider); 1893 resource_provider_.get());
1881 } else if (use_one_copy) { 1894 } else if (UseOneCopyTextureUpload()) {
1882 // We need to create a staging resource pool when using copy rasterizer. 1895 // We need to create a staging resource pool when using copy rasterizer.
1883 staging_resource_pool_ = 1896 staging_resource_pool_ =
1884 ResourcePool::Create(resource_provider, 1897 ResourcePool::Create(resource_provider_.get(),
1885 GetMapImageTextureTarget(context_provider), 1898 GetMapImageTextureTarget(context_provider),
1886 resource_provider->best_texture_format()); 1899 resource_provider_->best_texture_format());
1887 resource_pool_ = 1900 resource_pool_ =
1888 ResourcePool::Create(resource_provider, 1901 ResourcePool::Create(resource_provider_.get(),
1889 GL_TEXTURE_2D, 1902 GL_TEXTURE_2D,
1890 resource_provider->best_texture_format()); 1903 resource_provider_->best_texture_format());
1891 1904
1892 raster_worker_pool_ = ImageCopyRasterWorkerPool::Create( 1905 raster_worker_pool_ = ImageCopyRasterWorkerPool::Create(
1893 proxy_->ImplThreadTaskRunner(), 1906 proxy_->ImplThreadTaskRunner(),
1894 RasterWorkerPool::GetTaskGraphRunner(), 1907 RasterWorkerPool::GetTaskGraphRunner(),
1895 resource_provider, 1908 resource_provider_.get(),
1896 staging_resource_pool_.get()); 1909 staging_resource_pool_.get());
1897 } else { 1910 } else {
1911 resource_pool_ = ResourcePool::Create(
1912 resource_provider_.get(),
1913 GL_TEXTURE_2D,
1914 resource_provider_->memory_efficient_texture_format());
1915
1898 raster_worker_pool_ = PixelBufferRasterWorkerPool::Create( 1916 raster_worker_pool_ = PixelBufferRasterWorkerPool::Create(
1899 proxy_->ImplThreadTaskRunner(), 1917 proxy_->ImplThreadTaskRunner(),
1900 RasterWorkerPool::GetTaskGraphRunner(), 1918 RasterWorkerPool::GetTaskGraphRunner(),
1901 resource_provider, 1919 resource_provider_.get(),
1902 transfer_buffer_memory_limit_); 1920 transfer_buffer_memory_limit_);
1903 resource_pool_ = ResourcePool::Create(
1904 resource_provider,
1905 GL_TEXTURE_2D,
1906 resource_provider->memory_efficient_texture_format());
1907 } 1921 }
1908 direct_raster_worker_pool_ = DirectRasterWorkerPool::Create( 1922
1909 proxy_->ImplThreadTaskRunner(), resource_provider, context_provider);
1910 tile_manager_ = 1923 tile_manager_ =
1911 TileManager::Create(this, 1924 TileManager::Create(this,
1912 resource_pool_.get(), 1925 resource_pool_.get(),
1913 raster_worker_pool_->AsRasterizer(), 1926 raster_worker_pool_->AsRasterizer(),
1914 direct_raster_worker_pool_->AsRasterizer(), 1927 GetRendererCapabilities().allow_rasterize_on_demand,
1915 allow_rasterize_on_demand,
1916 rendering_stats_instrumentation_); 1928 rendering_stats_instrumentation_);
1917 1929
1918 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy()); 1930 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy());
1919 need_to_update_visible_tiles_before_draw_ = false; 1931 need_to_update_visible_tiles_before_draw_ = false;
1920 } 1932 }
1921 1933
1934 void LayerTreeHostImpl::DestroyTileManager() {
1935 tile_manager_.reset();
1936 resource_pool_.reset();
1937 staging_resource_pool_.reset();
1938 raster_worker_pool_.reset();
1939 }
1940
1941 bool LayerTreeHostImpl::UseZeroCopyTextureUpload() const {
1942 // Note: we use zero-copy by default when the renderer is using
1943 // shared memory resources.
1944 return (settings_.use_zero_copy ||
1945 GetRendererCapabilities().using_shared_memory_resources) &&
1946 GetRendererCapabilities().using_map_image;
1947 }
1948
1949 bool LayerTreeHostImpl::UseOneCopyTextureUpload() const {
1950 // Sync query support is required by one-copy rasterizer.
1951 return settings_.use_one_copy && GetRendererCapabilities().using_map_image &&
1952 resource_provider_->use_sync_query();
1953 }
1954
1922 void LayerTreeHostImpl::EnforceZeroBudget(bool zero_budget) { 1955 void LayerTreeHostImpl::EnforceZeroBudget(bool zero_budget) {
1923 SetManagedMemoryPolicy(cached_managed_memory_policy_, zero_budget); 1956 SetManagedMemoryPolicy(cached_managed_memory_policy_, zero_budget);
1924 } 1957 }
1925 1958
1926 bool LayerTreeHostImpl::InitializeRenderer( 1959 bool LayerTreeHostImpl::InitializeRenderer(
1927 scoped_ptr<OutputSurface> output_surface) { 1960 scoped_ptr<OutputSurface> output_surface) {
1928 #if DCHECK_IS_ON 1961 #if DCHECK_IS_ON
1929 DCHECK(!renderer_ || did_lose_called_); 1962 DCHECK(!renderer_ || did_lose_called_);
1930 #endif 1963 #endif
1931 1964
1932 // Since we will create a new resource provider, we cannot continue to use 1965 // Since we will create a new resource provider, we cannot continue to use
1933 // the old resources (i.e. render_surfaces and texture IDs). Clear them 1966 // the old resources (i.e. render_surfaces and texture IDs). Clear them
1934 // before we destroy the old resource provider. 1967 // before we destroy the old resource provider.
1935 ReleaseTreeResources(); 1968 ReleaseTreeResources();
1936 1969
1937 // Note: order is important here. 1970 // Note: order is important here.
1938 renderer_.reset(); 1971 renderer_.reset();
1939 tile_manager_.reset(); 1972 DestroyTileManager();
1940 resource_pool_.reset();
1941 staging_resource_pool_.reset();
1942 raster_worker_pool_.reset();
1943 direct_raster_worker_pool_.reset();
1944 resource_provider_.reset(); 1973 resource_provider_.reset();
1945 output_surface_.reset(); 1974 output_surface_.reset();
1946 1975
1947 if (!output_surface->BindToClient(this)) 1976 if (!output_surface->BindToClient(this))
1948 return false; 1977 return false;
1949 1978
1950 scoped_ptr<ResourceProvider> resource_provider = 1979 output_surface_ = output_surface.Pass();
1951 ResourceProvider::Create(output_surface.get(), 1980 resource_provider_ =
1981 ResourceProvider::Create(output_surface_.get(),
1952 shared_bitmap_manager_, 1982 shared_bitmap_manager_,
1953 settings_.highp_threshold_min, 1983 settings_.highp_threshold_min,
1954 settings_.use_rgba_4444_textures, 1984 settings_.use_rgba_4444_textures,
1955 settings_.texture_id_allocation_chunk_size, 1985 settings_.texture_id_allocation_chunk_size,
1956 settings_.use_distance_field_text); 1986 settings_.use_distance_field_text);
1957 1987
1958 if (output_surface->capabilities().deferred_gl_initialization) 1988 if (output_surface_->capabilities().deferred_gl_initialization)
1959 EnforceZeroBudget(true); 1989 EnforceZeroBudget(true);
1960 1990
1961 CreateAndSetRenderer(output_surface.get(), resource_provider.get()); 1991 CreateAndSetRenderer();
1962 1992
1963 transfer_buffer_memory_limit_ = 1993 transfer_buffer_memory_limit_ =
1964 GetMaxTransferBufferUsageBytes(output_surface->context_provider().get()); 1994 GetMaxTransferBufferUsageBytes(output_surface_->context_provider());
1965 1995
1966 if (settings_.impl_side_painting) { 1996 if (settings_.impl_side_painting)
1967 // Note: we use zero-copy rasterizer by default when the renderer is using 1997 CreateAndSetTileManager();
1968 // shared memory resources.
1969 bool use_zero_copy =
1970 (settings_.use_zero_copy ||
1971 GetRendererCapabilities().using_shared_memory_resources) &&
1972 GetRendererCapabilities().using_map_image;
1973
1974 // Sync query support is required by one-copy rasterizer.
1975 bool use_one_copy = settings_.use_one_copy &&
1976 GetRendererCapabilities().using_map_image &&
1977 resource_provider->use_sync_query();
1978
1979 CreateAndSetTileManager(
1980 resource_provider.get(),
1981 output_surface->context_provider().get(),
1982 use_zero_copy,
1983 use_one_copy,
1984 GetRendererCapabilities().allow_rasterize_on_demand);
1985 }
1986 1998
1987 // Initialize vsync parameters to sane values. 1999 // Initialize vsync parameters to sane values.
1988 const base::TimeDelta display_refresh_interval = 2000 const base::TimeDelta display_refresh_interval =
1989 base::TimeDelta::FromMicroseconds(base::Time::kMicrosecondsPerSecond / 2001 base::TimeDelta::FromMicroseconds(base::Time::kMicrosecondsPerSecond /
1990 settings_.refresh_rate); 2002 settings_.refresh_rate);
1991 CommitVSyncParameters(base::TimeTicks(), display_refresh_interval); 2003 CommitVSyncParameters(base::TimeTicks(), display_refresh_interval);
1992 2004
1993 // TODO(brianderson): Don't use a hard-coded parent draw time. 2005 // TODO(brianderson): Don't use a hard-coded parent draw time.
1994 base::TimeDelta parent_draw_time = 2006 base::TimeDelta parent_draw_time =
1995 output_surface->capabilities().adjust_deadline_for_parent 2007 output_surface_->capabilities().adjust_deadline_for_parent
1996 ? BeginFrameArgs::DefaultDeadlineAdjustment() 2008 ? BeginFrameArgs::DefaultDeadlineAdjustment()
1997 : base::TimeDelta(); 2009 : base::TimeDelta();
1998 client_->SetEstimatedParentDrawTime(parent_draw_time); 2010 client_->SetEstimatedParentDrawTime(parent_draw_time);
1999 2011
2000 int max_frames_pending = 2012 int max_frames_pending = output_surface_->capabilities().max_frames_pending;
2001 output_surface->capabilities().max_frames_pending;
2002 if (max_frames_pending <= 0) 2013 if (max_frames_pending <= 0)
2003 max_frames_pending = OutputSurface::DEFAULT_MAX_FRAMES_PENDING; 2014 max_frames_pending = OutputSurface::DEFAULT_MAX_FRAMES_PENDING;
2004 client_->SetMaxSwapsPendingOnImplThread(max_frames_pending); 2015 client_->SetMaxSwapsPendingOnImplThread(max_frames_pending);
2005
2006 resource_provider_ = resource_provider.Pass();
2007 output_surface_ = output_surface.Pass();
2008
2009 client_->OnCanDrawStateChanged(CanDraw()); 2016 client_->OnCanDrawStateChanged(CanDraw());
2010 2017
2011 return true; 2018 return true;
2012 } 2019 }
2013 2020
2014 void LayerTreeHostImpl::CommitVSyncParameters(base::TimeTicks timebase, 2021 void LayerTreeHostImpl::CommitVSyncParameters(base::TimeTicks timebase,
2015 base::TimeDelta interval) { 2022 base::TimeDelta interval) {
2016 client_->CommitVSyncParameters(timebase, interval); 2023 client_->CommitVSyncParameters(timebase, interval);
2017 } 2024 }
2018 2025
2019 void LayerTreeHostImpl::DeferredInitialize() { 2026 void LayerTreeHostImpl::DeferredInitialize() {
2020 DCHECK(output_surface_->capabilities().deferred_gl_initialization); 2027 DCHECK(output_surface_->capabilities().deferred_gl_initialization);
2021 DCHECK(settings_.impl_side_painting); 2028 DCHECK(settings_.impl_side_painting);
2022 DCHECK(output_surface_->context_provider()); 2029 DCHECK(output_surface_->context_provider());
2023 2030
2024 ReleaseTreeResources(); 2031 ReleaseTreeResources();
2025 renderer_.reset(); 2032 renderer_.reset();
2026 2033
2027 resource_provider_->InitializeGL(); 2034 resource_provider_->InitializeGL();
2028 2035
2029 CreateAndSetRenderer(output_surface_.get(), resource_provider_.get()); 2036 CreateAndSetRenderer();
2030 2037
2031 EnforceZeroBudget(false); 2038 EnforceZeroBudget(false);
2032 client_->SetNeedsCommitOnImplThread(); 2039 client_->SetNeedsCommitOnImplThread();
2033 } 2040 }
2034 2041
2035 void LayerTreeHostImpl::ReleaseGL() { 2042 void LayerTreeHostImpl::ReleaseGL() {
2036 DCHECK(output_surface_->capabilities().deferred_gl_initialization); 2043 DCHECK(output_surface_->capabilities().deferred_gl_initialization);
2037 DCHECK(settings_.impl_side_painting); 2044 DCHECK(settings_.impl_side_painting);
2038 DCHECK(output_surface_->context_provider()); 2045 DCHECK(output_surface_->context_provider());
2039 2046
2040 ReleaseTreeResources(); 2047 ReleaseTreeResources();
2041 renderer_.reset(); 2048 renderer_.reset();
2042 tile_manager_.reset(); 2049 DestroyTileManager();
2043 resource_pool_.reset();
2044 raster_worker_pool_.reset();
2045 direct_raster_worker_pool_.reset();
2046 staging_resource_pool_.reset();
2047 resource_provider_->InitializeSoftware(); 2050 resource_provider_->InitializeSoftware();
2048 2051
2049 output_surface_->ReleaseContextProvider(); 2052 output_surface_->ReleaseContextProvider();
2050 CreateAndSetRenderer(output_surface_.get(), resource_provider_.get()); 2053 CreateAndSetRenderer();
2051 2054
2052 EnforceZeroBudget(true); 2055 EnforceZeroBudget(true);
2053 DCHECK(GetRendererCapabilities().using_map_image); 2056 CreateAndSetTileManager();
2054 CreateAndSetTileManager(resource_provider_.get(),
2055 NULL,
2056 true,
2057 false,
2058 GetRendererCapabilities().allow_rasterize_on_demand);
2059 DCHECK(tile_manager_);
2060 2057
2061 client_->SetNeedsCommitOnImplThread(); 2058 client_->SetNeedsCommitOnImplThread();
2062 } 2059 }
2063 2060
2064 void LayerTreeHostImpl::SetViewportSize(const gfx::Size& device_viewport_size) { 2061 void LayerTreeHostImpl::SetViewportSize(const gfx::Size& device_viewport_size) {
2065 if (device_viewport_size == device_viewport_size_) 2062 if (device_viewport_size == device_viewport_size_)
2066 return; 2063 return;
2067 2064
2068 if (pending_tree_) 2065 if (pending_tree_)
2069 active_tree_->SetViewportSizeInvalid(); 2066 active_tree_->SetViewportSizeInvalid();
(...skipping 1061 matching lines...) Expand 10 before | Expand all | Expand 10 after
3131 swap_promise_monitor_.erase(monitor); 3128 swap_promise_monitor_.erase(monitor);
3132 } 3129 }
3133 3130
3134 void LayerTreeHostImpl::NotifySwapPromiseMonitorsOfSetNeedsRedraw() { 3131 void LayerTreeHostImpl::NotifySwapPromiseMonitorsOfSetNeedsRedraw() {
3135 std::set<SwapPromiseMonitor*>::iterator it = swap_promise_monitor_.begin(); 3132 std::set<SwapPromiseMonitor*>::iterator it = swap_promise_monitor_.begin();
3136 for (; it != swap_promise_monitor_.end(); it++) 3133 for (; it != swap_promise_monitor_.end(); it++)
3137 (*it)->OnSetNeedsRedrawOnImpl(); 3134 (*it)->OnSetNeedsRedrawOnImpl();
3138 } 3135 }
3139 3136
3140 } // namespace cc 3137 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698