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 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
67 double_value >= min_value && double_value <= max_value) { | 67 double_value >= min_value && double_value <= max_value) { |
68 *result = static_cast<float>(double_value); | 68 *result = static_cast<float>(double_value); |
69 return true; | 69 return true; |
70 } else { | 70 } else { |
71 LOG(WARNING) << "Failed to parse switch " << switch_string << ": " << | 71 LOG(WARNING) << "Failed to parse switch " << switch_string << ": " << |
72 string_value; | 72 string_value; |
73 return false; | 73 return false; |
74 } | 74 } |
75 } | 75 } |
76 | 76 |
77 bool StringToSkColor(const std::string& str, SkColor& color) { | |
enne (OOO)
2013/08/15 21:29:26
Why does scrollbar color need to move to be a comm
wjmaclean
2013/08/16 13:34:16
Actually, it will remain in LayerTreeSettings, the
| |
78 std::string prefix = str.substr(0, 2); | |
79 int offset = (prefix == "0x" || prefix == "0X") ? 2 : 0; | |
80 | |
81 std::vector<uint8> values; | |
82 if (base::HexStringToBytes(str.substr(offset), &values)) { | |
83 if (values.size() != 4) | |
84 return false; | |
85 | |
86 color = SkColorSetARGB(values[0], values[1], values[2], values[3]); | |
87 return true; | |
88 } | |
89 | |
90 return false; | |
91 } | |
77 | 92 |
78 } // namespace | 93 } // namespace |
79 | 94 |
80 // static | 95 // static |
81 scoped_ptr<RenderWidgetCompositor> RenderWidgetCompositor::Create( | 96 scoped_ptr<RenderWidgetCompositor> RenderWidgetCompositor::Create( |
82 RenderWidget* widget, | 97 RenderWidget* widget, |
83 bool threaded) { | 98 bool threaded) { |
84 scoped_ptr<RenderWidgetCompositor> compositor( | 99 scoped_ptr<RenderWidgetCompositor> compositor( |
85 new RenderWidgetCompositor(widget, threaded)); | 100 new RenderWidgetCompositor(widget, threaded)); |
86 | 101 |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
255 settings.max_unused_resource_memory_percentage = | 270 settings.max_unused_resource_memory_percentage = |
256 max_unused_resource_memory_percentage; | 271 max_unused_resource_memory_percentage; |
257 } | 272 } |
258 } | 273 } |
259 | 274 |
260 settings.strict_layer_property_change_checking = | 275 settings.strict_layer_property_change_checking = |
261 cmd->HasSwitch(cc::switches::kStrictLayerPropertyChangeChecking); | 276 cmd->HasSwitch(cc::switches::kStrictLayerPropertyChangeChecking); |
262 | 277 |
263 settings.use_map_image = cmd->HasSwitch(cc::switches::kUseMapImage); | 278 settings.use_map_image = cmd->HasSwitch(cc::switches::kUseMapImage); |
264 | 279 |
280 if (cmd->HasSwitch(cc::switches::kSolidColorScrollbarColor)) { | |
281 std::string str = | |
282 cmd->GetSwitchValueASCII(cc::switches::kSolidColorScrollbarColor); | |
283 | |
284 SkColor scrollbar_color; | |
285 if (StringToSkColor(str, scrollbar_color)) | |
286 settings.solid_color_scrollbar_color = scrollbar_color; | |
287 } | |
288 | |
265 #if defined(OS_ANDROID) | 289 #if defined(OS_ANDROID) |
266 // TODO(danakj): Move these to the android code. | 290 // TODO(danakj): Move these to the android code. |
267 settings.can_use_lcd_text = false; | 291 settings.can_use_lcd_text = false; |
268 settings.max_partial_texture_updates = 0; | 292 settings.max_partial_texture_updates = 0; |
269 settings.use_linear_fade_scrollbar_animator = true; | |
270 settings.solid_color_scrollbars = true; | |
271 settings.solid_color_scrollbar_color = | |
272 cmd->HasSwitch(switches::kHideScrollbars) | |
273 ? SK_ColorTRANSPARENT | |
274 : SkColorSetARGB(128, 128, 128, 128); | |
275 settings.solid_color_scrollbar_thickness_dip = 3; | |
276 settings.highp_threshold_min = 2048; | 293 settings.highp_threshold_min = 2048; |
277 // Android WebView handles root layer flings itself. | 294 // Android WebView handles root layer flings itself. |
278 settings.ignore_root_layer_flings = | 295 settings.ignore_root_layer_flings = |
279 widget->UsingSynchronousRendererCompositor(); | 296 widget->UsingSynchronousRendererCompositor(); |
280 #elif !defined(OS_MACOSX) | 297 #endif |
281 if (cmd->HasSwitch(switches::kEnableOverlayScrollbars)) { | 298 #if !defined(OS_MACOSX) |
jamesr
2013/08/15 22:34:24
this change doesn't seem right. the logic before t
wjmaclean
2013/08/16 13:34:16
OK, fair enough. I knew this was a trade off, but
| |
299 if (cmd->HasSwitch(cc::switches::kEnableOverlayScrollbars)) { | |
282 settings.use_linear_fade_scrollbar_animator = true; | 300 settings.use_linear_fade_scrollbar_animator = true; |
283 settings.solid_color_scrollbars = true; | 301 settings.solid_color_scrollbars = true; |
284 settings.solid_color_scrollbar_color = SkColorSetARGB(128, 128, 128, 128); | |
285 settings.solid_color_scrollbar_thickness_dip = 3; | |
286 } | 302 } |
287 #endif | 303 #endif |
288 | 304 |
289 if (!compositor->initialize(settings)) | 305 if (!compositor->initialize(settings)) |
290 return scoped_ptr<RenderWidgetCompositor>(); | 306 return scoped_ptr<RenderWidgetCompositor>(); |
291 | 307 |
292 return compositor.Pass(); | 308 return compositor.Pass(); |
293 } | 309 } |
294 | 310 |
295 RenderWidgetCompositor::RenderWidgetCompositor(RenderWidget* widget, | 311 RenderWidgetCompositor::RenderWidgetCompositor(RenderWidget* widget, |
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
583 return RenderThreadImpl::current()->OffscreenContextProviderForMainThread(); | 599 return RenderThreadImpl::current()->OffscreenContextProviderForMainThread(); |
584 } | 600 } |
585 | 601 |
586 scoped_refptr<cc::ContextProvider> | 602 scoped_refptr<cc::ContextProvider> |
587 RenderWidgetCompositor::OffscreenContextProviderForCompositorThread() { | 603 RenderWidgetCompositor::OffscreenContextProviderForCompositorThread() { |
588 return RenderThreadImpl::current()-> | 604 return RenderThreadImpl::current()-> |
589 OffscreenContextProviderForCompositorThread(); | 605 OffscreenContextProviderForCompositorThread(); |
590 } | 606 } |
591 | 607 |
592 } // namespace content | 608 } // namespace content |
OLD | NEW |