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

Side by Side Diff: cc/layer.h

Issue 11882037: Activate LayerImpl tree with sync+push instead of pointer swap (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 11 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
« no previous file with comments | « cc/io_surface_layer_impl.cc ('k') | cc/layer.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 2010 The Chromium Authors. All rights reserved. 1 // Copyright 2010 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_LAYER_H_ 5 #ifndef CC_LAYER_H_
6 #define CC_LAYER_H_ 6 #define CC_LAYER_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 Layer* parent() { return m_parent; } 60 Layer* parent() { return m_parent; }
61 const Layer* parent() const { return m_parent; } 61 const Layer* parent() const { return m_parent; }
62 void addChild(scoped_refptr<Layer>); 62 void addChild(scoped_refptr<Layer>);
63 void insertChild(scoped_refptr<Layer>, size_t index); 63 void insertChild(scoped_refptr<Layer>, size_t index);
64 void replaceChild(Layer* reference, scoped_refptr<Layer> newLayer); 64 void replaceChild(Layer* reference, scoped_refptr<Layer> newLayer);
65 void removeFromParent(); 65 void removeFromParent();
66 void removeAllChildren(); 66 void removeAllChildren();
67 void setChildren(const LayerList&); 67 void setChildren(const LayerList&);
68 68
69 const LayerList& children() const { return m_children; } 69 const LayerList& children() const { return m_children; }
70 Layer* childAt(size_t index);
70 71
71 void setAnchorPoint(const gfx::PointF&); 72 void setAnchorPoint(const gfx::PointF&);
72 gfx::PointF anchorPoint() const { return m_anchorPoint; } 73 gfx::PointF anchorPoint() const { return m_anchorPoint; }
73 74
74 void setAnchorPointZ(float); 75 void setAnchorPointZ(float);
75 float anchorPointZ() const { return m_anchorPointZ; } 76 float anchorPointZ() const { return m_anchorPointZ; }
76 77
77 virtual void setBackgroundColor(SkColor); 78 virtual void setBackgroundColor(SkColor);
78 SkColor backgroundColor() const { return m_backgroundColor; } 79 SkColor backgroundColor() const { return m_backgroundColor; }
79 80
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 285
285 // In impl-side painting, this returns true if this layer type is not 286 // In impl-side painting, this returns true if this layer type is not
286 // compatible with the main thread running freely, such as a double-buffered 287 // compatible with the main thread running freely, such as a double-buffered
287 // canvas that doesn't want to be triple-buffered across all three trees. 288 // canvas that doesn't want to be triple-buffered across all three trees.
288 virtual bool blocksPendingCommit() const; 289 virtual bool blocksPendingCommit() const;
289 // Returns true if anything in this tree blocksPendingCommit. 290 // Returns true if anything in this tree blocksPendingCommit.
290 bool blocksPendingCommitRecursive() const; 291 bool blocksPendingCommitRecursive() const;
291 292
292 virtual bool canClipSelf() const; 293 virtual bool canClipSelf() const;
293 294
295 // Constructs a LayerImpl of the correct runtime type for this Layer type.
296 virtual scoped_ptr<LayerImpl> createLayerImpl(LayerTreeImpl* treeImpl);
297
294 protected: 298 protected:
295 friend class LayerImpl; 299 friend class LayerImpl;
296 friend class TreeSynchronizer; 300 friend class TreeSynchronizer;
297 virtual ~Layer(); 301 virtual ~Layer();
298 302
299 Layer(); 303 Layer();
300 304
301 void setNeedsCommit(); 305 void setNeedsCommit();
302 void setNeedsFullTreeSync(); 306 void setNeedsFullTreeSync();
303 307
304 // This flag is set when layer need repainting/updating. 308 // This flag is set when layer need repainting/updating.
305 bool m_needsDisplay; 309 bool m_needsDisplay;
306 310
307 // Tracks whether this layer may have changed stacking order with its siblin gs. 311 // Tracks whether this layer may have changed stacking order with its siblin gs.
308 bool m_stackingOrderChanged; 312 bool m_stackingOrderChanged;
309 313
310 // The update rect is the region of the compositor resource that was actuall y updated by the compositor. 314 // The update rect is the region of the compositor resource that was actuall y updated by the compositor.
311 // For layers that may do updating outside the compositor's control (i.e. pl ugin layers), this information 315 // For layers that may do updating outside the compositor's control (i.e. pl ugin layers), this information
312 // is not available and the update rect will remain empty. 316 // is not available and the update rect will remain empty.
313 // Note this rect is in layer space (not content space). 317 // Note this rect is in layer space (not content space).
314 gfx::RectF m_updateRect; 318 gfx::RectF m_updateRect;
315 319
316 scoped_refptr<Layer> m_maskLayer; 320 scoped_refptr<Layer> m_maskLayer;
317 321
318 // Constructs a LayerImpl of the correct runtime type for this Layer type.
319 virtual scoped_ptr<LayerImpl> createLayerImpl(LayerTreeImpl* treeImpl);
320 int m_layerId; 322 int m_layerId;
321 323
322 // When true, the layer is about to perform an update. Any commit requests 324 // When true, the layer is about to perform an update. Any commit requests
323 // will be handled implcitly after the update completes. 325 // will be handled implcitly after the update completes.
324 bool m_ignoreSetNeedsCommit; 326 bool m_ignoreSetNeedsCommit;
325 327
326 private: 328 private:
327 friend class base::RefCounted<Layer>; 329 friend class base::RefCounted<Layer>;
328 330
329 void setParent(Layer*); 331 void setParent(Layer*);
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
402 WebKit::WebLayerScrollClient* m_layerScrollClient; 404 WebKit::WebLayerScrollClient* m_layerScrollClient;
403 405
404 DrawProperties<Layer, RenderSurface> m_drawProperties; 406 DrawProperties<Layer, RenderSurface> m_drawProperties;
405 }; 407 };
406 408
407 void sortLayers(std::vector<scoped_refptr<Layer> >::iterator, std::vector<scoped _refptr<Layer> >::iterator, void*); 409 void sortLayers(std::vector<scoped_refptr<Layer> >::iterator, std::vector<scoped _refptr<Layer> >::iterator, void*);
408 410
409 } // namespace cc 411 } // namespace cc
410 412
411 #endif // CC_LAYER_H_ 413 #endif // CC_LAYER_H_
OLDNEW
« no previous file with comments | « cc/io_surface_layer_impl.cc ('k') | cc/layer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698