| 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 scoped_ptr<OutputSurface> SingleThreadProxy::ReleaseOutputSurface() { | 152 void SingleThreadProxy::ReleaseOutputSurface() { |
| 153 // |layer_tree_host_| should already be aware of this. | 153 // |layer_tree_host_| should already be aware of this. |
| 154 DCHECK(layer_tree_host_->output_surface_lost()); | 154 DCHECK(layer_tree_host_->output_surface_lost()); |
| 155 | 155 |
| 156 if (scheduler_on_impl_thread_) | 156 if (scheduler_on_impl_thread_) |
| 157 scheduler_on_impl_thread_->DidLoseOutputSurface(); | 157 scheduler_on_impl_thread_->DidLoseOutputSurface(); |
| 158 return layer_tree_host_impl_->ReleaseOutputSurface(); | 158 return layer_tree_host_impl_->ReleaseOutputSurface(); |
| 159 } | 159 } |
| 160 | 160 |
| 161 void SingleThreadProxy::SetOutputSurface( | 161 void SingleThreadProxy::SetOutputSurface(OutputSurface* output_surface) { |
| 162 scoped_ptr<OutputSurface> output_surface) { | |
| 163 DCHECK(Proxy::IsMainThread()); | 162 DCHECK(Proxy::IsMainThread()); |
| 164 DCHECK(layer_tree_host_->output_surface_lost()); | 163 DCHECK(layer_tree_host_->output_surface_lost()); |
| 165 DCHECK(output_surface_creation_requested_); | 164 DCHECK(output_surface_creation_requested_); |
| 166 renderer_capabilities_for_main_thread_ = RendererCapabilities(); | 165 renderer_capabilities_for_main_thread_ = RendererCapabilities(); |
| 167 | 166 |
| 168 bool success; | 167 bool success; |
| 169 { | 168 { |
| 170 DebugScopedSetMainThreadBlocked main_thread_blocked(this); | 169 DebugScopedSetMainThreadBlocked main_thread_blocked(this); |
| 171 DebugScopedSetImplThread impl(this); | 170 DebugScopedSetImplThread impl(this); |
| 172 success = layer_tree_host_impl_->InitializeRenderer(output_surface.Pass()); | 171 success = layer_tree_host_impl_->InitializeRenderer(output_surface); |
| 173 } | 172 } |
| 174 | 173 |
| 175 if (success) { | 174 if (success) { |
| 176 layer_tree_host_->DidInitializeOutputSurface(); | 175 layer_tree_host_->DidInitializeOutputSurface(); |
| 177 if (scheduler_on_impl_thread_) | 176 if (scheduler_on_impl_thread_) |
| 178 scheduler_on_impl_thread_->DidCreateAndInitializeOutputSurface(); | 177 scheduler_on_impl_thread_->DidCreateAndInitializeOutputSurface(); |
| 179 else if (!inside_synchronous_composite_) | 178 else if (!inside_synchronous_composite_) |
| 180 SetNeedsCommit(); | 179 SetNeedsCommit(); |
| 181 output_surface_creation_requested_ = false; | 180 output_surface_creation_requested_ = false; |
| 182 } else { | 181 } else { |
| (...skipping 718 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 901 << "DidFinishImplFrame called while not inside an impl frame!"; | 900 << "DidFinishImplFrame called while not inside an impl frame!"; |
| 902 inside_impl_frame_ = false; | 901 inside_impl_frame_ = false; |
| 903 #endif | 902 #endif |
| 904 } | 903 } |
| 905 | 904 |
| 906 void SingleThreadProxy::SendBeginFramesToChildren(const BeginFrameArgs& args) { | 905 void SingleThreadProxy::SendBeginFramesToChildren(const BeginFrameArgs& args) { |
| 907 layer_tree_host_->SendBeginFramesToChildren(args); | 906 layer_tree_host_->SendBeginFramesToChildren(args); |
| 908 } | 907 } |
| 909 | 908 |
| 910 } // namespace cc | 909 } // namespace cc |
| OLD | NEW |