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

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

Powered by Google App Engine
This is Rietveld 408576698