| 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 CCResourceProvider::debugNotifyEnterZone(0x1000000); | 357 CCResourceProvider::debugNotifyEnterZone(0x1000000); |
| 358 m_layerTreeHost->reduceContentsTexturesMemoryOnImplThread(0, m_layerTreeHost
Impl->resourceProvider()); | 358 m_layerTreeHost->reduceContentsTexturesMemoryOnImplThread(0, m_layerTreeHost
Impl->resourceProvider()); |
| 359 CCResourceProvider::debugNotifyLeaveZone(); | 359 CCResourceProvider::debugNotifyLeaveZone(); |
| 360 | 360 |
| (...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 810 } | 810 } |
| 811 | 811 |
| 812 void CCThreadProxy::didCompleteSwapBuffers() | 812 void CCThreadProxy::didCompleteSwapBuffers() |
| 813 { | 813 { |
| 814 ASSERT(isMainThread()); | 814 ASSERT(isMainThread()); |
| 815 if (!m_layerTreeHost) | 815 if (!m_layerTreeHost) |
| 816 return; | 816 return; |
| 817 m_layerTreeHost->didCompleteSwapBuffers(); | 817 m_layerTreeHost->didCompleteSwapBuffers(); |
| 818 } | 818 } |
| 819 | 819 |
| 820 void CCThreadProxy::setAnimationEvents(PassOwnPtr<CCAnimationEventsVector> event
s, double wallClockTime) | 820 void CCThreadProxy::setAnimationEvents(CCAnimationEventsVector* passed_events, d
ouble wallClockTime) |
| 821 { | 821 { |
| 822 scoped_ptr<CCAnimationEventsVector> events(make_scoped_ptr(passed_events)); |
| 823 |
| 822 TRACE_EVENT0("cc", "CCThreadProxy::setAnimationEvents"); | 824 TRACE_EVENT0("cc", "CCThreadProxy::setAnimationEvents"); |
| 823 ASSERT(isMainThread()); | 825 ASSERT(isMainThread()); |
| 824 if (!m_layerTreeHost) | 826 if (!m_layerTreeHost) |
| 825 return; | 827 return; |
| 826 m_layerTreeHost->setAnimationEvents(events, wallClockTime); | 828 m_layerTreeHost->setAnimationEvents(events.Pass(), wallClockTime); |
| 827 } | 829 } |
| 828 | 830 |
| 829 class CCThreadProxyContextRecreationTimer : public CCTimer, CCTimerClient { | 831 class CCThreadProxyContextRecreationTimer : public CCTimer, CCTimerClient { |
| 830 public: | 832 public: |
| 831 static PassOwnPtr<CCThreadProxyContextRecreationTimer> create(CCThreadProxy*
proxy) { return adoptPtr(new CCThreadProxyContextRecreationTimer(proxy)); } | 833 static PassOwnPtr<CCThreadProxyContextRecreationTimer> create(CCThreadProxy*
proxy) { return adoptPtr(new CCThreadProxyContextRecreationTimer(proxy)); } |
| 832 | 834 |
| 833 virtual void onTimerFired() OVERRIDE | 835 virtual void onTimerFired() OVERRIDE |
| 834 { | 836 { |
| 835 m_proxy->tryToRecreateContext(); | 837 m_proxy->tryToRecreateContext(); |
| 836 } | 838 } |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 958 CCThreadProxy::BeginFrameAndCommitState::BeginFrameAndCommitState() | 960 CCThreadProxy::BeginFrameAndCommitState::BeginFrameAndCommitState() |
| 959 : monotonicFrameBeginTime(0) | 961 : monotonicFrameBeginTime(0) |
| 960 { | 962 { |
| 961 } | 963 } |
| 962 | 964 |
| 963 CCThreadProxy::BeginFrameAndCommitState::~BeginFrameAndCommitState() | 965 CCThreadProxy::BeginFrameAndCommitState::~BeginFrameAndCommitState() |
| 964 { | 966 { |
| 965 } | 967 } |
| 966 | 968 |
| 967 } // namespace cc | 969 } // namespace cc |
| OLD | NEW |