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 #ifndef CCThreadProxy_h | 5 #ifndef CCThreadProxy_h |
6 #define CCThreadProxy_h | 6 #define CCThreadProxy_h |
7 | 7 |
8 #include "base/time.h" | 8 #include "base/time.h" |
9 #include "cc/animation_events.h" | 9 #include "cc/animation_events.h" |
10 #include "cc/completion_event.h" | 10 #include "cc/completion_event.h" |
(...skipping 13 matching lines...) Expand all Loading... |
24 class ThreadProxyContextRecreationTimer; | 24 class ThreadProxyContextRecreationTimer; |
25 | 25 |
26 class ThreadProxy : public Proxy, LayerTreeHostImplClient, SchedulerClient, Reso
urceUpdateControllerClient { | 26 class ThreadProxy : public Proxy, LayerTreeHostImplClient, SchedulerClient, Reso
urceUpdateControllerClient { |
27 public: | 27 public: |
28 static scoped_ptr<Proxy> create(LayerTreeHost*); | 28 static scoped_ptr<Proxy> create(LayerTreeHost*); |
29 | 29 |
30 virtual ~ThreadProxy(); | 30 virtual ~ThreadProxy(); |
31 | 31 |
32 // Proxy implementation | 32 // Proxy implementation |
33 virtual bool compositeAndReadback(void *pixels, const IntRect&) OVERRIDE; | 33 virtual bool compositeAndReadback(void *pixels, const IntRect&) OVERRIDE; |
34 virtual void startPageScaleAnimation(const IntSize& targetPosition, bool use
Anchor, float scale, double duration) OVERRIDE; | 34 virtual void startPageScaleAnimation(const IntSize& targetPosition, bool use
Anchor, float scale, base::TimeDelta duration) OVERRIDE; |
35 virtual void finishAllRendering() OVERRIDE; | 35 virtual void finishAllRendering() OVERRIDE; |
36 virtual bool isStarted() const OVERRIDE; | 36 virtual bool isStarted() const OVERRIDE; |
37 virtual bool initializeContext() OVERRIDE; | 37 virtual bool initializeContext() OVERRIDE; |
38 virtual void setSurfaceReady() OVERRIDE; | 38 virtual void setSurfaceReady() OVERRIDE; |
39 virtual void setVisible(bool) OVERRIDE; | 39 virtual void setVisible(bool) OVERRIDE; |
40 virtual bool initializeRenderer() OVERRIDE; | 40 virtual bool initializeRenderer() OVERRIDE; |
41 virtual bool recreateContext() OVERRIDE; | 41 virtual bool recreateContext() OVERRIDE; |
42 virtual void renderingStats(RenderingStats*) OVERRIDE; | 42 virtual void renderingStats(RenderingStats*) OVERRIDE; |
43 virtual const RendererCapabilities& rendererCapabilities() const OVERRIDE; | 43 virtual const RendererCapabilities& rendererCapabilities() const OVERRIDE; |
44 virtual void loseContext() OVERRIDE; | 44 virtual void loseContext() OVERRIDE; |
45 virtual void setNeedsAnimate() OVERRIDE; | 45 virtual void setNeedsAnimate() OVERRIDE; |
46 virtual void setNeedsCommit() OVERRIDE; | 46 virtual void setNeedsCommit() OVERRIDE; |
47 virtual void setNeedsRedraw() OVERRIDE; | 47 virtual void setNeedsRedraw() OVERRIDE; |
48 virtual void setDeferCommits(bool) OVERRIDE; | 48 virtual void setDeferCommits(bool) OVERRIDE; |
49 virtual bool commitRequested() const OVERRIDE; | 49 virtual bool commitRequested() const OVERRIDE; |
50 virtual void didAddAnimation() OVERRIDE { } | 50 virtual void didAddAnimation() OVERRIDE { } |
51 virtual void start() OVERRIDE; | 51 virtual void start() OVERRIDE; |
52 virtual void stop() OVERRIDE; | 52 virtual void stop() OVERRIDE; |
53 virtual size_t maxPartialTextureUpdates() const OVERRIDE; | 53 virtual size_t maxPartialTextureUpdates() const OVERRIDE; |
54 virtual void acquireLayerTextures() OVERRIDE; | 54 virtual void acquireLayerTextures() OVERRIDE; |
55 virtual void forceSerializeOnSwapBuffers() OVERRIDE; | 55 virtual void forceSerializeOnSwapBuffers() OVERRIDE; |
56 | 56 |
57 // LayerTreeHostImplClient implementation | 57 // LayerTreeHostImplClient implementation |
58 virtual void didLoseContextOnImplThread() OVERRIDE; | 58 virtual void didLoseContextOnImplThread() OVERRIDE; |
59 virtual void onSwapBuffersCompleteOnImplThread() OVERRIDE; | 59 virtual void onSwapBuffersCompleteOnImplThread() OVERRIDE; |
60 virtual void onVSyncParametersChanged(double monotonicTimebase, double inter
valInSeconds) OVERRIDE; | 60 virtual void onVSyncParametersChanged(base::TimeTicks timebase, base::TimeDe
lta interval) OVERRIDE; |
61 virtual void onCanDrawStateChanged(bool canDraw) OVERRIDE; | 61 virtual void onCanDrawStateChanged(bool canDraw) OVERRIDE; |
62 virtual void setNeedsRedrawOnImplThread() OVERRIDE; | 62 virtual void setNeedsRedrawOnImplThread() OVERRIDE; |
63 virtual void setNeedsCommitOnImplThread() OVERRIDE; | 63 virtual void setNeedsCommitOnImplThread() OVERRIDE; |
64 virtual void postAnimationEventsToMainThreadOnImplThread(scoped_ptr<Animatio
nEventsVector>, double wallClockTime) OVERRIDE; | 64 virtual void postAnimationEventsToMainThreadOnImplThread(scoped_ptr<Animatio
nEventsVector>, base::Time wallClockTime) OVERRIDE; |
65 virtual bool reduceContentsTextureMemoryOnImplThread(size_t limitBytes, int
priorityCutoff) OVERRIDE; | 65 virtual bool reduceContentsTextureMemoryOnImplThread(size_t limitBytes, int
priorityCutoff) OVERRIDE; |
66 virtual void sendManagedMemoryStats() OVERRIDE; | 66 virtual void sendManagedMemoryStats() OVERRIDE; |
67 | 67 |
68 // SchedulerClient implementation | 68 // SchedulerClient implementation |
69 virtual void scheduledActionBeginFrame() OVERRIDE; | 69 virtual void scheduledActionBeginFrame() OVERRIDE; |
70 virtual ScheduledActionDrawAndSwapResult scheduledActionDrawAndSwapIfPossibl
e() OVERRIDE; | 70 virtual ScheduledActionDrawAndSwapResult scheduledActionDrawAndSwapIfPossibl
e() OVERRIDE; |
71 virtual ScheduledActionDrawAndSwapResult scheduledActionDrawAndSwapForced()
OVERRIDE; | 71 virtual ScheduledActionDrawAndSwapResult scheduledActionDrawAndSwapForced()
OVERRIDE; |
72 virtual void scheduledActionCommit() OVERRIDE; | 72 virtual void scheduledActionCommit() OVERRIDE; |
73 virtual void scheduledActionBeginContextRecreation() OVERRIDE; | 73 virtual void scheduledActionBeginContextRecreation() OVERRIDE; |
74 virtual void scheduledActionAcquireLayerTexturesForMainThread() OVERRIDE; | 74 virtual void scheduledActionAcquireLayerTexturesForMainThread() OVERRIDE; |
75 virtual void didAnticipatedDrawTimeChange(base::TimeTicks) OVERRIDE; | 75 virtual void didAnticipatedDrawTimeChange(base::TimeTicks) OVERRIDE; |
76 | 76 |
77 // ResourceUpdateControllerClient implementation | 77 // ResourceUpdateControllerClient implementation |
78 virtual void readyToFinalizeTextureUpdates() OVERRIDE; | 78 virtual void readyToFinalizeTextureUpdates() OVERRIDE; |
79 | 79 |
80 private: | 80 private: |
81 explicit ThreadProxy(LayerTreeHost*); | 81 explicit ThreadProxy(LayerTreeHost*); |
82 friend class ThreadProxyContextRecreationTimer; | 82 friend class ThreadProxyContextRecreationTimer; |
83 | 83 |
84 // Set on impl thread, read on main thread. | 84 // Set on impl thread, read on main thread. |
85 struct BeginFrameAndCommitState { | 85 struct BeginFrameAndCommitState { |
86 BeginFrameAndCommitState(); | 86 BeginFrameAndCommitState(); |
87 ~BeginFrameAndCommitState(); | 87 ~BeginFrameAndCommitState(); |
88 | 88 |
89 double monotonicFrameBeginTime; | 89 base::TimeTicks monotonicFrameBeginTime; |
90 scoped_ptr<ScrollAndScaleSet> scrollInfo; | 90 scoped_ptr<ScrollAndScaleSet> scrollInfo; |
91 WebKit::WebTransformationMatrix implTransform; | 91 WebKit::WebTransformationMatrix implTransform; |
92 PrioritizedTextureManager::BackingList evictedContentsTexturesBackings; | 92 PrioritizedTextureManager::BackingList evictedContentsTexturesBackings; |
93 size_t memoryAllocationLimitBytes; | 93 size_t memoryAllocationLimitBytes; |
94 }; | 94 }; |
95 scoped_ptr<BeginFrameAndCommitState> m_pendingBeginFrameRequest; | 95 scoped_ptr<BeginFrameAndCommitState> m_pendingBeginFrameRequest; |
96 | 96 |
97 // Called on main thread | 97 // Called on main thread |
98 void beginFrame(); | 98 void beginFrame(); |
99 void didCommitAndDrawFrame(); | 99 void didCommitAndDrawFrame(); |
100 void didCompleteSwapBuffers(); | 100 void didCompleteSwapBuffers(); |
101 void setAnimationEvents(AnimationEventsVector*, double wallClockTime); | 101 void setAnimationEvents(AnimationEventsVector*, base::Time wallClockTime); |
102 void beginContextRecreation(); | 102 void beginContextRecreation(); |
103 void tryToRecreateContext(); | 103 void tryToRecreateContext(); |
104 | 104 |
105 // Called on impl thread | 105 // Called on impl thread |
106 struct ReadbackRequest { | 106 struct ReadbackRequest { |
107 CompletionEvent completion; | 107 CompletionEvent completion; |
108 bool success; | 108 bool success; |
109 void* pixels; | 109 void* pixels; |
110 IntRect rect; | 110 IntRect rect; |
111 }; | 111 }; |
112 void forceBeginFrameOnImplThread(CompletionEvent*); | 112 void forceBeginFrameOnImplThread(CompletionEvent*); |
113 void beginFrameCompleteOnImplThread(CompletionEvent*, ResourceUpdateQueue*); | 113 void beginFrameCompleteOnImplThread(CompletionEvent*, ResourceUpdateQueue*); |
114 void beginFrameAbortedOnImplThread(); | 114 void beginFrameAbortedOnImplThread(); |
115 void requestReadbackOnImplThread(ReadbackRequest*); | 115 void requestReadbackOnImplThread(ReadbackRequest*); |
116 void requestStartPageScaleAnimationOnImplThread(IntSize targetPosition, bool
useAnchor, float scale, double durationSec); | 116 void requestStartPageScaleAnimationOnImplThread(IntSize targetPosition, bool
useAnchor, float scale, base::TimeDelta duration); |
117 void finishAllRenderingOnImplThread(CompletionEvent*); | 117 void finishAllRenderingOnImplThread(CompletionEvent*); |
118 void initializeImplOnImplThread(CompletionEvent*, InputHandler*); | 118 void initializeImplOnImplThread(CompletionEvent*, InputHandler*); |
119 void setSurfaceReadyOnImplThread(); | 119 void setSurfaceReadyOnImplThread(); |
120 void setVisibleOnImplThread(CompletionEvent*, bool); | 120 void setVisibleOnImplThread(CompletionEvent*, bool); |
121 void initializeContextOnImplThread(GraphicsContext*); | 121 void initializeContextOnImplThread(GraphicsContext*); |
122 void initializeRendererOnImplThread(CompletionEvent*, bool* initializeSuccee
ded, RendererCapabilities*); | 122 void initializeRendererOnImplThread(CompletionEvent*, bool* initializeSuccee
ded, RendererCapabilities*); |
123 void layerTreeHostClosedOnImplThread(CompletionEvent*); | 123 void layerTreeHostClosedOnImplThread(CompletionEvent*); |
124 void setFullRootLayerDamageOnImplThread(); | 124 void setFullRootLayerDamageOnImplThread(); |
125 void acquireLayerTexturesForMainThreadOnImplThread(CompletionEvent*); | 125 void acquireLayerTexturesForMainThreadOnImplThread(CompletionEvent*); |
126 void recreateContextOnImplThread(CompletionEvent*, GraphicsContext*, bool* r
ecreateSucceeded, RendererCapabilities*); | 126 void recreateContextOnImplThread(CompletionEvent*, GraphicsContext*, bool* r
ecreateSucceeded, RendererCapabilities*); |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 base::TimeDelta m_totalCommitTime; | 176 base::TimeDelta m_totalCommitTime; |
177 size_t m_totalCommitCount; | 177 size_t m_totalCommitCount; |
178 | 178 |
179 bool m_deferCommits; | 179 bool m_deferCommits; |
180 bool m_deferredCommitPending; | 180 bool m_deferredCommitPending; |
181 }; | 181 }; |
182 | 182 |
183 } | 183 } |
184 | 184 |
185 #endif | 185 #endif |
OLD | NEW |