OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "content/renderer/gpu/render_widget_compositor.h" | 5 #include "content/renderer/gpu/render_widget_compositor.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
262 } | 262 } |
263 | 263 |
264 settings.can_use_lcd_text = compositor_deps_->IsLcdTextEnabled(); | 264 settings.can_use_lcd_text = compositor_deps_->IsLcdTextEnabled(); |
265 settings.use_distance_field_text = | 265 settings.use_distance_field_text = |
266 compositor_deps_->IsDistanceFieldTextEnabled(); | 266 compositor_deps_->IsDistanceFieldTextEnabled(); |
267 settings.use_zero_copy = compositor_deps_->IsZeroCopyEnabled(); | 267 settings.use_zero_copy = compositor_deps_->IsZeroCopyEnabled(); |
268 settings.use_one_copy = compositor_deps_->IsOneCopyEnabled(); | 268 settings.use_one_copy = compositor_deps_->IsOneCopyEnabled(); |
269 settings.enable_elastic_overscroll = | 269 settings.enable_elastic_overscroll = |
270 compositor_deps_->IsElasticOverscrollEnabled(); | 270 compositor_deps_->IsElasticOverscrollEnabled(); |
271 settings.use_image_texture_target = compositor_deps_->GetImageTextureTarget(); | 271 settings.use_image_texture_target = compositor_deps_->GetImageTextureTarget(); |
| 272 settings.gather_pixel_refs = compositor_deps_->IsGatherPixelRefsEnabled(); |
272 | 273 |
273 if (cmd->HasSwitch(cc::switches::kTopControlsShowThreshold)) { | 274 if (cmd->HasSwitch(cc::switches::kTopControlsShowThreshold)) { |
274 std::string top_threshold_str = | 275 std::string top_threshold_str = |
275 cmd->GetSwitchValueASCII(cc::switches::kTopControlsShowThreshold); | 276 cmd->GetSwitchValueASCII(cc::switches::kTopControlsShowThreshold); |
276 double show_threshold; | 277 double show_threshold; |
277 if (base::StringToDouble(top_threshold_str, &show_threshold) && | 278 if (base::StringToDouble(top_threshold_str, &show_threshold) && |
278 show_threshold >= 0.f && show_threshold <= 1.f) | 279 show_threshold >= 0.f && show_threshold <= 1.f) |
279 settings.top_controls_show_threshold = show_threshold; | 280 settings.top_controls_show_threshold = show_threshold; |
280 } | 281 } |
281 | 282 |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
435 | 436 |
436 scoped_refptr<base::SingleThreadTaskRunner> compositor_thread_task_runner = | 437 scoped_refptr<base::SingleThreadTaskRunner> compositor_thread_task_runner = |
437 compositor_deps_->GetCompositorImplThreadTaskRunner(); | 438 compositor_deps_->GetCompositorImplThreadTaskRunner(); |
438 scoped_refptr<base::SingleThreadTaskRunner> | 439 scoped_refptr<base::SingleThreadTaskRunner> |
439 main_thread_compositor_task_runner = | 440 main_thread_compositor_task_runner = |
440 compositor_deps_->GetCompositorMainThreadTaskRunner(); | 441 compositor_deps_->GetCompositorMainThreadTaskRunner(); |
441 cc::SharedBitmapManager* shared_bitmap_manager = | 442 cc::SharedBitmapManager* shared_bitmap_manager = |
442 compositor_deps_->GetSharedBitmapManager(); | 443 compositor_deps_->GetSharedBitmapManager(); |
443 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager = | 444 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager = |
444 compositor_deps_->GetGpuMemoryBufferManager(); | 445 compositor_deps_->GetGpuMemoryBufferManager(); |
| 446 cc::TaskGraphRunner* task_graph_runner = |
| 447 compositor_deps_->GetTaskGraphRunner(); |
445 | 448 |
446 scoped_ptr<cc::BeginFrameSource> external_begin_frame_source; | 449 scoped_ptr<cc::BeginFrameSource> external_begin_frame_source; |
447 if (settings.use_external_begin_frame_source) { | 450 if (settings.use_external_begin_frame_source) { |
448 external_begin_frame_source = | 451 external_begin_frame_source = |
449 compositor_deps_->CreateExternalBeginFrameSource(widget_->routing_id()); | 452 compositor_deps_->CreateExternalBeginFrameSource(widget_->routing_id()); |
450 } | 453 } |
451 | 454 |
452 if (compositor_thread_task_runner.get()) { | 455 if (compositor_thread_task_runner.get()) { |
453 layer_tree_host_ = cc::LayerTreeHost::CreateThreaded( | 456 layer_tree_host_ = cc::LayerTreeHost::CreateThreaded( |
454 this, shared_bitmap_manager, gpu_memory_buffer_manager, settings, | 457 this, shared_bitmap_manager, gpu_memory_buffer_manager, |
455 main_thread_compositor_task_runner, compositor_thread_task_runner, | 458 task_graph_runner, settings, main_thread_compositor_task_runner, |
456 external_begin_frame_source.Pass()); | 459 compositor_thread_task_runner, external_begin_frame_source.Pass()); |
457 } else { | 460 } else { |
458 layer_tree_host_ = cc::LayerTreeHost::CreateSingleThreaded( | 461 layer_tree_host_ = cc::LayerTreeHost::CreateSingleThreaded( |
459 this, this, shared_bitmap_manager, gpu_memory_buffer_manager, settings, | 462 this, this, shared_bitmap_manager, gpu_memory_buffer_manager, |
460 main_thread_compositor_task_runner, external_begin_frame_source.Pass()); | 463 task_graph_runner, settings, main_thread_compositor_task_runner, |
| 464 external_begin_frame_source.Pass()); |
461 } | 465 } |
462 DCHECK(layer_tree_host_); | 466 DCHECK(layer_tree_host_); |
463 } | 467 } |
464 | 468 |
465 RenderWidgetCompositor::~RenderWidgetCompositor() {} | 469 RenderWidgetCompositor::~RenderWidgetCompositor() {} |
466 | 470 |
467 const base::WeakPtr<cc::InputHandler>& | 471 const base::WeakPtr<cc::InputHandler>& |
468 RenderWidgetCompositor::GetInputHandler() { | 472 RenderWidgetCompositor::GetInputHandler() { |
469 return layer_tree_host_->GetInputHandler(); | 473 return layer_tree_host_->GetInputHandler(); |
470 } | 474 } |
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
906 cc::ContextProvider* provider = | 910 cc::ContextProvider* provider = |
907 compositor_deps_->GetSharedMainThreadContextProvider(); | 911 compositor_deps_->GetSharedMainThreadContextProvider(); |
908 // provider can be NULL after the GPU process crashed enough times and we | 912 // provider can be NULL after the GPU process crashed enough times and we |
909 // don't want to restart it any more (falling back to software). | 913 // don't want to restart it any more (falling back to software). |
910 if (!provider) | 914 if (!provider) |
911 return; | 915 return; |
912 provider->ContextGL()->RateLimitOffscreenContextCHROMIUM(); | 916 provider->ContextGL()->RateLimitOffscreenContextCHROMIUM(); |
913 } | 917 } |
914 | 918 |
915 } // namespace content | 919 } // namespace content |
OLD | NEW |