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

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

Issue 24921002: Make compositingState explicit (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: ready for review 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 | Annotate | Revision Log
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 456 matching lines...) Expand 10 before | Expand all | Expand 10 after
467 467
468 void filterNeedsRepaint(); 468 void filterNeedsRepaint();
469 bool hasFilter() const { return renderer()->hasFilter(); } 469 bool hasFilter() const { return renderer()->hasFilter(); }
470 470
471 bool hasBlendMode() const; 471 bool hasBlendMode() const;
472 472
473 void* operator new(size_t); 473 void* operator new(size_t);
474 // Only safe to call from RenderLayerModelObject::destroyLayer() 474 // Only safe to call from RenderLayerModelObject::destroyLayer()
475 void operator delete(void*); 475 void operator delete(void*);
476 476
477 bool isComposited() const { return m_backing != 0; } 477 CompositingState compositingState() const;
478
479 RenderLayerBacking* backing() const
480 {
481 // NOTE: Checking whether backing exists is equivalent to asking if you are in one of these two compositing states.
482 // If this is why you are using backing(), please try to use compo sitingState() instead.
483 ASSERT(compositingState() == HasOwnBackingButPaintsIntoAncestor || compo sitingState() == PaintsIntoOwnBacking);
484 return m_backing.get();
485 }
486
487 RenderLayerBacking* ensureBacking();
488 void clearBacking(bool layerBeingDestroyed = false);
489
478 bool hasCompositedMask() const; 490 bool hasCompositedMask() const;
479 bool hasCompositedClippingMask() const; 491 bool hasCompositedClippingMask() const;
480 RenderLayerBacking* backing() const { return m_backing.get(); }
481 RenderLayerBacking* ensureBacking();
482 void clearBacking(bool layerBeingDestroyed = false);
483 bool needsCompositedScrolling() const; 492 bool needsCompositedScrolling() const;
484 bool needsToBeStackingContainer() const; 493 bool needsToBeStackingContainer() const;
485 494
486 RenderLayer* scrollParent() const; 495 RenderLayer* scrollParent() const;
487 RenderLayer* clipParent() const; 496 RenderLayer* clipParent() const;
488 497
489 bool needsCompositingLayersRebuiltForClip(const RenderStyle* oldStyle, const RenderStyle* newStyle) const; 498 bool needsCompositingLayersRebuiltForClip(const RenderStyle* oldStyle, const RenderStyle* newStyle) const;
490 bool needsCompositingLayersRebuiltForOverflow(const RenderStyle* oldStyle, c onst RenderStyle* newStyle) const; 499 bool needsCompositingLayersRebuiltForOverflow(const RenderStyle* oldStyle, c onst RenderStyle* newStyle) const;
491 bool needsCompositingLayersRebuiltForFilters(const RenderStyle* oldStyle, co nst RenderStyle* newStyle, bool didPaintWithFilters) const; 500 bool needsCompositingLayersRebuiltForFilters(const RenderStyle* oldStyle, co nst RenderStyle* newStyle, bool didPaintWithFilters) const;
492 501
493 bool paintsWithTransparency(PaintBehavior paintBehavior) const 502 bool paintsWithTransparency(PaintBehavior paintBehavior) const
494 { 503 {
495 return isTransparent() && ((paintBehavior & PaintBehaviorFlattenComposit ingLayers) || !isComposited()); 504 // FIXME: shouldn't we return true if this layer has a backing but paint s into its ancestor?
Ian Vollick 2013/10/01 19:46:22 This should return true everywhere opacity won't b
shawnsingh 2013/10/03 03:04:04 done.
505 return isTransparent() && ((paintBehavior & PaintBehaviorFlattenComposit ingLayers) || !backing());
496 } 506 }
497 507
498 bool paintsWithTransform(PaintBehavior) const; 508 bool paintsWithTransform(PaintBehavior) const;
499 509
500 // Returns true if background phase is painted opaque in the given rect. 510 // Returns true if background phase is painted opaque in the given rect.
501 // The query rect is given in local coordinates. 511 // The query rect is given in local coordinates.
502 bool backgroundIsKnownToBeOpaqueInRect(const LayoutRect&) const; 512 bool backgroundIsKnownToBeOpaqueInRect(const LayoutRect&) const;
503 513
504 bool containsDirtyOverlayScrollbars() const { return m_containsDirtyOverlayS crollbars; } 514 bool containsDirtyOverlayScrollbars() const { return m_containsDirtyOverlayS crollbars; }
505 void setContainsDirtyOverlayScrollbars(bool dirtyScrollbars) { m_containsDir tyOverlayScrollbars = dirtyScrollbars; } 515 void setContainsDirtyOverlayScrollbars(bool dirtyScrollbars) { m_containsDir tyOverlayScrollbars = dirtyScrollbars; }
(...skipping 545 matching lines...) Expand 10 before | Expand all | Expand 10 after
1051 1061
1052 } // namespace WebCore 1062 } // namespace WebCore
1053 1063
1054 #ifndef NDEBUG 1064 #ifndef NDEBUG
1055 // Outside the WebCore namespace for ease of invocation from gdb. 1065 // Outside the WebCore namespace for ease of invocation from gdb.
1056 void showLayerTree(const WebCore::RenderLayer*); 1066 void showLayerTree(const WebCore::RenderLayer*);
1057 void showLayerTree(const WebCore::RenderObject*); 1067 void showLayerTree(const WebCore::RenderObject*);
1058 #endif 1068 #endif
1059 1069
1060 #endif // RenderLayer_h 1070 #endif // RenderLayer_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698