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

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

Issue 264183002: RAL: Eliminate n^2 walk to find repaint containers (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: One more simple rebaseline... Created 6 years, 7 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
« no previous file with comments | « Source/core/rendering/RenderListBox.cpp ('k') | Source/core/rendering/RenderObject.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 796 matching lines...) Expand 10 before | Expand all | Expand 10 after
807 TextDecorationStyle style; 807 TextDecorationStyle style;
808 AppliedTextDecoration() : color(Color::transparent), style(TextDecoratio nStyleSolid) { } 808 AppliedTextDecoration() : color(Color::transparent), style(TextDecoratio nStyleSolid) { }
809 }; 809 };
810 810
811 void getTextDecorations(unsigned decorations, AppliedTextDecoration& underli ne, AppliedTextDecoration& overline, AppliedTextDecoration& linethrough, bool qu irksMode = false, bool firstlineStyle = false); 811 void getTextDecorations(unsigned decorations, AppliedTextDecoration& underli ne, AppliedTextDecoration& overline, AppliedTextDecoration& linethrough, bool qu irksMode = false, bool firstlineStyle = false);
812 812
813 // Return the RenderLayerModelObject in the container chain which is respons ible for painting this object, or 0 813 // Return the RenderLayerModelObject in the container chain which is respons ible for painting this object, or 0
814 // if painting is root-relative. This is the container that should be passed to the 'forRepaint' 814 // if painting is root-relative. This is the container that should be passed to the 'forRepaint'
815 // methods. 815 // methods.
816 const RenderLayerModelObject* containerForRepaint() const; 816 const RenderLayerModelObject* containerForRepaint() const;
817 const RenderLayerModelObject* enclosingCompositedContainer() const;
818 const RenderLayerModelObject* adjustCompositedContainerForSpecialAncestors(c onst RenderLayerModelObject* repaintContainer) const;
819 bool isRepaintContainer() const;
817 820
818 // Actually do the repaint of rect r for this object which has been computed in the coordinate space 821 // Actually do the repaint of rect r for this object which has been computed in the coordinate space
819 // of repaintContainer. If repaintContainer is 0, repaint via the view. 822 // of repaintContainer. If repaintContainer is 0, repaint via the view.
820 void repaintUsingContainer(const RenderLayerModelObject* repaintContainer, c onst IntRect&, InvalidationReason) const; 823 void repaintUsingContainer(const RenderLayerModelObject* repaintContainer, c onst IntRect&, InvalidationReason) const;
821 824
822 // Repaint the entire object. Called when, e.g., the color of a border chan ges, or when a border 825 // Repaint the entire object. Called when, e.g., the color of a border chan ges, or when a border
823 // style changes. 826 // style changes.
824 void repaint() const; 827 void repaint() const;
825 828
826 // Repaint a specific subrectangle within a given object. The rect |r| is i n the object's coordinate space. 829 // Repaint a specific subrectangle within a given object. The rect |r| is i n the object's coordinate space.
827 void repaintRectangle(const LayoutRect&) const; 830 void repaintRectangle(const LayoutRect&) const;
828 831
829 // Repaint only if our old bounds and new bounds are different. The caller m ay pass in newBounds if they are known. 832 // Repaint only if our old bounds and new bounds are different. The caller m ay pass in newBounds if they are known.
830 bool repaintAfterLayoutIfNeeded(const RenderLayerModelObject* repaintContain er, bool wasSelfLayout, 833 bool repaintAfterLayoutIfNeeded(const RenderLayerModelObject* repaintContain er, bool wasSelfLayout,
831 const LayoutRect& oldBounds, const LayoutPoint& oldPositionFromRepaintCo ntainer, const LayoutRect* newBoundsPtr = 0, const LayoutPoint* newPositionFromR epaintContainer = 0); 834 const LayoutRect& oldBounds, const LayoutPoint& oldPositionFromRepaintCo ntainer, const LayoutRect* newBoundsPtr = 0, const LayoutPoint* newPositionFromR epaintContainer = 0);
832 835
833 // Walk the tree after layout repainting renderers that have changed or move d, updating bounds that have changed, and clearing repaint state. 836 // Walk the tree after layout repainting renderers that have changed or move d, updating bounds that have changed, and clearing repaint state.
834 virtual void repaintTreeAfterLayout(); 837 virtual void repaintTreeAfterLayout(const RenderLayerModelObject& repaintCon tainer);
835 838
836 virtual void repaintOverflow(); 839 virtual void repaintOverflow();
837 void repaintOverflowIfNeeded(); 840 void repaintOverflowIfNeeded();
838 841
839 bool checkForRepaint() const; 842 bool checkForRepaint() const;
840 bool checkForRepaintDuringLayout() const; 843 bool checkForRepaintDuringLayout() const;
841 844
842 // Returns the rect that should be repainted whenever this object changes. The rect is in the view's 845 // Returns the rect that should be repainted whenever this object changes. The rect is in the view's
843 // coordinate space. This method deals with outlines and overflow. 846 // coordinate space. This method deals with outlines and overflow.
844 LayoutRect absoluteClippedOverflowRect() const 847 LayoutRect absoluteClippedOverflowRect() const
(...skipping 630 matching lines...) Expand 10 before | Expand all | Expand 10 after
1475 void showTree(const WebCore::RenderObject*); 1478 void showTree(const WebCore::RenderObject*);
1476 void showLineTree(const WebCore::RenderObject*); 1479 void showLineTree(const WebCore::RenderObject*);
1477 void showRenderTree(const WebCore::RenderObject* object1); 1480 void showRenderTree(const WebCore::RenderObject* object1);
1478 // We don't make object2 an optional parameter so that showRenderTree 1481 // We don't make object2 an optional parameter so that showRenderTree
1479 // can be called from gdb easily. 1482 // can be called from gdb easily.
1480 void showRenderTree(const WebCore::RenderObject* object1, const WebCore::RenderO bject* object2); 1483 void showRenderTree(const WebCore::RenderObject* object1, const WebCore::RenderO bject* object2);
1481 1484
1482 #endif 1485 #endif
1483 1486
1484 #endif // RenderObject_h 1487 #endif // RenderObject_h
OLDNEW
« no previous file with comments | « Source/core/rendering/RenderListBox.cpp ('k') | Source/core/rendering/RenderObject.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698