| 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 "config.h" | 5 #include "config.h" |
| 6 | 6 |
| 7 #include "CCThreadProxy.h" | 7 #include "CCThreadProxy.h" |
| 8 | 8 |
| 9 #include "CCDelayBasedTimeSource.h" | 9 #include "CCDelayBasedTimeSource.h" |
| 10 #include "CCDrawQuad.h" | 10 #include "CCDrawQuad.h" |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 using WebKit::WebSharedGraphicsContext3D; | 24 using WebKit::WebSharedGraphicsContext3D; |
| 25 namespace { | 25 namespace { |
| 26 | 26 |
| 27 // Measured in seconds. | 27 // Measured in seconds. |
| 28 static const double contextRecreationTickRate = 0.03; | 28 static const double contextRecreationTickRate = 0.03; |
| 29 | 29 |
| 30 } // anonymous namespace | 30 } // anonymous namespace |
| 31 | 31 |
| 32 namespace cc { | 32 namespace cc { |
| 33 | 33 |
| 34 PassOwnPtr<CCProxy> CCThreadProxy::create(CCLayerTreeHost* layerTreeHost) | 34 scoped_ptr<CCProxy> CCThreadProxy::create(CCLayerTreeHost* layerTreeHost) |
| 35 { | 35 { |
| 36 return adoptPtr(new CCThreadProxy(layerTreeHost)); | 36 return make_scoped_ptr(new CCThreadProxy(layerTreeHost)).PassAs<CCProxy>(); |
| 37 } | 37 } |
| 38 | 38 |
| 39 CCThreadProxy::CCThreadProxy(CCLayerTreeHost* layerTreeHost) | 39 CCThreadProxy::CCThreadProxy(CCLayerTreeHost* layerTreeHost) |
| 40 : m_animateRequested(false) | 40 : m_animateRequested(false) |
| 41 , m_commitRequested(false) | 41 , m_commitRequested(false) |
| 42 , m_commitRequestSentToImplThread(false) | 42 , m_commitRequestSentToImplThread(false) |
| 43 , m_forcedCommitRequested(false) | 43 , m_forcedCommitRequested(false) |
| 44 , m_layerTreeHost(layerTreeHost) | 44 , m_layerTreeHost(layerTreeHost) |
| 45 , m_rendererInitialized(false) | 45 , m_rendererInitialized(false) |
| 46 , m_started(false) | 46 , m_started(false) |
| (...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 336 } | 336 } |
| 337 | 337 |
| 338 void CCThreadProxy::setNeedsForcedCommitOnImplThread() | 338 void CCThreadProxy::setNeedsForcedCommitOnImplThread() |
| 339 { | 339 { |
| 340 ASSERT(isImplThread()); | 340 ASSERT(isImplThread()); |
| 341 TRACE_EVENT0("cc", "CCThreadProxy::setNeedsForcedCommitOnImplThread"); | 341 TRACE_EVENT0("cc", "CCThreadProxy::setNeedsForcedCommitOnImplThread"); |
| 342 m_schedulerOnImplThread->setNeedsCommit(); | 342 m_schedulerOnImplThread->setNeedsCommit(); |
| 343 m_schedulerOnImplThread->setNeedsForcedCommit(); | 343 m_schedulerOnImplThread->setNeedsForcedCommit(); |
| 344 } | 344 } |
| 345 | 345 |
| 346 void CCThreadProxy::postAnimationEventsToMainThreadOnImplThread(PassOwnPtr<CCAni
mationEventsVector> events, double wallClockTime) | 346 void CCThreadProxy::postAnimationEventsToMainThreadOnImplThread(scoped_ptr<CCAni
mationEventsVector> events, double wallClockTime) |
| 347 { | 347 { |
| 348 ASSERT(isImplThread()); | 348 ASSERT(isImplThread()); |
| 349 TRACE_EVENT0("cc", "CCThreadProxy::postAnimationEventsToMainThreadOnImplThre
ad"); | 349 TRACE_EVENT0("cc", "CCThreadProxy::postAnimationEventsToMainThreadOnImplThre
ad"); |
| 350 m_mainThreadProxy->postTask(createCCThreadTask(this, &CCThreadProxy::setAnim
ationEvents, events, wallClockTime)); | 350 m_mainThreadProxy->postTask(createCCThreadTask(this, &CCThreadProxy::setAnim
ationEvents, events.release(), wallClockTime)); |
| 351 } | 351 } |
| 352 | 352 |
| 353 void CCThreadProxy::releaseContentsTexturesOnImplThread() | 353 void CCThreadProxy::releaseContentsTexturesOnImplThread() |
| 354 { | 354 { |
| 355 ASSERT(isImplThread()); | 355 ASSERT(isImplThread()); |
| 356 | 356 |
| 357 m_layerTreeHost->reduceContentsTexturesMemoryOnImplThread(0, m_layerTreeHost
Impl->resourceProvider()); | 357 m_layerTreeHost->reduceContentsTexturesMemoryOnImplThread(0, m_layerTreeHost
Impl->resourceProvider()); |
| 358 | 358 |
| 359 // Make sure that we get a new commit before drawing again. | 359 // Make sure that we get a new commit before drawing again. |
| 360 m_resetContentsTexturesPurgedAfterCommitOnImplThread = false; | 360 m_resetContentsTexturesPurgedAfterCommitOnImplThread = false; |
| (...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 802 } | 802 } |
| 803 | 803 |
| 804 void CCThreadProxy::didCompleteSwapBuffers() | 804 void CCThreadProxy::didCompleteSwapBuffers() |
| 805 { | 805 { |
| 806 ASSERT(isMainThread()); | 806 ASSERT(isMainThread()); |
| 807 if (!m_layerTreeHost) | 807 if (!m_layerTreeHost) |
| 808 return; | 808 return; |
| 809 m_layerTreeHost->didCompleteSwapBuffers(); | 809 m_layerTreeHost->didCompleteSwapBuffers(); |
| 810 } | 810 } |
| 811 | 811 |
| 812 void CCThreadProxy::setAnimationEvents(PassOwnPtr<CCAnimationEventsVector> event
s, double wallClockTime) | 812 void CCThreadProxy::setAnimationEvents(CCAnimationEventsVector* passed_events, d
ouble wallClockTime) |
| 813 { | 813 { |
| 814 scoped_ptr<CCAnimationEventsVector> events(make_scoped_ptr(passed_events)); |
| 815 |
| 814 TRACE_EVENT0("cc", "CCThreadProxy::setAnimationEvents"); | 816 TRACE_EVENT0("cc", "CCThreadProxy::setAnimationEvents"); |
| 815 ASSERT(isMainThread()); | 817 ASSERT(isMainThread()); |
| 816 if (!m_layerTreeHost) | 818 if (!m_layerTreeHost) |
| 817 return; | 819 return; |
| 818 m_layerTreeHost->setAnimationEvents(events, wallClockTime); | 820 m_layerTreeHost->setAnimationEvents(events.Pass(), wallClockTime); |
| 819 } | 821 } |
| 820 | 822 |
| 821 class CCThreadProxyContextRecreationTimer : public CCTimer, CCTimerClient { | 823 class CCThreadProxyContextRecreationTimer : public CCTimer, CCTimerClient { |
| 822 public: | 824 public: |
| 823 static PassOwnPtr<CCThreadProxyContextRecreationTimer> create(CCThreadProxy*
proxy) { return adoptPtr(new CCThreadProxyContextRecreationTimer(proxy)); } | 825 static PassOwnPtr<CCThreadProxyContextRecreationTimer> create(CCThreadProxy*
proxy) { return adoptPtr(new CCThreadProxyContextRecreationTimer(proxy)); } |
| 824 | 826 |
| 825 virtual void onTimerFired() OVERRIDE | 827 virtual void onTimerFired() OVERRIDE |
| 826 { | 828 { |
| 827 m_proxy->tryToRecreateContext(); | 829 m_proxy->tryToRecreateContext(); |
| 828 } | 830 } |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 946 CCThreadProxy::BeginFrameAndCommitState::BeginFrameAndCommitState() | 948 CCThreadProxy::BeginFrameAndCommitState::BeginFrameAndCommitState() |
| 947 : monotonicFrameBeginTime(0) | 949 : monotonicFrameBeginTime(0) |
| 948 { | 950 { |
| 949 } | 951 } |
| 950 | 952 |
| 951 CCThreadProxy::BeginFrameAndCommitState::~BeginFrameAndCommitState() | 953 CCThreadProxy::BeginFrameAndCommitState::~BeginFrameAndCommitState() |
| 952 { | 954 { |
| 953 } | 955 } |
| 954 | 956 |
| 955 } // namespace cc | 957 } // namespace cc |
| OLD | NEW |