| Index: Source/core/rendering/shapes/RasterShape.h
|
| diff --git a/Source/core/rendering/shapes/RasterShape.h b/Source/core/rendering/shapes/RasterShape.h
|
| index a5eb84570d7d15bde1d134ba293a6eee681c09b1..c66de8472bab1466ab7522134c27de4922e3f879 100644
|
| --- a/Source/core/rendering/shapes/RasterShape.h
|
| +++ b/Source/core/rendering/shapes/RasterShape.h
|
| @@ -43,48 +43,37 @@ public:
|
| RasterShapeIntervals(unsigned size, int offset = 0)
|
| : m_offset(offset)
|
| {
|
| - m_intervalLists.resize(size);
|
| + m_intervals.resize(size);
|
| }
|
|
|
| + void initializeBounds();
|
| const IntRect& bounds() const { return m_bounds; }
|
| bool isEmpty() const { return m_bounds.isEmpty(); }
|
| - void appendInterval(int y, int x1, int x2);
|
|
|
| - void getExcludedIntervals(int y1, int y2, IntShapeIntervals& result) const;
|
| + IntShapeInterval& intervalAt(int y)
|
| + {
|
| + ASSERT(y + m_offset >= 0 && static_cast<unsigned>(y + m_offset) < m_intervals.size());
|
| + return m_intervals[y + m_offset];
|
| + }
|
| +
|
| + const IntShapeInterval& intervalAt(int y) const
|
| + {
|
| + ASSERT(y + m_offset >= 0 && static_cast<unsigned>(y + m_offset) < m_intervals.size());
|
| + return m_intervals[y + m_offset];
|
| + }
|
|
|
| PassOwnPtr<RasterShapeIntervals> computeShapeMarginIntervals(int shapeMargin) const;
|
|
|
| void buildBoundsPath(Path&) const;
|
|
|
| private:
|
| - int size() const { return m_intervalLists.size(); }
|
| + int size() const { return m_intervals.size(); }
|
| int offset() const { return m_offset; }
|
| int minY() const { return -m_offset; }
|
| - int maxY() const { return -m_offset + m_intervalLists.size(); }
|
| -
|
| - IntShapeIntervals& intervalsAt(int y)
|
| - {
|
| - ASSERT(y + m_offset >= 0 && static_cast<unsigned>(y + m_offset) < m_intervalLists.size());
|
| - return m_intervalLists[y + m_offset];
|
| - }
|
| -
|
| - const IntShapeIntervals& intervalsAt(int y) const
|
| - {
|
| - ASSERT(y + m_offset >= 0 && static_cast<unsigned>(y + m_offset) < m_intervalLists.size());
|
| - return m_intervalLists[y + m_offset];
|
| - }
|
| -
|
| - IntShapeInterval limitIntervalAt(int y) const
|
| - {
|
| - const IntShapeIntervals& intervals = intervalsAt(y);
|
| - return intervals.size() ? IntShapeInterval(intervals[0].x1(), intervals.last().x2()) : IntShapeInterval();
|
| - }
|
| + int maxY() const { return -m_offset + m_intervals.size(); }
|
|
|
| - bool contains(const IntRect&) const;
|
| - bool getIntervalX1Values(int minY, int maxY, int minIntervalWidth, Vector<int>& result) const;
|
| - void uniteMarginInterval(int y, const IntShapeInterval&);
|
| IntRect m_bounds;
|
| - Vector<IntShapeIntervals> m_intervalLists;
|
| + Vector<IntShapeInterval> m_intervals;
|
| int m_offset;
|
| };
|
|
|
| @@ -95,6 +84,7 @@ public:
|
| : m_intervals(intervals)
|
| , m_marginRectSize(marginRectSize)
|
| {
|
| + m_intervals->initializeBounds();
|
| }
|
|
|
| virtual LayoutRect shapeMarginLogicalBoundingBox() const OVERRIDE { return static_cast<LayoutRect>(marginIntervals().bounds()); }
|
|
|