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