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

Side by Side Diff: sky/engine/core/rendering/RenderObject.h

Issue 840403003: First pass at deleting paint invalidation code. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 11 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) 2000 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
3 * (C) 2000 Antti Koivisto (koivisto@kde.org) 3 * (C) 2000 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com)
6 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2012 Apple Inc. All r ights reserved. 6 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2012 Apple Inc. All r ights reserved.
7 * Copyright (C) 2009 Google Inc. All rights reserved. 7 * Copyright (C) 2009 Google Inc. All rights reserved.
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 610 matching lines...) Expand 10 before | Expand all | Expand 10 after
621 { 621 {
622 return computePaintInvalidationRect(containerForPaintInvalidation()); 622 return computePaintInvalidationRect(containerForPaintInvalidation());
623 } 623 }
624 624
625 // Returns the paint invalidation rect for this RenderObject in the coordina te space of the paint backing (typically a GraphicsLayer) for |paintInvalidation Container|. 625 // Returns the paint invalidation rect for this RenderObject in the coordina te space of the paint backing (typically a GraphicsLayer) for |paintInvalidation Container|.
626 LayoutRect computePaintInvalidationRect(const RenderLayerModelObject* paintI nvalidationContainer, const PaintInvalidationState* = 0) const; 626 LayoutRect computePaintInvalidationRect(const RenderLayerModelObject* paintI nvalidationContainer, const PaintInvalidationState* = 0) const;
627 627
628 // Returns the rect bounds needed to invalidate the paint of this object, in the coordinate space of the rendering backing of |paintInvalidationContainer| 628 // Returns the rect bounds needed to invalidate the paint of this object, in the coordinate space of the rendering backing of |paintInvalidationContainer|
629 LayoutRect boundsRectForPaintInvalidation(const RenderLayerModelObject* pain tInvalidationContainer, const PaintInvalidationState* = 0) const; 629 LayoutRect boundsRectForPaintInvalidation(const RenderLayerModelObject* pain tInvalidationContainer, const PaintInvalidationState* = 0) const;
630 630
631 // Actually do the paint invalidate of rect r for this object which has been computed in the coordinate space
632 // of the GraphicsLayer backing of |paintInvalidationContainer|. Note that t his coordinaten space is not the same
633 // as the local coordinate space of |paintInvalidationContainer| in the pres ence of layer squashing.
634 // If |paintInvalidationContainer| is 0, invalidate paints via the view.
635 // FIXME: |paintInvalidationContainer| should never be 0. See crbug.com/3636 99.
636 void invalidatePaintUsingContainer(const RenderLayerModelObject* paintInvali dationContainer, const LayoutRect&, InvalidationReason) const;
637
638 // Invalidate the paint of a specific subrectangle within a given object. Th e rect |r| is in the object's coordinate space. 631 // Invalidate the paint of a specific subrectangle within a given object. Th e rect |r| is in the object's coordinate space.
639 void invalidatePaintRectangle(const LayoutRect&) const; 632 void invalidatePaintRectangle(const LayoutRect&) const;
640 633
641 InvalidationReason invalidatePaintIfNeeded(const RenderLayerModelObject& pai ntInvalidationContainer,
642 const LayoutRect& oldBounds, const LayoutPoint& oldPositionFromPaintInva lidationContainer, const PaintInvalidationState&);
643
644 // Walk the tree after layout issuing paint invalidations for renderers that have changed or moved, updating bounds that have changed, and clearing paint in validation state. 634 // Walk the tree after layout issuing paint invalidations for renderers that have changed or moved, updating bounds that have changed, and clearing paint in validation state.
645 virtual void invalidateTreeIfNeeded(const PaintInvalidationState&); 635 virtual void invalidateTreeIfNeeded(const PaintInvalidationState&);
646 636
647 virtual void invalidatePaintForOverflow(); 637 virtual void invalidatePaintForOverflow();
648 void invalidatePaintForOverflowIfNeeded(); 638 void invalidatePaintForOverflowIfNeeded();
649 639
650 bool checkForPaintInvalidation() const; 640 bool checkForPaintInvalidation() const;
651 641
652 // Returns the rect that should have paint invalidated whenever this object changes. The rect is in the view's 642 // Returns the rect that should have paint invalidated whenever this object changes. The rect is in the view's
653 // coordinate space. This method deals with outlines and overflow. 643 // coordinate space. This method deals with outlines and overflow.
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
763 void setPreviousPaintInvalidationRect(const LayoutRect& rect) { m_previousPa intInvalidationRect = rect; } 753 void setPreviousPaintInvalidationRect(const LayoutRect& rect) { m_previousPa intInvalidationRect = rect; }
764 754
765 const LayoutPoint& previousPositionFromPaintInvalidationContainer() const { return m_previousPositionFromPaintInvalidationContainer; } 755 const LayoutPoint& previousPositionFromPaintInvalidationContainer() const { return m_previousPositionFromPaintInvalidationContainer; }
766 void setPreviousPositionFromPaintInvalidationContainer(const LayoutPoint& lo cation) { m_previousPositionFromPaintInvalidationContainer = location; } 756 void setPreviousPositionFromPaintInvalidationContainer(const LayoutPoint& lo cation) { m_previousPositionFromPaintInvalidationContainer = location; }
767 757
768 bool shouldDoFullPaintInvalidation() const { return m_bitfields.shouldDoFull PaintInvalidation(); } 758 bool shouldDoFullPaintInvalidation() const { return m_bitfields.shouldDoFull PaintInvalidation(); }
769 void setShouldDoFullPaintInvalidation(bool, MarkingBehavior = MarkContaining BlockChain); 759 void setShouldDoFullPaintInvalidation(bool, MarkingBehavior = MarkContaining BlockChain);
770 760
771 bool shouldInvalidateOverflowForPaint() const { return m_bitfields.shouldInv alidateOverflowForPaint(); } 761 bool shouldInvalidateOverflowForPaint() const { return m_bitfields.shouldInv alidateOverflowForPaint(); }
772 762
773 bool shouldDoFullPaintInvalidationIfSelfPaintingLayer() const { return m_bit fields.shouldDoFullPaintInvalidationIfSelfPaintingLayer(); }
774 void setShouldDoFullPaintInvalidationIfSelfPaintingLayer(bool b)
775 {
776 m_bitfields.setShouldDoFullPaintInvalidationIfSelfPaintingLayer(b);
777
778 if (b)
779 markContainingBlockChainForPaintInvalidation();
780 }
781
782 bool onlyNeededPositionedMovementLayout() const { return m_bitfields.onlyNee dedPositionedMovementLayout(); } 763 bool onlyNeededPositionedMovementLayout() const { return m_bitfields.onlyNee dedPositionedMovementLayout(); }
783 void setOnlyNeededPositionedMovementLayout(bool b) { m_bitfields.setOnlyNeed edPositionedMovementLayout(b); } 764 void setOnlyNeededPositionedMovementLayout(bool b) { m_bitfields.setOnlyNeed edPositionedMovementLayout(b); }
784 765
785 virtual void clearPaintInvalidationState(const PaintInvalidationState&); 766 virtual void clearPaintInvalidationState(const PaintInvalidationState&);
786 767
787 // layoutDidGetCalled indicates whether this render object was re-laid-out 768 // layoutDidGetCalled indicates whether this render object was re-laid-out
788 // since the last call to setLayoutDidGetCalled(false) on this object. 769 // since the last call to setLayoutDidGetCalled(false) on this object.
789 bool layoutDidGetCalled() const { return m_bitfields.layoutDidGetCalled(); } 770 bool layoutDidGetCalled() const { return m_bitfields.layoutDidGetCalled(); }
790 void setLayoutDidGetCalled(bool b) 771 void setLayoutDidGetCalled(bool b)
791 { 772 {
773 // FIXME(sky): Get rid of this once we get rid of all paint invalidation .
792 m_bitfields.setLayoutDidGetCalled(b); 774 m_bitfields.setLayoutDidGetCalled(b);
793
794 if (b)
795 markContainingBlockChainForPaintInvalidation();
796 } 775 }
797 776
798 bool mayNeedPaintInvalidation() const { return m_bitfields.mayNeedPaintInval idation(); } 777 bool mayNeedPaintInvalidation() const { return m_bitfields.mayNeedPaintInval idation(); }
799 void setMayNeedPaintInvalidation(bool b)
800 {
801 m_bitfields.setMayNeedPaintInvalidation(b);
802
803 // Make sure our parent is marked as needing invalidation.
804 if (b)
805 markContainingBlockChainForPaintInvalidation();
806 }
807 778
808 bool neededLayoutBecauseOfChildren() const { return m_bitfields.neededLayout BecauseOfChildren(); } 779 bool neededLayoutBecauseOfChildren() const { return m_bitfields.neededLayout BecauseOfChildren(); }
809 void setNeededLayoutBecauseOfChildren(bool b) { m_bitfields.setNeededLayoutB ecauseOfChildren(b); } 780 void setNeededLayoutBecauseOfChildren(bool b) { m_bitfields.setNeededLayoutB ecauseOfChildren(b); }
810 781
811 bool shouldCheckForPaintInvalidation(const PaintInvalidationState& paintInva lidationState) 782 bool shouldCheckForPaintInvalidation(const PaintInvalidationState& paintInva lidationState)
812 { 783 {
813 return paintInvalidationState.forceCheckForPaintInvalidation() || should CheckForPaintInvalidationRegardlessOfPaintInvalidationState(); 784 return paintInvalidationState.forceCheckForPaintInvalidation() || should CheckForPaintInvalidationRegardlessOfPaintInvalidationState();
814 } 785 }
815 786
816 bool shouldCheckForPaintInvalidationRegardlessOfPaintInvalidationState() 787 bool shouldCheckForPaintInvalidationRegardlessOfPaintInvalidationState()
817 { 788 {
818 return layoutDidGetCalled() || mayNeedPaintInvalidation() || shouldDoFul lPaintInvalidation() || shouldDoFullPaintInvalidationIfSelfPaintingLayer(); 789 return layoutDidGetCalled() || mayNeedPaintInvalidation() || shouldDoFul lPaintInvalidation();
819 } 790 }
820 791
821 bool supportsPaintInvalidationStateCachedOffsets() const { return !hasTransf orm(); } 792 bool supportsPaintInvalidationStateCachedOffsets() const { return !hasTransf orm(); }
822 793
823 void setNeedsOverflowRecalcAfterStyleChange(); 794 void setNeedsOverflowRecalcAfterStyleChange();
824 void markContainingBlocksForOverflowRecalc(); 795 void markContainingBlocksForOverflowRecalc();
825 796
826 // FIXME: This is temporary for cases that setShouldDoFullPaintInvalidation( true) doesn't work yet.
827 void doNotUseInvalidatePaintForWholeRendererSynchronously() const { invalida tePaintForWholeRenderer(); }
828
829 protected: 797 protected:
830 // Overrides should call the superclass at the end. m_style will be 0 the fi rst time 798 // Overrides should call the superclass at the end. m_style will be 0 the fi rst time
831 // this function will be called. 799 // this function will be called.
832 virtual void styleWillChange(StyleDifference, const RenderStyle& newStyle); 800 virtual void styleWillChange(StyleDifference, const RenderStyle& newStyle);
833 // Overrides should call the superclass at the start. |oldStyle| will be 0 t he first 801 // Overrides should call the superclass at the start. |oldStyle| will be 0 t he first
834 // time this function is called. 802 // time this function is called.
835 virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle); 803 virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
836 void propagateStyleToAnonymousChildren(bool blockChildrenOnly = false); 804 void propagateStyleToAnonymousChildren(bool blockChildrenOnly = false);
837 void updateAnonymousChildStyle(const RenderObject* child, RenderStyle* style ) const { } 805 void updateAnonymousChildStyle(const RenderObject* child, RenderStyle* style ) const { }
838 806
(...skipping 19 matching lines...) Expand all
858 void postDestroy(); 826 void postDestroy();
859 827
860 void insertedIntoTree(); 828 void insertedIntoTree();
861 void willBeRemovedFromTree(); 829 void willBeRemovedFromTree();
862 830
863 void setDocumentForAnonymous(Document* document) { ASSERT(isAnonymous()); m_ node = document; } 831 void setDocumentForAnonymous(Document* document) { ASSERT(isAnonymous()); m_ node = document; }
864 832
865 virtual InvalidationReason getPaintInvalidationReason(const RenderLayerModel Object& paintInvalidationContainer, 833 virtual InvalidationReason getPaintInvalidationReason(const RenderLayerModel Object& paintInvalidationContainer,
866 const LayoutRect& oldBounds, const LayoutPoint& oldPositionFromPaintInva lidationContainer, 834 const LayoutRect& oldBounds, const LayoutPoint& oldPositionFromPaintInva lidationContainer,
867 const LayoutRect& newBounds, const LayoutPoint& newPositionFromPaintInva lidationContainer); 835 const LayoutRect& newBounds, const LayoutPoint& newPositionFromPaintInva lidationContainer);
868 virtual void incrementallyInvalidatePaint(const RenderLayerModelObject& pain tInvalidationContainer, const LayoutRect& oldBounds, const LayoutRect& newBounds , const LayoutPoint& positionFromPaintInvalidationContainer);
869 void fullyInvalidatePaint(const RenderLayerModelObject& paintInvalidationCon tainer, InvalidationReason, const LayoutRect& oldBounds, const LayoutRect& newBo unds);
870 836
871 #if ENABLE(ASSERT) 837 #if ENABLE(ASSERT)
872 virtual bool paintInvalidationStateIsDirty() const 838 virtual bool paintInvalidationStateIsDirty() const
873 { 839 {
874 return layoutDidGetCalled() || shouldDoFullPaintInvalidation() || should DoFullPaintInvalidationIfSelfPaintingLayer() 840 return layoutDidGetCalled() || shouldDoFullPaintInvalidation()
875 || onlyNeededPositionedMovementLayout() || neededLayoutBecauseOfChil dren() || mayNeedPaintInvalidation(); 841 || onlyNeededPositionedMovementLayout() || neededLayoutBecauseOfChil dren() || mayNeedPaintInvalidation();
876 } 842 }
877 #endif 843 #endif
878 844
879 private: 845 private:
880 // Invalidate the paint of the entire object. This is only used when a rende rer is to be removed.
881 // For other cases, the caller should call setShouldDoFullPaintInvalidation( ) instead.
882 void invalidatePaintForWholeRenderer() const;
883
884 bool hasImmediateNonWhitespaceTextChildOrPropertiesDependentOnColor() const; 846 bool hasImmediateNonWhitespaceTextChildOrPropertiesDependentOnColor() const;
885 847
886 StyleDifference adjustStyleDifference(StyleDifference) const; 848 StyleDifference adjustStyleDifference(StyleDifference) const;
887 849
888 Color selectionColor(int colorProperty) const; 850 Color selectionColor(int colorProperty) const;
889 851
890 #if ENABLE(ASSERT) 852 #if ENABLE(ASSERT)
891 void checkBlockPositionedObjectsNeedLayout(); 853 void checkBlockPositionedObjectsNeedLayout();
892 #endif 854 #endif
893 const char* invalidationReasonToString(InvalidationReason) const; 855 const char* invalidationReasonToString(InvalidationReason) const;
894 856
895 void markContainingBlockChainForPaintInvalidation()
896 {
897 for (RenderObject* container = this->container(); container && !containe r->shouldCheckForPaintInvalidationRegardlessOfPaintInvalidationState(); containe r = container->container())
898 container->setMayNeedPaintInvalidation(true);
899 }
900
901 // FIXME(sky): This method is just to avoid copy-paste. 857 // FIXME(sky): This method is just to avoid copy-paste.
902 // Merge container into containingBlock and then get rid of this method. 858 // Merge container into containingBlock and then get rid of this method.
903 bool canContainAbsolutePositionObjects() const 859 bool canContainAbsolutePositionObjects() const
904 { 860 {
905 return isRenderView() || (hasTransform() && isRenderBlock()); 861 return isRenderView() || (hasTransform() && isRenderBlock());
906 } 862 }
907 863
908 static bool isAllowedToModifyRenderTreeStructure(Document&); 864 static bool isAllowedToModifyRenderTreeStructure(Document&);
909 865
910 RefPtr<RenderStyle> m_style; 866 RefPtr<RenderStyle> m_style;
(...skipping 26 matching lines...) Expand all
937 IsStaticallyPositioned = 0, 893 IsStaticallyPositioned = 0,
938 IsRelativelyPositioned = 1, 894 IsRelativelyPositioned = 1,
939 IsOutOfFlowPositioned = 2, 895 IsOutOfFlowPositioned = 2,
940 }; 896 };
941 897
942 public: 898 public:
943 RenderObjectBitfields(Node* node) 899 RenderObjectBitfields(Node* node)
944 : m_selfNeedsLayout(false) 900 : m_selfNeedsLayout(false)
945 , m_shouldDoFullPaintInvalidation(false) 901 , m_shouldDoFullPaintInvalidation(false)
946 , m_shouldInvalidateOverflowForPaint(false) 902 , m_shouldInvalidateOverflowForPaint(false)
947 , m_shouldDoFullPaintInvalidationIfSelfPaintingLayer(false)
948 // FIXME: We should remove mayNeedPaintInvalidation once we are able to 903 // FIXME: We should remove mayNeedPaintInvalidation once we are able to
949 // use the other layout flags to detect the same cases. crbug.com/37 0118 904 // use the other layout flags to detect the same cases. crbug.com/37 0118
950 , m_mayNeedPaintInvalidation(false) 905 , m_mayNeedPaintInvalidation(false)
951 , m_onlyNeededPositionedMovementLayout(false) 906 , m_onlyNeededPositionedMovementLayout(false)
952 , m_neededLayoutBecauseOfChildren(false) 907 , m_neededLayoutBecauseOfChildren(false)
953 , m_needsPositionedMovementLayout(false) 908 , m_needsPositionedMovementLayout(false)
954 , m_normalChildNeedsLayout(false) 909 , m_normalChildNeedsLayout(false)
955 , m_posChildNeedsLayout(false) 910 , m_posChildNeedsLayout(false)
956 , m_needsSimplifiedNormalFlowLayout(false) 911 , m_needsSimplifiedNormalFlowLayout(false)
957 , m_preferredLogicalWidthsDirty(false) 912 , m_preferredLogicalWidthsDirty(false)
(...skipping 15 matching lines...) Expand all
973 , m_positionedState(IsStaticallyPositioned) 928 , m_positionedState(IsStaticallyPositioned)
974 , m_selectionState(SelectionNone) 929 , m_selectionState(SelectionNone)
975 , m_boxDecorationBackgroundState(NoBoxDecorationBackground) 930 , m_boxDecorationBackgroundState(NoBoxDecorationBackground)
976 { 931 {
977 } 932 }
978 933
979 // 32 bits have been used in the first word, and 11 in the second. 934 // 32 bits have been used in the first word, and 11 in the second.
980 ADD_BOOLEAN_BITFIELD(selfNeedsLayout, SelfNeedsLayout); 935 ADD_BOOLEAN_BITFIELD(selfNeedsLayout, SelfNeedsLayout);
981 ADD_BOOLEAN_BITFIELD(shouldDoFullPaintInvalidation, ShouldDoFullPaintInv alidation); 936 ADD_BOOLEAN_BITFIELD(shouldDoFullPaintInvalidation, ShouldDoFullPaintInv alidation);
982 ADD_BOOLEAN_BITFIELD(shouldInvalidateOverflowForPaint, ShouldInvalidateO verflowForPaint); 937 ADD_BOOLEAN_BITFIELD(shouldInvalidateOverflowForPaint, ShouldInvalidateO verflowForPaint);
983 ADD_BOOLEAN_BITFIELD(shouldDoFullPaintInvalidationIfSelfPaintingLayer, S houldDoFullPaintInvalidationIfSelfPaintingLayer);
984 ADD_BOOLEAN_BITFIELD(mayNeedPaintInvalidation, MayNeedPaintInvalidation) ; 938 ADD_BOOLEAN_BITFIELD(mayNeedPaintInvalidation, MayNeedPaintInvalidation) ;
985 ADD_BOOLEAN_BITFIELD(onlyNeededPositionedMovementLayout, OnlyNeededPosit ionedMovementLayout); 939 ADD_BOOLEAN_BITFIELD(onlyNeededPositionedMovementLayout, OnlyNeededPosit ionedMovementLayout);
986 ADD_BOOLEAN_BITFIELD(neededLayoutBecauseOfChildren, NeededLayoutBecauseO fChildren); 940 ADD_BOOLEAN_BITFIELD(neededLayoutBecauseOfChildren, NeededLayoutBecauseO fChildren);
987 ADD_BOOLEAN_BITFIELD(needsPositionedMovementLayout, NeedsPositionedMovem entLayout); 941 ADD_BOOLEAN_BITFIELD(needsPositionedMovementLayout, NeedsPositionedMovem entLayout);
988 ADD_BOOLEAN_BITFIELD(normalChildNeedsLayout, NormalChildNeedsLayout); 942 ADD_BOOLEAN_BITFIELD(normalChildNeedsLayout, NormalChildNeedsLayout);
989 ADD_BOOLEAN_BITFIELD(posChildNeedsLayout, PosChildNeedsLayout); 943 ADD_BOOLEAN_BITFIELD(posChildNeedsLayout, PosChildNeedsLayout);
990 ADD_BOOLEAN_BITFIELD(needsSimplifiedNormalFlowLayout, NeedsSimplifiedNor malFlowLayout); 944 ADD_BOOLEAN_BITFIELD(needsSimplifiedNormalFlowLayout, NeedsSimplifiedNor malFlowLayout);
991 ADD_BOOLEAN_BITFIELD(preferredLogicalWidthsDirty, PreferredLogicalWidths Dirty); 945 ADD_BOOLEAN_BITFIELD(preferredLogicalWidthsDirty, PreferredLogicalWidths Dirty);
992 ADD_BOOLEAN_BITFIELD(selfNeedsOverflowRecalcAfterStyleChange, SelfNeedsO verflowRecalcAfterStyleChange); 946 ADD_BOOLEAN_BITFIELD(selfNeedsOverflowRecalcAfterStyleChange, SelfNeedsO verflowRecalcAfterStyleChange);
993 ADD_BOOLEAN_BITFIELD(childNeedsOverflowRecalcAfterStyleChange, ChildNeed sOverflowRecalcAfterStyleChange); 947 ADD_BOOLEAN_BITFIELD(childNeedsOverflowRecalcAfterStyleChange, ChildNeed sOverflowRecalcAfterStyleChange);
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
1183 void showTree(const blink::RenderObject*); 1137 void showTree(const blink::RenderObject*);
1184 void showLineTree(const blink::RenderObject*); 1138 void showLineTree(const blink::RenderObject*);
1185 void showRenderTree(const blink::RenderObject* object1); 1139 void showRenderTree(const blink::RenderObject* object1);
1186 // We don't make object2 an optional parameter so that showRenderTree 1140 // We don't make object2 an optional parameter so that showRenderTree
1187 // can be called from gdb easily. 1141 // can be called from gdb easily.
1188 void showRenderTree(const blink::RenderObject* object1, const blink::RenderObjec t* object2); 1142 void showRenderTree(const blink::RenderObject* object1, const blink::RenderObjec t* object2);
1189 1143
1190 #endif 1144 #endif
1191 1145
1192 #endif // SKY_ENGINE_CORE_RENDERING_RENDEROBJECT_H_ 1146 #endif // SKY_ENGINE_CORE_RENDERING_RENDEROBJECT_H_
OLDNEW
« no previous file with comments | « sky/engine/core/rendering/RenderLayerScrollableArea.cpp ('k') | sky/engine/core/rendering/RenderObject.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698