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

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: 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
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 271 matching lines...) Expand 10 before | Expand all | Expand 10 after
282 // True if this layer container renderers that paint. 282 // True if this layer container renderers that paint.
283 bool hasNonEmptyChildRenderers() const; 283 bool hasNonEmptyChildRenderers() const;
284 284
285 // FIXME: We should ASSERT(!m_hasSelfPaintingLayerDescendantDirty); here but we hit the same bugs as visible content above. 285 // FIXME: We should ASSERT(!m_hasSelfPaintingLayerDescendantDirty); here but we hit the same bugs as visible content above.
286 // Part of the issue is with subtree relayout: we don't check if our ancesto rs have some descendant flags dirty, missing some updates. 286 // Part of the issue is with subtree relayout: we don't check if our ancesto rs have some descendant flags dirty, missing some updates.
287 bool hasSelfPaintingLayerDescendant() const { return m_hasSelfPaintingLayerD escendant; } 287 bool hasSelfPaintingLayerDescendant() const { return m_hasSelfPaintingLayerD escendant; }
288 288
289 // FIXME: We should ASSERT(!m_hasOutOfFlowPositionedDescendantDirty) here. S ee above. 289 // FIXME: We should ASSERT(!m_hasOutOfFlowPositionedDescendantDirty) here. S ee above.
290 bool hasOutOfFlowPositionedDescendant() const { return m_hasOutOfFlowPositio nedDescendant; } 290 bool hasOutOfFlowPositionedDescendant() const { return m_hasOutOfFlowPositio nedDescendant; }
291 291
292 bool childLayerHasBlendMode() const { ASSERT(!m_childLayerHasBlendModeStatus Dirty); return m_childLayerHasBlendMode; }
293
292 void setHasOutOfFlowPositionedDescendant(bool hasDescendant) { m_hasOutOfFlo wPositionedDescendant = hasDescendant; } 294 void setHasOutOfFlowPositionedDescendant(bool hasDescendant) { m_hasOutOfFlo wPositionedDescendant = hasDescendant; }
293 void setHasOutOfFlowPositionedDescendantDirty(bool dirty) { m_hasOutOfFlowPo sitionedDescendantDirty = dirty; } 295 void setHasOutOfFlowPositionedDescendantDirty(bool dirty) { m_hasOutOfFlowPo sitionedDescendantDirty = dirty; }
294 296
295 bool hasUnclippedDescendant() const { return m_hasUnclippedDescendant; } 297 bool hasUnclippedDescendant() const { return m_hasUnclippedDescendant; }
296 void setHasUnclippedDescendant(bool hasDescendant) { m_hasUnclippedDescendan t = hasDescendant; } 298 void setHasUnclippedDescendant(bool hasDescendant) { m_hasUnclippedDescendan t = hasDescendant; }
297 void updateHasUnclippedDescendant(); 299 void updateHasUnclippedDescendant();
298 bool isUnclippedDescendant() const { return m_isUnclippedDescendant; } 300 bool isUnclippedDescendant() const { return m_isUnclippedDescendant; }
299 301
300 // Gets the nearest enclosing positioned ancestor layer (also includes 302 // Gets the nearest enclosing positioned ancestor layer (also includes
301 // the <html> layer and the root layer). 303 // the <html> layer and the root layer).
(...skipping 493 matching lines...) Expand 10 before | Expand all | Expand 10 after
795 // but for now, we are always allocating it for RenderBox as it's safer. 797 // but for now, we are always allocating it for RenderBox as it's safer.
796 bool requiresScrollableArea() const { return renderBox(); } 798 bool requiresScrollableArea() const { return renderBox(); }
797 void updateScrollableArea(); 799 void updateScrollableArea();
798 800
799 void updateResizerAreaSet(); 801 void updateResizerAreaSet();
800 void updateScrollableAreaSet(bool hasOverflow); 802 void updateScrollableAreaSet(bool hasOverflow);
801 803
802 void dirtyAncestorChainVisibleDescendantStatus(); 804 void dirtyAncestorChainVisibleDescendantStatus();
803 void setAncestorChainHasVisibleDescendant(); 805 void setAncestorChainHasVisibleDescendant();
804 806
807 void dirtyAncestorChainBlendedDescendantStatus();
808 void setAncestorChainBlendedDescendant();
809
805 void updateDescendantDependentFlags(); 810 void updateDescendantDependentFlags();
806 811
807 // This flag is computed by RenderLayerCompositor, which knows more about 3d hierarchies than we do. 812 // This flag is computed by RenderLayerCompositor, which knows more about 3d hierarchies than we do.
808 void setHas3DTransformedDescendant(bool b) { m_has3DTransformedDescendant = b; } 813 void setHas3DTransformedDescendant(bool b) { m_has3DTransformedDescendant = b; }
809 bool has3DTransformedDescendant() const { return m_has3DTransformedDescendan t; } 814 bool has3DTransformedDescendant() const { return m_has3DTransformedDescendan t; }
810 815
811 void dirty3DTransformedDescendantStatus(); 816 void dirty3DTransformedDescendantStatus();
812 // Both updates the status, and returns true if descendants of this have 3d. 817 // Both updates the status, and returns true if descendants of this have 3d.
813 bool update3DTransformedDescendantStatus(); 818 bool update3DTransformedDescendantStatus();
814 819
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
893 // descendants in stacking order. This is one of the requirements of being 898 // descendants in stacking order. This is one of the requirements of being
894 // able to safely become a stacking context. 899 // able to safely become a stacking context.
895 unsigned m_canBePromotedToStackingContainer : 1; 900 unsigned m_canBePromotedToStackingContainer : 1;
896 unsigned m_canBePromotedToStackingContainerDirty : 1; 901 unsigned m_canBePromotedToStackingContainerDirty : 1;
897 902
898 const unsigned m_isRootLayer : 1; 903 const unsigned m_isRootLayer : 1;
899 904
900 unsigned m_usedTransparency : 1; // Tracks whether we need to close a transp arent layer, i.e., whether 905 unsigned m_usedTransparency : 1; // Tracks whether we need to close a transp arent layer, i.e., whether
901 // we ended up painting this layer or any desce ndants (and therefore need to 906 // we ended up painting this layer or any desce ndants (and therefore need to
902 // blend). 907 // blend).
908 unsigned m_childLayerHasBlendMode : 1;
909 unsigned m_childLayerHasBlendModeStatusDirty : 1;
910
903 unsigned m_paintingInsideReflection : 1; // A state bit tracking if we are p ainting inside a replica. 911 unsigned m_paintingInsideReflection : 1; // A state bit tracking if we are p ainting inside a replica.
904 unsigned m_repaintStatus : 2; // RepaintStatus 912 unsigned m_repaintStatus : 2; // RepaintStatus
905 913
906 unsigned m_visibleContentStatusDirty : 1; 914 unsigned m_visibleContentStatusDirty : 1;
907 unsigned m_hasVisibleContent : 1; 915 unsigned m_hasVisibleContent : 1;
908 unsigned m_visibleDescendantStatusDirty : 1; 916 unsigned m_visibleDescendantStatusDirty : 1;
909 unsigned m_hasVisibleDescendant : 1; 917 unsigned m_hasVisibleDescendant : 1;
910 918
911 unsigned m_isPaginated : 1; // If we think this layer is split by a multi-co lumn ancestor, then this bit will be set. 919 unsigned m_isPaginated : 1; // If we think this layer is split by a multi-co lumn ancestor, then this bit will be set.
912 920
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
1055 1063
1056 } // namespace WebCore 1064 } // namespace WebCore
1057 1065
1058 #ifndef NDEBUG 1066 #ifndef NDEBUG
1059 // Outside the WebCore namespace for ease of invocation from gdb. 1067 // Outside the WebCore namespace for ease of invocation from gdb.
1060 void showLayerTree(const WebCore::RenderLayer*); 1068 void showLayerTree(const WebCore::RenderLayer*);
1061 void showLayerTree(const WebCore::RenderObject*); 1069 void showLayerTree(const WebCore::RenderObject*);
1062 #endif 1070 #endif
1063 1071
1064 #endif // RenderLayer_h 1072 #endif // RenderLayer_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698