| 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/thread_proxy.h" | 5 #include "cc/trees/thread_proxy.h" |
| 6 | 6 |
| 7 #include "base/auto_reset.h" | 7 #include "base/auto_reset.h" |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/debug/trace_event.h" | 9 #include "base/debug/trace_event.h" |
| 10 #include "cc/base/thread.h" | 10 #include "cc/base/thread.h" |
| (...skipping 806 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 817 layer_tree_host_->BeginCommitOnImplThread(layer_tree_host_impl_.get()); | 817 layer_tree_host_->BeginCommitOnImplThread(layer_tree_host_impl_.get()); |
| 818 layer_tree_host_->FinishCommitOnImplThread(layer_tree_host_impl_.get()); | 818 layer_tree_host_->FinishCommitOnImplThread(layer_tree_host_impl_.get()); |
| 819 layer_tree_host_impl_->CommitComplete(); | 819 layer_tree_host_impl_->CommitComplete(); |
| 820 | 820 |
| 821 next_frame_is_newly_committed_frame_on_impl_thread_ = true; | 821 next_frame_is_newly_committed_frame_on_impl_thread_ = true; |
| 822 | 822 |
| 823 if (layer_tree_host_->settings().impl_side_painting && | 823 if (layer_tree_host_->settings().impl_side_painting && |
| 824 layer_tree_host_->BlocksPendingCommit()) { | 824 layer_tree_host_->BlocksPendingCommit()) { |
| 825 // For some layer types in impl-side painting, the commit is held until | 825 // For some layer types in impl-side painting, the commit is held until |
| 826 // the pending tree is activated. | 826 // the pending tree is activated. |
| 827 TRACE_EVENT_INSTANT0("cc", "HoldCommit"); | 827 TRACE_EVENT_INSTANT0("cc", "HoldCommit", TRACE_EVENT_SCOPE_THREAD); |
| 828 completion_event_for_commit_held_on_tree_activation_ = | 828 completion_event_for_commit_held_on_tree_activation_ = |
| 829 commit_completion_event_on_impl_thread_; | 829 commit_completion_event_on_impl_thread_; |
| 830 commit_completion_event_on_impl_thread_ = NULL; | 830 commit_completion_event_on_impl_thread_ = NULL; |
| 831 } else { | 831 } else { |
| 832 commit_completion_event_on_impl_thread_->Signal(); | 832 commit_completion_event_on_impl_thread_->Signal(); |
| 833 commit_completion_event_on_impl_thread_ = NULL; | 833 commit_completion_event_on_impl_thread_ = NULL; |
| 834 } | 834 } |
| 835 | 835 |
| 836 // SetVisible kicks off the next scheduler action, so this must be last. | 836 // SetVisible kicks off the next scheduler action, so this must be last. |
| 837 scheduler_on_impl_thread_->SetVisible(layer_tree_host_impl_->visible()); | 837 scheduler_on_impl_thread_->SetVisible(layer_tree_host_impl_->visible()); |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 903 layer_tree_host_impl_->DrawLayers( | 903 layer_tree_host_impl_->DrawLayers( |
| 904 &frame, | 904 &frame, |
| 905 scheduler_on_impl_thread_->LastVSyncTime()); | 905 scheduler_on_impl_thread_->LastVSyncTime()); |
| 906 result.did_draw= true; | 906 result.did_draw= true; |
| 907 } | 907 } |
| 908 layer_tree_host_impl_->DidDrawAllLayers(frame); | 908 layer_tree_host_impl_->DidDrawAllLayers(frame); |
| 909 | 909 |
| 910 // Check for tree activation. | 910 // Check for tree activation. |
| 911 if (completion_event_for_commit_held_on_tree_activation_ && | 911 if (completion_event_for_commit_held_on_tree_activation_ && |
| 912 !layer_tree_host_impl_->pending_tree()) { | 912 !layer_tree_host_impl_->pending_tree()) { |
| 913 TRACE_EVENT_INSTANT0("cc", "ReleaseCommitbyActivation"); | 913 TRACE_EVENT_INSTANT0("cc", "ReleaseCommitbyActivation", |
| 914 TRACE_EVENT_SCOPE_THREAD); |
| 914 DCHECK(layer_tree_host_impl_->settings().impl_side_painting); | 915 DCHECK(layer_tree_host_impl_->settings().impl_side_painting); |
| 915 completion_event_for_commit_held_on_tree_activation_->Signal(); | 916 completion_event_for_commit_held_on_tree_activation_->Signal(); |
| 916 completion_event_for_commit_held_on_tree_activation_ = NULL; | 917 completion_event_for_commit_held_on_tree_activation_ = NULL; |
| 917 } | 918 } |
| 918 | 919 |
| 919 // Check for a pending CompositeAndReadback. | 920 // Check for a pending CompositeAndReadback. |
| 920 if (readback_request_on_impl_thread_) { | 921 if (readback_request_on_impl_thread_) { |
| 921 readback_request_on_impl_thread_->success = false; | 922 readback_request_on_impl_thread_->success = false; |
| 922 if (draw_frame) { | 923 if (draw_frame) { |
| 923 layer_tree_host_impl_->Readback(readback_request_on_impl_thread_->pixels, | 924 layer_tree_host_impl_->Readback(readback_request_on_impl_thread_->pixels, |
| (...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1311 base::Bind(&ThreadProxy::StartScrollbarAnimationOnImplThread, | 1312 base::Bind(&ThreadProxy::StartScrollbarAnimationOnImplThread, |
| 1312 impl_thread_weak_ptr_), | 1313 impl_thread_weak_ptr_), |
| 1313 delay); | 1314 delay); |
| 1314 } | 1315 } |
| 1315 | 1316 |
| 1316 void ThreadProxy::StartScrollbarAnimationOnImplThread() { | 1317 void ThreadProxy::StartScrollbarAnimationOnImplThread() { |
| 1317 layer_tree_host_impl_->StartScrollbarAnimation(base::TimeTicks::Now()); | 1318 layer_tree_host_impl_->StartScrollbarAnimation(base::TimeTicks::Now()); |
| 1318 } | 1319 } |
| 1319 | 1320 |
| 1320 } // namespace cc | 1321 } // namespace cc |
| OLD | NEW |