| OLD | NEW |
| 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 1918 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1929 if (pending_tree_) | 1929 if (pending_tree_) |
| 1930 pending_tree_->set_needs_update_draw_properties(); | 1930 pending_tree_->set_needs_update_draw_properties(); |
| 1931 client_->UpdateRendererCapabilitiesOnImplThread(); | 1931 client_->UpdateRendererCapabilitiesOnImplThread(); |
| 1932 } | 1932 } |
| 1933 | 1933 |
| 1934 void LayerTreeHostImpl::CreateAndSetTileManager() { | 1934 void LayerTreeHostImpl::CreateAndSetTileManager() { |
| 1935 DCHECK(!tile_manager_); | 1935 DCHECK(!tile_manager_); |
| 1936 DCHECK(settings_.impl_side_painting); | 1936 DCHECK(settings_.impl_side_painting); |
| 1937 DCHECK(output_surface_); | 1937 DCHECK(output_surface_); |
| 1938 DCHECK(resource_provider_); | 1938 DCHECK(resource_provider_); |
| 1939 DCHECK(proxy_->ImplThreadTaskRunner()); | 1939 base::SingleThreadTaskRunner* task_runner = |
| 1940 proxy_->HasImplThread() ? proxy_->ImplThreadTaskRunner() |
| 1941 : proxy_->MainThreadTaskRunner(); |
| 1942 DCHECK(task_runner); |
| 1940 | 1943 |
| 1941 ContextProvider* context_provider = output_surface_->context_provider(); | 1944 ContextProvider* context_provider = output_surface_->context_provider(); |
| 1942 if (!context_provider) { | 1945 if (!context_provider) { |
| 1943 resource_pool_ = | 1946 resource_pool_ = |
| 1944 ResourcePool::Create(resource_provider_.get(), | 1947 ResourcePool::Create(resource_provider_.get(), |
| 1945 GL_TEXTURE_2D, | 1948 GL_TEXTURE_2D, |
| 1946 resource_provider_->best_texture_format()); | 1949 resource_provider_->best_texture_format()); |
| 1947 | 1950 |
| 1948 raster_worker_pool_ = | 1951 raster_worker_pool_ = |
| 1949 BitmapRasterWorkerPool::Create(proxy_->ImplThreadTaskRunner(), | 1952 BitmapRasterWorkerPool::Create(proxy_->ImplThreadTaskRunner(), |
| 1950 RasterWorkerPool::GetTaskGraphRunner(), | 1953 RasterWorkerPool::GetTaskGraphRunner(), |
| 1951 resource_provider_.get()); | 1954 resource_provider_.get()); |
| 1952 } else if (use_gpu_rasterization_) { | 1955 } else if (use_gpu_rasterization_) { |
| 1953 resource_pool_ = | 1956 resource_pool_ = |
| 1954 ResourcePool::Create(resource_provider_.get(), | 1957 ResourcePool::Create(resource_provider_.get(), |
| 1955 GL_TEXTURE_2D, | 1958 GL_TEXTURE_2D, |
| 1956 resource_provider_->best_texture_format()); | 1959 resource_provider_->best_texture_format()); |
| 1957 | 1960 |
| 1958 raster_worker_pool_ = | 1961 raster_worker_pool_ = GpuRasterWorkerPool::Create( |
| 1959 GpuRasterWorkerPool::Create(proxy_->ImplThreadTaskRunner(), | 1962 task_runner, context_provider, resource_provider_.get()); |
| 1960 context_provider, | |
| 1961 resource_provider_.get()); | |
| 1962 } else if (UseZeroCopyRasterizer()) { | 1963 } else if (UseZeroCopyRasterizer()) { |
| 1963 resource_pool_ = ResourcePool::Create( | 1964 resource_pool_ = ResourcePool::Create( |
| 1964 resource_provider_.get(), | 1965 resource_provider_.get(), |
| 1965 GetMapImageTextureTarget(context_provider->ContextCapabilities()), | 1966 GetMapImageTextureTarget(context_provider->ContextCapabilities()), |
| 1966 resource_provider_->best_texture_format()); | 1967 resource_provider_->best_texture_format()); |
| 1967 | 1968 |
| 1968 raster_worker_pool_ = | 1969 raster_worker_pool_ = |
| 1969 ZeroCopyRasterWorkerPool::Create(proxy_->ImplThreadTaskRunner(), | 1970 ZeroCopyRasterWorkerPool::Create(proxy_->ImplThreadTaskRunner(), |
| 1970 RasterWorkerPool::GetTaskGraphRunner(), | 1971 RasterWorkerPool::GetTaskGraphRunner(), |
| 1971 resource_provider_.get()); | 1972 resource_provider_.get()); |
| 1972 } else if (UseOneCopyRasterizer()) { | 1973 } else if (UseOneCopyRasterizer()) { |
| 1973 // We need to create a staging resource pool when using copy rasterizer. | 1974 // We need to create a staging resource pool when using copy rasterizer. |
| 1974 staging_resource_pool_ = ResourcePool::Create( | 1975 staging_resource_pool_ = ResourcePool::Create( |
| 1975 resource_provider_.get(), | 1976 resource_provider_.get(), |
| 1976 GetMapImageTextureTarget(context_provider->ContextCapabilities()), | 1977 GetMapImageTextureTarget(context_provider->ContextCapabilities()), |
| 1977 resource_provider_->best_texture_format()); | 1978 resource_provider_->best_texture_format()); |
| 1978 resource_pool_ = | 1979 resource_pool_ = |
| 1979 ResourcePool::Create(resource_provider_.get(), | 1980 ResourcePool::Create(resource_provider_.get(), |
| 1980 GL_TEXTURE_2D, | 1981 GL_TEXTURE_2D, |
| 1981 resource_provider_->best_texture_format()); | 1982 resource_provider_->best_texture_format()); |
| 1982 | 1983 |
| 1983 raster_worker_pool_ = | 1984 raster_worker_pool_ = |
| 1984 OneCopyRasterWorkerPool::Create(proxy_->ImplThreadTaskRunner(), | 1985 OneCopyRasterWorkerPool::Create(task_runner, |
| 1985 RasterWorkerPool::GetTaskGraphRunner(), | 1986 RasterWorkerPool::GetTaskGraphRunner(), |
| 1986 context_provider, | 1987 context_provider, |
| 1987 resource_provider_.get(), | 1988 resource_provider_.get(), |
| 1988 staging_resource_pool_.get()); | 1989 staging_resource_pool_.get()); |
| 1989 } else { | 1990 } else { |
| 1990 resource_pool_ = ResourcePool::Create( | 1991 resource_pool_ = ResourcePool::Create( |
| 1991 resource_provider_.get(), | 1992 resource_provider_.get(), |
| 1992 GL_TEXTURE_2D, | 1993 GL_TEXTURE_2D, |
| 1993 resource_provider_->memory_efficient_texture_format()); | 1994 resource_provider_->memory_efficient_texture_format()); |
| 1994 | 1995 |
| 1995 raster_worker_pool_ = PixelBufferRasterWorkerPool::Create( | 1996 raster_worker_pool_ = PixelBufferRasterWorkerPool::Create( |
| 1996 proxy_->ImplThreadTaskRunner(), | 1997 task_runner, |
| 1997 RasterWorkerPool::GetTaskGraphRunner(), | 1998 RasterWorkerPool::GetTaskGraphRunner(), |
| 1998 context_provider, | 1999 context_provider, |
| 1999 resource_provider_.get(), | 2000 resource_provider_.get(), |
| 2000 GetMaxTransferBufferUsageBytes(context_provider->ContextCapabilities(), | 2001 GetMaxTransferBufferUsageBytes(context_provider->ContextCapabilities(), |
| 2001 settings_.refresh_rate)); | 2002 settings_.refresh_rate)); |
| 2002 } | 2003 } |
| 2003 | 2004 |
| 2004 tile_manager_ = | 2005 tile_manager_ = TileManager::Create(this, |
| 2005 TileManager::Create(this, | 2006 task_runner, |
| 2006 proxy_->ImplThreadTaskRunner(), | 2007 resource_pool_.get(), |
| 2007 resource_pool_.get(), | 2008 raster_worker_pool_->AsRasterizer(), |
| 2008 raster_worker_pool_->AsRasterizer(), | 2009 rendering_stats_instrumentation_); |
| 2009 rendering_stats_instrumentation_); | |
| 2010 | 2010 |
| 2011 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy()); | 2011 UpdateTileManagerMemoryPolicy(ActualManagedMemoryPolicy()); |
| 2012 need_to_update_visible_tiles_before_draw_ = false; | 2012 need_to_update_visible_tiles_before_draw_ = false; |
| 2013 } | 2013 } |
| 2014 | 2014 |
| 2015 void LayerTreeHostImpl::DestroyTileManager() { | 2015 void LayerTreeHostImpl::DestroyTileManager() { |
| 2016 tile_manager_ = nullptr; | 2016 tile_manager_ = nullptr; |
| 2017 resource_pool_ = nullptr; | 2017 resource_pool_ = nullptr; |
| 2018 staging_resource_pool_ = nullptr; | 2018 staging_resource_pool_ = nullptr; |
| 2019 raster_worker_pool_ = nullptr; | 2019 raster_worker_pool_ = nullptr; |
| (...skipping 1360 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3380 } | 3380 } |
| 3381 | 3381 |
| 3382 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) { | 3382 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) { |
| 3383 std::vector<PictureLayerImpl*>::iterator it = | 3383 std::vector<PictureLayerImpl*>::iterator it = |
| 3384 std::find(picture_layers_.begin(), picture_layers_.end(), layer); | 3384 std::find(picture_layers_.begin(), picture_layers_.end(), layer); |
| 3385 DCHECK(it != picture_layers_.end()); | 3385 DCHECK(it != picture_layers_.end()); |
| 3386 picture_layers_.erase(it); | 3386 picture_layers_.erase(it); |
| 3387 } | 3387 } |
| 3388 | 3388 |
| 3389 } // namespace cc | 3389 } // namespace cc |
| OLD | NEW |