Chromium Code Reviews| Index: android_webview/browser/hardware_renderer.cc |
| diff --git a/android_webview/browser/hardware_renderer.cc b/android_webview/browser/hardware_renderer.cc |
| index 8ee14f50318c09abe333db5e58ea8354aa6beb6c..15e5865310dda74686dc8485e44d46fa4b2183b1 100644 |
| --- a/android_webview/browser/hardware_renderer.cc |
| +++ b/android_webview/browser/hardware_renderer.cc |
| @@ -13,6 +13,7 @@ |
| #include "android_webview/browser/shared_renderer_state.h" |
| #include "android_webview/public/browser/draw_gl.h" |
| #include "base/auto_reset.h" |
| +#include "base/lazy_instance.h" |
| #include "base/strings/string_number_conversions.h" |
| #include "base/trace_event/trace_event.h" |
| #include "cc/layers/delegated_frame_provider.h" |
| @@ -33,13 +34,16 @@ |
| namespace android_webview { |
| +base::LazyInstance<cc::LayerSettings> g_layer_settings = |
| + LAZY_INSTANCE_INITIALIZER; |
| + |
| HardwareRenderer::HardwareRenderer(SharedRendererState* state) |
| : shared_renderer_state_(state), |
| last_egl_context_(eglGetCurrentContext()), |
| stencil_enabled_(false), |
| viewport_clip_valid_for_dcheck_(false), |
| gl_surface_(new AwGLSurface), |
| - root_layer_(cc::Layer::Create()), |
| + root_layer_(cc::Layer::Create(LayerSettings())), |
| resource_collection_(new cc::DelegatedFrameResourceCollection), |
| output_surface_(NULL) { |
| DCHECK(last_egl_context_); |
| @@ -89,6 +93,11 @@ HardwareRenderer::~HardwareRenderer() { |
| ParentCompositorDrawConstraints()); |
| } |
| +// static |
| +const cc::LayerSettings& HardwareRenderer::LayerSettings() { |
| + return g_layer_settings.Get(); |
|
boliu
2015/05/22 04:24:07
My recommendation was not use lazy instance. Just
loyso (OOO)
2015/05/22 04:34:31
Done. Really sorry. Misunderstood you in unificati
|
| +} |
| + |
| void HardwareRenderer::DidBeginMainFrame() { |
| // This is called after OutputSurface is created, but before the impl frame |
| // starts. We set the draw constraints here. |
| @@ -134,7 +143,8 @@ void HardwareRenderer::CommitFrame() { |
| frame_provider_ = new cc::DelegatedFrameProvider( |
| resource_collection_.get(), frame->delegated_frame_data.Pass()); |
| - delegated_layer_ = cc::DelegatedRendererLayer::Create(frame_provider_); |
| + delegated_layer_ = |
| + cc::DelegatedRendererLayer::Create(LayerSettings(), frame_provider_); |
| delegated_layer_->SetBounds(frame_size_); |
| delegated_layer_->SetIsDrawable(true); |