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

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

Issue 207513002: Compute style-determined compositing reasons during recalc style (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: No longer friends Created 6 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 | 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 460 matching lines...) Expand 10 before | Expand all | Expand 10 after
471 PassOwnPtr<Vector<FloatRect> > collectTrackedRepaintRects() const; 471 PassOwnPtr<Vector<FloatRect> > collectTrackedRepaintRects() const;
472 472
473 RenderLayerBlendInfo& blendInfo() { return m_blendInfo; } 473 RenderLayerBlendInfo& blendInfo() { return m_blendInfo; }
474 474
475 void setOffsetFromSquashingLayerOrigin(IntSize offset) { m_compositingProper ties.offsetFromSquashingLayerOrigin = offset; } 475 void setOffsetFromSquashingLayerOrigin(IntSize offset) { m_compositingProper ties.offsetFromSquashingLayerOrigin = offset; }
476 IntSize offsetFromSquashingLayerOrigin() const { return m_compositingPropert ies.offsetFromSquashingLayerOrigin; } 476 IntSize offsetFromSquashingLayerOrigin() const { return m_compositingPropert ies.offsetFromSquashingLayerOrigin; }
477 477
478 bool scrollsOverflow() const; 478 bool scrollsOverflow() const;
479 479
480 bool hasDirectReasonsForCompositing() const { return compositingReasons() & CompositingReasonComboAllDirectReasons; } 480 bool hasDirectReasonsForCompositing() const { return compositingReasons() & CompositingReasonComboAllDirectReasons; }
481 CompositingReasons styleDeterminedCompositingReasons() const { return compos itingReasons() & CompositingReasonComboAllStyleDeterminedReasons; }
481 482
482 private: 483 private:
483 bool hasOverflowControls() const; 484 bool hasOverflowControls() const;
484 485
485 void setIsUnclippedDescendant(bool isUnclippedDescendant) { m_isUnclippedDes cendant = isUnclippedDescendant; } 486 void setIsUnclippedDescendant(bool isUnclippedDescendant) { m_isUnclippedDes cendant = isUnclippedDescendant; }
486 487
487 void setAncestorChainHasSelfPaintingLayerDescendant(); 488 void setAncestorChainHasSelfPaintingLayerDescendant();
488 void dirtyAncestorChainHasSelfPaintingLayerDescendantStatus(); 489 void dirtyAncestorChainHasSelfPaintingLayerDescendantStatus();
489 490
490 void setAncestorChainHasOutOfFlowPositionedDescendant(); 491 void setAncestorChainHasOutOfFlowPositionedDescendant();
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 572
572 bool hitTestContents(const HitTestRequest&, HitTestResult&, const LayoutRect & layerBounds, const HitTestLocation&, HitTestFilter) const; 573 bool hitTestContents(const HitTestRequest&, HitTestResult&, const LayoutRect & layerBounds, const HitTestLocation&, HitTestFilter) const;
573 bool hitTestContentsForFragments(const LayerFragments&, const HitTestRequest &, HitTestResult&, const HitTestLocation&, HitTestFilter, bool& insideClipRect) const; 574 bool hitTestContentsForFragments(const LayerFragments&, const HitTestRequest &, HitTestResult&, const HitTestLocation&, HitTestFilter, bool& insideClipRect) const;
574 RenderLayer* hitTestTransformedLayerInFragments(RenderLayer* rootLayer, Rend erLayer* containerLayer, const HitTestRequest&, HitTestResult&, 575 RenderLayer* hitTestTransformedLayerInFragments(RenderLayer* rootLayer, Rend erLayer* containerLayer, const HitTestRequest&, HitTestResult&,
575 const LayoutRect& hitTestRect, const HitTestLocation&, const HitTestingT ransformState* = 0, double* zOffset = 0); 576 const LayoutRect& hitTestRect, const HitTestLocation&, const HitTestingT ransformState* = 0, double* zOffset = 0);
576 577
577 bool childBackgroundIsKnownToBeOpaqueInRect(const LayoutRect&) const; 578 bool childBackgroundIsKnownToBeOpaqueInRect(const LayoutRect&) const;
578 579
579 bool shouldBeSelfPaintingLayer() const; 580 bool shouldBeSelfPaintingLayer() const;
580 581
582
581 private: 583 private:
582 // FIXME: We should only create the stacking node if needed. 584 // FIXME: We should only create the stacking node if needed.
583 bool requiresStackingNode() const { return true; } 585 bool requiresStackingNode() const { return true; }
584 void updateStackingNode(); 586 void updateStackingNode();
585 587
586 void updateReflectionInfo(const RenderStyle*); 588 void updateReflectionInfo(const RenderStyle*);
587 589
588 // FIXME: We could lazily allocate our ScrollableArea based on style propert ies ('overflow', ...) 590 // FIXME: We could lazily allocate our ScrollableArea based on style propert ies ('overflow', ...)
589 // but for now, we are always allocating it for RenderBox as it's safer. 591 // but for now, we are always allocating it for RenderBox as it's safer.
590 bool requiresScrollableArea() const { return renderBox(); } 592 bool requiresScrollableArea() const { return renderBox(); }
(...skipping 25 matching lines...) Expand all
616 618
617 bool hasNonCompositedChild() const { return m_compositingProperties.hasNonCo mpositedChild; } 619 bool hasNonCompositedChild() const { return m_compositingProperties.hasNonCo mpositedChild; }
618 void setHasNonCompositedChild(bool b) { m_compositingProperties.hasNonCompo sitedChild = b; } 620 void setHasNonCompositedChild(bool b) { m_compositingProperties.hasNonCompo sitedChild = b; }
619 621
620 bool shouldIsolateCompositedDescendants() const { return m_compositingProper ties.shouldIsolateCompositedDescendants; } 622 bool shouldIsolateCompositedDescendants() const { return m_compositingProper ties.shouldIsolateCompositedDescendants; }
621 void setShouldIsolateCompositedDescendants(bool b) { m_compositingPropertie s.shouldIsolateCompositedDescendants = b; } 623 void setShouldIsolateCompositedDescendants(bool b) { m_compositingPropertie s.shouldIsolateCompositedDescendants = b; }
622 624
623 bool lostGroupedMapping() const { return m_compositingProperties.lostGrouped Mapping; } 625 bool lostGroupedMapping() const { return m_compositingProperties.lostGrouped Mapping; }
624 void setLostGroupedMapping(bool b) { m_compositingProperties.lostGroupedMapp ing = b; } 626 void setLostGroupedMapping(bool b) { m_compositingProperties.lostGroupedMapp ing = b; }
625 627
626 void setCompositingReasons(CompositingReasons);
627 CompositingReasons compositingReasons() const { return m_compositingProperti es.compositingReasons; } 628 CompositingReasons compositingReasons() const { return m_compositingProperti es.compositingReasons; }
629 void setCompositingReasons(CompositingReasons, CompositingReasons mask = Com positingReasonAll);
628 630
629 friend class CompositedLayerMapping; 631 friend class CompositedLayerMapping;
630 friend class RenderLayerCompositor; 632 friend class RenderLayerCompositor;
631 friend class RenderLayerModelObject; 633 friend class RenderLayerModelObject;
632 634
633 private: 635 private:
634 LayerType m_layerType; 636 LayerType m_layerType;
635 637
636 // Self-painting layer is an optimization where we avoid the heavy RenderLay er painting 638 // Self-painting layer is an optimization where we avoid the heavy RenderLay er painting
637 // machinery for a RenderLayer allocated only to handle the overflow clip ca se. 639 // machinery for a RenderLayer allocated only to handle the overflow clip ca se.
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
767 769
768 } // namespace WebCore 770 } // namespace WebCore
769 771
770 #ifndef NDEBUG 772 #ifndef NDEBUG
771 // Outside the WebCore namespace for ease of invocation from gdb. 773 // Outside the WebCore namespace for ease of invocation from gdb.
772 void showLayerTree(const WebCore::RenderLayer*); 774 void showLayerTree(const WebCore::RenderLayer*);
773 void showLayerTree(const WebCore::RenderObject*); 775 void showLayerTree(const WebCore::RenderObject*);
774 #endif 776 #endif
775 777
776 #endif // RenderLayer_h 778 #endif // RenderLayer_h
OLDNEW
« no previous file with comments | « LayoutTests/compositing/will-change/gpu-rasterization-hint.html ('k') | Source/core/rendering/RenderLayer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698