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