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 <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 2229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2240 // TODO(vmpstr): Make this a DCHECK (or remove) when crbug.com/419086 is | 2240 // TODO(vmpstr): Make this a DCHECK (or remove) when crbug.com/419086 is |
2241 // resolved. | 2241 // resolved. |
2242 CHECK(resource_provider_); | 2242 CHECK(resource_provider_); |
2243 | 2243 |
2244 ContextProvider* compositor_context_provider = | 2244 ContextProvider* compositor_context_provider = |
2245 compositor_frame_sink_->context_provider(); | 2245 compositor_frame_sink_->context_provider(); |
2246 if (!compositor_context_provider) { | 2246 if (!compositor_context_provider) { |
2247 *resource_pool = | 2247 *resource_pool = |
2248 ResourcePool::Create(resource_provider_.get(), GetTaskRunner(), | 2248 ResourcePool::Create(resource_provider_.get(), GetTaskRunner(), |
2249 ResourceProvider::TEXTURE_HINT_IMMUTABLE, | 2249 ResourceProvider::TEXTURE_HINT_IMMUTABLE, |
2250 ResourcePool::kDefaultExpirationDelay); | 2250 ResourcePool::kDefaultExpirationDelay, |
| 2251 settings_.disallow_non_exact_resource_reuse); |
2251 | 2252 |
2252 *raster_buffer_provider = | 2253 *raster_buffer_provider = |
2253 BitmapRasterBufferProvider::Create(resource_provider_.get()); | 2254 BitmapRasterBufferProvider::Create(resource_provider_.get()); |
2254 return; | 2255 return; |
2255 } | 2256 } |
2256 | 2257 |
2257 ContextProvider* worker_context_provider = | 2258 ContextProvider* worker_context_provider = |
2258 compositor_frame_sink_->worker_context_provider(); | 2259 compositor_frame_sink_->worker_context_provider(); |
2259 if (use_gpu_rasterization_) { | 2260 if (use_gpu_rasterization_) { |
2260 DCHECK(worker_context_provider); | 2261 DCHECK(worker_context_provider); |
2261 | 2262 |
2262 *resource_pool = ResourcePool::Create( | 2263 *resource_pool = ResourcePool::Create( |
2263 resource_provider_.get(), GetTaskRunner(), | 2264 resource_provider_.get(), GetTaskRunner(), |
2264 ResourceProvider::TEXTURE_HINT_IMMUTABLE_FRAMEBUFFER, | 2265 ResourceProvider::TEXTURE_HINT_IMMUTABLE_FRAMEBUFFER, |
2265 ResourcePool::kDefaultExpirationDelay); | 2266 ResourcePool::kDefaultExpirationDelay, |
| 2267 settings_.disallow_non_exact_resource_reuse); |
2266 | 2268 |
2267 int msaa_sample_count = use_msaa_ ? RequestedMSAASampleCount() : 0; | 2269 int msaa_sample_count = use_msaa_ ? RequestedMSAASampleCount() : 0; |
2268 | 2270 |
2269 *raster_buffer_provider = base::MakeUnique<GpuRasterBufferProvider>( | 2271 *raster_buffer_provider = base::MakeUnique<GpuRasterBufferProvider>( |
2270 compositor_context_provider, worker_context_provider, | 2272 compositor_context_provider, worker_context_provider, |
2271 resource_provider_.get(), settings_.use_distance_field_text, | 2273 resource_provider_.get(), settings_.use_distance_field_text, |
2272 msaa_sample_count, settings_.renderer_settings.preferred_tile_format, | 2274 msaa_sample_count, settings_.renderer_settings.preferred_tile_format, |
2273 settings_.async_worker_context_enabled); | 2275 settings_.async_worker_context_enabled); |
2274 return; | 2276 return; |
2275 } | 2277 } |
2276 | 2278 |
2277 bool use_zero_copy = settings_.use_zero_copy; | 2279 bool use_zero_copy = settings_.use_zero_copy; |
2278 // TODO(reveman): Remove this when mojo supports worker contexts. | 2280 // TODO(reveman): Remove this when mojo supports worker contexts. |
2279 // crbug.com/522440 | 2281 // crbug.com/522440 |
2280 if (!use_zero_copy && !worker_context_provider) { | 2282 if (!use_zero_copy && !worker_context_provider) { |
2281 LOG(ERROR) | 2283 LOG(ERROR) |
2282 << "Forcing zero-copy tile initialization as worker context is missing"; | 2284 << "Forcing zero-copy tile initialization as worker context is missing"; |
2283 use_zero_copy = true; | 2285 use_zero_copy = true; |
2284 } | 2286 } |
2285 | 2287 |
2286 if (use_zero_copy) { | 2288 if (use_zero_copy) { |
2287 *resource_pool = ResourcePool::CreateForGpuMemoryBufferResources( | 2289 *resource_pool = ResourcePool::CreateForGpuMemoryBufferResources( |
2288 resource_provider_.get(), GetTaskRunner(), | 2290 resource_provider_.get(), GetTaskRunner(), |
2289 gfx::BufferUsage::GPU_READ_CPU_READ_WRITE, | 2291 gfx::BufferUsage::GPU_READ_CPU_READ_WRITE, |
2290 ResourcePool::kDefaultExpirationDelay); | 2292 ResourcePool::kDefaultExpirationDelay, |
| 2293 settings_.disallow_non_exact_resource_reuse); |
2291 | 2294 |
2292 *raster_buffer_provider = ZeroCopyRasterBufferProvider::Create( | 2295 *raster_buffer_provider = ZeroCopyRasterBufferProvider::Create( |
2293 resource_provider_.get(), | 2296 resource_provider_.get(), |
2294 settings_.renderer_settings.preferred_tile_format); | 2297 settings_.renderer_settings.preferred_tile_format); |
2295 return; | 2298 return; |
2296 } | 2299 } |
2297 | 2300 |
2298 *resource_pool = | 2301 *resource_pool = |
2299 ResourcePool::Create(resource_provider_.get(), GetTaskRunner(), | 2302 ResourcePool::Create(resource_provider_.get(), GetTaskRunner(), |
2300 ResourceProvider::TEXTURE_HINT_IMMUTABLE, | 2303 ResourceProvider::TEXTURE_HINT_IMMUTABLE, |
2301 ResourcePool::kDefaultExpirationDelay); | 2304 ResourcePool::kDefaultExpirationDelay, |
| 2305 settings_.disallow_non_exact_resource_reuse); |
2302 | 2306 |
2303 const int max_copy_texture_chromium_size = | 2307 const int max_copy_texture_chromium_size = |
2304 compositor_context_provider->ContextCapabilities() | 2308 compositor_context_provider->ContextCapabilities() |
2305 .max_copy_texture_chromium_size; | 2309 .max_copy_texture_chromium_size; |
2306 | 2310 |
2307 *raster_buffer_provider = base::MakeUnique<OneCopyRasterBufferProvider>( | 2311 *raster_buffer_provider = base::MakeUnique<OneCopyRasterBufferProvider>( |
2308 GetTaskRunner(), compositor_context_provider, worker_context_provider, | 2312 GetTaskRunner(), compositor_context_provider, worker_context_provider, |
2309 resource_provider_.get(), max_copy_texture_chromium_size, | 2313 resource_provider_.get(), max_copy_texture_chromium_size, |
2310 settings_.use_partial_raster, settings_.max_staging_buffer_usage_in_bytes, | 2314 settings_.use_partial_raster, settings_.max_staging_buffer_usage_in_bytes, |
2311 settings_.renderer_settings.preferred_tile_format, | 2315 settings_.renderer_settings.preferred_tile_format, |
(...skipping 1986 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4298 | 4302 |
4299 void LayerTreeHostImpl::ShowScrollbarsForImplScroll(ElementId element_id) { | 4303 void LayerTreeHostImpl::ShowScrollbarsForImplScroll(ElementId element_id) { |
4300 if (!element_id) | 4304 if (!element_id) |
4301 return; | 4305 return; |
4302 if (ScrollbarAnimationController* animation_controller = | 4306 if (ScrollbarAnimationController* animation_controller = |
4303 ScrollbarAnimationControllerForElementId(element_id)) | 4307 ScrollbarAnimationControllerForElementId(element_id)) |
4304 animation_controller->DidScrollUpdate(); | 4308 animation_controller->DidScrollUpdate(); |
4305 } | 4309 } |
4306 | 4310 |
4307 } // namespace cc | 4311 } // namespace cc |
OLD | NEW |