Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(333)

Side by Side Diff: cc/thread_proxy.h

Issue 12212007: cc: Route offscreen context creation for compositor to the browser. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix typo Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 CC_THREAD_PROXY_H_ 5 #ifndef CC_THREAD_PROXY_H_
6 #define CC_THREAD_PROXY_H_ 6 #define CC_THREAD_PROXY_H_
7 7
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/memory/weak_ptr.h" 9 #include "base/memory/weak_ptr.h"
10 #include "base/time.h" 10 #include "base/time.h"
11 #include "cc/animation_events.h" 11 #include "cc/animation_events.h"
12 #include "cc/completion_event.h" 12 #include "cc/completion_event.h"
13 #include "cc/layer_tree_host_impl.h" 13 #include "cc/layer_tree_host_impl.h"
14 #include "cc/proxy.h" 14 #include "cc/proxy.h"
15 #include "cc/resource_update_controller.h" 15 #include "cc/resource_update_controller.h"
16 #include "cc/scheduler.h" 16 #include "cc/scheduler.h"
17 17
18 namespace cc { 18 namespace cc {
19 19
20 class ContextProvider;
20 class InputHandler; 21 class InputHandler;
21 class LayerTreeHost; 22 class LayerTreeHost;
22 class ResourceUpdateQueue; 23 class ResourceUpdateQueue;
23 class Scheduler; 24 class Scheduler;
24 class ScopedThreadProxy; 25 class ScopedThreadProxy;
25 class Thread; 26 class Thread;
26 27
27 class ThreadProxy : public Proxy, LayerTreeHostImplClient, SchedulerClient, Reso urceUpdateControllerClient { 28 class ThreadProxy : public Proxy, LayerTreeHostImplClient, SchedulerClient, Reso urceUpdateControllerClient {
28 public: 29 public:
29 static scoped_ptr<Proxy> create(LayerTreeHost*, scoped_ptr<Thread> implThrea d); 30 static scoped_ptr<Proxy> create(LayerTreeHost*, scoped_ptr<Thread> implThrea d);
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 CompletionEvent completion; 117 CompletionEvent completion;
117 bool success; 118 bool success;
118 void* pixels; 119 void* pixels;
119 gfx::Rect rect; 120 gfx::Rect rect;
120 }; 121 };
121 struct CommitPendingRequest { 122 struct CommitPendingRequest {
122 CompletionEvent completion; 123 CompletionEvent completion;
123 bool commitPending; 124 bool commitPending;
124 }; 125 };
125 void forceBeginFrameOnImplThread(CompletionEvent*); 126 void forceBeginFrameOnImplThread(CompletionEvent*);
126 void beginFrameCompleteOnImplThread(CompletionEvent*, ResourceUpdateQueue*); 127 void beginFrameCompleteOnImplThread(CompletionEvent*, ResourceUpdateQueue*, scoped_refptr<cc::ContextProvider> offscreenContextProvider);
127 void beginFrameAbortedOnImplThread(); 128 void beginFrameAbortedOnImplThread();
128 void requestReadbackOnImplThread(ReadbackRequest*); 129 void requestReadbackOnImplThread(ReadbackRequest*);
129 void requestStartPageScaleAnimationOnImplThread(gfx::Vector2d targetOffset, bool useAnchor, float scale, base::TimeDelta duration); 130 void requestStartPageScaleAnimationOnImplThread(gfx::Vector2d targetOffset, bool useAnchor, float scale, base::TimeDelta duration);
130 void finishAllRenderingOnImplThread(CompletionEvent*); 131 void finishAllRenderingOnImplThread(CompletionEvent*);
131 void initializeImplOnImplThread(CompletionEvent*, InputHandler*); 132 void initializeImplOnImplThread(CompletionEvent*, InputHandler*);
132 void setSurfaceReadyOnImplThread(); 133 void setSurfaceReadyOnImplThread();
133 void setVisibleOnImplThread(CompletionEvent*, bool); 134 void setVisibleOnImplThread(CompletionEvent*, bool);
134 void initializeOutputSurfaceOnImplThread(scoped_ptr<OutputSurface>); 135 void initializeOutputSurfaceOnImplThread(scoped_ptr<OutputSurface>);
135 void initializeRendererOnImplThread(CompletionEvent*, bool* initializeSuccee ded, RendererCapabilities*); 136 void initializeRendererOnImplThread(CompletionEvent*, bool* initializeSuccee ded, RendererCapabilities*);
136 void layerTreeHostClosedOnImplThread(CompletionEvent*); 137 void layerTreeHostClosedOnImplThread(CompletionEvent*);
137 void manageTilesOnImplThread(); 138 void manageTilesOnImplThread();
138 void setFullRootLayerDamageOnImplThread(); 139 void setFullRootLayerDamageOnImplThread();
139 void acquireLayerTexturesForMainThreadOnImplThread(CompletionEvent*); 140 void acquireLayerTexturesForMainThreadOnImplThread(CompletionEvent*);
140 void recreateOutputSurfaceOnImplThread(CompletionEvent*, scoped_ptr<OutputSu rface>, bool* recreateSucceeded, RendererCapabilities*); 141 void recreateOutputSurfaceOnImplThread(CompletionEvent*, scoped_ptr<OutputSu rface>, scoped_refptr<cc::ContextProvider> offscreenContextProvider, bool* recre ateSucceeded, RendererCapabilities*);
141 void renderingStatsOnImplThread(CompletionEvent*, RenderingStats*); 142 void renderingStatsOnImplThread(CompletionEvent*, RenderingStats*);
142 ScheduledActionDrawAndSwapResult scheduledActionDrawAndSwapInternal(bool for cedDraw); 143 ScheduledActionDrawAndSwapResult scheduledActionDrawAndSwapInternal(bool for cedDraw);
143 void forceSerializeOnSwapBuffersOnImplThread(CompletionEvent*); 144 void forceSerializeOnSwapBuffersOnImplThread(CompletionEvent*);
144 void setNeedsForcedCommitOnImplThread(); 145 void setNeedsForcedCommitOnImplThread();
145 void checkOutputSurfaceStatusOnImplThread(); 146 void checkOutputSurfaceStatusOnImplThread();
146 void commitPendingOnImplThreadForTesting(CommitPendingRequest* request); 147 void commitPendingOnImplThreadForTesting(CommitPendingRequest* request);
147 void capturePictureOnImplThread(CompletionEvent*, skia::RefPtr<SkPicture>*); 148 void capturePictureOnImplThread(CompletionEvent*, skia::RefPtr<SkPicture>*);
148 void asValueOnImplThread(CompletionEvent*, base::DictionaryValue*) const; 149 void asValueOnImplThread(CompletionEvent*, base::DictionaryValue*) const;
149 void renewTreePriorityOnImplThread(); 150 void renewTreePriorityOnImplThread();
150 void didSwapUseIncompleteTileOnImplThread(); 151 void didSwapUseIncompleteTileOnImplThread();
151 152
152 // Accessed on main thread only. 153 // Accessed on main thread only.
153 bool m_animateRequested; // Set only when setNeedsAnimate is called. 154 bool m_animateRequested; // Set only when setNeedsAnimate is called.
154 bool m_commitRequested; // Set only when setNeedsCommit is called. 155 bool m_commitRequested; // Set only when setNeedsCommit is called.
155 bool m_commitRequestSentToImplThread; // Set by setNeedsCommit and setNeedsA nimate. 156 bool m_commitRequestSentToImplThread; // Set by setNeedsCommit and setNeedsA nimate.
157 bool m_createdOffscreenContextProvider; // Set by beginFrame.
156 base::CancelableClosure m_outputSurfaceRecreationCallback; 158 base::CancelableClosure m_outputSurfaceRecreationCallback;
157 LayerTreeHost* m_layerTreeHost; 159 LayerTreeHost* m_layerTreeHost;
158 bool m_rendererInitialized; 160 bool m_rendererInitialized;
159 RendererCapabilities m_RendererCapabilitiesMainThreadCopy; 161 RendererCapabilities m_RendererCapabilitiesMainThreadCopy;
160 bool m_started; 162 bool m_started;
161 bool m_texturesAcquired; 163 bool m_texturesAcquired;
162 bool m_inCompositeAndReadback; 164 bool m_inCompositeAndReadback;
163 bool m_manageTilesPending; 165 bool m_manageTilesPending;
164 // Weak pointer to use when posting tasks to the impl thread. 166 // Weak pointer to use when posting tasks to the impl thread.
165 base::WeakPtr<ThreadProxy> m_implThreadWeakPtr; 167 base::WeakPtr<ThreadProxy> m_implThreadWeakPtr;
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 bool m_deferCommits; 211 bool m_deferCommits;
210 scoped_ptr<BeginFrameAndCommitState> m_pendingDeferredCommit; 212 scoped_ptr<BeginFrameAndCommitState> m_pendingDeferredCommit;
211 213
212 base::TimeTicks m_smoothnessTakesPriorityExpirationTime; 214 base::TimeTicks m_smoothnessTakesPriorityExpirationTime;
213 bool m_renewTreePriorityOnImplThreadPending; 215 bool m_renewTreePriorityOnImplThreadPending;
214 }; 216 };
215 217
216 } // namespace cc 218 } // namespace cc
217 219
218 #endif // CC_THREAD_PROXY_H_ 220 #endif // CC_THREAD_PROXY_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698