OLD | NEW |
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 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
279 // FIXME: We should ASSERT(!m_hasSelfPaintingLayerDescendantDirty); here but
we hit the same bugs as visible content above. | 279 // FIXME: We should ASSERT(!m_hasSelfPaintingLayerDescendantDirty); here but
we hit the same bugs as visible content above. |
280 // Part of the issue is with subtree relayout: we don't check if our ancesto
rs have some descendant flags dirty, missing some updates. | 280 // Part of the issue is with subtree relayout: we don't check if our ancesto
rs have some descendant flags dirty, missing some updates. |
281 bool hasSelfPaintingLayerDescendant() const { return m_hasSelfPaintingLayerD
escendant; } | 281 bool hasSelfPaintingLayerDescendant() const { return m_hasSelfPaintingLayerD
escendant; } |
282 | 282 |
283 // FIXME: We should ASSERT(!m_hasOutOfFlowPositionedDescendantDirty) here. S
ee above. | 283 // FIXME: We should ASSERT(!m_hasOutOfFlowPositionedDescendantDirty) here. S
ee above. |
284 bool hasOutOfFlowPositionedDescendant() const { return m_hasOutOfFlowPositio
nedDescendant; } | 284 bool hasOutOfFlowPositionedDescendant() const { return m_hasOutOfFlowPositio
nedDescendant; } |
285 | 285 |
286 void setHasOutOfFlowPositionedDescendant(bool hasDescendant) { m_hasOutOfFlo
wPositionedDescendant = hasDescendant; } | 286 void setHasOutOfFlowPositionedDescendant(bool hasDescendant) { m_hasOutOfFlo
wPositionedDescendant = hasDescendant; } |
287 void setHasOutOfFlowPositionedDescendantDirty(bool dirty) { m_hasOutOfFlowPo
sitionedDescendantDirty = dirty; } | 287 void setHasOutOfFlowPositionedDescendantDirty(bool dirty) { m_hasOutOfFlowPo
sitionedDescendantDirty = dirty; } |
288 | 288 |
| 289 bool childLayerHasBlendMode() const { ASSERT(!m_childLayerHasBlendModeStatus
Dirty); return m_childLayerHasBlendMode; } |
| 290 |
289 bool hasUnclippedDescendant() const { return m_hasUnclippedDescendant; } | 291 bool hasUnclippedDescendant() const { return m_hasUnclippedDescendant; } |
290 void setHasUnclippedDescendant(bool hasDescendant) { m_hasUnclippedDescendan
t = hasDescendant; } | 292 void setHasUnclippedDescendant(bool hasDescendant) { m_hasUnclippedDescendan
t = hasDescendant; } |
291 void updateHasUnclippedDescendant(); | 293 void updateHasUnclippedDescendant(); |
292 bool isUnclippedDescendant() const { return m_isUnclippedDescendant; } | 294 bool isUnclippedDescendant() const { return m_isUnclippedDescendant; } |
293 | 295 |
294 // Gets the nearest enclosing positioned ancestor layer (also includes | 296 // Gets the nearest enclosing positioned ancestor layer (also includes |
295 // the <html> layer and the root layer). | 297 // the <html> layer and the root layer). |
296 RenderLayer* enclosingPositionedAncestor() const; | 298 RenderLayer* enclosingPositionedAncestor() const; |
297 | 299 |
298 // Returns the nearest enclosing layer that is scrollable. | 300 // Returns the nearest enclosing layer that is scrollable. |
(...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
757 // FIXME: We could lazily allocate our ScrollableArea based on style propert
ies ('overflow', ...) | 759 // FIXME: We could lazily allocate our ScrollableArea based on style propert
ies ('overflow', ...) |
758 // but for now, we are always allocating it for RenderBox as it's safer. | 760 // but for now, we are always allocating it for RenderBox as it's safer. |
759 bool requiresScrollableArea() const { return renderBox(); } | 761 bool requiresScrollableArea() const { return renderBox(); } |
760 void updateScrollableArea(); | 762 void updateScrollableArea(); |
761 | 763 |
762 void updateScrollableAreaSet(bool hasOverflow); | 764 void updateScrollableAreaSet(bool hasOverflow); |
763 | 765 |
764 void dirtyAncestorChainVisibleDescendantStatus(); | 766 void dirtyAncestorChainVisibleDescendantStatus(); |
765 void setAncestorChainHasVisibleDescendant(); | 767 void setAncestorChainHasVisibleDescendant(); |
766 | 768 |
| 769 void dirtyAncestorChainBlendedDescendantStatus(); |
| 770 void setAncestorChainBlendedDescendant(); |
| 771 |
767 void updateDescendantDependentFlags(); | 772 void updateDescendantDependentFlags(); |
768 | 773 |
769 // This flag is computed by RenderLayerCompositor, which knows more about 3d
hierarchies than we do. | 774 // This flag is computed by RenderLayerCompositor, which knows more about 3d
hierarchies than we do. |
770 void setHas3DTransformedDescendant(bool b) { m_has3DTransformedDescendant =
b; } | 775 void setHas3DTransformedDescendant(bool b) { m_has3DTransformedDescendant =
b; } |
771 bool has3DTransformedDescendant() const { return m_has3DTransformedDescendan
t; } | 776 bool has3DTransformedDescendant() const { return m_has3DTransformedDescendan
t; } |
772 | 777 |
773 void dirty3DTransformedDescendantStatus(); | 778 void dirty3DTransformedDescendantStatus(); |
774 // Both updates the status, and returns true if descendants of this have 3d. | 779 // Both updates the status, and returns true if descendants of this have 3d. |
775 bool update3DTransformedDescendantStatus(); | 780 bool update3DTransformedDescendantStatus(); |
776 | 781 |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
849 // descendants in stacking order. This is one of the requirements of being | 854 // descendants in stacking order. This is one of the requirements of being |
850 // able to safely become a stacking context. | 855 // able to safely become a stacking context. |
851 unsigned m_canBePromotedToStackingContainer : 1; | 856 unsigned m_canBePromotedToStackingContainer : 1; |
852 unsigned m_canBePromotedToStackingContainerDirty : 1; | 857 unsigned m_canBePromotedToStackingContainerDirty : 1; |
853 | 858 |
854 const unsigned m_isRootLayer : 1; | 859 const unsigned m_isRootLayer : 1; |
855 | 860 |
856 unsigned m_usedTransparency : 1; // Tracks whether we need to close a transp
arent layer, i.e., whether | 861 unsigned m_usedTransparency : 1; // Tracks whether we need to close a transp
arent layer, i.e., whether |
857 // we ended up painting this layer or any desce
ndants (and therefore need to | 862 // we ended up painting this layer or any desce
ndants (and therefore need to |
858 // blend). | 863 // blend). |
| 864 |
| 865 unsigned m_childLayerHasBlendMode : 1; |
| 866 unsigned m_childLayerHasBlendModeStatusDirty : 1; |
859 unsigned m_paintingInsideReflection : 1; // A state bit tracking if we are p
ainting inside a replica. | 867 unsigned m_paintingInsideReflection : 1; // A state bit tracking if we are p
ainting inside a replica. |
860 | 868 |
861 unsigned m_visibleContentStatusDirty : 1; | 869 unsigned m_visibleContentStatusDirty : 1; |
862 unsigned m_hasVisibleContent : 1; | 870 unsigned m_hasVisibleContent : 1; |
863 unsigned m_visibleDescendantStatusDirty : 1; | 871 unsigned m_visibleDescendantStatusDirty : 1; |
864 unsigned m_hasVisibleDescendant : 1; | 872 unsigned m_hasVisibleDescendant : 1; |
865 | 873 |
866 unsigned m_isPaginated : 1; // If we think this layer is split by a multi-co
lumn ancestor, then this bit will be set. | 874 unsigned m_isPaginated : 1; // If we think this layer is split by a multi-co
lumn ancestor, then this bit will be set. |
867 | 875 |
868 unsigned m_3DTransformedDescendantStatusDirty : 1; | 876 unsigned m_3DTransformedDescendantStatusDirty : 1; |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1004 | 1012 |
1005 } // namespace WebCore | 1013 } // namespace WebCore |
1006 | 1014 |
1007 #ifndef NDEBUG | 1015 #ifndef NDEBUG |
1008 // Outside the WebCore namespace for ease of invocation from gdb. | 1016 // Outside the WebCore namespace for ease of invocation from gdb. |
1009 void showLayerTree(const WebCore::RenderLayer*); | 1017 void showLayerTree(const WebCore::RenderLayer*); |
1010 void showLayerTree(const WebCore::RenderObject*); | 1018 void showLayerTree(const WebCore::RenderObject*); |
1011 #endif | 1019 #endif |
1012 | 1020 |
1013 #endif // RenderLayer_h | 1021 #endif // RenderLayer_h |
OLD | NEW |