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

Side by Side Diff: cc/layer_tree_host.h

Issue 11189043: cc: Rename cc classes and members to match filenames (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 2 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 CCLayerTreeHost_h 5 #ifndef CCLayerTreeHost_h
6 #define CCLayerTreeHost_h 6 #define CCLayerTreeHost_h
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/hash_tables.h" 9 #include "base/hash_tables.h"
10 #include "base/memory/ref_counted.h" 10 #include "base/memory/ref_counted.h"
(...skipping 18 matching lines...) Expand all
29 struct hash<WebKit::WebGraphicsContext3D*> { 29 struct hash<WebKit::WebGraphicsContext3D*> {
30 size_t operator()(WebKit::WebGraphicsContext3D* ptr) const { 30 size_t operator()(WebKit::WebGraphicsContext3D* ptr) const {
31 return hash<size_t>()(reinterpret_cast<size_t>(ptr)); 31 return hash<size_t>()(reinterpret_cast<size_t>(ptr));
32 } 32 }
33 }; 33 };
34 } // namespace BASE_HASH_NAMESPACE 34 } // namespace BASE_HASH_NAMESPACE
35 #endif // COMPILER 35 #endif // COMPILER
36 36
37 namespace cc { 37 namespace cc {
38 38
39 class CCFontAtlas; 39 class FontAtlas;
40 class CCLayerChromium; 40 class Layer;
41 class CCLayerTreeHostImpl; 41 class LayerTreeHostImpl;
42 class CCLayerTreeHostImplClient; 42 class LayerTreeHostImplClient;
43 class CCPrioritizedTextureManager; 43 class PrioritizedTextureManager;
44 class CCTextureUpdateQueue; 44 class TextureUpdateQueue;
45 class HeadsUpDisplayLayerChromium; 45 class HeadsUpDisplayLayer;
46 class Region; 46 class Region;
47 struct CCScrollAndScaleSet; 47 struct ScrollAndScaleSet;
48 48
49 struct CCLayerTreeSettings { 49 struct LayerTreeSettings {
50 CCLayerTreeSettings(); 50 LayerTreeSettings();
51 ~CCLayerTreeSettings(); 51 ~LayerTreeSettings();
52 52
53 bool acceleratePainting; 53 bool acceleratePainting;
54 bool showFPSCounter; 54 bool showFPSCounter;
55 bool showPlatformLayerTree; 55 bool showPlatformLayerTree;
56 bool showPaintRects; 56 bool showPaintRects;
57 bool showPropertyChangedRects; 57 bool showPropertyChangedRects;
58 bool showSurfaceDamageRects; 58 bool showSurfaceDamageRects;
59 bool showScreenSpaceRects; 59 bool showScreenSpaceRects;
60 bool showReplicaScreenSpaceRects; 60 bool showReplicaScreenSpaceRects;
61 bool showOccludingRects; 61 bool showOccludingRects;
62 bool renderVSyncEnabled; 62 bool renderVSyncEnabled;
63 double refreshRate; 63 double refreshRate;
64 size_t maxPartialTextureUpdates; 64 size_t maxPartialTextureUpdates;
65 IntSize defaultTileSize; 65 IntSize defaultTileSize;
66 IntSize maxUntiledLayerSize; 66 IntSize maxUntiledLayerSize;
67 IntSize minimumOcclusionTrackingSize; 67 IntSize minimumOcclusionTrackingSize;
68 68
69 bool showDebugInfo() const { return showPlatformLayerTree || showFPSCounter || showDebugRects(); } 69 bool showDebugInfo() const { return showPlatformLayerTree || showFPSCounter || showDebugRects(); }
70 bool showDebugRects() const { return showPaintRects || showPropertyChangedRe cts || showSurfaceDamageRects || showScreenSpaceRects || showReplicaScreenSpaceR ects || showOccludingRects; } 70 bool showDebugRects() const { return showPaintRects || showPropertyChangedRe cts || showSurfaceDamageRects || showScreenSpaceRects || showReplicaScreenSpaceR ects || showOccludingRects; }
71 }; 71 };
72 72
73 // Provides information on an Impl's rendering capabilities back to the CCLayerT reeHost 73 // Provides information on an Impl's rendering capabilities back to the LayerTre eHost
74 struct RendererCapabilities { 74 struct RendererCapabilities {
75 RendererCapabilities(); 75 RendererCapabilities();
76 ~RendererCapabilities(); 76 ~RendererCapabilities();
77 77
78 GC3Denum bestTextureFormat; 78 GC3Denum bestTextureFormat;
79 bool contextHasCachedFrontBuffer; 79 bool contextHasCachedFrontBuffer;
80 bool usingPartialSwap; 80 bool usingPartialSwap;
81 bool usingAcceleratedPainting; 81 bool usingAcceleratedPainting;
82 bool usingSetVisibility; 82 bool usingSetVisibility;
83 bool usingSwapCompleteCallback; 83 bool usingSwapCompleteCallback;
84 bool usingGpuMemoryManager; 84 bool usingGpuMemoryManager;
85 bool usingDiscardFramebuffer; 85 bool usingDiscardFramebuffer;
86 bool usingEglImage; 86 bool usingEglImage;
87 int maxTextureSize; 87 int maxTextureSize;
88 }; 88 };
89 89
90 class CCLayerTreeHost : public RateLimiterClient { 90 class LayerTreeHost : public RateLimiterClient {
91 public: 91 public:
92 static scoped_ptr<CCLayerTreeHost> create(CCLayerTreeHostClient*, const CCLa yerTreeSettings&); 92 static scoped_ptr<LayerTreeHost> create(LayerTreeHostClient*, const LayerTre eSettings&);
93 virtual ~CCLayerTreeHost(); 93 virtual ~LayerTreeHost();
94 94
95 void setSurfaceReady(); 95 void setSurfaceReady();
96 96
97 // Returns true if any CCLayerTreeHost is alive. 97 // Returns true if any LayerTreeHost is alive.
98 static bool anyLayerTreeHostInstanceExists(); 98 static bool anyLayerTreeHostInstanceExists();
99 99
100 static bool needsFilterContext() { return s_needsFilterContext; } 100 static bool needsFilterContext() { return s_needsFilterContext; }
101 static void setNeedsFilterContext(bool needsFilterContext) { s_needsFilterCo ntext = needsFilterContext; } 101 static void setNeedsFilterContext(bool needsFilterContext) { s_needsFilterCo ntext = needsFilterContext; }
102 bool needsSharedContext() const { return needsFilterContext() || settings(). acceleratePainting; } 102 bool needsSharedContext() const { return needsFilterContext() || settings(). acceleratePainting; }
103 103
104 // CCLayerTreeHost interface to CCProxy. 104 // LayerTreeHost interface to Proxy.
105 void willBeginFrame() { m_client->willBeginFrame(); } 105 void willBeginFrame() { m_client->willBeginFrame(); }
106 void didBeginFrame() { m_client->didBeginFrame(); } 106 void didBeginFrame() { m_client->didBeginFrame(); }
107 void updateAnimations(double monotonicFrameBeginTime); 107 void updateAnimations(double monotonicFrameBeginTime);
108 void layout(); 108 void layout();
109 void beginCommitOnImplThread(CCLayerTreeHostImpl*); 109 void beginCommitOnImplThread(LayerTreeHostImpl*);
110 void finishCommitOnImplThread(CCLayerTreeHostImpl*); 110 void finishCommitOnImplThread(LayerTreeHostImpl*);
111 void willCommit(); 111 void willCommit();
112 void commitComplete(); 112 void commitComplete();
113 scoped_ptr<CCGraphicsContext> createContext(); 113 scoped_ptr<GraphicsContext> createContext();
114 scoped_ptr<CCInputHandler> createInputHandler(); 114 scoped_ptr<InputHandler> createInputHandler();
115 virtual scoped_ptr<CCLayerTreeHostImpl> createLayerTreeHostImpl(CCLayerTreeH ostImplClient*); 115 virtual scoped_ptr<LayerTreeHostImpl> createLayerTreeHostImpl(LayerTreeHostI mplClient*);
116 void didLoseContext(); 116 void didLoseContext();
117 enum RecreateResult { 117 enum RecreateResult {
118 RecreateSucceeded, 118 RecreateSucceeded,
119 RecreateFailedButTryAgain, 119 RecreateFailedButTryAgain,
120 RecreateFailedAndGaveUp, 120 RecreateFailedAndGaveUp,
121 }; 121 };
122 RecreateResult recreateContext(); 122 RecreateResult recreateContext();
123 void didCommitAndDrawFrame() { m_client->didCommitAndDrawFrame(); } 123 void didCommitAndDrawFrame() { m_client->didCommitAndDrawFrame(); }
124 void didCompleteSwapBuffers() { m_client->didCompleteSwapBuffers(); } 124 void didCompleteSwapBuffers() { m_client->didCompleteSwapBuffers(); }
125 void deleteContentsTexturesOnImplThread(CCResourceProvider*); 125 void deleteContentsTexturesOnImplThread(ResourceProvider*);
126 virtual void acquireLayerTextures(); 126 virtual void acquireLayerTextures();
127 // Returns false if we should abort this frame due to initialization failure . 127 // Returns false if we should abort this frame due to initialization failure .
128 bool initializeRendererIfNeeded(); 128 bool initializeRendererIfNeeded();
129 void updateLayers(CCTextureUpdateQueue&, size_t contentsMemoryLimitBytes); 129 void updateLayers(TextureUpdateQueue&, size_t contentsMemoryLimitBytes);
130 130
131 CCLayerTreeHostClient* client() { return m_client; } 131 LayerTreeHostClient* client() { return m_client; }
132 132
133 // Only used when compositing on the main thread. 133 // Only used when compositing on the main thread.
134 void composite(); 134 void composite();
135 void scheduleComposite(); 135 void scheduleComposite();
136 136
137 // Composites and attempts to read back the result into the provided 137 // Composites and attempts to read back the result into the provided
138 // buffer. If it wasn't possible, e.g. due to context lost, will return 138 // buffer. If it wasn't possible, e.g. due to context lost, will return
139 // false. 139 // false.
140 bool compositeAndReadback(void *pixels, const IntRect&); 140 bool compositeAndReadback(void *pixels, const IntRect&);
141 141
142 void finishAllRendering(); 142 void finishAllRendering();
143 143
144 int commitNumber() const { return m_commitNumber; } 144 int commitNumber() const { return m_commitNumber; }
145 145
146 void renderingStats(CCRenderingStats*) const; 146 void renderingStats(RenderingStats*) const;
147 147
148 const RendererCapabilities& rendererCapabilities() const; 148 const RendererCapabilities& rendererCapabilities() const;
149 149
150 // Test only hook 150 // Test only hook
151 void loseContext(int numTimes); 151 void loseContext(int numTimes);
152 152
153 void setNeedsAnimate(); 153 void setNeedsAnimate();
154 // virtual for testing 154 // virtual for testing
155 virtual void setNeedsCommit(); 155 virtual void setNeedsCommit();
156 void setNeedsRedraw(); 156 void setNeedsRedraw();
157 bool commitRequested() const; 157 bool commitRequested() const;
158 158
159 void setAnimationEvents(scoped_ptr<CCAnimationEventsVector>, double wallCloc kTime); 159 void setAnimationEvents(scoped_ptr<AnimationEventsVector>, double wallClockT ime);
160 virtual void didAddAnimation(); 160 virtual void didAddAnimation();
161 161
162 LayerChromium* rootLayer() { return m_rootLayer.get(); } 162 Layer* rootLayer() { return m_rootLayer.get(); }
163 const LayerChromium* rootLayer() const { return m_rootLayer.get(); } 163 const Layer* rootLayer() const { return m_rootLayer.get(); }
164 void setRootLayer(scoped_refptr<LayerChromium>); 164 void setRootLayer(scoped_refptr<Layer>);
165 165
166 const CCLayerTreeSettings& settings() const { return m_settings; } 166 const LayerTreeSettings& settings() const { return m_settings; }
167 167
168 void setViewportSize(const IntSize& layoutViewportSize, const IntSize& devic eViewportSize); 168 void setViewportSize(const IntSize& layoutViewportSize, const IntSize& devic eViewportSize);
169 169
170 const IntSize& layoutViewportSize() const { return m_layoutViewportSize; } 170 const IntSize& layoutViewportSize() const { return m_layoutViewportSize; }
171 const IntSize& deviceViewportSize() const { return m_deviceViewportSize; } 171 const IntSize& deviceViewportSize() const { return m_deviceViewportSize; }
172 172
173 void setPageScaleFactorAndLimits(float pageScaleFactor, float minPageScaleFa ctor, float maxPageScaleFactor); 173 void setPageScaleFactorAndLimits(float pageScaleFactor, float minPageScaleFa ctor, float maxPageScaleFactor);
174 174
175 void setBackgroundColor(SkColor color) { m_backgroundColor = color; } 175 void setBackgroundColor(SkColor color) { m_backgroundColor = color; }
176 176
177 void setHasTransparentBackground(bool transparent) { m_hasTransparentBackgro und = transparent; } 177 void setHasTransparentBackground(bool transparent) { m_hasTransparentBackgro und = transparent; }
178 178
179 CCPrioritizedTextureManager* contentsTextureManager() const; 179 PrioritizedTextureManager* contentsTextureManager() const;
180 180
181 bool visible() const { return m_visible; } 181 bool visible() const { return m_visible; }
182 void setVisible(bool); 182 void setVisible(bool);
183 183
184 void startPageScaleAnimation(const IntSize& targetPosition, bool useAnchor, float scale, double durationSec); 184 void startPageScaleAnimation(const IntSize& targetPosition, bool useAnchor, float scale, double durationSec);
185 185
186 void applyScrollAndScale(const CCScrollAndScaleSet&); 186 void applyScrollAndScale(const ScrollAndScaleSet&);
187 void setImplTransform(const WebKit::WebTransformationMatrix&); 187 void setImplTransform(const WebKit::WebTransformationMatrix&);
188 188
189 void startRateLimiter(WebKit::WebGraphicsContext3D*); 189 void startRateLimiter(WebKit::WebGraphicsContext3D*);
190 void stopRateLimiter(WebKit::WebGraphicsContext3D*); 190 void stopRateLimiter(WebKit::WebGraphicsContext3D*);
191 191
192 // RateLimitClient implementation 192 // RateLimitClient implementation
193 virtual void rateLimit() OVERRIDE; 193 virtual void rateLimit() OVERRIDE;
194 194
195 bool bufferedUpdates(); 195 bool bufferedUpdates();
196 bool requestPartialTextureUpdate(); 196 bool requestPartialTextureUpdate();
197 void deleteTextureAfterCommit(scoped_ptr<CCPrioritizedTexture>); 197 void deleteTextureAfterCommit(scoped_ptr<PrioritizedTexture>);
198 198
199 void setDeviceScaleFactor(float); 199 void setDeviceScaleFactor(float);
200 float deviceScaleFactor() const { return m_deviceScaleFactor; } 200 float deviceScaleFactor() const { return m_deviceScaleFactor; }
201 201
202 void setFontAtlas(scoped_ptr<CCFontAtlas>); 202 void setFontAtlas(scoped_ptr<FontAtlas>);
203 203
204 HeadsUpDisplayLayerChromium* hudLayer() const { return m_hudLayer.get(); } 204 HeadsUpDisplayLayer* hudLayer() const { return m_hudLayer.get(); }
205 205
206 protected: 206 protected:
207 CCLayerTreeHost(CCLayerTreeHostClient*, const CCLayerTreeSettings&); 207 LayerTreeHost(LayerTreeHostClient*, const LayerTreeSettings&);
208 bool initialize(); 208 bool initialize();
209 209
210 private: 210 private:
211 typedef std::vector<scoped_refptr<LayerChromium> > LayerList; 211 typedef std::vector<scoped_refptr<Layer> > LayerList;
212 212
213 void initializeRenderer(); 213 void initializeRenderer();
214 214
215 void update(LayerChromium*, CCTextureUpdateQueue&, const CCOcclusionTracker* ); 215 void update(Layer*, TextureUpdateQueue&, const OcclusionTracker*);
216 bool paintLayerContents(const LayerList&, CCTextureUpdateQueue&); 216 bool paintLayerContents(const LayerList&, TextureUpdateQueue&);
217 bool paintMasksForRenderSurface(LayerChromium*, CCTextureUpdateQueue&); 217 bool paintMasksForRenderSurface(Layer*, TextureUpdateQueue&);
218 218
219 void updateLayers(LayerChromium*, CCTextureUpdateQueue&); 219 void updateLayers(Layer*, TextureUpdateQueue&);
220 220
221 void prioritizeTextures(const LayerList&, CCOverdrawMetrics&); 221 void prioritizeTextures(const LayerList&, OverdrawMetrics&);
222 void setPrioritiesForSurfaces(size_t surfaceMemoryBytes); 222 void setPrioritiesForSurfaces(size_t surfaceMemoryBytes);
223 void setPrioritiesForLayers(const LayerList&); 223 void setPrioritiesForLayers(const LayerList&);
224 size_t calculateMemoryForRenderSurfaces(const LayerList& updateList); 224 size_t calculateMemoryForRenderSurfaces(const LayerList& updateList);
225 225
226 void animateLayers(double monotonicTime); 226 void animateLayers(double monotonicTime);
227 bool animateLayersRecursive(LayerChromium* current, double monotonicTime); 227 bool animateLayersRecursive(Layer* current, double monotonicTime);
228 void setAnimationEventsRecursive(const CCAnimationEventsVector&, LayerChromi um*, double wallClockTime); 228 void setAnimationEventsRecursive(const AnimationEventsVector&, Layer*, doubl e wallClockTime);
229 229
230 bool m_animating; 230 bool m_animating;
231 bool m_needsAnimateLayers; 231 bool m_needsAnimateLayers;
232 232
233 CCLayerTreeHostClient* m_client; 233 LayerTreeHostClient* m_client;
234 234
235 int m_commitNumber; 235 int m_commitNumber;
236 CCRenderingStats m_renderingStats; 236 RenderingStats m_renderingStats;
237 237
238 scoped_ptr<CCProxy> m_proxy; 238 scoped_ptr<Proxy> m_proxy;
239 bool m_rendererInitialized; 239 bool m_rendererInitialized;
240 bool m_contextLost; 240 bool m_contextLost;
241 int m_numTimesRecreateShouldFail; 241 int m_numTimesRecreateShouldFail;
242 int m_numFailedRecreateAttempts; 242 int m_numFailedRecreateAttempts;
243 243
244 scoped_refptr<LayerChromium> m_rootLayer; 244 scoped_refptr<Layer> m_rootLayer;
245 scoped_refptr<HeadsUpDisplayLayerChromium> m_hudLayer; 245 scoped_refptr<HeadsUpDisplayLayer> m_hudLayer;
246 scoped_ptr<CCFontAtlas> m_fontAtlas; 246 scoped_ptr<FontAtlas> m_fontAtlas;
247 247
248 scoped_ptr<CCPrioritizedTextureManager> m_contentsTextureManager; 248 scoped_ptr<PrioritizedTextureManager> m_contentsTextureManager;
249 scoped_ptr<CCPrioritizedTexture> m_surfaceMemoryPlaceholder; 249 scoped_ptr<PrioritizedTexture> m_surfaceMemoryPlaceholder;
250 250
251 CCLayerTreeSettings m_settings; 251 LayerTreeSettings m_settings;
252 252
253 IntSize m_layoutViewportSize; 253 IntSize m_layoutViewportSize;
254 IntSize m_deviceViewportSize; 254 IntSize m_deviceViewportSize;
255 float m_deviceScaleFactor; 255 float m_deviceScaleFactor;
256 256
257 bool m_visible; 257 bool m_visible;
258 258
259 typedef base::hash_map<WebKit::WebGraphicsContext3D*, scoped_refptr<RateLimi ter> > RateLimiterMap; 259 typedef base::hash_map<WebKit::WebGraphicsContext3D*, scoped_refptr<RateLimi ter> > RateLimiterMap;
260 RateLimiterMap m_rateLimiters; 260 RateLimiterMap m_rateLimiters;
261 261
262 float m_pageScaleFactor; 262 float m_pageScaleFactor;
263 float m_minPageScaleFactor, m_maxPageScaleFactor; 263 float m_minPageScaleFactor, m_maxPageScaleFactor;
264 WebKit::WebTransformationMatrix m_implTransform; 264 WebKit::WebTransformationMatrix m_implTransform;
265 bool m_triggerIdleUpdates; 265 bool m_triggerIdleUpdates;
266 266
267 SkColor m_backgroundColor; 267 SkColor m_backgroundColor;
268 bool m_hasTransparentBackground; 268 bool m_hasTransparentBackground;
269 269
270 typedef ScopedPtrVector<CCPrioritizedTexture> TextureList; 270 typedef ScopedPtrVector<PrioritizedTexture> TextureList;
271 TextureList m_deleteTextureAfterCommitList; 271 TextureList m_deleteTextureAfterCommitList;
272 size_t m_partialTextureUpdateRequests; 272 size_t m_partialTextureUpdateRequests;
273 273
274 static bool s_needsFilterContext; 274 static bool s_needsFilterContext;
275 275
276 DISALLOW_COPY_AND_ASSIGN(CCLayerTreeHost); 276 DISALLOW_COPY_AND_ASSIGN(LayerTreeHost);
277 }; 277 };
278 278
279 } // namespace cc 279 } // namespace cc
280 280
281 #endif 281 #endif
OLDNEW
« cc/active_animation.h ('K') | « cc/layer_tiling_data.cc ('k') | cc/layer_tree_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698