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

Unified Diff: Source/core/rendering/RenderBox.h

Issue 550363004: Factor painting code out of RenderBox into a new class called BoxPainter. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix debug build. Created 6 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: Source/core/rendering/RenderBox.h
diff --git a/Source/core/rendering/RenderBox.h b/Source/core/rendering/RenderBox.h
index 21c870a64f501c9efb5ff8693e4519b93fc55045..1895b1742a27410430b3086d5d7f435275d1a301 100644
--- a/Source/core/rendering/RenderBox.h
+++ b/Source/core/rendering/RenderBox.h
@@ -23,6 +23,7 @@
#ifndef RenderBox_h
#define RenderBox_h
+#include "core/paint/BoxPainter.h"
#include "core/rendering/RenderBoxModelObject.h"
#include "core/rendering/RenderOverflow.h"
#include "core/rendering/shapes/ShapeOutsideInfo.h"
@@ -30,6 +31,7 @@
namespace blink {
+class BoxPainter;
struct PaintInfo;
class RenderLayerScrollableArea;
@@ -623,9 +625,12 @@ public:
removeFloatingOrPositionedChildFromBlockLists();
}
+ bool backgroundHasOpaqueTopLayer() const;
+
protected:
virtual void willBeDestroyed() OVERRIDE;
+
pdr. 2014/09/09 20:45:42 Extra newline
chrishtr 2014/09/09 22:38:18 Done.
virtual void styleWillChange(StyleDifference, const RenderStyle& newStyle) OVERRIDE;
virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle) OVERRIDE;
virtual void updateFromStyle() OVERRIDE;
@@ -635,28 +640,6 @@ protected:
virtual bool foregroundIsKnownToBeOpaqueInRect(const LayoutRect& localRect, unsigned maxDepthToTest) const;
virtual bool computeBackgroundIsKnownToBeObscured() OVERRIDE;
- void paintBackground(const PaintInfo&, const LayoutRect&, const Color& backgroundColor, BackgroundBleedAvoidance = BackgroundBleedNone);
-
- void paintFillLayer(const PaintInfo&, const Color&, const FillLayer&, const LayoutRect&, BackgroundBleedAvoidance, CompositeOperator, RenderObject* backgroundObject, bool skipBaseColor = false);
- void paintFillLayers(const PaintInfo&, const Color&, const FillLayer&, const LayoutRect&, BackgroundBleedAvoidance = BackgroundBleedNone, CompositeOperator = CompositeSourceOver, RenderObject* backgroundObject = 0);
-
- void paintMaskImages(const PaintInfo&, const LayoutRect&);
- void paintBoxDecorationBackgroundWithRect(PaintInfo&, const LayoutPoint&, const LayoutRect&);
-
- // Information extracted from RenderStyle for box painting.
- // These are always needed during box painting and recomputing them takes time.
- struct BoxDecorationData {
- BoxDecorationData(const RenderStyle&);
-
- Color backgroundColor;
- bool hasBackground;
- bool hasBorder;
- bool hasAppearance;
- };
-
- BackgroundBleedAvoidance determineBackgroundBleedAvoidance(GraphicsContext*, const BoxDecorationData&) const;
- bool backgroundHasOpaqueTopLayer() const;
-
void computePositionedLogicalWidth(LogicalExtentComputedValues&) const;
LayoutUnit computeIntrinsicLogicalWidthUsing(const Length& logicalWidthLength, LayoutUnit availableLogicalWidth, LayoutUnit borderAndPadding) const;
@@ -667,8 +650,6 @@ protected:
virtual void mapLocalToContainer(const RenderLayerModelObject* paintInvalidationContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = 0, const PaintInvalidationState* = 0) const OVERRIDE;
virtual void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) const OVERRIDE;
- void paintRootBoxFillLayers(const PaintInfo&);
-
RenderObject* splitAnonymousBoxesAroundChild(RenderObject* beforeChild);
virtual void addLayerHitTestRects(LayerHitTestRects&, const RenderLayer* currentCompositedLayer, const LayoutPoint& layerOffset, const LayoutRect& containerRect) const OVERRIDE;
@@ -764,6 +745,7 @@ protected:
private:
OwnPtr<RenderBoxRareData> m_rareData;
+ BoxPainter m_boxPainter;
};
DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderBox, isBox());

Powered by Google App Engine
This is Rietveld 408576698