static inline FloatRect calculatePatternBoundaries(PatternAttributes& attributes, const FloatRect& objectBoundingBox, const SVGPatternElement* patternElement) { if (attributes.boundingBoxMode()) return FloatRect(attributes.x().valueAsPercentage() * objectBoundingBox.width(), attributes.y().valueAsPercentage() * objectBoundingBox.height(), attributes.width().valueAsPercentage() * objectBoundingBox.width(), attributes.height().valueAsPercentage() * objectBoundingBox.height()); return FloatRect(attributes.x().value(patternElement), attributes.y().value(patternElement), attributes.width().value(patternElement), attributes.height().value(patternElement)); }
static inline FloatRect calculatePatternBoundaries(const PatternAttributes& attributes, const FloatRect& objectBoundingBox, const SVGPatternElement& patternElement) { return SVGLengthContext::resolveRectangle(&patternElement, attributes.patternUnits(), objectBoundingBox, attributes.x(), attributes.y(), attributes.width(), attributes.height()); }