Index: cc/trees/single_thread_proxy.cc |
diff --git a/cc/trees/single_thread_proxy.cc b/cc/trees/single_thread_proxy.cc |
index 85085ab3f8ad503e5cc1b9479c4e582bb6021fe2..57f3557e0f5de49b8cd875f9694329b6d80abc2b 100644 |
--- a/cc/trees/single_thread_proxy.cc |
+++ b/cc/trees/single_thread_proxy.cc |
@@ -44,9 +44,11 @@ |
<< "Threaded compositing must be enabled to use impl-side painting."; |
} |
-void SingleThreadProxy::Start() { |
+void SingleThreadProxy::Start(scoped_ptr<OutputSurface> first_output_surface) { |
+ DCHECK(first_output_surface); |
DebugScopedSetImplThread impl(this); |
layer_tree_host_impl_ = layer_tree_host_->CreateLayerTreeHostImpl(this); |
+ first_output_surface_ = first_output_surface.Pass(); |
} |
SingleThreadProxy::~SingleThreadProxy() { |
@@ -111,8 +113,9 @@ |
"cc", "SingleThreadProxy::CreateAndInitializeOutputSurface"); |
DCHECK(Proxy::IsMainThread()); |
- scoped_ptr<OutputSurface> output_surface = |
- layer_tree_host_->CreateOutputSurface(); |
+ scoped_ptr<OutputSurface> output_surface = first_output_surface_.Pass(); |
+ if (!output_surface) |
+ output_surface = layer_tree_host_->CreateOutputSurface(); |
if (!output_surface) { |
OnOutputSurfaceInitializeAttempted(false); |
return; |