| 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/debug/trace_event.h" | 8 #include "base/debug/trace_event.h" |
| 9 #include "cc/output/context_provider.h" | 9 #include "cc/output/context_provider.h" |
| 10 #include "cc/output/output_surface.h" | 10 #include "cc/output/output_surface.h" |
| (...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 164 DCHECK(Proxy::IsMainThread()); | 164 DCHECK(Proxy::IsMainThread()); |
| 165 DCHECK(!layer_tree_host_->output_surface_lost()); | 165 DCHECK(!layer_tree_host_->output_surface_lost()); |
| 166 return renderer_capabilities_for_main_thread_; | 166 return renderer_capabilities_for_main_thread_; |
| 167 } | 167 } |
| 168 | 168 |
| 169 void SingleThreadProxy::SetNeedsAnimate() { | 169 void SingleThreadProxy::SetNeedsAnimate() { |
| 170 // Thread-only feature. | 170 // Thread-only feature. |
| 171 NOTREACHED(); | 171 NOTREACHED(); |
| 172 } | 172 } |
| 173 | 173 |
| 174 void SingleThreadProxy::SetNeedsUpdateLayers() { |
| 175 DCHECK(Proxy::IsMainThread()); |
| 176 layer_tree_host_->ScheduleComposite(); |
| 177 } |
| 178 |
| 174 void SingleThreadProxy::DoCommit(scoped_ptr<ResourceUpdateQueue> queue) { | 179 void SingleThreadProxy::DoCommit(scoped_ptr<ResourceUpdateQueue> queue) { |
| 175 DCHECK(Proxy::IsMainThread()); | 180 DCHECK(Proxy::IsMainThread()); |
| 176 // Commit immediately. | 181 // Commit immediately. |
| 177 { | 182 { |
| 178 DebugScopedSetMainThreadBlocked mainThreadBlocked(this); | 183 DebugScopedSetMainThreadBlocked mainThreadBlocked(this); |
| 179 DebugScopedSetImplThread impl(this); | 184 DebugScopedSetImplThread impl(this); |
| 180 | 185 |
| 181 RenderingStatsInstrumentation* stats_instrumentation = | 186 RenderingStatsInstrumentation* stats_instrumentation = |
| 182 layer_tree_host_->rendering_stats_instrumentation(); | 187 layer_tree_host_->rendering_stats_instrumentation(); |
| 183 base::TimeTicks start_time = stats_instrumentation->StartRecording(); | 188 base::TimeTicks start_time = stats_instrumentation->StartRecording(); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 196 Proxy::MainThreadTaskRunner(), | 201 Proxy::MainThreadTaskRunner(), |
| 197 queue.Pass(), | 202 queue.Pass(), |
| 198 layer_tree_host_impl_->resource_provider()); | 203 layer_tree_host_impl_->resource_provider()); |
| 199 update_controller->Finalize(); | 204 update_controller->Finalize(); |
| 200 | 205 |
| 201 layer_tree_host_->FinishCommitOnImplThread(layer_tree_host_impl_.get()); | 206 layer_tree_host_->FinishCommitOnImplThread(layer_tree_host_impl_.get()); |
| 202 | 207 |
| 203 layer_tree_host_impl_->CommitComplete(); | 208 layer_tree_host_impl_->CommitComplete(); |
| 204 | 209 |
| 205 #ifndef NDEBUG | 210 #ifndef NDEBUG |
| 206 // In the single-threaded case, the scroll deltas should never be | 211 // In the single-threaded case, the scale and scroll deltas should never be |
| 207 // touched on the impl layer tree. | 212 // touched on the impl layer tree. |
| 208 scoped_ptr<ScrollAndScaleSet> scroll_info = | 213 scoped_ptr<ScrollAndScaleSet> scroll_info = |
| 209 layer_tree_host_impl_->ProcessScrollDeltas(); | 214 layer_tree_host_impl_->ProcessScrollDeltas(); |
| 210 DCHECK(!scroll_info->scrolls.size()); | 215 DCHECK(!scroll_info->scrolls.size()); |
| 216 DCHECK_EQ(1.f, scroll_info->page_scale_delta); |
| 211 #endif | 217 #endif |
| 212 | 218 |
| 213 base::TimeDelta duration = stats_instrumentation->EndRecording(start_time); | 219 base::TimeDelta duration = stats_instrumentation->EndRecording(start_time); |
| 214 stats_instrumentation->AddCommit(duration); | 220 stats_instrumentation->AddCommit(duration); |
| 215 } | 221 } |
| 216 layer_tree_host_->CommitComplete(); | 222 layer_tree_host_->CommitComplete(); |
| 217 next_frame_is_newly_committed_frame_ = true; | 223 next_frame_is_newly_committed_frame_ = true; |
| 218 } | 224 } |
| 219 | 225 |
| 220 void SingleThreadProxy::SetNeedsCommit() { | 226 void SingleThreadProxy::SetNeedsCommit() { |
| (...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 480 void SingleThreadProxy::DidSwapFrame() { | 486 void SingleThreadProxy::DidSwapFrame() { |
| 481 if (next_frame_is_newly_committed_frame_) { | 487 if (next_frame_is_newly_committed_frame_) { |
| 482 next_frame_is_newly_committed_frame_ = false; | 488 next_frame_is_newly_committed_frame_ = false; |
| 483 layer_tree_host_->DidCommitAndDrawFrame(); | 489 layer_tree_host_->DidCommitAndDrawFrame(); |
| 484 } | 490 } |
| 485 } | 491 } |
| 486 | 492 |
| 487 bool SingleThreadProxy::CommitPendingForTesting() { return false; } | 493 bool SingleThreadProxy::CommitPendingForTesting() { return false; } |
| 488 | 494 |
| 489 } // namespace cc | 495 } // namespace cc |
| OLD | NEW |