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

Side by Side Diff: Source/core/rendering/RenderLayer.h

Issue 23503046: [CSS Blending] Implement mix-blend-mode in software. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebase Created 7 years, 2 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
« no previous file with comments | « Source/core/rendering/CompositingReasons.h ('k') | Source/core/rendering/RenderLayer.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
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
OLDNEW
« no previous file with comments | « Source/core/rendering/CompositingReasons.h ('k') | Source/core/rendering/RenderLayer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698