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

Side by Side Diff: sky/engine/core/rendering/RenderLayer.h

Issue 944073006: Remove the concept of staticly positioned absolutes. (Closed) Base URL: git@github.com:domokit/mojo.git@position
Patch Set: Created 5 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2003, 2009, 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 2003, 2009, 2012 Apple Inc. All rights reserved.
3 * Copyright (C) 2013 Intel Corporation. All rights reserved. 3 * Copyright (C) 2013 Intel Corporation. All rights reserved.
4 * 4 *
5 * Portions are Copyright (C) 1998 Netscape Communications Corporation. 5 * Portions are Copyright (C) 1998 Netscape Communications Corporation.
6 * 6 *
7 * Other contributors: 7 * Other contributors:
8 * Robert O'Callahan <roc+@cs.cmu.edu> 8 * Robert O'Callahan <roc+@cs.cmu.edu>
9 * David Baron <dbaron@fas.harvard.edu> 9 * David Baron <dbaron@fas.harvard.edu>
10 * Christian Biesinger <cbiesinger@web.de> 10 * Christian Biesinger <cbiesinger@web.de>
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 // Bounding box relative to some ancestor layer. Pass offsetFromRoot if know n. 152 // Bounding box relative to some ancestor layer. Pass offsetFromRoot if know n.
153 LayoutRect physicalBoundingBox(const RenderLayer* ancestorLayer, const Layou tPoint* offsetFromRoot = 0) const; 153 LayoutRect physicalBoundingBox(const RenderLayer* ancestorLayer, const Layou tPoint* offsetFromRoot = 0) const;
154 LayoutRect physicalBoundingBoxIncludingReflectionAndStackingChildren(const R enderLayer* ancestorLayer, const LayoutPoint& offsetFromRoot) const; 154 LayoutRect physicalBoundingBoxIncludingReflectionAndStackingChildren(const R enderLayer* ancestorLayer, const LayoutPoint& offsetFromRoot) const;
155 155
156 // If true, this layer's children are included in its bounds for overlap tes ting. 156 // If true, this layer's children are included in its bounds for overlap tes ting.
157 // We can't rely on the children's positions if this layer has a filter that could have moved the children's pixels around. 157 // We can't rely on the children's positions if this layer has a filter that could have moved the children's pixels around.
158 bool overlapBoundsIncludeChildren() const { return hasFilter() && renderer() ->style()->filter().hasFilterThatMovesPixels(); } 158 bool overlapBoundsIncludeChildren() const { return hasFilter() && renderer() ->style()->filter().hasFilterThatMovesPixels(); }
159 159
160 LayoutRect boundingBoxForCompositing(const RenderLayer* ancestorLayer = 0) c onst; 160 LayoutRect boundingBoxForCompositing(const RenderLayer* ancestorLayer = 0) c onst;
161 161
162 LayoutUnit staticInlinePosition() const { return m_staticInlinePosition; }
163 LayoutUnit staticBlockPosition() const { return m_staticBlockPosition; }
164
165 void setStaticInlinePosition(LayoutUnit position) { m_staticInlinePosition = position; }
166 void setStaticBlockPosition(LayoutUnit position) { m_staticBlockPosition = p osition; }
167
168 LayoutSize subpixelAccumulation() const; 162 LayoutSize subpixelAccumulation() const;
169 void setSubpixelAccumulation(const LayoutSize&); 163 void setSubpixelAccumulation(const LayoutSize&);
170 164
171 bool hasTransform() const { return renderer()->hasTransform(); } 165 bool hasTransform() const { return renderer()->hasTransform(); }
172 // Note that this transform has the transform-origin baked in. 166 // Note that this transform has the transform-origin baked in.
173 TransformationMatrix* transform() const { return m_transform.get(); } 167 TransformationMatrix* transform() const { return m_transform.get(); }
174 // currentTransform computes a transform which takes accelerated animations into account. The 168 // currentTransform computes a transform which takes accelerated animations into account. The
175 // resulting transform has transform-origin baked in. If the layer does not have a transform, 169 // resulting transform has transform-origin baked in. If the layer does not have a transform,
176 // returns the identity matrix. 170 // returns the identity matrix.
177 TransformationMatrix currentTransform(RenderStyle::ApplyTransformOrigin = Re nderStyle::IncludeTransformOrigin) const; 171 TransformationMatrix currentTransform(RenderStyle::ApplyTransformOrigin = Re nderStyle::IncludeTransformOrigin) const;
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 unsigned m_hasFilterInfo : 1; 301 unsigned m_hasFilterInfo : 1;
308 302
309 RenderLayerModelObject* m_renderer; 303 RenderLayerModelObject* m_renderer;
310 304
311 RenderLayer* m_parent; 305 RenderLayer* m_parent;
312 RenderLayer* m_previous; 306 RenderLayer* m_previous;
313 RenderLayer* m_next; 307 RenderLayer* m_next;
314 RenderLayer* m_first; 308 RenderLayer* m_first;
315 RenderLayer* m_last; 309 RenderLayer* m_last;
316 310
317 // Cached normal flow values for absolute positioned elements with static le ft/top values.
318 LayoutUnit m_staticInlinePosition;
319 LayoutUnit m_staticBlockPosition;
320
321 OwnPtr<TransformationMatrix> m_transform; 311 OwnPtr<TransformationMatrix> m_transform;
322 312
323 RenderLayerClipper m_clipper; // FIXME: Lazily allocate? 313 RenderLayerClipper m_clipper; // FIXME: Lazily allocate?
324 OwnPtr<RenderLayerStackingNode> m_stackingNode; 314 OwnPtr<RenderLayerStackingNode> m_stackingNode;
325 315
326 LayoutSize m_subpixelAccumulation; // The accumulated subpixel offset of a c omposited layer's composited bounds compared to absolute coordinates. 316 LayoutSize m_subpixelAccumulation; // The accumulated subpixel offset of a c omposited layer's composited bounds compared to absolute coordinates.
327 }; 317 };
328 318
329 } // namespace blink 319 } // namespace blink
330 320
331 #ifndef NDEBUG 321 #ifndef NDEBUG
332 // Outside the WebCore namespace for ease of invocation from gdb. 322 // Outside the WebCore namespace for ease of invocation from gdb.
333 void showLayerTree(const blink::RenderLayer*); 323 void showLayerTree(const blink::RenderLayer*);
334 void showLayerTree(const blink::RenderObject*); 324 void showLayerTree(const blink::RenderObject*);
335 #endif 325 #endif
336 326
337 #endif // SKY_ENGINE_CORE_RENDERING_RENDERLAYER_H_ 327 #endif // SKY_ENGINE_CORE_RENDERING_RENDERLAYER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698