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

Side by Side Diff: third_party/WebKit/Source/core/paint/PaintLayer.h

Issue 2810503002: Only store previous clip rects for PaintLayers that support subsequences. (Closed)
Patch Set: none Created 3 years, 8 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 562 matching lines...) Expand 10 before | Expand all | Expand 10 after
573 } 573 }
574 574
575 // Returns true if the element or any ancestor is transformed. 575 // Returns true if the element or any ancestor is transformed.
576 bool CompositesWithTransform() const; 576 bool CompositesWithTransform() const;
577 577
578 // Returns true if the element or any ancestor has non 1 opacity. 578 // Returns true if the element or any ancestor has non 1 opacity.
579 bool CompositesWithOpacity() const; 579 bool CompositesWithOpacity() const;
580 580
581 bool PaintsWithTransform(GlobalPaintFlags) const; 581 bool PaintsWithTransform(GlobalPaintFlags) const;
582 582
583 bool SupportsSubsequenceCaching() const;
584
583 // Returns true if background phase is painted opaque in the given rect. 585 // Returns true if background phase is painted opaque in the given rect.
584 // The query rect is given in local coordinates. 586 // The query rect is given in local coordinates.
585 bool BackgroundIsKnownToBeOpaqueInRect(const LayoutRect&) const; 587 bool BackgroundIsKnownToBeOpaqueInRect(const LayoutRect&) const;
586 588
587 bool ContainsDirtyOverlayScrollbars() const { 589 bool ContainsDirtyOverlayScrollbars() const {
588 return contains_dirty_overlay_scrollbars_; 590 return contains_dirty_overlay_scrollbars_;
589 } 591 }
590 void SetContainsDirtyOverlayScrollbars(bool dirty_scrollbars) { 592 void SetContainsDirtyOverlayScrollbars(bool dirty_scrollbars) {
591 contains_dirty_overlay_scrollbars_ = dirty_scrollbars; 593 contains_dirty_overlay_scrollbars_ = dirty_scrollbars;
592 } 594 }
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
785 : nullptr; 787 : nullptr;
786 } 788 }
787 bool HasAncestorWithClipPath() const { 789 bool HasAncestorWithClipPath() const {
788 DCHECK(!needs_ancestor_dependent_compositing_inputs_update_); 790 DCHECK(!needs_ancestor_dependent_compositing_inputs_update_);
789 return has_ancestor_with_clip_path_; 791 return has_ancestor_with_clip_path_;
790 } 792 }
791 bool HasDescendantWithClipPath() const { 793 bool HasDescendantWithClipPath() const {
792 DCHECK(!needs_descendant_dependent_flags_update_); 794 DCHECK(!needs_descendant_dependent_flags_update_);
793 return has_descendant_with_clip_path_; 795 return has_descendant_with_clip_path_;
794 } 796 }
797 bool HasDescendantThatSupportsSubsequenceCaching() const {
798 DCHECK(!needs_descendant_dependent_flags_update_);
799 return has_descendant_that_supports_subsequence_caching_;
800 }
795 801
796 // Returns true if there is a descendant with blend-mode that is 802 // Returns true if there is a descendant with blend-mode that is
797 // not contained within another enclosing stacking context other 803 // not contained within another enclosing stacking context other
798 // than the stacking context blend-mode creates, or the stacking 804 // than the stacking context blend-mode creates, or the stacking
799 // context this PaintLayer might create. This is needed because 805 // context this PaintLayer might create. This is needed because
800 // blend-mode content needs to blend with the containing stacking 806 // blend-mode content needs to blend with the containing stacking
801 // context's painted output, but not the content in any grandparent 807 // context's painted output, but not the content in any grandparent
802 // stacking contexts. 808 // stacking contexts.
803 bool HasNonIsolatedDescendantWithBlendMode() const; 809 bool HasNonIsolatedDescendantWithBlendMode() const;
804 810
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
917 void SetPreviousScrollOffsetAccumulationForPainting(const IntSize& s) { 923 void SetPreviousScrollOffsetAccumulationForPainting(const IntSize& s) {
918 previous_scroll_offset_accumulation_for_painting_ = s; 924 previous_scroll_offset_accumulation_for_painting_ = s;
919 } 925 }
920 926
921 ClipRects* PreviousPaintingClipRects() const { 927 ClipRects* PreviousPaintingClipRects() const {
922 return previous_painting_clip_rects_.Get(); 928 return previous_painting_clip_rects_.Get();
923 } 929 }
924 void SetPreviousPaintingClipRects(ClipRects& clip_rects) { 930 void SetPreviousPaintingClipRects(ClipRects& clip_rects) {
925 previous_painting_clip_rects_ = &clip_rects; 931 previous_painting_clip_rects_ = &clip_rects;
926 } 932 }
933 void ClearPreviousPaintingClipRects() {
934 previous_painting_clip_rects_.Clear();
935 }
927 936
928 LayoutRect PreviousPaintDirtyRect() const { 937 LayoutRect PreviousPaintDirtyRect() const {
929 return previous_paint_dirty_rect_; 938 return previous_paint_dirty_rect_;
930 } 939 }
931 void SetPreviousPaintDirtyRect(const LayoutRect& rect) { 940 void SetPreviousPaintDirtyRect(const LayoutRect& rect) {
932 previous_paint_dirty_rect_ = rect; 941 previous_paint_dirty_rect_ = rect;
933 } 942 }
934 943
935 PaintResult PreviousPaintResult() const { 944 PaintResult PreviousPaintResult() const {
936 return static_cast<PaintResult>(previous_paint_result_); 945 return static_cast<PaintResult>(previous_paint_result_);
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after
1210 unsigned needs_paint_phase_float_ : 1; 1219 unsigned needs_paint_phase_float_ : 1;
1211 unsigned previous_paint_phase_float_was_empty_ : 1; 1220 unsigned previous_paint_phase_float_was_empty_ : 1;
1212 unsigned needs_paint_phase_descendant_block_backgrounds_ : 1; 1221 unsigned needs_paint_phase_descendant_block_backgrounds_ : 1;
1213 unsigned previous_paint_phase_descendant_block_backgrounds_was_empty_ : 1; 1222 unsigned previous_paint_phase_descendant_block_backgrounds_was_empty_ : 1;
1214 1223
1215 // These bitfields are part of ancestor/descendant dependent compositing 1224 // These bitfields are part of ancestor/descendant dependent compositing
1216 // inputs. 1225 // inputs.
1217 unsigned has_descendant_with_clip_path_ : 1; 1226 unsigned has_descendant_with_clip_path_ : 1;
1218 unsigned has_non_isolated_descendant_with_blend_mode_ : 1; 1227 unsigned has_non_isolated_descendant_with_blend_mode_ : 1;
1219 unsigned has_ancestor_with_clip_path_ : 1; 1228 unsigned has_ancestor_with_clip_path_ : 1;
1229 unsigned has_descendant_that_supports_subsequence_caching_ : 1;
1220 1230
1221 unsigned self_painting_status_changed_ : 1; 1231 unsigned self_painting_status_changed_ : 1;
1222 1232
1223 LayoutBoxModelObject& layout_object_; 1233 LayoutBoxModelObject& layout_object_;
1224 1234
1225 PaintLayer* parent_; 1235 PaintLayer* parent_;
1226 PaintLayer* previous_; 1236 PaintLayer* previous_;
1227 PaintLayer* next_; 1237 PaintLayer* next_;
1228 PaintLayer* first_; 1238 PaintLayer* first_;
1229 PaintLayer* last_; 1239 PaintLayer* last_;
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1268 1278
1269 } // namespace blink 1279 } // namespace blink
1270 1280
1271 #ifndef NDEBUG 1281 #ifndef NDEBUG
1272 // Outside the WebCore namespace for ease of invocation from gdb. 1282 // Outside the WebCore namespace for ease of invocation from gdb.
1273 CORE_EXPORT void showLayerTree(const blink::PaintLayer*); 1283 CORE_EXPORT void showLayerTree(const blink::PaintLayer*);
1274 CORE_EXPORT void showLayerTree(const blink::LayoutObject*); 1284 CORE_EXPORT void showLayerTree(const blink::LayoutObject*);
1275 #endif 1285 #endif
1276 1286
1277 #endif // Layer_h 1287 #endif // Layer_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698