| Index: cc/trees/layer_tree_host.cc
|
| diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc
|
| index df82093bd91fe977a23dbef3f69241721ea482fe..0bf15ad1d0d96a6294453d8de66ea4457ad1add5 100644
|
| --- a/cc/trees/layer_tree_host.cc
|
| +++ b/cc/trees/layer_tree_host.cc
|
| @@ -78,8 +78,7 @@ scoped_ptr<LayerTreeHost> LayerTreeHost::CreateThreaded(
|
| DCHECK(impl_task_runner);
|
| scoped_ptr<LayerTreeHost> layer_tree_host(
|
| new LayerTreeHost(client, manager, settings));
|
| - if (!layer_tree_host->InitializeThreaded(impl_task_runner))
|
| - return scoped_ptr<LayerTreeHost>();
|
| + layer_tree_host->InitializeThreaded(impl_task_runner);
|
| return layer_tree_host.Pass();
|
| }
|
|
|
| @@ -90,8 +89,7 @@ scoped_ptr<LayerTreeHost> LayerTreeHost::CreateSingleThreaded(
|
| const LayerTreeSettings& settings) {
|
| scoped_ptr<LayerTreeHost> layer_tree_host(
|
| new LayerTreeHost(client, manager, settings));
|
| - if (!layer_tree_host->InitializeSingleThreaded(single_thread_client))
|
| - return scoped_ptr<LayerTreeHost>();
|
| + layer_tree_host->InitializeSingleThreaded(single_thread_client);
|
| return layer_tree_host.Pass();
|
| }
|
|
|
| @@ -108,6 +106,7 @@ LayerTreeHost::LayerTreeHost(
|
| client_(client),
|
| source_frame_number_(0),
|
| rendering_stats_instrumentation_(RenderingStatsInstrumentation::Create()),
|
| + client_ready_(false),
|
| output_surface_can_be_initialized_(true),
|
| output_surface_lost_(true),
|
| num_failed_recreate_attempts_(0),
|
| @@ -134,31 +133,25 @@ LayerTreeHost::LayerTreeHost(
|
| debug_state_.RecordRenderingStats());
|
| }
|
|
|
| -bool LayerTreeHost::InitializeThreaded(
|
| +void LayerTreeHost::InitializeThreaded(
|
| scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner) {
|
| - return InitializeProxy(ThreadProxy::Create(this, impl_task_runner));
|
| + InitializeProxy(ThreadProxy::Create(this, impl_task_runner));
|
| }
|
|
|
| -bool LayerTreeHost::InitializeSingleThreaded(
|
| +void LayerTreeHost::InitializeSingleThreaded(
|
| LayerTreeHostSingleThreadClient* single_thread_client) {
|
| - return InitializeProxy(
|
| - SingleThreadProxy::Create(this, single_thread_client));
|
| + InitializeProxy(SingleThreadProxy::Create(this, single_thread_client));
|
| }
|
|
|
| -bool LayerTreeHost::InitializeForTesting(scoped_ptr<Proxy> proxy_for_testing) {
|
| - return InitializeProxy(proxy_for_testing.Pass());
|
| +void LayerTreeHost::InitializeForTesting(scoped_ptr<Proxy> proxy_for_testing) {
|
| + InitializeProxy(proxy_for_testing.Pass());
|
| }
|
|
|
| -bool LayerTreeHost::InitializeProxy(scoped_ptr<Proxy> proxy) {
|
| +void LayerTreeHost::InitializeProxy(scoped_ptr<Proxy> proxy) {
|
| TRACE_EVENT0("cc", "LayerTreeHost::InitializeForReal");
|
|
|
| - scoped_ptr<OutputSurface> output_surface(CreateOutputSurface());
|
| - if (!output_surface)
|
| - return false;
|
| -
|
| proxy_ = proxy.Pass();
|
| - proxy_->Start(output_surface.Pass());
|
| - return true;
|
| + proxy_->Start();
|
| }
|
|
|
| LayerTreeHost::~LayerTreeHost() {
|
| @@ -182,8 +175,11 @@ LayerTreeHost::~LayerTreeHost() {
|
| }
|
| }
|
|
|
| -void LayerTreeHost::SetLayerTreeHostClientReady() {
|
| - proxy_->SetLayerTreeHostClientReady();
|
| +void LayerTreeHost::SetLayerTreeHostClientReady(
|
| + scoped_ptr<OutputSurface> first_output_surface) {
|
| + DCHECK(!client_ready_);
|
| + client_ready_ = true;
|
| + proxy_->SetLayerTreeHostClientReady(first_output_surface.Pass());
|
| }
|
|
|
| static void LayerTreeHostOnOutputSurfaceCreatedCallback(Layer* layer) {
|
|
|