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

Side by Side Diff: cc/layer_tree_host_impl.h

Issue 11264056: cc: Use gfx:: Geometry types for positions, bounds, and related things. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: some missed intstuff Created 8 years, 1 month 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 CCLayerTreeHostImpl_h 5 #ifndef CCLayerTreeHostImpl_h
6 #define CCLayerTreeHostImpl_h 6 #define CCLayerTreeHostImpl_h
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/time.h" 10 #include "base/time.h"
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 void setSentPageScaleDelta(float delta) { m_sentPageScaleDelta = delta; } 67 void setSentPageScaleDelta(float delta) { m_sentPageScaleDelta = delta; }
68 float sentPageScaleDelta() const { return m_sentPageScaleDelta; } 68 float sentPageScaleDelta() const { return m_sentPageScaleDelta; }
69 69
70 // Returns true if the passed parameters were different from those previousl y 70 // Returns true if the passed parameters were different from those previousl y
71 // cached. 71 // cached.
72 bool setPageScaleFactorAndLimits(float pageScaleFactor, 72 bool setPageScaleFactorAndLimits(float pageScaleFactor,
73 float minPageScaleFactor, 73 float minPageScaleFactor,
74 float maxPageScaleFactor); 74 float maxPageScaleFactor);
75 75
76 // Returns the bounds and offset of the scaled and translated viewport to us e for pinch-zoom. 76 // Returns the bounds and offset of the scaled and translated viewport to us e for pinch-zoom.
77 FloatRect bounds() const; 77 gfx::RectF bounds() const;
78 const FloatPoint& scrollDelta() const { return m_pinchViewportScrollDelta; } 78 const FloatPoint& scrollDelta() const { return m_pinchViewportScrollDelta; }
79 79
80 void setLayoutViewportSize(const FloatSize& size) { m_layoutViewportSize = s ize; } 80 void setLayoutViewportSize(const gfx::SizeF& size) { m_layoutViewportSize = size; }
81 81
82 // Apply the scroll offset in layout space to the offset of the pinch-zoom v iewport. The viewport cannot be 82 // Apply the scroll offset in layout space to the offset of the pinch-zoom v iewport. The viewport cannot be
83 // scrolled outside of the layout viewport bounds. Returns the component of the scroll that is un-applied due to 83 // scrolled outside of the layout viewport bounds. Returns the component of the scroll that is un-applied due to
84 // this constraint. 84 // this constraint.
85 FloatSize applyScroll(FloatSize&); 85 FloatSize applyScroll(FloatSize&);
86 86
87 WebKit::WebTransformationMatrix implTransform() const; 87 WebKit::WebTransformationMatrix implTransform() const;
88 88
89 private: 89 private:
90 float m_pageScaleFactor; 90 float m_pageScaleFactor;
91 float m_pageScaleDelta; 91 float m_pageScaleDelta;
92 float m_sentPageScaleDelta; 92 float m_sentPageScaleDelta;
93 float m_maxPageScaleFactor; 93 float m_maxPageScaleFactor;
94 float m_minPageScaleFactor; 94 float m_minPageScaleFactor;
95 95
96 FloatPoint m_pinchViewportScrollDelta; 96 FloatPoint m_pinchViewportScrollDelta;
97 FloatSize m_layoutViewportSize; 97 gfx::SizeF m_layoutViewportSize;
98 }; 98 };
99 99
100 // LayerTreeHostImpl owns the LayerImpl tree as well as associated rendering sta te 100 // LayerTreeHostImpl owns the LayerImpl tree as well as associated rendering sta te
101 class LayerTreeHostImpl : public InputHandlerClient, 101 class LayerTreeHostImpl : public InputHandlerClient,
102 public RendererClient, 102 public RendererClient,
103 public WebKit::WebCompositorOutputSurfaceClient { 103 public WebKit::WebCompositorOutputSurfaceClient {
104 typedef std::vector<LayerImpl*> LayerList; 104 typedef std::vector<LayerImpl*> LayerList;
105 105
106 public: 106 public:
107 static scoped_ptr<LayerTreeHostImpl> create(const LayerTreeSettings&, LayerT reeHostImplClient*); 107 static scoped_ptr<LayerTreeHostImpl> create(const LayerTreeSettings&, LayerT reeHostImplClient*);
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 // Returns false if problems occured preparing the frame, and we should try 139 // Returns false if problems occured preparing the frame, and we should try
140 // to avoid displaying the frame. If prepareToDraw is called, 140 // to avoid displaying the frame. If prepareToDraw is called,
141 // didDrawAllLayers must also be called, regardless of whether drawLayers is 141 // didDrawAllLayers must also be called, regardless of whether drawLayers is
142 // called between the two. 142 // called between the two.
143 virtual bool prepareToDraw(FrameData&); 143 virtual bool prepareToDraw(FrameData&);
144 virtual void drawLayers(const FrameData&); 144 virtual void drawLayers(const FrameData&);
145 // Must be called if and only if prepareToDraw was called. 145 // Must be called if and only if prepareToDraw was called.
146 void didDrawAllLayers(const FrameData&); 146 void didDrawAllLayers(const FrameData&);
147 147
148 // RendererClient implementation 148 // RendererClient implementation
149 virtual const IntSize& deviceViewportSize() const OVERRIDE; 149 virtual const gfx::Size& deviceViewportSize() const OVERRIDE;
150 virtual const LayerTreeSettings& settings() const OVERRIDE; 150 virtual const LayerTreeSettings& settings() const OVERRIDE;
151 virtual void didLoseContext() OVERRIDE; 151 virtual void didLoseContext() OVERRIDE;
152 virtual void onSwapBuffersComplete() OVERRIDE; 152 virtual void onSwapBuffersComplete() OVERRIDE;
153 virtual void setFullRootLayerDamage() OVERRIDE; 153 virtual void setFullRootLayerDamage() OVERRIDE;
154 virtual void setManagedMemoryPolicy(const ManagedMemoryPolicy& policy) OVERR IDE; 154 virtual void setManagedMemoryPolicy(const ManagedMemoryPolicy& policy) OVERR IDE;
155 virtual void enforceManagedMemoryPolicy(const ManagedMemoryPolicy& policy) O VERRIDE; 155 virtual void enforceManagedMemoryPolicy(const ManagedMemoryPolicy& policy) O VERRIDE;
156 156
157 // WebCompositorOutputSurfaceClient implementation. 157 // WebCompositorOutputSurfaceClient implementation.
158 virtual void onVSyncParametersChanged(double monotonicTimebase, double inter valInSeconds) OVERRIDE; 158 virtual void onVSyncParametersChanged(double monotonicTimebase, double inter valInSeconds) OVERRIDE;
159 159
160 // Implementation 160 // Implementation
161 bool canDraw(); 161 bool canDraw();
162 GraphicsContext* context() const; 162 GraphicsContext* context() const;
163 163
164 std::string layerTreeAsText() const; 164 std::string layerTreeAsText() const;
165 165
166 void finishAllRendering(); 166 void finishAllRendering();
167 int sourceAnimationFrameNumber() const; 167 int sourceAnimationFrameNumber() const;
168 168
169 bool initializeRenderer(scoped_ptr<GraphicsContext>); 169 bool initializeRenderer(scoped_ptr<GraphicsContext>);
170 bool isContextLost(); 170 bool isContextLost();
171 Renderer* renderer() { return m_renderer.get(); } 171 Renderer* renderer() { return m_renderer.get(); }
172 const RendererCapabilities& rendererCapabilities() const; 172 const RendererCapabilities& rendererCapabilities() const;
173 173
174 bool swapBuffers(); 174 bool swapBuffers();
175 175
176 void readback(void* pixels, const IntRect&); 176 void readback(void* pixels, const gfx::Rect&);
177 177
178 void setRootLayer(scoped_ptr<LayerImpl>); 178 void setRootLayer(scoped_ptr<LayerImpl>);
179 LayerImpl* rootLayer() { return m_rootLayerImpl.get(); } 179 LayerImpl* rootLayer() { return m_rootLayerImpl.get(); }
180 180
181 void setHudLayer(HeadsUpDisplayLayerImpl* layerImpl) { m_hudLayerImpl = laye rImpl; } 181 void setHudLayer(HeadsUpDisplayLayerImpl* layerImpl) { m_hudLayerImpl = laye rImpl; }
182 HeadsUpDisplayLayerImpl* hudLayer() { return m_hudLayerImpl; } 182 HeadsUpDisplayLayerImpl* hudLayer() { return m_hudLayerImpl; }
183 183
184 // Release ownership of the current layer tree and replace it with an empty 184 // Release ownership of the current layer tree and replace it with an empty
185 // tree. Returns the root layer of the detached tree. 185 // tree. Returns the root layer of the detached tree.
186 scoped_ptr<LayerImpl> detachLayerTree(); 186 scoped_ptr<LayerImpl> detachLayerTree();
187 187
188 LayerImpl* rootScrollLayer() const { return m_rootScrollLayerImpl; } 188 LayerImpl* rootScrollLayer() const { return m_rootScrollLayerImpl; }
189 189
190 bool visible() const { return m_visible; } 190 bool visible() const { return m_visible; }
191 void setVisible(bool); 191 void setVisible(bool);
192 192
193 int sourceFrameNumber() const { return m_sourceFrameNumber; } 193 int sourceFrameNumber() const { return m_sourceFrameNumber; }
194 void setSourceFrameNumber(int frameNumber) { m_sourceFrameNumber = frameNumb er; } 194 void setSourceFrameNumber(int frameNumber) { m_sourceFrameNumber = frameNumb er; }
195 195
196 bool contentsTexturesPurged() const { return m_contentsTexturesPurged; } 196 bool contentsTexturesPurged() const { return m_contentsTexturesPurged; }
197 void setContentsTexturesPurged(); 197 void setContentsTexturesPurged();
198 void resetContentsTexturesPurged(); 198 void resetContentsTexturesPurged();
199 size_t memoryAllocationLimitBytes() const { return m_managedMemoryPolicy.byt esLimitWhenVisible; } 199 size_t memoryAllocationLimitBytes() const { return m_managedMemoryPolicy.byt esLimitWhenVisible; }
200 200
201 void setViewportSize(const IntSize& layoutViewportSize, const IntSize& devic eViewportSize); 201 void setViewportSize(const gfx::Size& layoutViewportSize, const gfx::Size& d eviceViewportSize);
202 const IntSize& layoutViewportSize() const { return m_layoutViewportSize; } 202 const gfx::Size& layoutViewportSize() const { return m_layoutViewportSize; }
203 203
204 float deviceScaleFactor() const { return m_deviceScaleFactor; } 204 float deviceScaleFactor() const { return m_deviceScaleFactor; }
205 void setDeviceScaleFactor(float); 205 void setDeviceScaleFactor(float);
206 206
207 float pageScaleFactor() const; 207 float pageScaleFactor() const;
208 void setPageScaleFactorAndLimits(float pageScaleFactor, float minPageScaleFa ctor, float maxPageScaleFactor); 208 void setPageScaleFactorAndLimits(float pageScaleFactor, float minPageScaleFa ctor, float maxPageScaleFactor);
209 209
210 scoped_ptr<ScrollAndScaleSet> processScrollDeltas(); 210 scoped_ptr<ScrollAndScaleSet> processScrollDeltas();
211 WebKit::WebTransformationMatrix implTransform() const; 211 WebKit::WebTransformationMatrix implTransform() const;
212 212
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 void setPageScaleDelta(float); 287 void setPageScaleDelta(float);
288 void updateMaxScrollPosition(); 288 void updateMaxScrollPosition();
289 void trackDamageForAllSurfaces(LayerImpl* rootDrawLayer, const LayerList& re nderSurfaceLayerList); 289 void trackDamageForAllSurfaces(LayerImpl* rootDrawLayer, const LayerList& re nderSurfaceLayerList);
290 290
291 // Returns false if the frame should not be displayed. This function should 291 // Returns false if the frame should not be displayed. This function should
292 // only be called from prepareToDraw, as didDrawAllLayers must be called 292 // only be called from prepareToDraw, as didDrawAllLayers must be called
293 // if this helper function is called. 293 // if this helper function is called.
294 bool calculateRenderPasses(FrameData&); 294 bool calculateRenderPasses(FrameData&);
295 void animateLayersRecursive(LayerImpl*, double monotonicTime, double wallClo ckTime, AnimationEventsVector*, bool& didAnimate, bool& needsAnimateLayers); 295 void animateLayersRecursive(LayerImpl*, double monotonicTime, double wallClo ckTime, AnimationEventsVector*, bool& didAnimate, bool& needsAnimateLayers);
296 void setBackgroundTickingEnabled(bool); 296 void setBackgroundTickingEnabled(bool);
297 IntSize contentSize() const; 297 gfx::Size contentSize() const;
298 298
299 void sendDidLoseContextRecursive(LayerImpl*); 299 void sendDidLoseContextRecursive(LayerImpl*);
300 void clearRenderSurfaces(); 300 void clearRenderSurfaces();
301 bool ensureRenderSurfaceLayerList(); 301 bool ensureRenderSurfaceLayerList();
302 void clearCurrentlyScrollingLayer(); 302 void clearCurrentlyScrollingLayer();
303 303
304 void animateScrollbarsRecursive(LayerImpl*, double monotonicTime); 304 void animateScrollbarsRecursive(LayerImpl*, double monotonicTime);
305 305
306 void dumpRenderSurfaces(std::string*, int indent, const LayerImpl*) const; 306 void dumpRenderSurfaces(std::string*, int indent, const LayerImpl*) const;
307 307
308 scoped_ptr<GraphicsContext> m_context; 308 scoped_ptr<GraphicsContext> m_context;
309 scoped_ptr<ResourceProvider> m_resourceProvider; 309 scoped_ptr<ResourceProvider> m_resourceProvider;
310 scoped_ptr<Renderer> m_renderer; 310 scoped_ptr<Renderer> m_renderer;
311 scoped_ptr<LayerImpl> m_rootLayerImpl; 311 scoped_ptr<LayerImpl> m_rootLayerImpl;
312 LayerImpl* m_rootScrollLayerImpl; 312 LayerImpl* m_rootScrollLayerImpl;
313 LayerImpl* m_currentlyScrollingLayerImpl; 313 LayerImpl* m_currentlyScrollingLayerImpl;
314 HeadsUpDisplayLayerImpl* m_hudLayerImpl; 314 HeadsUpDisplayLayerImpl* m_hudLayerImpl;
315 int m_scrollingLayerIdFromPreviousTree; 315 int m_scrollingLayerIdFromPreviousTree;
316 bool m_scrollDeltaIsInViewportSpace; 316 bool m_scrollDeltaIsInViewportSpace;
317 LayerTreeSettings m_settings; 317 LayerTreeSettings m_settings;
318 IntSize m_layoutViewportSize; 318 gfx::Size m_layoutViewportSize;
319 IntSize m_deviceViewportSize; 319 gfx::Size m_deviceViewportSize;
320 float m_deviceScaleFactor; 320 float m_deviceScaleFactor;
321 bool m_visible; 321 bool m_visible;
322 bool m_contentsTexturesPurged; 322 bool m_contentsTexturesPurged;
323 ManagedMemoryPolicy m_managedMemoryPolicy; 323 ManagedMemoryPolicy m_managedMemoryPolicy;
324 324
325 SkColor m_backgroundColor; 325 SkColor m_backgroundColor;
326 bool m_hasTransparentBackground; 326 bool m_hasTransparentBackground;
327 327
328 // If this is true, it is necessary to traverse the layer tree ticking the a nimators. 328 // If this is true, it is necessary to traverse the layer tree ticking the a nimators.
329 bool m_needsAnimateLayers; 329 bool m_needsAnimateLayers;
(...skipping 18 matching lines...) Expand all
348 348
349 size_t m_numImplThreadScrolls; 349 size_t m_numImplThreadScrolls;
350 size_t m_numMainThreadScrolls; 350 size_t m_numMainThreadScrolls;
351 351
352 DISALLOW_COPY_AND_ASSIGN(LayerTreeHostImpl); 352 DISALLOW_COPY_AND_ASSIGN(LayerTreeHostImpl);
353 }; 353 };
354 354
355 } // namespace cc 355 } // namespace cc
356 356
357 #endif 357 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698