OLD | NEW |
1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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 "cc/trees/single_thread_proxy.h" | 5 #include "cc/trees/single_thread_proxy.h" |
6 | 6 |
7 #include "base/auto_reset.h" | 7 #include "base/auto_reset.h" |
8 #include "base/profiler/scoped_tracker.h" | 8 #include "base/profiler/scoped_tracker.h" |
9 #include "base/trace_event/trace_event.h" | 9 #include "base/trace_event/trace_event.h" |
10 #include "cc/debug/benchmark_instrumentation.h" | 10 #include "cc/debug/benchmark_instrumentation.h" |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
142 void SingleThreadProxy::RequestNewOutputSurface() { | 142 void SingleThreadProxy::RequestNewOutputSurface() { |
143 DCHECK(Proxy::IsMainThread()); | 143 DCHECK(Proxy::IsMainThread()); |
144 DCHECK(layer_tree_host_->output_surface_lost()); | 144 DCHECK(layer_tree_host_->output_surface_lost()); |
145 output_surface_creation_callback_.Cancel(); | 145 output_surface_creation_callback_.Cancel(); |
146 if (output_surface_creation_requested_) | 146 if (output_surface_creation_requested_) |
147 return; | 147 return; |
148 output_surface_creation_requested_ = true; | 148 output_surface_creation_requested_ = true; |
149 layer_tree_host_->RequestNewOutputSurface(); | 149 layer_tree_host_->RequestNewOutputSurface(); |
150 } | 150 } |
151 | 151 |
152 void SingleThreadProxy::SetOutputSurface(OutputSurface* output_surface) { | 152 void SingleThreadProxy::SetOutputSurface( |
| 153 scoped_ptr<OutputSurface> output_surface) { |
153 DCHECK(Proxy::IsMainThread()); | 154 DCHECK(Proxy::IsMainThread()); |
154 DCHECK(layer_tree_host_->output_surface_lost()); | 155 DCHECK(layer_tree_host_->output_surface_lost()); |
155 DCHECK(output_surface_creation_requested_); | 156 DCHECK(output_surface_creation_requested_); |
156 renderer_capabilities_for_main_thread_ = RendererCapabilities(); | 157 renderer_capabilities_for_main_thread_ = RendererCapabilities(); |
157 | 158 |
158 bool success; | 159 bool success; |
159 { | 160 { |
160 DebugScopedSetMainThreadBlocked main_thread_blocked(this); | 161 DebugScopedSetMainThreadBlocked main_thread_blocked(this); |
161 DebugScopedSetImplThread impl(this); | 162 DebugScopedSetImplThread impl(this); |
162 success = layer_tree_host_impl_->InitializeRenderer(output_surface); | 163 success = layer_tree_host_impl_->InitializeRenderer(output_surface.Pass()); |
163 } | 164 } |
164 | 165 |
165 if (success) { | 166 if (success) { |
166 layer_tree_host_->DidInitializeOutputSurface(); | 167 layer_tree_host_->DidInitializeOutputSurface(); |
167 if (scheduler_on_impl_thread_) | 168 if (scheduler_on_impl_thread_) |
168 scheduler_on_impl_thread_->DidCreateAndInitializeOutputSurface(); | 169 scheduler_on_impl_thread_->DidCreateAndInitializeOutputSurface(); |
169 else if (!inside_synchronous_composite_) | 170 else if (!inside_synchronous_composite_) |
170 SetNeedsCommit(); | 171 SetNeedsCommit(); |
171 output_surface_creation_requested_ = false; | 172 output_surface_creation_requested_ = false; |
172 } else { | 173 } else { |
(...skipping 728 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
901 << "DidFinishImplFrame called while not inside an impl frame!"; | 902 << "DidFinishImplFrame called while not inside an impl frame!"; |
902 inside_impl_frame_ = false; | 903 inside_impl_frame_ = false; |
903 #endif | 904 #endif |
904 } | 905 } |
905 | 906 |
906 void SingleThreadProxy::SendBeginFramesToChildren(const BeginFrameArgs& args) { | 907 void SingleThreadProxy::SendBeginFramesToChildren(const BeginFrameArgs& args) { |
907 layer_tree_host_->SendBeginFramesToChildren(args); | 908 layer_tree_host_->SendBeginFramesToChildren(args); |
908 } | 909 } |
909 | 910 |
910 } // namespace cc | 911 } // namespace cc |
OLD | NEW |