diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-03-12 14:11:15 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-03-12 14:11:15 +0100 |
commit | dd91e772430dc294e3bf478c119ef8d43c0a3358 (patch) | |
tree | 6f33ce4d5872a5691e0291eb45bf6ab373a5f567 /Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h | |
parent | ad0d549d4cc13433f77c1ac8f0ab379c83d93f28 (diff) | |
download | qtwebkit-dd91e772430dc294e3bf478c119ef8d43c0a3358.tar.gz |
Imported WebKit commit 3db4eb1820ac8fb03065d7ea73a4d9db1e8fea1a (http://svn.webkit.org/repository/webkit/trunk@110422)
This includes build fixes for the latest qtbase/qtdeclarative as well as the final QML2 API.
Diffstat (limited to 'Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h')
-rw-r--r-- | Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h b/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h index 330ef51ca..057691213 100644 --- a/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h +++ b/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h @@ -31,6 +31,7 @@ #include "cc/CCProxy.h" #include "cc/CCScheduler.h" #include "cc/CCThread.h" +#include "cc/CCTimer.h" #include <wtf/OwnPtr.h> namespace WebCore { @@ -41,6 +42,7 @@ class CCScheduler; class CCScopedThreadProxy; class CCTextureUpdater; class CCThread; +class CCThreadProxyContextRecreationTimer; class CCThreadProxy : public CCProxy, CCLayerTreeHostImplClient, CCSchedulerClient { public: @@ -50,15 +52,16 @@ public: // CCProxy implementation virtual bool compositeAndReadback(void *pixels, const IntRect&); - virtual void startPageScaleAnimation(const IntSize& targetPosition, bool useAnchor, float scale, double durationSec); + virtual void startPageScaleAnimation(const IntSize& targetPosition, bool useAnchor, float scale, double duration); virtual GraphicsContext3D* context(); virtual void finishAllRendering(); virtual bool isStarted() const; virtual bool initializeContext(); virtual bool initializeLayerRenderer(); + virtual bool recreateContext(); virtual int compositorIdentifier() const; virtual const LayerRendererCapabilities& layerRendererCapabilities() const; - virtual void loseCompositorContext(int numTimes); + virtual void loseContext(); virtual void setNeedsAnimate(); virtual void setNeedsCommit(); virtual void setNeedsRedraw(); @@ -68,10 +71,11 @@ public: virtual size_t maxPartialTextureUpdates() const; // CCLayerTreeHostImplClient implementation + virtual void didLoseContextOnImplThread(); virtual void onSwapBuffersCompleteOnImplThread(); virtual void setNeedsRedrawOnImplThread(); virtual void setNeedsCommitOnImplThread(); - virtual void postAnimationEventsToMainThreadOnImplThread(PassOwnPtr<CCAnimationEventsVector>); + virtual void postAnimationEventsToMainThreadOnImplThread(PassOwnPtr<CCAnimationEventsVector>, double wallClockTime); // CCSchedulerClient implementation virtual bool canDraw(); @@ -80,15 +84,19 @@ public: virtual void scheduledActionDrawAndSwap(); virtual void scheduledActionUpdateMoreResources(); virtual void scheduledActionCommit(); + virtual void scheduledActionBeginContextRecreation(); private: explicit CCThreadProxy(CCLayerTreeHost*); + friend class CCThreadProxyContextRecreationTimer; // Called on main thread void beginFrameAndCommit(int sequenceNumber, double frameBeginTime, PassOwnPtr<CCScrollAndScaleSet>); void didCommitAndDrawFrame(); void didCompleteSwapBuffers(); - void setAnimationEvents(PassOwnPtr<CCAnimationEventsVector>); + void setAnimationEvents(PassOwnPtr<CCAnimationEventsVector>, double wallClockTime); + void beginContextRecreation(); + void tryToRecreateContext(); // Called on impl thread struct ReadbackRequest { @@ -109,10 +117,13 @@ private: void setVisibleOnImplThread(CCCompletionEvent*, bool visible); void layerTreeHostClosedOnImplThread(CCCompletionEvent*); void setFullRootLayerDamageOnImplThread(); + void recreateContextOnImplThread(CCCompletionEvent*, GraphicsContext3D*, bool* recreateSucceeded, LayerRendererCapabilities*); // Accessed on main thread only. bool m_animateRequested; bool m_commitRequested; + bool m_contextLost; + OwnPtr<CCThreadProxyContextRecreationTimer> m_contextRecreationTimer; CCLayerTreeHost* m_layerTreeHost; int m_compositorIdentifier; bool m_layerRendererInitialized; |