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/bind.h" | 7 #include "base/bind.h" |
8 #include "base/debug/trace_event.h" | 8 #include "base/debug/trace_event.h" |
9 #include "cc/delay_based_time_source.h" | 9 #include "cc/delay_based_time_source.h" |
10 #include "cc/draw_quad.h" | 10 #include "cc/draw_quad.h" |
(...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
404 m_layerTreeHost->contentsTextureManager()->memoryVisibleBytes(), | 404 m_layerTreeHost->contentsTextureManager()->memoryVisibleBytes(), |
405 m_layerTreeHost->contentsTextureManager()->memoryVisibleAndNearbyBytes() , | 405 m_layerTreeHost->contentsTextureManager()->memoryVisibleAndNearbyBytes() , |
406 m_layerTreeHost->contentsTextureManager()->memoryUseBytes()); | 406 m_layerTreeHost->contentsTextureManager()->memoryUseBytes()); |
407 } | 407 } |
408 | 408 |
409 void ThreadProxy::setNeedsRedraw() | 409 void ThreadProxy::setNeedsRedraw() |
410 { | 410 { |
411 DCHECK(isMainThread()); | 411 DCHECK(isMainThread()); |
412 TRACE_EVENT0("cc", "ThreadProxy::setNeedsRedraw"); | 412 TRACE_EVENT0("cc", "ThreadProxy::setNeedsRedraw"); |
413 Proxy::implThread()->postTask(base::Bind(&ThreadProxy::setFullRootLayerDamag eOnImplThread, m_implThreadWeakPtr)); | 413 Proxy::implThread()->postTask(base::Bind(&ThreadProxy::setFullRootLayerDamag eOnImplThread, m_implThreadWeakPtr)); |
414 Proxy::implThread()->postTask(base::Bind(&ThreadProxy::setNeedsRedrawOnImplT hread, m_implThreadWeakPtr)); | 414 if (!m_layerTreeHost->settings().implSidePainting) |
enne (OOO)
2013/01/10 03:45:31
I understand moving the conditional in the commit
nduca
2013/01/10 11:01:09
yeah this makes no sense to me
brianderson
2013/01/10 18:55:32
Ah, I saw this being called after a commit and ass
| |
415 Proxy::implThread()->postTask(base::Bind(&ThreadProxy::setNeedsRedrawOnI mplThread, m_implThreadWeakPtr)); | |
415 } | 416 } |
416 | 417 |
417 void ThreadProxy::setDeferCommits(bool deferCommits) | 418 void ThreadProxy::setDeferCommits(bool deferCommits) |
418 { | 419 { |
419 DCHECK(isMainThread()); | 420 DCHECK(isMainThread()); |
420 DCHECK_NE(m_deferCommits, deferCommits); | 421 DCHECK_NE(m_deferCommits, deferCommits); |
421 m_deferCommits = deferCommits; | 422 m_deferCommits = deferCommits; |
422 | 423 |
423 if (m_deferCommits) | 424 if (m_deferCommits) |
424 TRACE_EVENT_ASYNC_BEGIN0("cc", "ThreadProxy::setDeferCommits", this); | 425 TRACE_EVENT_ASYNC_BEGIN0("cc", "ThreadProxy::setDeferCommits", this); |
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
725 | 726 |
726 m_layerTreeHostImpl->commitComplete(); | 727 m_layerTreeHostImpl->commitComplete(); |
727 | 728 |
728 m_nextFrameIsNewlyCommittedFrameOnImplThread = true; | 729 m_nextFrameIsNewlyCommittedFrameOnImplThread = true; |
729 | 730 |
730 m_commitCompletionEventOnImplThread->signal(); | 731 m_commitCompletionEventOnImplThread->signal(); |
731 m_commitCompletionEventOnImplThread = 0; | 732 m_commitCompletionEventOnImplThread = 0; |
732 | 733 |
733 // SetVisible kicks off the next scheduler action, so this must be last. | 734 // SetVisible kicks off the next scheduler action, so this must be last. |
734 m_schedulerOnImplThread->setVisible(m_layerTreeHostImpl->visible()); | 735 m_schedulerOnImplThread->setVisible(m_layerTreeHostImpl->visible()); |
736 | |
nduca
2013/01/10 11:01:09
I dislike this.
I'd rather this was all in the st
brianderson
2013/01/10 18:55:32
I had moved it out here because all the other setN
| |
737 // This will also kick off the a scheduler action. | |
enne (OOO)
2013/01/10 03:45:31
Can you reconcile this with the previous comment t
| |
738 if (!m_layerTreeHost->settings().implSidePainting) | |
739 m_schedulerOnImplThread->setNeedsRedraw(); | |
enne (OOO)
2013/01/10 03:45:31
I feel like removing the redraw here needs to corr
brianderson
2013/01/10 18:55:32
This is meant to go on top of my other patch, whic
| |
735 } | 740 } |
736 | 741 |
737 void ThreadProxy::scheduledActionBeginContextRecreation() | 742 void ThreadProxy::scheduledActionBeginContextRecreation() |
738 { | 743 { |
739 DCHECK(isImplThread()); | 744 DCHECK(isImplThread()); |
740 Proxy::mainThread()->postTask(base::Bind(&ThreadProxy::beginContextRecreatio n, m_mainThreadWeakPtr)); | 745 Proxy::mainThread()->postTask(base::Bind(&ThreadProxy::beginContextRecreatio n, m_mainThreadWeakPtr)); |
741 } | 746 } |
742 | 747 |
743 ScheduledActionDrawAndSwapResult ThreadProxy::scheduledActionDrawAndSwapInternal (bool forcedDraw) | 748 ScheduledActionDrawAndSwapResult ThreadProxy::scheduledActionDrawAndSwapInternal (bool forcedDraw) |
744 { | 749 { |
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1041 } | 1046 } |
1042 | 1047 |
1043 void ThreadProxy::capturePictureOnImplThread(CompletionEvent* completion, skia:: RefPtr<SkPicture>* picture) | 1048 void ThreadProxy::capturePictureOnImplThread(CompletionEvent* completion, skia:: RefPtr<SkPicture>* picture) |
1044 { | 1049 { |
1045 DCHECK(isImplThread()); | 1050 DCHECK(isImplThread()); |
1046 *picture = m_layerTreeHostImpl->capturePicture(); | 1051 *picture = m_layerTreeHostImpl->capturePicture(); |
1047 completion->signal(); | 1052 completion->signal(); |
1048 } | 1053 } |
1049 | 1054 |
1050 } // namespace cc | 1055 } // namespace cc |
OLD | NEW |