| 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 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 75 class PaintTiming; | 75 class PaintTiming; |
| 76 class TransformationMatrix; | 76 class TransformationMatrix; |
| 77 | 77 |
| 78 enum IncludeSelfOrNot { IncludeSelf, ExcludeSelf }; | 78 enum IncludeSelfOrNot { IncludeSelf, ExcludeSelf }; |
| 79 | 79 |
| 80 enum CompositingQueryMode { | 80 enum CompositingQueryMode { |
| 81 CompositingQueriesAreAllowed, | 81 CompositingQueriesAreAllowed, |
| 82 CompositingQueriesAreOnlyAllowedInCertainDocumentLifecyclePhases | 82 CompositingQueriesAreOnlyAllowedInCertainDocumentLifecyclePhases |
| 83 }; | 83 }; |
| 84 | 84 |
| 85 // FIXME: remove this once the compositing query ASSERTS are no longer hit. | 85 // FIXME: remove this once the compositing query DCHECKS are no longer hit. |
| 86 class CORE_EXPORT DisableCompositingQueryAsserts { | 86 class CORE_EXPORT DisableCompositingQueryAsserts { |
| 87 STACK_ALLOCATED(); | 87 STACK_ALLOCATED(); |
| 88 WTF_MAKE_NONCOPYABLE(DisableCompositingQueryAsserts); | 88 WTF_MAKE_NONCOPYABLE(DisableCompositingQueryAsserts); |
| 89 | 89 |
| 90 public: | 90 public: |
| 91 DisableCompositingQueryAsserts(); | 91 DisableCompositingQueryAsserts(); |
| 92 | 92 |
| 93 private: | 93 private: |
| 94 AutoReset<CompositingQueryMode> m_disabler; | 94 AutoReset<CompositingQueryMode> m_disabler; |
| 95 }; | 95 }; |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 261 } | 261 } |
| 262 | 262 |
| 263 const PaintLayer* root() const { | 263 const PaintLayer* root() const { |
| 264 const PaintLayer* curr = this; | 264 const PaintLayer* curr = this; |
| 265 while (curr->parent()) | 265 while (curr->parent()) |
| 266 curr = curr->parent(); | 266 curr = curr->parent(); |
| 267 return curr; | 267 return curr; |
| 268 } | 268 } |
| 269 | 269 |
| 270 const LayoutPoint& location() const { | 270 const LayoutPoint& location() const { |
| 271 ASSERT(!m_needsPositionUpdate); | 271 #if DCHECK_IS_ON() |
| 272 DCHECK(!m_needsPositionUpdate); |
| 273 #endif |
| 272 return m_location; | 274 return m_location; |
| 273 } | 275 } |
| 274 // FIXME: size() should ASSERT(!m_needsPositionUpdate) as well, but that fails | 276 // FIXME: size() should DCHECK(!m_needsPositionUpdate) as well, but that fails |
| 275 // in some tests, for example, fast/repaint/clipped-relative.html. | 277 // in some tests, for example, fast/repaint/clipped-relative.html. |
| 276 const IntSize& size() const { return m_size; } | 278 const IntSize& size() const { return m_size; } |
| 277 void setSizeHackForLayoutTreeAsText(const IntSize& size) { m_size = size; } | 279 void setSizeHackForLayoutTreeAsText(const IntSize& size) { m_size = size; } |
| 278 | 280 |
| 279 LayoutRect rect() const { return LayoutRect(location(), LayoutSize(size())); } | 281 LayoutRect rect() const { return LayoutRect(location(), LayoutSize(size())); } |
| 280 | 282 |
| 281 bool isRootLayer() const { return m_isRootLayer; } | 283 bool isRootLayer() const { return m_isRootLayer; } |
| 282 | 284 |
| 283 PaintLayerCompositor* compositor() const; | 285 PaintLayerCompositor* compositor() const; |
| 284 | 286 |
| (...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 619 RuntimeEnabledFeatures::slimmingPaintV2Enabled()); | 621 RuntimeEnabledFeatures::slimmingPaintV2Enabled()); |
| 620 } | 622 } |
| 621 | 623 |
| 622 bool scrollsOverflow() const; | 624 bool scrollsOverflow() const; |
| 623 | 625 |
| 624 CompositingReasons potentialCompositingReasonsFromStyle() const { | 626 CompositingReasons potentialCompositingReasonsFromStyle() const { |
| 625 return m_rareData ? m_rareData->potentialCompositingReasonsFromStyle | 627 return m_rareData ? m_rareData->potentialCompositingReasonsFromStyle |
| 626 : CompositingReasonNone; | 628 : CompositingReasonNone; |
| 627 } | 629 } |
| 628 void setPotentialCompositingReasonsFromStyle(CompositingReasons reasons) { | 630 void setPotentialCompositingReasonsFromStyle(CompositingReasons reasons) { |
| 629 ASSERT(reasons == | 631 DCHECK(reasons == |
| 630 (reasons & CompositingReasonComboAllStyleDeterminedReasons)); | 632 (reasons & CompositingReasonComboAllStyleDeterminedReasons)); |
| 631 if (m_rareData || reasons != CompositingReasonNone) | 633 if (m_rareData || reasons != CompositingReasonNone) |
| 632 ensureRareData().potentialCompositingReasonsFromStyle = reasons; | 634 ensureRareData().potentialCompositingReasonsFromStyle = reasons; |
| 633 } | 635 } |
| 634 | 636 |
| 635 bool hasStyleDeterminedDirectCompositingReasons() const { | 637 bool hasStyleDeterminedDirectCompositingReasons() const { |
| 636 return potentialCompositingReasonsFromStyle() & | 638 return potentialCompositingReasonsFromStyle() & |
| 637 CompositingReasonComboAllDirectStyleDeterminedReasons; | 639 CompositingReasonComboAllDirectStyleDeterminedReasons; |
| 638 } | 640 } |
| 639 | 641 |
| 640 class AncestorDependentCompositingInputs { | 642 class AncestorDependentCompositingInputs { |
| 641 DISALLOW_NEW(); | 643 DISALLOW_NEW(); |
| 642 | 644 |
| 643 public: | 645 public: |
| 644 AncestorDependentCompositingInputs() : clippingContainer(nullptr) {} | 646 AncestorDependentCompositingInputs() : clippingContainer(nullptr) {} |
| 645 | 647 |
| 646 IntRect clippedAbsoluteBoundingBox; | 648 IntRect clippedAbsoluteBoundingBox; |
| 649 IntRect unclippedAbsoluteBoundingBox; |
| 647 const LayoutObject* clippingContainer; | 650 const LayoutObject* clippingContainer; |
| 648 }; | 651 }; |
| 649 | 652 |
| 650 class RareAncestorDependentCompositingInputs { | 653 class RareAncestorDependentCompositingInputs { |
| 651 public: | 654 public: |
| 652 RareAncestorDependentCompositingInputs() | 655 RareAncestorDependentCompositingInputs() |
| 653 : opacityAncestor(nullptr), | 656 : opacityAncestor(nullptr), |
| 654 transformAncestor(nullptr), | 657 transformAncestor(nullptr), |
| 655 filterAncestor(nullptr), | 658 filterAncestor(nullptr), |
| 656 ancestorScrollingLayer(nullptr), | 659 ancestorScrollingLayer(nullptr), |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 690 const PaintLayer* clipParent; | 693 const PaintLayer* clipParent; |
| 691 }; | 694 }; |
| 692 | 695 |
| 693 void setNeedsCompositingInputsUpdate(); | 696 void setNeedsCompositingInputsUpdate(); |
| 694 bool childNeedsCompositingInputsUpdate() const { | 697 bool childNeedsCompositingInputsUpdate() const { |
| 695 return m_childNeedsCompositingInputsUpdate; | 698 return m_childNeedsCompositingInputsUpdate; |
| 696 } | 699 } |
| 697 bool needsCompositingInputsUpdate() const { | 700 bool needsCompositingInputsUpdate() const { |
| 698 // While we're updating the compositing inputs, these values may differ. | 701 // While we're updating the compositing inputs, these values may differ. |
| 699 // We should never be asking for this value when that is the case. | 702 // We should never be asking for this value when that is the case. |
| 700 ASSERT(m_needsDescendantDependentCompositingInputsUpdate == | 703 DCHECK(m_needsDescendantDependentCompositingInputsUpdate == |
| 701 m_needsAncestorDependentCompositingInputsUpdate); | 704 m_needsAncestorDependentCompositingInputsUpdate); |
| 702 return m_needsDescendantDependentCompositingInputsUpdate; | 705 return m_needsDescendantDependentCompositingInputsUpdate; |
| 703 } | 706 } |
| 704 | 707 |
| 705 void updateAncestorOverflowLayer(const PaintLayer* ancestorOverflowLayer) { | 708 void updateAncestorOverflowLayer(const PaintLayer* ancestorOverflowLayer) { |
| 706 m_ancestorOverflowLayer = ancestorOverflowLayer; | 709 m_ancestorOverflowLayer = ancestorOverflowLayer; |
| 707 } | 710 } |
| 708 void updateAncestorDependentCompositingInputs( | 711 void updateAncestorDependentCompositingInputs( |
| 709 const AncestorDependentCompositingInputs&, | 712 const AncestorDependentCompositingInputs&, |
| 710 const RareAncestorDependentCompositingInputs&, | 713 const RareAncestorDependentCompositingInputs&, |
| 711 bool hasAncestorWithClipPath); | 714 bool hasAncestorWithClipPath); |
| 712 void updateDescendantDependentCompositingInputs( | 715 void updateDescendantDependentCompositingInputs( |
| 713 bool hasDescendantWithClipPath, | 716 bool hasDescendantWithClipPath, |
| 714 bool hasNonIsolatedDescendantWithBlendMode, | 717 bool hasNonIsolatedDescendantWithBlendMode, |
| 715 bool hasRootScrollerAsDescendant); | 718 bool hasRootScrollerAsDescendant); |
| 716 void didUpdateCompositingInputs(); | 719 void didUpdateCompositingInputs(); |
| 717 | 720 |
| 718 IntRect clippedAbsoluteBoundingBox() const { | 721 IntRect clippedAbsoluteBoundingBox() const { |
| 719 ASSERT(!m_needsAncestorDependentCompositingInputsUpdate); | 722 DCHECK(!m_needsAncestorDependentCompositingInputsUpdate); |
| 720 return m_ancestorDependentCompositingInputs.clippedAbsoluteBoundingBox; | 723 return m_ancestorDependentCompositingInputs.clippedAbsoluteBoundingBox; |
| 721 } | 724 } |
| 725 IntRect unclippedAbsoluteBoundingBox() const { |
| 726 DCHECK(!m_needsAncestorDependentCompositingInputsUpdate); |
| 727 return m_ancestorDependentCompositingInputs.unclippedAbsoluteBoundingBox; |
| 728 } |
| 722 const PaintLayer* opacityAncestor() const { | 729 const PaintLayer* opacityAncestor() const { |
| 723 ASSERT(!m_needsAncestorDependentCompositingInputsUpdate); | 730 DCHECK(!m_needsAncestorDependentCompositingInputsUpdate); |
| 724 return m_rareAncestorDependentCompositingInputs | 731 return m_rareAncestorDependentCompositingInputs |
| 725 ? m_rareAncestorDependentCompositingInputs->opacityAncestor | 732 ? m_rareAncestorDependentCompositingInputs->opacityAncestor |
| 726 : nullptr; | 733 : nullptr; |
| 727 } | 734 } |
| 728 const PaintLayer* transformAncestor() const { | 735 const PaintLayer* transformAncestor() const { |
| 729 ASSERT(!m_needsAncestorDependentCompositingInputsUpdate); | 736 DCHECK(!m_needsAncestorDependentCompositingInputsUpdate); |
| 730 return m_rareAncestorDependentCompositingInputs | 737 return m_rareAncestorDependentCompositingInputs |
| 731 ? m_rareAncestorDependentCompositingInputs->transformAncestor | 738 ? m_rareAncestorDependentCompositingInputs->transformAncestor |
| 732 : nullptr; | 739 : nullptr; |
| 733 } | 740 } |
| 734 const PaintLayer* filterAncestor() const { | 741 const PaintLayer* filterAncestor() const { |
| 735 ASSERT(!m_needsAncestorDependentCompositingInputsUpdate); | 742 DCHECK(!m_needsAncestorDependentCompositingInputsUpdate); |
| 736 return m_rareAncestorDependentCompositingInputs | 743 return m_rareAncestorDependentCompositingInputs |
| 737 ? m_rareAncestorDependentCompositingInputs->filterAncestor | 744 ? m_rareAncestorDependentCompositingInputs->filterAncestor |
| 738 : nullptr; | 745 : nullptr; |
| 739 } | 746 } |
| 740 const LayoutObject* clippingContainer() const { | 747 const LayoutObject* clippingContainer() const { |
| 741 ASSERT(!m_needsAncestorDependentCompositingInputsUpdate); | 748 DCHECK(!m_needsAncestorDependentCompositingInputsUpdate); |
| 742 return m_ancestorDependentCompositingInputs.clippingContainer; | 749 return m_ancestorDependentCompositingInputs.clippingContainer; |
| 743 } | 750 } |
| 744 const PaintLayer* ancestorOverflowLayer() const { | 751 const PaintLayer* ancestorOverflowLayer() const { |
| 745 return m_ancestorOverflowLayer; | 752 return m_ancestorOverflowLayer; |
| 746 } | 753 } |
| 747 const PaintLayer* ancestorScrollingLayer() const { | 754 const PaintLayer* ancestorScrollingLayer() const { |
| 748 ASSERT(!m_needsAncestorDependentCompositingInputsUpdate); | 755 DCHECK(!m_needsAncestorDependentCompositingInputsUpdate); |
| 749 return m_rareAncestorDependentCompositingInputs | 756 return m_rareAncestorDependentCompositingInputs |
| 750 ? m_rareAncestorDependentCompositingInputs | 757 ? m_rareAncestorDependentCompositingInputs |
| 751 ->ancestorScrollingLayer | 758 ->ancestorScrollingLayer |
| 752 : nullptr; | 759 : nullptr; |
| 753 } | 760 } |
| 754 const PaintLayer* nearestFixedPositionLayer() const { | 761 const PaintLayer* nearestFixedPositionLayer() const { |
| 755 ASSERT(!m_needsAncestorDependentCompositingInputsUpdate); | 762 DCHECK(!m_needsAncestorDependentCompositingInputsUpdate); |
| 756 return m_rareAncestorDependentCompositingInputs | 763 return m_rareAncestorDependentCompositingInputs |
| 757 ? m_rareAncestorDependentCompositingInputs | 764 ? m_rareAncestorDependentCompositingInputs |
| 758 ->nearestFixedPositionLayer | 765 ->nearestFixedPositionLayer |
| 759 : nullptr; | 766 : nullptr; |
| 760 } | 767 } |
| 761 const PaintLayer* scrollParent() const { | 768 const PaintLayer* scrollParent() const { |
| 762 ASSERT(!m_needsAncestorDependentCompositingInputsUpdate); | 769 DCHECK(!m_needsAncestorDependentCompositingInputsUpdate); |
| 763 return m_rareAncestorDependentCompositingInputs | 770 return m_rareAncestorDependentCompositingInputs |
| 764 ? m_rareAncestorDependentCompositingInputs->scrollParent | 771 ? m_rareAncestorDependentCompositingInputs->scrollParent |
| 765 : nullptr; | 772 : nullptr; |
| 766 } | 773 } |
| 767 const PaintLayer* clipParent() const { | 774 const PaintLayer* clipParent() const { |
| 768 ASSERT(!m_needsAncestorDependentCompositingInputsUpdate); | 775 DCHECK(!m_needsAncestorDependentCompositingInputsUpdate); |
| 769 return m_rareAncestorDependentCompositingInputs | 776 return m_rareAncestorDependentCompositingInputs |
| 770 ? m_rareAncestorDependentCompositingInputs->clipParent | 777 ? m_rareAncestorDependentCompositingInputs->clipParent |
| 771 : nullptr; | 778 : nullptr; |
| 772 } | 779 } |
| 773 bool hasAncestorWithClipPath() const { | 780 bool hasAncestorWithClipPath() const { |
| 774 ASSERT(!m_needsAncestorDependentCompositingInputsUpdate); | 781 DCHECK(!m_needsAncestorDependentCompositingInputsUpdate); |
| 775 return m_hasAncestorWithClipPath; | 782 return m_hasAncestorWithClipPath; |
| 776 } | 783 } |
| 777 bool hasDescendantWithClipPath() const { | 784 bool hasDescendantWithClipPath() const { |
| 778 ASSERT(!m_needsDescendantDependentCompositingInputsUpdate); | 785 DCHECK(!m_needsDescendantDependentCompositingInputsUpdate); |
| 779 return m_hasDescendantWithClipPath; | 786 return m_hasDescendantWithClipPath; |
| 780 } | 787 } |
| 781 bool hasNonIsolatedDescendantWithBlendMode() const; | 788 bool hasNonIsolatedDescendantWithBlendMode() const; |
| 782 | 789 |
| 783 bool hasRootScrollerAsDescendant() const { | 790 bool hasRootScrollerAsDescendant() const { |
| 784 ASSERT(!m_needsDescendantDependentCompositingInputsUpdate); | 791 DCHECK(!m_needsDescendantDependentCompositingInputsUpdate); |
| 785 return m_hasRootScrollerAsDescendant; | 792 return m_hasRootScrollerAsDescendant; |
| 786 } | 793 } |
| 787 | 794 |
| 788 bool lostGroupedMapping() const { | 795 bool lostGroupedMapping() const { |
| 789 ASSERT(isAllowedToQueryCompositingState()); | 796 DCHECK(isAllowedToQueryCompositingState()); |
| 790 return m_lostGroupedMapping; | 797 return m_lostGroupedMapping; |
| 791 } | 798 } |
| 792 void setLostGroupedMapping(bool b) { m_lostGroupedMapping = b; } | 799 void setLostGroupedMapping(bool b) { m_lostGroupedMapping = b; } |
| 793 | 800 |
| 794 CompositingReasons getCompositingReasons() const { | 801 CompositingReasons getCompositingReasons() const { |
| 795 ASSERT(isAllowedToQueryCompositingState()); | 802 DCHECK(isAllowedToQueryCompositingState()); |
| 796 return m_rareData ? m_rareData->compositingReasons : CompositingReasonNone; | 803 return m_rareData ? m_rareData->compositingReasons : CompositingReasonNone; |
| 797 } | 804 } |
| 798 void setCompositingReasons(CompositingReasons, | 805 void setCompositingReasons(CompositingReasons, |
| 799 CompositingReasons mask = CompositingReasonAll); | 806 CompositingReasons mask = CompositingReasonAll); |
| 800 | 807 |
| 801 SquashingDisallowedReasons getSquashingDisallowedReasons() const { | 808 SquashingDisallowedReasons getSquashingDisallowedReasons() const { |
| 802 ASSERT(isAllowedToQueryCompositingState()); | 809 DCHECK(isAllowedToQueryCompositingState()); |
| 803 return m_rareData ? m_rareData->squashingDisallowedReasons | 810 return m_rareData ? m_rareData->squashingDisallowedReasons |
| 804 : SquashingDisallowedReasonsNone; | 811 : SquashingDisallowedReasonsNone; |
| 805 } | 812 } |
| 806 void setSquashingDisallowedReasons(SquashingDisallowedReasons); | 813 void setSquashingDisallowedReasons(SquashingDisallowedReasons); |
| 807 | 814 |
| 808 bool hasCompositingDescendant() const { | 815 bool hasCompositingDescendant() const { |
| 809 ASSERT(isAllowedToQueryCompositingState()); | 816 DCHECK(isAllowedToQueryCompositingState()); |
| 810 return m_hasCompositingDescendant; | 817 return m_hasCompositingDescendant; |
| 811 } | 818 } |
| 812 void setHasCompositingDescendant(bool); | 819 void setHasCompositingDescendant(bool); |
| 813 | 820 |
| 814 bool shouldIsolateCompositedDescendants() const { | 821 bool shouldIsolateCompositedDescendants() const { |
| 815 ASSERT(isAllowedToQueryCompositingState()); | 822 DCHECK(isAllowedToQueryCompositingState()); |
| 816 return m_shouldIsolateCompositedDescendants; | 823 return m_shouldIsolateCompositedDescendants; |
| 817 } | 824 } |
| 818 void setShouldIsolateCompositedDescendants(bool); | 825 void setShouldIsolateCompositedDescendants(bool); |
| 819 | 826 |
| 820 void updateDescendantDependentFlags(); | 827 void updateDescendantDependentFlags(); |
| 821 | 828 |
| 822 void updateOrRemoveFilterEffect(); | 829 void updateOrRemoveFilterEffect(); |
| 823 | 830 |
| 824 void updateSelfPaintingLayer(); | 831 void updateSelfPaintingLayer(); |
| 825 // This is O(depth) so avoid calling this in loops. Instead use optimizations | 832 // This is O(depth) so avoid calling this in loops. Instead use optimizations |
| 826 // like those in PaintInvalidationState. | 833 // like those in PaintInvalidationState. |
| 827 PaintLayer* enclosingSelfPaintingLayer(); | 834 PaintLayer* enclosingSelfPaintingLayer(); |
| 828 | 835 |
| 829 PaintLayer* enclosingTransformedAncestor() const; | 836 PaintLayer* enclosingTransformedAncestor() const; |
| 830 LayoutPoint computeOffsetFromTransformedAncestor() const; | 837 LayoutPoint computeOffsetFromTransformedAncestor() const; |
| 831 | 838 |
| 832 void didUpdateNeedsCompositedScrolling(); | 839 void didUpdateNeedsCompositedScrolling(); |
| 833 | 840 |
| 834 bool hasSelfPaintingLayerDescendant() const { | 841 bool hasSelfPaintingLayerDescendant() const { |
| 835 if (m_hasSelfPaintingLayerDescendantDirty) | 842 if (m_hasSelfPaintingLayerDescendantDirty) |
| 836 updateHasSelfPaintingLayerDescendant(); | 843 updateHasSelfPaintingLayerDescendant(); |
| 837 ASSERT(!m_hasSelfPaintingLayerDescendantDirty); | 844 DCHECK(!m_hasSelfPaintingLayerDescendantDirty); |
| 838 return m_hasSelfPaintingLayerDescendant; | 845 return m_hasSelfPaintingLayerDescendant; |
| 839 } | 846 } |
| 840 LayoutRect paintingExtent(const PaintLayer* rootLayer, | 847 LayoutRect paintingExtent(const PaintLayer* rootLayer, |
| 841 const LayoutSize& subPixelAccumulation, | 848 const LayoutSize& subPixelAccumulation, |
| 842 GlobalPaintFlags); | 849 GlobalPaintFlags); |
| 843 void appendSingleFragmentIgnoringPagination( | 850 void appendSingleFragmentIgnoringPagination( |
| 844 PaintLayerFragments&, | 851 PaintLayerFragments&, |
| 845 const PaintLayer* rootLayer, | 852 const PaintLayer* rootLayer, |
| 846 const LayoutRect& dirtyRect, | 853 const LayoutRect& dirtyRect, |
| 847 ClipRectsCacheSlot, | 854 ClipRectsCacheSlot, |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 910 LayoutRect previousPaintDirtyRect() const { return m_previousPaintDirtyRect; } | 917 LayoutRect previousPaintDirtyRect() const { return m_previousPaintDirtyRect; } |
| 911 void setPreviousPaintDirtyRect(const LayoutRect& rect) { | 918 void setPreviousPaintDirtyRect(const LayoutRect& rect) { |
| 912 m_previousPaintDirtyRect = rect; | 919 m_previousPaintDirtyRect = rect; |
| 913 } | 920 } |
| 914 | 921 |
| 915 PaintLayerPainter::PaintResult previousPaintResult() const { | 922 PaintLayerPainter::PaintResult previousPaintResult() const { |
| 916 return static_cast<PaintLayerPainter::PaintResult>(m_previousPaintResult); | 923 return static_cast<PaintLayerPainter::PaintResult>(m_previousPaintResult); |
| 917 } | 924 } |
| 918 void setPreviousPaintResult(PaintLayerPainter::PaintResult result) { | 925 void setPreviousPaintResult(PaintLayerPainter::PaintResult result) { |
| 919 m_previousPaintResult = static_cast<unsigned>(result); | 926 m_previousPaintResult = static_cast<unsigned>(result); |
| 920 ASSERT(m_previousPaintResult == static_cast<unsigned>(result)); | 927 DCHECK(m_previousPaintResult == static_cast<unsigned>(result)); |
| 921 } | 928 } |
| 922 | 929 |
| 923 // Used to skip PaintPhaseDescendantOutlinesOnly for layers that have never | 930 // Used to skip PaintPhaseDescendantOutlinesOnly for layers that have never |
| 924 // had descendant outlines. The flag is set during paint invalidation on a | 931 // had descendant outlines. The flag is set during paint invalidation on a |
| 925 // self painting layer if any contained object has outline. It's cleared | 932 // self painting layer if any contained object has outline. It's cleared |
| 926 // during painting if PaintPhaseDescendantOutlinesOnly painted nothing. | 933 // during painting if PaintPhaseDescendantOutlinesOnly painted nothing. |
| 927 // For more details, see core/paint/REAME.md#Empty paint phase optimization. | 934 // For more details, see core/paint/REAME.md#Empty paint phase optimization. |
| 928 bool needsPaintPhaseDescendantOutlines() const { | 935 bool needsPaintPhaseDescendantOutlines() const { |
| 929 return m_needsPaintPhaseDescendantOutlines && | 936 return m_needsPaintPhaseDescendantOutlines && |
| 930 !m_previousPaintPhaseDescendantOutlinesWasEmpty; | 937 !m_previousPaintPhaseDescendantOutlinesWasEmpty; |
| (...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1130 mutable unsigned m_hasSelfPaintingLayerDescendant : 1; | 1137 mutable unsigned m_hasSelfPaintingLayerDescendant : 1; |
| 1131 mutable unsigned m_hasSelfPaintingLayerDescendantDirty : 1; | 1138 mutable unsigned m_hasSelfPaintingLayerDescendantDirty : 1; |
| 1132 | 1139 |
| 1133 const unsigned m_isRootLayer : 1; | 1140 const unsigned m_isRootLayer : 1; |
| 1134 | 1141 |
| 1135 unsigned m_isVisibleContentDirty : 1; | 1142 unsigned m_isVisibleContentDirty : 1; |
| 1136 unsigned m_hasVisibleContent : 1; | 1143 unsigned m_hasVisibleContent : 1; |
| 1137 unsigned m_isVisibleDescendantDirty : 1; | 1144 unsigned m_isVisibleDescendantDirty : 1; |
| 1138 unsigned m_hasVisibleDescendant : 1; | 1145 unsigned m_hasVisibleDescendant : 1; |
| 1139 | 1146 |
| 1140 #if ENABLE(ASSERT) | 1147 #if DCHECK_IS_ON() |
| 1141 unsigned m_needsPositionUpdate : 1; | 1148 unsigned m_needsPositionUpdate : 1; |
| 1142 #endif | 1149 #endif |
| 1143 | 1150 |
| 1144 unsigned m_is3DTransformedDescendantDirty : 1; | 1151 unsigned m_is3DTransformedDescendantDirty : 1; |
| 1145 // Set on a stacking context layer that has 3D descendants anywhere | 1152 // Set on a stacking context layer that has 3D descendants anywhere |
| 1146 // in a preserves3D hierarchy. Hint to do 3D-aware hit testing. | 1153 // in a preserves3D hierarchy. Hint to do 3D-aware hit testing. |
| 1147 unsigned m_has3DTransformedDescendant : 1; | 1154 unsigned m_has3DTransformedDescendant : 1; |
| 1148 | 1155 |
| 1149 unsigned m_containsDirtyOverlayScrollbars : 1; | 1156 unsigned m_containsDirtyOverlayScrollbars : 1; |
| 1150 | 1157 |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1230 | 1237 |
| 1231 } // namespace blink | 1238 } // namespace blink |
| 1232 | 1239 |
| 1233 #ifndef NDEBUG | 1240 #ifndef NDEBUG |
| 1234 // Outside the WebCore namespace for ease of invocation from gdb. | 1241 // Outside the WebCore namespace for ease of invocation from gdb. |
| 1235 CORE_EXPORT void showLayerTree(const blink::PaintLayer*); | 1242 CORE_EXPORT void showLayerTree(const blink::PaintLayer*); |
| 1236 CORE_EXPORT void showLayerTree(const blink::LayoutObject*); | 1243 CORE_EXPORT void showLayerTree(const blink::LayoutObject*); |
| 1237 #endif | 1244 #endif |
| 1238 | 1245 |
| 1239 #endif // Layer_h | 1246 #endif // Layer_h |
| OLD | NEW |