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

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

Issue 1813383002: Move all fast-path paint invalidation mapping into PaintInvalidationState (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Disable fast-path/slow-path comparison because of saturated operations of LayoutUnit Created 4 years, 9 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 420 matching lines...) Expand 10 before | Expand all | Expand 10 after
431 enum SetGroupMappingOptions { 431 enum SetGroupMappingOptions {
432 InvalidateLayerAndRemoveFromMapping, 432 InvalidateLayerAndRemoveFromMapping,
433 DoNotInvalidateLayerAndRemoveFromMapping 433 DoNotInvalidateLayerAndRemoveFromMapping
434 }; 434 };
435 void setGroupedMapping(CompositedLayerMapping*, SetGroupMappingOptions); 435 void setGroupedMapping(CompositedLayerMapping*, SetGroupMappingOptions);
436 436
437 bool hasCompositedMask() const; 437 bool hasCompositedMask() const;
438 bool hasCompositedClippingMask() const; 438 bool hasCompositedClippingMask() const;
439 bool needsCompositedScrolling() const { return m_scrollableArea && m_scrolla bleArea->needsCompositedScrolling(); } 439 bool needsCompositedScrolling() const { return m_scrollableArea && m_scrolla bleArea->needsCompositedScrolling(); }
440 440
441 // Computes the position of the given layout object in the space of |paintIn validationContainer|. 441 static void mapPointInPaintInvalidationContainerToBacking(const LayoutBoxMod elObject& paintInvalidationContainer, FloatPoint&);
442 // FIXME: invert the logic to have paint invalidation containers take care o f painting objects into them, rather than the reverse. 442 static void mapRectInPaintInvalidationContainerToBacking(const LayoutBoxMode lObject& paintInvalidationContainer, LayoutRect&);
443 // This will allow us to clean up this static method messiness.
444 static LayoutPoint positionFromPaintInvalidationBacking(const LayoutObject*, const LayoutBoxModelObject* paintInvalidationContainer, const PaintInvalidation State* = 0);
445
446 static void mapPointInPaintInvalidationContainerToBacking(const LayoutBoxMod elObject* paintInvalidationContainer, FloatPoint&);
447 static void mapRectInPaintInvalidationContainerToBacking(const LayoutBoxMode lObject* paintInvalidationContainer, LayoutRect&);
448 443
449 // Adjusts the given rect (in the coordinate space of the LayoutObject) to t he coordinate space of |paintInvalidationContainer|'s GraphicsLayer backing. 444 // Adjusts the given rect (in the coordinate space of the LayoutObject) to t he coordinate space of |paintInvalidationContainer|'s GraphicsLayer backing.
450 static void mapRectToPaintInvalidationBacking(const LayoutObject*, const Lay outBoxModelObject* paintInvalidationContainer, LayoutRect&, const PaintInvalidat ionState* = 0); 445 // Should use PaintInvalidationState::mapRectToPaintInvalidationBacking() in stead if PaintInvalidationState is available.
451 446 static void mapRectToPaintInvalidationBacking(const LayoutObject&, const Lay outBoxModelObject& paintInvalidationContainer, LayoutRect&);
452 // Computes the bounding paint invalidation rect for |layoutObject|, in the coordinate space of |paintInvalidationContainer|'s GraphicsLayer backing.
453 // TODO(jchaffraix): |paintInvalidationContainer| should be a reference.
454 static LayoutRect computePaintInvalidationRect(const LayoutObject&, const Pa intLayer* paintInvalidationContainer, const PaintInvalidationState* = 0);
455 447
456 bool paintsWithTransparency(GlobalPaintFlags globalPaintFlags) const 448 bool paintsWithTransparency(GlobalPaintFlags globalPaintFlags) const
457 { 449 {
458 return isTransparent() && ((globalPaintFlags & GlobalPaintFlattenComposi tingLayers) || compositingState() != PaintsIntoOwnBacking); 450 return isTransparent() && ((globalPaintFlags & GlobalPaintFlattenComposi tingLayers) || compositingState() != PaintsIntoOwnBacking);
459 } 451 }
460 452
461 bool paintsWithTransform(GlobalPaintFlags) const; 453 bool paintsWithTransform(GlobalPaintFlags) const;
462 454
463 // Returns true if background phase is painted opaque in the given rect. 455 // Returns true if background phase is painted opaque in the given rect.
464 // The query rect is given in local coordinates. 456 // The query rect is given in local coordinates.
(...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after
874 866
875 } // namespace blink 867 } // namespace blink
876 868
877 #ifndef NDEBUG 869 #ifndef NDEBUG
878 // Outside the WebCore namespace for ease of invocation from gdb. 870 // Outside the WebCore namespace for ease of invocation from gdb.
879 void showLayerTree(const blink::PaintLayer*); 871 void showLayerTree(const blink::PaintLayer*);
880 void showLayerTree(const blink::LayoutObject*); 872 void showLayerTree(const blink::LayoutObject*);
881 #endif 873 #endif
882 874
883 #endif // Layer_h 875 #endif // Layer_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698