Changeset 168481 in webkit
- Timestamp:
- May 8, 2014 12:14:33 PM (10 years ago)
- Location:
- trunk
- Files:
-
- 4 added
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r168476 r168481 1 2014-05-08 Bem Jones-Bey <bjonesbe@adobe.com> 2 3 [CSS Shapes] Shapes do not resolve dimensions specified in viewport units 4 https://bugs.webkit.org/show_bug.cgi?id=124052 5 6 Reviewed by Dirk Schulze. 7 8 * css3/masking/clip-path-polygon-viewport-units-expected.html: Added. 9 * css3/masking/clip-path-polygon-viewport-units.html: Added. 10 * fast/shapes/shape-outside-floats/shape-outside-floats-viewport-units-expected.html: Added. 11 * fast/shapes/shape-outside-floats/shape-outside-floats-viewport-units.html: Added. 12 1 13 2014-05-08 Rik Cabanier <cabanier@adobe.com> 2 14 -
trunk/Source/WebCore/ChangeLog
r168479 r168481 1 2014-05-08 Bem Jones-Bey <bjonesbe@adobe.com> 2 3 [CSS Shapes] Shapes do not resolve dimensions specified in viewport units 4 https://bugs.webkit.org/show_bug.cgi?id=124052 5 6 Reviewed by Dirk Schulze. 7 8 Viewport unit resolution doesn't work unless the RenderView is passed 9 down into the floatValueForLength methods. All this does is plumb down 10 a RenderView in all of these cases. 11 12 Tests: css3/masking/clip-path-polygon-viewport-units.html 13 fast/shapes/shape-outside-floats/shape-outside-floats-viewport-units.html 14 15 * css/BasicShapeFunctions.cpp: 16 (WebCore::floatValueForCenterCoordinate): 17 * css/BasicShapeFunctions.h: 18 * css/LengthFunctions.cpp: 19 (WebCore::floatSizeForLengthSize): 20 * css/LengthFunctions.h: 21 * rendering/ClipPathOperation.h: 22 (WebCore::ShapeClipPathOperation::pathForReferenceRect): 23 (WebCore::BoxClipPathOperation::pathForReferenceRect): 24 * rendering/RenderLayer.cpp: 25 (WebCore::RenderLayer::setupClipPath): 26 * rendering/shapes/Shape.cpp: 27 (WebCore::Shape::createShape): 28 * rendering/shapes/Shape.h: 29 * rendering/shapes/ShapeOutsideInfo.cpp: 30 (WebCore::ShapeOutsideInfo::computedShape): 31 * rendering/style/BasicShapes.cpp: 32 (WebCore::BasicShapeCircle::floatValueForRadiusInBox): 33 (WebCore::BasicShapeCircle::path): 34 (WebCore::BasicShapeEllipse::floatValueForRadiusInBox): 35 (WebCore::BasicShapeEllipse::path): 36 (WebCore::BasicShapePolygon::path): 37 (WebCore::floatSizeForLengthSize): 38 (WebCore::BasicShapeInset::path): 39 * rendering/style/BasicShapes.h: 40 * rendering/svg/SVGRenderingContext.cpp: 41 (WebCore::SVGRenderingContext::prepareToRenderSVGContent): 42 1 43 2014-05-08 Brent Fulgham <bfulgham@apple.com> 2 44 -
trunk/Source/WebCore/css/BasicShapeFunctions.cpp
r167937 r168481 37 37 #include "Pair.h" 38 38 #include "RenderStyle.h" 39 #include "RenderView.h" 39 40 40 41 namespace WebCore { … … 265 266 } 266 267 267 float floatValueForCenterCoordinate(const BasicShapeCenterCoordinate& center, float boxDimension )268 { 269 float offset = floatValueForLength(center.length(), boxDimension );268 float floatValueForCenterCoordinate(const BasicShapeCenterCoordinate& center, float boxDimension, RenderView* view) 269 { 270 float offset = floatValueForLength(center.length(), boxDimension, view); 270 271 if (center.direction() == BasicShapeCenterCoordinate::TopLeft) 271 272 return offset; -
trunk/Source/WebCore/css/BasicShapeFunctions.h
r167937 r168481 41 41 class CSSValue; 42 42 class RenderStyle; 43 class RenderView; 43 44 44 45 PassRefPtr<CSSValue> valueForBasicShape(const RenderStyle*, const BasicShape*); 45 46 PassRefPtr<BasicShape> basicShapeForValue(const CSSToLengthConversionData&, const CSSBasicShape*); 46 47 47 float floatValueForCenterCoordinate(const BasicShapeCenterCoordinate&, float );48 float floatValueForCenterCoordinate(const BasicShapeCenterCoordinate&, float, RenderView*); 48 49 } 49 50 -
trunk/Source/WebCore/css/LengthFunctions.cpp
r166860 r168481 211 211 } 212 212 213 FloatSize floatSizeForLengthSize(const LengthSize& lengthSize, const FloatSize& boxSize )214 { 215 return FloatSize(floatValueForLength(lengthSize.width(), boxSize.width() ), floatValueForLength(lengthSize.height(), boxSize.height()));213 FloatSize floatSizeForLengthSize(const LengthSize& lengthSize, const FloatSize& boxSize, RenderView* view) 214 { 215 return FloatSize(floatValueForLength(lengthSize.width(), boxSize.width(), view), floatValueForLength(lengthSize.height(), boxSize.height(), view)); 216 216 } 217 217 -
trunk/Source/WebCore/css/LengthFunctions.h
r163585 r168481 39 39 float floatValueForLength(const Length&, LayoutUnit maximumValue, RenderView* = 0); 40 40 float floatValueForLength(const Length&, float maximumValue, RenderView* = 0); 41 FloatSize floatSizeForLengthSize(const LengthSize&, const FloatSize& );41 FloatSize floatSizeForLengthSize(const LengthSize&, const FloatSize&, RenderView* = 0); 42 42 43 43 } // namespace WebCore -
trunk/Source/WebCore/rendering/ClipPathOperation.h
r166489 r168481 103 103 const BasicShape* basicShape() const { return m_shape.get(); } 104 104 WindRule windRule() const { return m_shape->windRule(); } 105 const Path pathForReferenceRect(const FloatRect& boundingRect ) const105 const Path pathForReferenceRect(const FloatRect& boundingRect, RenderView* view) const 106 106 { 107 107 ASSERT(m_shape); 108 108 Path path; 109 m_shape->path(path, boundingRect );109 m_shape->path(path, boundingRect, view); 110 110 return path; 111 111 } … … 141 141 } 142 142 143 const Path pathForReferenceRect(const RoundedRect& boundingRect ) const143 const Path pathForReferenceRect(const RoundedRect& boundingRect, RenderView*) const 144 144 { 145 145 Path path; -
trunk/Source/WebCore/rendering/RenderBlock.cpp
r168463 r168481 2508 2508 referenceBoxRect = borderBoxRect(); 2509 2509 } 2510 if (!clipPath->pathForReferenceRect(referenceBoxRect ).contains(locationInContainer.point() - localOffset, clipPath->windRule()))2510 if (!clipPath->pathForReferenceRect(referenceBoxRect, &view()).contains(locationInContainer.point() - localOffset, clipPath->windRule())) 2511 2511 return false; 2512 2512 break; -
trunk/Source/WebCore/rendering/RenderLayer.cpp
r168468 r168481 3843 3843 LayoutRect referenceBox = computeReferenceBox(renderer(), clippingPath, offsetFromRoot, rootRelativeBounds); 3844 3844 context->save(); 3845 context->clipPath(clippingPath.pathForReferenceRect(referenceBox ), clippingPath.windRule());3845 context->clipPath(clippingPath.pathForReferenceRect(referenceBox, &m_renderer.view()), clippingPath.windRule()); 3846 3846 return true; 3847 3847 } … … 3854 3854 3855 3855 context->save(); 3856 context->clipPath(clippingPath.pathForReferenceRect(shapeRect ), RULE_NONZERO);3856 context->clipPath(clippingPath.pathForReferenceRect(shapeRect, &m_renderer.view()), RULE_NONZERO); 3857 3857 return true; 3858 3858 } -
trunk/Source/WebCore/rendering/shapes/Shape.cpp
r167938 r168481 91 91 } 92 92 93 std::unique_ptr<Shape> Shape::createShape(const BasicShape* basicShape, const LayoutSize& logicalBoxSize, WritingMode writingMode, float margin )93 std::unique_ptr<Shape> Shape::createShape(const BasicShape* basicShape, const LayoutSize& logicalBoxSize, WritingMode writingMode, float margin, RenderView* view) 94 94 { 95 95 ASSERT(basicShape); … … 104 104 case BasicShape::BasicShapeCircleType: { 105 105 const BasicShapeCircle* circle = static_cast<const BasicShapeCircle*>(basicShape); 106 float centerX = floatValueForCenterCoordinate(circle->centerX(), boxWidth );107 float centerY = floatValueForCenterCoordinate(circle->centerY(), boxHeight );108 float radius = circle->floatValueForRadiusInBox(boxWidth, boxHeight );106 float centerX = floatValueForCenterCoordinate(circle->centerX(), boxWidth, view); 107 float centerY = floatValueForCenterCoordinate(circle->centerY(), boxHeight, view); 108 float radius = circle->floatValueForRadiusInBox(boxWidth, boxHeight, view); 109 109 FloatPoint logicalCenter = physicalPointToLogical(FloatPoint(centerX, centerY), logicalBoxSize.height(), writingMode); 110 110 … … 115 115 case BasicShape::BasicShapeEllipseType: { 116 116 const BasicShapeEllipse* ellipse = static_cast<const BasicShapeEllipse*>(basicShape); 117 float centerX = floatValueForCenterCoordinate(ellipse->centerX(), boxWidth );118 float centerY = floatValueForCenterCoordinate(ellipse->centerY(), boxHeight );119 float radiusX = ellipse->floatValueForRadiusInBox(ellipse->radiusX(), centerX, boxWidth );120 float radiusY = ellipse->floatValueForRadiusInBox(ellipse->radiusY(), centerY, boxHeight );117 float centerX = floatValueForCenterCoordinate(ellipse->centerX(), boxWidth, view); 118 float centerY = floatValueForCenterCoordinate(ellipse->centerY(), boxHeight, view); 119 float radiusX = ellipse->floatValueForRadiusInBox(ellipse->radiusX(), centerX, boxWidth, view); 120 float radiusY = ellipse->floatValueForRadiusInBox(ellipse->radiusY(), centerY, boxHeight, view); 121 121 FloatPoint logicalCenter = physicalPointToLogical(FloatPoint(centerX, centerY), logicalBoxSize.height(), writingMode); 122 122 … … 133 133 for (unsigned i = 0; i < valuesSize; i += 2) { 134 134 FloatPoint vertex( 135 floatValueForLength(values.at(i), boxWidth ),136 floatValueForLength(values.at(i + 1), boxHeight ));135 floatValueForLength(values.at(i), boxWidth, view), 136 floatValueForLength(values.at(i + 1), boxHeight, view)); 137 137 (*vertices)[i / 2] = physicalPointToLogical(vertex, logicalBoxSize.height(), writingMode); 138 138 } … … 144 144 case BasicShape::BasicShapeInsetType: { 145 145 const BasicShapeInset& inset = *static_cast<const BasicShapeInset*>(basicShape); 146 float left = floatValueForLength(inset.left(), boxWidth );147 float top = floatValueForLength(inset.top(), boxHeight );146 float left = floatValueForLength(inset.left(), boxWidth, view); 147 float top = floatValueForLength(inset.top(), boxHeight, view); 148 148 FloatRect rect(left, 149 149 top, 150 std::max<float>(boxWidth - left - floatValueForLength(inset.right(), boxWidth ), 0),151 std::max<float>(boxHeight - top - floatValueForLength(inset.bottom(), boxHeight ), 0));150 std::max<float>(boxWidth - left - floatValueForLength(inset.right(), boxWidth, view), 0), 151 std::max<float>(boxHeight - top - floatValueForLength(inset.bottom(), boxHeight, view), 0)); 152 152 FloatRect logicalRect = physicalRectToLogical(rect, logicalBoxSize.height(), writingMode); 153 153 154 154 FloatSize boxSize(boxWidth, boxHeight); 155 FloatSize topLeftRadius = physicalSizeToLogical(floatSizeForLengthSize(inset.topLeftRadius(), boxSize ), writingMode);156 FloatSize topRightRadius = physicalSizeToLogical(floatSizeForLengthSize(inset.topRightRadius(), boxSize ), writingMode);157 FloatSize bottomLeftRadius = physicalSizeToLogical(floatSizeForLengthSize(inset.bottomLeftRadius(), boxSize ), writingMode);158 FloatSize bottomRightRadius = physicalSizeToLogical(floatSizeForLengthSize(inset.bottomRightRadius(), boxSize ), writingMode);155 FloatSize topLeftRadius = physicalSizeToLogical(floatSizeForLengthSize(inset.topLeftRadius(), boxSize, view), writingMode); 156 FloatSize topRightRadius = physicalSizeToLogical(floatSizeForLengthSize(inset.topRightRadius(), boxSize, view), writingMode); 157 FloatSize bottomLeftRadius = physicalSizeToLogical(floatSizeForLengthSize(inset.bottomLeftRadius(), boxSize, view), writingMode); 158 FloatSize bottomRightRadius = physicalSizeToLogical(floatSizeForLengthSize(inset.bottomRightRadius(), boxSize, view), writingMode); 159 159 FloatRoundedRect::Radii cornerRadii(topLeftRadius, topRightRadius, bottomLeftRadius, bottomRightRadius); 160 160 -
trunk/Source/WebCore/rendering/shapes/Shape.h
r167395 r168481 50 50 class BasicShape; 51 51 class Image; 52 class RenderView; 52 53 class RoundedRect; 53 54 … … 67 68 }; 68 69 69 static std::unique_ptr<Shape> createShape(const BasicShape*, const LayoutSize& logicalBoxSize, WritingMode, float margin );70 static std::unique_ptr<Shape> createShape(const BasicShape*, const LayoutSize& logicalBoxSize, WritingMode, float margin, RenderView*); 70 71 static std::unique_ptr<Shape> createRasterShape(Image*, float threshold, const LayoutRect& imageRect, const LayoutRect& marginRect, WritingMode, float margin); 71 72 static std::unique_ptr<Shape> createBoxShape(const RoundedRect&, WritingMode, float margin); -
trunk/Source/WebCore/rendering/shapes/ShapeOutsideInfo.cpp
r167518 r168481 175 175 176 176 WritingMode writingMode = containingBlockStyle.writingMode(); 177 float margin = floatValueForLength(m_renderer.style().shapeMargin(), m_renderer.containingBlock() ? m_renderer.containingBlock()->contentWidth() : LayoutUnit() );177 float margin = floatValueForLength(m_renderer.style().shapeMargin(), m_renderer.containingBlock() ? m_renderer.containingBlock()->contentWidth() : LayoutUnit(), &m_renderer.view()); 178 178 float shapeImageThreshold = style.shapeImageThreshold(); 179 179 const ShapeValue& shapeValue = *style.shapeOutside(); … … 182 182 case ShapeValue::Shape: 183 183 ASSERT(shapeValue.shape()); 184 m_shape = Shape::createShape(shapeValue.shape(), m_referenceBoxLogicalSize, writingMode, margin );184 m_shape = Shape::createShape(shapeValue.shape(), m_referenceBoxLogicalSize, writingMode, margin, &m_renderer.view()); 185 185 break; 186 186 case ShapeValue::Image: { -
trunk/Source/WebCore/rendering/style/BasicShapes.cpp
r166830 r168481 89 89 } 90 90 91 float BasicShapeCircle::floatValueForRadiusInBox(float boxWidth, float boxHeight ) const91 float BasicShapeCircle::floatValueForRadiusInBox(float boxWidth, float boxHeight, RenderView* view) const 92 92 { 93 93 if (m_radius.type() == BasicShapeRadius::Value) 94 94 return floatValueForLength(m_radius.value(), sqrtf((boxWidth * boxWidth + boxHeight * boxHeight) / 2)); 95 95 96 float centerX = floatValueForCenterCoordinate(m_centerX, boxWidth );97 float centerY = floatValueForCenterCoordinate(m_centerY, boxHeight );96 float centerX = floatValueForCenterCoordinate(m_centerX, boxWidth, view); 97 float centerY = floatValueForCenterCoordinate(m_centerY, boxHeight, view); 98 98 99 99 if (m_radius.type() == BasicShapeRadius::ClosestSide) … … 104 104 } 105 105 106 void BasicShapeCircle::path(Path& path, const FloatRect& boundingBox )107 { 108 ASSERT(path.isEmpty()); 109 110 float centerX = floatValueForCenterCoordinate(m_centerX, boundingBox.width() );111 float centerY = floatValueForCenterCoordinate(m_centerY, boundingBox.height() );112 float radius = floatValueForRadiusInBox(boundingBox.width(), boundingBox.height() );106 void BasicShapeCircle::path(Path& path, const FloatRect& boundingBox, RenderView* view) 107 { 108 ASSERT(path.isEmpty()); 109 110 float centerX = floatValueForCenterCoordinate(m_centerX, boundingBox.width(), view); 111 float centerY = floatValueForCenterCoordinate(m_centerY, boundingBox.height(), view); 112 float radius = floatValueForRadiusInBox(boundingBox.width(), boundingBox.height(), view); 113 113 path.addEllipse(FloatRect( 114 114 centerX - radius + boundingBox.x(), … … 131 131 } 132 132 133 float BasicShapeEllipse::floatValueForRadiusInBox(const BasicShapeRadius& radius, float center, float boxWidthOrHeight ) const133 float BasicShapeEllipse::floatValueForRadiusInBox(const BasicShapeRadius& radius, float center, float boxWidthOrHeight, RenderView* view) const 134 134 { 135 135 if (radius.type() == BasicShapeRadius::Value) 136 return floatValueForLength(radius.value(), boxWidthOrHeight );136 return floatValueForLength(radius.value(), boxWidthOrHeight, view); 137 137 138 138 if (radius.type() == BasicShapeRadius::ClosestSide) … … 143 143 } 144 144 145 void BasicShapeEllipse::path(Path& path, const FloatRect& boundingBox )146 { 147 ASSERT(path.isEmpty()); 148 149 float centerX = floatValueForCenterCoordinate(m_centerX, boundingBox.width() );150 float centerY = floatValueForCenterCoordinate(m_centerY, boundingBox.height() );151 float radiusX = floatValueForRadiusInBox(m_radiusX, centerX, boundingBox.width() );152 float radiusY = floatValueForRadiusInBox(m_radiusY, centerY, boundingBox.height() );145 void BasicShapeEllipse::path(Path& path, const FloatRect& boundingBox, RenderView* view) 146 { 147 ASSERT(path.isEmpty()); 148 149 float centerX = floatValueForCenterCoordinate(m_centerX, boundingBox.width(), view); 150 float centerY = floatValueForCenterCoordinate(m_centerY, boundingBox.height(), view); 151 float radiusX = floatValueForRadiusInBox(m_radiusX, centerX, boundingBox.width(), view); 152 float radiusY = floatValueForRadiusInBox(m_radiusY, centerY, boundingBox.height(), view); 153 153 path.addEllipse(FloatRect( 154 154 centerX - radiusX + boundingBox.x(), … … 180 180 } 181 181 182 void BasicShapePolygon::path(Path& path, const FloatRect& boundingBox )182 void BasicShapePolygon::path(Path& path, const FloatRect& boundingBox, RenderView* view) 183 183 { 184 184 ASSERT(path.isEmpty()); … … 189 189 return; 190 190 191 path.moveTo(FloatPoint(floatValueForLength(m_values.at(0), boundingBox.width() ) + boundingBox.x(),192 floatValueForLength(m_values.at(1), boundingBox.height() ) + boundingBox.y()));191 path.moveTo(FloatPoint(floatValueForLength(m_values.at(0), boundingBox.width(), view) + boundingBox.x(), 192 floatValueForLength(m_values.at(1), boundingBox.height(), view) + boundingBox.y())); 193 193 for (size_t i = 2; i < length; i = i + 2) { 194 path.addLineTo(FloatPoint(floatValueForLength(m_values.at(i), boundingBox.width() ) + boundingBox.x(),195 floatValueForLength(m_values.at(i + 1), boundingBox.height() ) + boundingBox.y()));194 path.addLineTo(FloatPoint(floatValueForLength(m_values.at(i), boundingBox.width(), view) + boundingBox.x(), 195 floatValueForLength(m_values.at(i + 1), boundingBox.height(), view) + boundingBox.y())); 196 196 } 197 197 path.closeSubpath(); … … 221 221 } 222 222 223 static FloatSize floatSizeForLengthSize(const LengthSize& lengthSize, const FloatRect& boundingBox )224 { 225 return FloatSize(floatValueForLength(lengthSize.width(), boundingBox.width() ),226 floatValueForLength(lengthSize.height(), boundingBox.height() ));227 } 228 229 void BasicShapeInset::path(Path& path, const FloatRect& boundingBox )230 { 231 ASSERT(path.isEmpty()); 232 float left = floatValueForLength(m_left, boundingBox.width() );233 float top = floatValueForLength(m_top, boundingBox.height() );223 static FloatSize floatSizeForLengthSize(const LengthSize& lengthSize, const FloatRect& boundingBox, RenderView* view) 224 { 225 return FloatSize(floatValueForLength(lengthSize.width(), boundingBox.width(), view), 226 floatValueForLength(lengthSize.height(), boundingBox.height(), view)); 227 } 228 229 void BasicShapeInset::path(Path& path, const FloatRect& boundingBox, RenderView* view) 230 { 231 ASSERT(path.isEmpty()); 232 float left = floatValueForLength(m_left, boundingBox.width(), view); 233 float top = floatValueForLength(m_top, boundingBox.height(), view); 234 234 FloatRoundedRect r = FloatRoundedRect( 235 235 FloatRect( 236 236 left + boundingBox.x(), 237 237 top + boundingBox.y(), 238 std::max<float>(boundingBox.width() - left - floatValueForLength(m_right, boundingBox.width() ), 0),239 std::max<float>(boundingBox.height() - top - floatValueForLength(m_bottom, boundingBox.height() ), 0)238 std::max<float>(boundingBox.width() - left - floatValueForLength(m_right, boundingBox.width(), view), 0), 239 std::max<float>(boundingBox.height() - top - floatValueForLength(m_bottom, boundingBox.height(), view), 0) 240 240 ), 241 floatSizeForLengthSize(m_topLeftRadius, boundingBox ),242 floatSizeForLengthSize(m_topRightRadius, boundingBox ),243 floatSizeForLengthSize(m_bottomLeftRadius, boundingBox ),244 floatSizeForLengthSize(m_bottomRightRadius, boundingBox )241 floatSizeForLengthSize(m_topLeftRadius, boundingBox, view), 242 floatSizeForLengthSize(m_topRightRadius, boundingBox, view), 243 floatSizeForLengthSize(m_bottomLeftRadius, boundingBox, view), 244 floatSizeForLengthSize(m_bottomRightRadius, boundingBox, view) 245 245 ); 246 246 path.addRoundedRect(r); -
trunk/Source/WebCore/rendering/style/BasicShapes.h
r166830 r168481 44 44 class Path; 45 45 class RenderBox; 46 class RenderView; 46 47 47 48 class BasicShape : public RefCounted<BasicShape> { … … 58 59 bool canBlend(const BasicShape*) const; 59 60 60 virtual void path(Path&, const FloatRect& ) = 0;61 virtual void path(Path&, const FloatRect&, RenderView*) = 0; 61 62 virtual WindRule windRule() const { return RULE_NONZERO; } 62 63 virtual PassRefPtr<BasicShape> blend(const BasicShape*, double) const = 0; … … 152 153 const BasicShapeCenterCoordinate& centerY() const { return m_centerY; } 153 154 const BasicShapeRadius& radius() const { return m_radius; } 154 float floatValueForRadiusInBox(float boxWidth, float boxHeight ) const;155 float floatValueForRadiusInBox(float boxWidth, float boxHeight, RenderView*) const; 155 156 156 157 void setCenterX(BasicShapeCenterCoordinate centerX) { m_centerX = std::move(centerX); } … … 158 159 void setRadius(BasicShapeRadius radius) { m_radius = std::move(radius); } 159 160 160 virtual void path(Path&, const FloatRect& ) override;161 virtual void path(Path&, const FloatRect&, RenderView*) override; 161 162 virtual PassRefPtr<BasicShape> blend(const BasicShape*, double) const override; 162 163 … … 178 179 const BasicShapeRadius& radiusX() const { return m_radiusX; } 179 180 const BasicShapeRadius& radiusY() const { return m_radiusY; } 180 float floatValueForRadiusInBox(const BasicShapeRadius&, float center, float boxWidthOrHeight ) const;181 float floatValueForRadiusInBox(const BasicShapeRadius&, float center, float boxWidthOrHeight, RenderView*) const; 181 182 182 183 void setCenterX(BasicShapeCenterCoordinate centerX) { m_centerX = std::move(centerX); } … … 185 186 void setRadiusY(BasicShapeRadius radiusY) { m_radiusY = std::move(radiusY); } 186 187 187 virtual void path(Path&, const FloatRect& ) override;188 virtual void path(Path&, const FloatRect&, RenderView*) override; 188 189 virtual PassRefPtr<BasicShape> blend(const BasicShape*, double) const override; 189 190 … … 209 210 void appendPoint(Length x, Length y) { m_values.append(std::move(x)); m_values.append(std::move(y)); } 210 211 211 virtual void path(Path&, const FloatRect& ) override;212 virtual void path(Path&, const FloatRect&, RenderView*) override; 212 213 virtual PassRefPtr<BasicShape> blend(const BasicShape*, double) const override; 213 214 … … 248 249 void setBottomLeftRadius(LengthSize radius) { m_bottomLeftRadius = std::move(radius); } 249 250 250 virtual void path(Path&, const FloatRect& ) override;251 virtual void path(Path&, const FloatRect&, RenderView*) override; 251 252 virtual PassRefPtr<BasicShape> blend(const BasicShape*, double) const override; 252 253 -
trunk/Source/WebCore/rendering/svg/SVGRenderingContext.cpp
r165607 r168481 153 153 } else 154 154 referenceBox = renderer.objectBoundingBox(); 155 m_paintInfo->context->clipPath(clipPath.pathForReferenceRect(referenceBox ), clipPath.windRule());155 m_paintInfo->context->clipPath(clipPath.pathForReferenceRect(referenceBox, &renderer.view()), clipPath.windRule()); 156 156 } 157 157
Note: See TracChangeset
for help on using the changeset viewer.