| 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 <stddef.h> | 7 #include <stddef.h> |
| 8 #include <limits> | 8 #include <limits> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 72 } | 72 } |
| 73 | 73 |
| 74 namespace cc { | 74 namespace cc { |
| 75 class Layer; | 75 class Layer; |
| 76 } | 76 } |
| 77 | 77 |
| 78 using blink::WebFloatPoint; | 78 using blink::WebFloatPoint; |
| 79 using blink::WebRect; | 79 using blink::WebRect; |
| 80 using blink::WebSelection; | 80 using blink::WebSelection; |
| 81 using blink::WebSize; | 81 using blink::WebSize; |
| 82 using blink::WebTopControlsState; | 82 using blink::WebBrowserControlsState; |
| 83 | 83 |
| 84 namespace content { | 84 namespace content { |
| 85 namespace { | 85 namespace { |
| 86 | 86 |
| 87 bool GetSwitchValueAsInt(const base::CommandLine& command_line, | 87 bool GetSwitchValueAsInt(const base::CommandLine& command_line, |
| 88 const std::string& switch_string, | 88 const std::string& switch_string, |
| 89 int min_value, | 89 int min_value, |
| 90 int max_value, | 90 int max_value, |
| 91 int* result) { | 91 int* result) { |
| 92 std::string string_value = command_line.GetSwitchValueASCII(switch_string); | 92 std::string string_value = command_line.GetSwitchValueASCII(switch_string); |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 183 } | 183 } |
| 184 #elif defined(OS_CHROMEOS) || defined(OS_MACOSX) | 184 #elif defined(OS_CHROMEOS) || defined(OS_MACOSX) |
| 185 // Use 512 for high DPI (dsf=2.0f) devices. | 185 // Use 512 for high DPI (dsf=2.0f) devices. |
| 186 if (initial_device_scale_factor >= 2.0f) | 186 if (initial_device_scale_factor >= 2.0f) |
| 187 default_tile_size = 512; | 187 default_tile_size = 512; |
| 188 #endif | 188 #endif |
| 189 | 189 |
| 190 return gfx::Size(default_tile_size, default_tile_size); | 190 return gfx::Size(default_tile_size, default_tile_size); |
| 191 } | 191 } |
| 192 | 192 |
| 193 // Check cc::TopControlsState, and blink::WebTopControlsState | 193 // Check cc::BrowserControlsState, and blink::WebBrowserControlsState |
| 194 // are kept in sync. | 194 // are kept in sync. |
| 195 static_assert(int(blink::WebTopControlsBoth) == int(cc::BOTH), | 195 static_assert(int(blink::WebBrowserControlsBoth) == int(cc::BOTH), |
| 196 "mismatching enums: BOTH"); | 196 "mismatching enums: BOTH"); |
| 197 static_assert(int(blink::WebTopControlsHidden) == int(cc::HIDDEN), | 197 static_assert(int(blink::WebBrowserControlsHidden) == int(cc::HIDDEN), |
| 198 "mismatching enums: HIDDEN"); | 198 "mismatching enums: HIDDEN"); |
| 199 static_assert(int(blink::WebTopControlsShown) == int(cc::SHOWN), | 199 static_assert(int(blink::WebBrowserControlsShown) == int(cc::SHOWN), |
| 200 "mismatching enums: SHOWN"); | 200 "mismatching enums: SHOWN"); |
| 201 | 201 |
| 202 static cc::TopControlsState ConvertTopControlsState( | 202 static cc::BrowserControlsState ConvertBrowserControlsState( |
| 203 WebTopControlsState state) { | 203 WebBrowserControlsState state) { |
| 204 return static_cast<cc::TopControlsState>(state); | 204 return static_cast<cc::BrowserControlsState>(state); |
| 205 } | 205 } |
| 206 | 206 |
| 207 } // namespace | 207 } // namespace |
| 208 | 208 |
| 209 // static | 209 // static |
| 210 std::unique_ptr<RenderWidgetCompositor> RenderWidgetCompositor::Create( | 210 std::unique_ptr<RenderWidgetCompositor> RenderWidgetCompositor::Create( |
| 211 RenderWidgetCompositorDelegate* delegate, | 211 RenderWidgetCompositorDelegate* delegate, |
| 212 float device_scale_factor, | 212 float device_scale_factor, |
| 213 CompositorDependencies* compositor_deps) { | 213 CompositorDependencies* compositor_deps) { |
| 214 std::unique_ptr<RenderWidgetCompositor> compositor( | 214 std::unique_ptr<RenderWidgetCompositor> compositor( |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 328 settings.renderer_settings.use_gpu_memory_buffer_resources = | 328 settings.renderer_settings.use_gpu_memory_buffer_resources = |
| 329 compositor_deps->IsGpuMemoryBufferCompositorResourcesEnabled(); | 329 compositor_deps->IsGpuMemoryBufferCompositorResourcesEnabled(); |
| 330 settings.enable_color_correct_rendering = | 330 settings.enable_color_correct_rendering = |
| 331 cmd.HasSwitch(cc::switches::kEnableColorCorrectRendering); | 331 cmd.HasSwitch(cc::switches::kEnableColorCorrectRendering); |
| 332 settings.renderer_settings.buffer_to_texture_target_map = | 332 settings.renderer_settings.buffer_to_texture_target_map = |
| 333 compositor_deps->GetBufferToTextureTargetMap(); | 333 compositor_deps->GetBufferToTextureTargetMap(); |
| 334 settings.image_decode_tasks_enabled = | 334 settings.image_decode_tasks_enabled = |
| 335 compositor_deps->AreImageDecodeTasksEnabled(); | 335 compositor_deps->AreImageDecodeTasksEnabled(); |
| 336 | 336 |
| 337 // Build LayerTreeSettings from command line args. | 337 // Build LayerTreeSettings from command line args. |
| 338 LayerTreeSettingsFactory::SetTopControlsSettings(settings, cmd); | 338 LayerTreeSettingsFactory::SetBrowserControlsSettings(settings, cmd); |
| 339 | 339 |
| 340 settings.use_layer_lists = cmd.HasSwitch(cc::switches::kEnableLayerLists); | 340 settings.use_layer_lists = cmd.HasSwitch(cc::switches::kEnableLayerLists); |
| 341 | 341 |
| 342 settings.renderer_settings.allow_antialiasing &= | 342 settings.renderer_settings.allow_antialiasing &= |
| 343 !cmd.HasSwitch(cc::switches::kDisableCompositedAntialiasing); | 343 !cmd.HasSwitch(cc::switches::kDisableCompositedAntialiasing); |
| 344 // The means the renderer compositor has 2 possible modes: | 344 // The means the renderer compositor has 2 possible modes: |
| 345 // - Threaded compositing with a scheduler. | 345 // - Threaded compositing with a scheduler. |
| 346 // - Single threaded compositing without a scheduler (for layout tests only). | 346 // - Single threaded compositing without a scheduler (for layout tests only). |
| 347 // Using the scheduler in layout tests introduces additional composite steps | 347 // Using the scheduler in layout tests introduces additional composite steps |
| 348 // that create flakiness. | 348 // that create flakiness. |
| (...skipping 609 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 958 } | 958 } |
| 959 | 959 |
| 960 void RenderWidgetCompositor::setShowScrollBottleneckRects(bool show) { | 960 void RenderWidgetCompositor::setShowScrollBottleneckRects(bool show) { |
| 961 cc::LayerTreeDebugState debug_state = layer_tree_host_->GetDebugState(); | 961 cc::LayerTreeDebugState debug_state = layer_tree_host_->GetDebugState(); |
| 962 debug_state.show_touch_event_handler_rects = show; | 962 debug_state.show_touch_event_handler_rects = show; |
| 963 debug_state.show_wheel_event_handler_rects = show; | 963 debug_state.show_wheel_event_handler_rects = show; |
| 964 debug_state.show_non_fast_scrollable_rects = show; | 964 debug_state.show_non_fast_scrollable_rects = show; |
| 965 layer_tree_host_->SetDebugState(debug_state); | 965 layer_tree_host_->SetDebugState(debug_state); |
| 966 } | 966 } |
| 967 | 967 |
| 968 void RenderWidgetCompositor::updateTopControlsState( | 968 void RenderWidgetCompositor::updateBrowserControlsState( |
| 969 WebTopControlsState constraints, | 969 WebBrowserControlsState constraints, |
| 970 WebTopControlsState current, | 970 WebBrowserControlsState current, |
| 971 bool animate) { | 971 bool animate) { |
| 972 layer_tree_host_->UpdateTopControlsState(ConvertTopControlsState(constraints), | 972 layer_tree_host_->UpdateBrowserControlsState( |
| 973 ConvertTopControlsState(current), | 973 ConvertBrowserControlsState(constraints), |
| 974 animate); | 974 ConvertBrowserControlsState(current), animate); |
| 975 } | 975 } |
| 976 | 976 |
| 977 void RenderWidgetCompositor::setTopControlsHeight(float height, bool shrink) { | 977 void RenderWidgetCompositor::setBrowserControlsHeight(float height, |
| 978 layer_tree_host_->GetLayerTree()->SetTopControlsHeight(height, shrink); | 978 bool shrink) { |
| 979 layer_tree_host_->GetLayerTree()->SetBrowserControlsHeight(height, shrink); |
| 979 } | 980 } |
| 980 | 981 |
| 981 void RenderWidgetCompositor::setTopControlsShownRatio(float ratio) { | 982 void RenderWidgetCompositor::setBrowserControlsShownRatio(float ratio) { |
| 982 layer_tree_host_->GetLayerTree()->SetTopControlsShownRatio(ratio); | 983 layer_tree_host_->GetLayerTree()->SetBrowserControlsShownRatio(ratio); |
| 983 } | 984 } |
| 984 | 985 |
| 985 void RenderWidgetCompositor::setBottomControlsHeight(float height) { | 986 void RenderWidgetCompositor::setBottomControlsHeight(float height) { |
| 986 layer_tree_host_->GetLayerTree()->SetBottomControlsHeight(height); | 987 layer_tree_host_->GetLayerTree()->SetBottomControlsHeight(height); |
| 987 } | 988 } |
| 988 | 989 |
| 989 void RenderWidgetCompositor::WillBeginMainFrame() { | 990 void RenderWidgetCompositor::WillBeginMainFrame() { |
| 990 delegate_->WillBeginCompositorFrame(); | 991 delegate_->WillBeginCompositorFrame(); |
| 991 } | 992 } |
| 992 | 993 |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1125 float device_scale) { | 1126 float device_scale) { |
| 1126 layer_tree_host_->GetLayerTree()->SetPaintedDeviceScaleFactor(device_scale); | 1127 layer_tree_host_->GetLayerTree()->SetPaintedDeviceScaleFactor(device_scale); |
| 1127 } | 1128 } |
| 1128 | 1129 |
| 1129 void RenderWidgetCompositor::SetDeviceColorSpace( | 1130 void RenderWidgetCompositor::SetDeviceColorSpace( |
| 1130 const gfx::ColorSpace& color_space) { | 1131 const gfx::ColorSpace& color_space) { |
| 1131 layer_tree_host_->GetLayerTree()->SetDeviceColorSpace(color_space); | 1132 layer_tree_host_->GetLayerTree()->SetDeviceColorSpace(color_space); |
| 1132 } | 1133 } |
| 1133 | 1134 |
| 1134 } // namespace content | 1135 } // namespace content |
| OLD | NEW |