| 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/thread_proxy.h" | 5 #include "cc/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/delay_based_time_source.h" | 10 #include "cc/delay_based_time_source.h" |
| (...skipping 742 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 753 m_layerTreeHost->beginCommitOnImplThread(m_layerTreeHostImpl.get()); | 753 m_layerTreeHost->beginCommitOnImplThread(m_layerTreeHostImpl.get()); |
| 754 m_layerTreeHost->finishCommitOnImplThread(m_layerTreeHostImpl.get()); | 754 m_layerTreeHost->finishCommitOnImplThread(m_layerTreeHostImpl.get()); |
| 755 m_layerTreeHostImpl->commitComplete(); | 755 m_layerTreeHostImpl->commitComplete(); |
| 756 | 756 |
| 757 m_nextFrameIsNewlyCommittedFrameOnImplThread = true; | 757 m_nextFrameIsNewlyCommittedFrameOnImplThread = true; |
| 758 | 758 |
| 759 if (m_layerTreeHost->settings().implSidePainting && m_layerTreeHost->blocksP
endingCommit()) | 759 if (m_layerTreeHost->settings().implSidePainting && m_layerTreeHost->blocksP
endingCommit()) |
| 760 { | 760 { |
| 761 // For some layer types in impl-side painting, the commit is held until | 761 // For some layer types in impl-side painting, the commit is held until |
| 762 // the pending tree is activated. | 762 // the pending tree is activated. |
| 763 TRACE_EVENT_INSTANT0("cc", "HoldCommit"); | 763 TRACE_EVENT_INSTANT0("cc", "HoldCommit", TRACE_EVENT_SCOPE_THREAD); |
| 764 m_completionEventForCommitHeldOnTreeActivation = m_commitCompletionEvent
OnImplThread; | 764 m_completionEventForCommitHeldOnTreeActivation = m_commitCompletionEvent
OnImplThread; |
| 765 m_commitCompletionEventOnImplThread = 0; | 765 m_commitCompletionEventOnImplThread = 0; |
| 766 } | 766 } |
| 767 else | 767 else |
| 768 { | 768 { |
| 769 m_commitCompletionEventOnImplThread->signal(); | 769 m_commitCompletionEventOnImplThread->signal(); |
| 770 m_commitCompletionEventOnImplThread = 0; | 770 m_commitCompletionEventOnImplThread = 0; |
| 771 } | 771 } |
| 772 | 772 |
| 773 // SetVisible kicks off the next scheduler action, so this must be last. | 773 // SetVisible kicks off the next scheduler action, so this must be last. |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 835 bool drawFrame = m_layerTreeHostImpl->canDraw() && (m_layerTreeHostImpl->pre
pareToDraw(frame) || forcedDraw); | 835 bool drawFrame = m_layerTreeHostImpl->canDraw() && (m_layerTreeHostImpl->pre
pareToDraw(frame) || forcedDraw); |
| 836 if (drawFrame) { | 836 if (drawFrame) { |
| 837 m_layerTreeHostImpl->drawLayers(frame); | 837 m_layerTreeHostImpl->drawLayers(frame); |
| 838 result.didDraw = true; | 838 result.didDraw = true; |
| 839 } | 839 } |
| 840 m_layerTreeHostImpl->didDrawAllLayers(frame); | 840 m_layerTreeHostImpl->didDrawAllLayers(frame); |
| 841 | 841 |
| 842 // Check for tree activation. | 842 // Check for tree activation. |
| 843 if (m_completionEventForCommitHeldOnTreeActivation && !m_layerTreeHostImpl->
pendingTree()) | 843 if (m_completionEventForCommitHeldOnTreeActivation && !m_layerTreeHostImpl->
pendingTree()) |
| 844 { | 844 { |
| 845 TRACE_EVENT_INSTANT0("cc", "ReleaseCommitbyActivation"); | 845 TRACE_EVENT_INSTANT0("cc", "ReleaseCommitbyActivation", |
| 846 TRACE_EVENT_SCOPE_THREAD); |
| 846 DCHECK(m_layerTreeHostImpl->settings().implSidePainting); | 847 DCHECK(m_layerTreeHostImpl->settings().implSidePainting); |
| 847 m_completionEventForCommitHeldOnTreeActivation->signal(); | 848 m_completionEventForCommitHeldOnTreeActivation->signal(); |
| 848 m_completionEventForCommitHeldOnTreeActivation = 0; | 849 m_completionEventForCommitHeldOnTreeActivation = 0; |
| 849 } | 850 } |
| 850 | 851 |
| 851 // Check for a pending compositeAndReadback. | 852 // Check for a pending compositeAndReadback. |
| 852 if (m_readbackRequestOnImplThread) { | 853 if (m_readbackRequestOnImplThread) { |
| 853 m_readbackRequestOnImplThread->success = false; | 854 m_readbackRequestOnImplThread->success = false; |
| 854 if (drawFrame) { | 855 if (drawFrame) { |
| 855 m_layerTreeHostImpl->readback(m_readbackRequestOnImplThread->pixels,
m_readbackRequestOnImplThread->rect); | 856 m_layerTreeHostImpl->readback(m_readbackRequestOnImplThread->pixels,
m_readbackRequestOnImplThread->rect); |
| (...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1212 | 1213 |
| 1213 void ThreadProxy::renewTreePriorityOnImplThread() | 1214 void ThreadProxy::renewTreePriorityOnImplThread() |
| 1214 { | 1215 { |
| 1215 DCHECK(m_renewTreePriorityOnImplThreadPending); | 1216 DCHECK(m_renewTreePriorityOnImplThreadPending); |
| 1216 m_renewTreePriorityOnImplThreadPending = false; | 1217 m_renewTreePriorityOnImplThreadPending = false; |
| 1217 | 1218 |
| 1218 renewTreePriority(); | 1219 renewTreePriority(); |
| 1219 } | 1220 } |
| 1220 | 1221 |
| 1221 } // namespace cc | 1222 } // namespace cc |
| OLD | NEW |