Index: Source/core/rendering/shapes/Shape.h |
diff --git a/Source/core/rendering/shapes/Shape.h b/Source/core/rendering/shapes/Shape.h |
index 3c51dabebcf8640c803a6f79aa4a5dac779169de..fb649957671724e3e404b019999cc5a724e77caa 100644 |
--- a/Source/core/rendering/shapes/Shape.h |
+++ b/Source/core/rendering/shapes/Shape.h |
@@ -34,6 +34,7 @@ |
#include "core/rendering/style/StyleImage.h" |
#include "platform/geometry/LayoutRect.h" |
#include "platform/geometry/RoundedRect.h" |
+#include "platform/graphics/Path.h" |
#include "platform/text/WritingMode.h" |
#include "wtf/PassOwnPtr.h" |
#include "wtf/Vector.h" |
@@ -61,6 +62,10 @@ typedef Vector<LineSegment> SegmentList; |
class Shape { |
public: |
+ struct DisplayPaths { |
+ Path shape; |
+ Path marginShape; |
+ }; |
static PassOwnPtr<Shape> createShape(const BasicShape*, const LayoutSize& logicalBoxSize, WritingMode, float margin); |
static PassOwnPtr<Shape> createRasterShape(Image*, float threshold, const LayoutRect& imageRect, const LayoutRect& marginRect, WritingMode, float margin); |
static PassOwnPtr<Shape> createLayoutBoxShape(const RoundedRect&, WritingMode, float margin); |
@@ -72,6 +77,7 @@ public: |
virtual void getExcludedIntervals(LayoutUnit logicalTop, LayoutUnit logicalHeight, SegmentList&) const = 0; |
bool lineOverlapsShapeMarginBounds(LayoutUnit lineTop, LayoutUnit lineHeight) const { return lineOverlapsBoundingBox(lineTop, lineHeight, shapeMarginLogicalBoundingBox()); } |
+ virtual void buildDisplayPaths(DisplayPaths&) const = 0; |
protected: |
float shapeMargin() const { return m_margin; } |